| | 1 | [[PageOutline]] |
| | 2 | = GW16168 NXP ARA240 AI Accelerator |
| | 3 | |
| | 4 | The GW16168 NXP ARA240 AI Accelerator is an M.2 2280 M-Key card by Gateworks for use in the Gateworks single board computers. For more product information see here: [https://www.gateworks.com/products/gw16168-m2-ai-accelerator-usa-made/] |
| | 5 | |
| | 6 | |
| | 7 | = NXP ARA240 AI Accelerator Quick Start |
| | 8 | |
| | 9 | Create an account at https://support.kinara.ai/ |
| | 10 | |
| | 11 | The ARA2 Quickstart guide is what should be used. |
| | 12 | [https://support.kinara.ai/api//assets/sdk/1.3/public/sdk/Ara2-quickstart.html] |
| | 13 | |
| | 14 | == ARA240 Hardware and Setup |
| | 15 | |
| | 16 | The ARA240 was previously known as the ARA-2 by Kinara for any confusion. |
| | 17 | |
| | 18 | Download the Kinara Ara-2 SDK Release 1.3 (Licensed) from [https://support.kinara.ai/SDK ] by clicking the 3 dots under the action column (download SDK) onto your host and extract it. |
| | 19 | |
| | 20 | |
| | 21 | It should create a folder named 'art' |
| | 22 | |
| | 23 | Instructions are in the README_linux_aarch64.txt file inside the extracted folder. Also, the main instructions to follow are on the Kinara support site at [https://support.kinara.ai/api//assets/sdk/1.3/public/sdk/Ara2-quickstart.html] |
| | 24 | |
| | 25 | |
| | 26 | Copy the 'art' folder from the ARA-2 SDK to the Gateworks SBC with something like scp. (adjust IP, path, etc as needed) |
| | 27 | {{{ |
| | 28 | scp -r user@192.168.1.1:/kinara/art ./ |
| | 29 | }}} |
| | 30 | |
| | 31 | Verify the Kinara card is detected on the PCIe bus: |
| | 32 | {{{ |
| | 33 | root@noble-venice:~/art/linux/aarch64/hw_utils# lspci |
| | 34 | 81:00.0 Processing accelerators: Device 1e58:0002 (rev 02) |
| | 35 | }}} |
| | 36 | |
| | 37 | Build the uiodma kernel module on the Gateworks Single Board Computer (using 6.12 kernel) |
| | 38 | {{{ |
| | 39 | apt-get update |
| | 40 | apt-get install build-essential |
| | 41 | cd art/linux/drivers/uiodma/ |
| | 42 | make clean |
| | 43 | make |
| | 44 | }}} |
| | 45 | |
| | 46 | Insert the compiled uiodma module: |
| | 47 | {{{ |
| | 48 | insmod art/linux/drivers/uiodma/uiodma.ko |
| | 49 | sudo echo "1e58 0002" > /sys/bus/pci/drivers/uiodma/new_id |
| | 50 | |
| | 51 | }}} |
| | 52 | |
| | 53 | Verify the uiodma driver is being attached to the hardware with the command: |
| | 54 | {{{ |
| | 55 | root@noble-venice:~/demos# lspci -k |
| | 56 | 01:00.0 Processing accelerators: Device 1e58:0002 (rev 02) |
| | 57 | Subsystem: Device 0020:0020 |
| | 58 | Kernel driver in use: uiodma |
| | 59 | }}} |
| | 60 | |
| | 61 | Get Chip info: |
| | 62 | {{{ |
| | 63 | root@noble-venice:~/art/linux# ./aarch64/hw_utils/bins/chip_info_aarch64 -e 0 |
| | 64 | Kinara Inc. Silicon utilities version 0.5.9 |
| | 65 | |
| | 66 | Run directory: /root/art/linux |
| | 67 | ./aarch64/hw_utils/bins/chip_info_aarch64 -e 0 |
| | 68 | |
| | 69 | [I:20260123:00:02:36:178031] [] [kinara_main_635][IODeviceManager] enumerate ara2 pci devices |
| | 70 | [I:20260123:00:02:36:405024] [] [kinara_main_635][IODeviceManager] path= /sys/devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/0000:02:03.0/0000:81:00.0/ |
| | 71 | [I:20260123:00:02:36:405187] [] [kinara_main_635][IODeviceManager] instance name: IODeviceManager, found an ara2 pci device at: /sys/devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/0000:02:03.0/0000:81:00.0/ |
| | 72 | [I:20260123:00:02:36:405372] [] [kinara_main_635][pci_io_00:81.0] cache management 0 |
| | 73 | [I:20260123:00:02:36:405398] [] [kinara_main_635][pci_io_00:81.0] instance name: Ara2PcieIO_0, ara2 pci device folder path: /sys/devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/0000:02:03.0/0000:81:00.0/ |
| | 74 | [I:20260123:00:02:36:405521] [] [kinara_main_635][pci_io_00:81.0] instance name: Ara2PcieIO_0, phy0=0x18700000 phy1=0x18500000 phy2=0x18600000 |
| | 75 | [I:20260123:00:02:36:411041] [] [kinara_main_635][pci_io_00:81.0] enabling pcie_ste_dma for device |
| | 76 | [W:20260123:00:02:36:411150] [] [kinara_main_635][pci_io_00:81.0] instance name: Ara2PcieIO_0, uiodma addr is : 0x7b000000 |
| | 77 | [I:20260123:00:02:36:411293] [] [kinara_main_635][pci_io_00:81.0] successfully enabled pcie_ste_dma for pcie device |
| | 78 | [I:20260123:00:02:36:421550] [] [kinara_main_635][pci_io_00:81.0] instance name: Ara2PcieIO_0, vendor=0x1e58 product=0x2 |
| | 79 | [I:20260123:00:02:36:422136] [] [kinara_main_635][pci_io_00:81.0] Calling pcie tl clock programming, removing pcie clock from bypass |
| | 80 | [W:20260123:00:02:36:425541] [ChipInfo] [kinara_main_635][ChipInfo] ara_physical_id: 0 |
| | 81 | [I:20260123:00:02:36:426262] [] [task_request_queue_processing_task_runner0_640][ChipInfoRequest] BOOT SUCCESS |
| | 82 | [I:20260123:00:02:36:426304] [] [task_request_queue_processing_task_runner0_640][ChipInfoRequest] HIF IS ENABLED |
| | 83 | [I:20260123:00:02:36:527551] [ChipInfo] [kinara_main_635][ChipInfo] Request Done |
| | 84 | [I:20260123:00:02:36:532629] [ChipInfo] [kinara_main_635][ChipInfo] chip info for the devices connected |
| | 85 | +-----------+---------------+----------------------------------------------+ |
| | 86 | | Tool | Device Number | Info | |
| | 87 | +-----------+---------------+----------------------------------------------+ |
| | 88 | | Chip Info | 0, strap:0 | +-----------------------------+------------+ | |
| | 89 | | | | | Parameter | Value | | |
| | 90 | | | | +-----------------------------+------------+ | |
| | 91 | | | | | chip_id | Ara2 A01 | | |
| | 92 | | | | | bus_id | 0:129:0 | | |
| | 93 | | | | | if_type | PCIE | | |
| | 94 | | | | | chip_physical_id | 0 | | |
| | 95 | | | | | pcie_present | 1 | | |
| | 96 | | | | | usb_present | 0 | | |
| | 97 | | | | | ddr_present | 1 | | |
| | 98 | | | | | jtag_present | | | |
| | 99 | | | | | sys_frequency | 25 MHz | | |
| | 100 | | | | | neural_processor_frequency | 25 MHz | | |
| | 101 | | | | | control_processor_frequency | 25 MHz | | |
| | 102 | | | | | ddr_frequency | 25 MHz | | |
| | 103 | | | | | ddr_mfr | | | |
| | 104 | | | | | ddr_size | NA | | |
| | 105 | | | | | flash_mfr | NA | | |
| | 106 | | | | | flash_size | NA | | |
| | 107 | | | | | num_flash_images | NA | | |
| | 108 | | | | | dev_temp1 | 21.07 C | | |
| | 109 | | | | | voltage1 | 0.788796 V | | |
| | 110 | | | | | last power state | NA | | |
| | 111 | | | | | current power state | L1 | | |
| | 112 | | | | | boot_status | 1 | | |
| | 113 | | | | | internal_mem_size | 8 MB | | |
| | 114 | | | | | life_cycle | TESTED | | |
| | 115 | | | | | firmware_version(raw) | 32779 | | |
| | 116 | | | | | firmware_version | 0.128.11 | | |
| | 117 | | | | +-----------------------------+------------+ | |
| | 118 | | | | | |
| | 119 | +-----------+---------------+----------------------------------------------+ |
| | 120 | |
| | 121 | root@noble-venice:~/art/linux# |
| | 122 | |
| | 123 | }}} |
| | 124 | |
| | 125 | Program the Flash (one time only): |
| | 126 | {{{ |
| | 127 | ./bins/program_flash_aarch64 -e 0 -f ./boot_img/willow_therm.hex |
| | 128 | <reboot the host/ reset ara device to get new firmware loaded on ara device> |
| | 129 | }}} |
| | 130 | |
| | 131 | |
| | 132 | Activate the chip: |
| | 133 | {{{ |
| | 134 | root@noble-venice:~/art/linux/aarch64/hw_utils# ./bins/active_enable_aarch64 -e 0 -m 2 |
| | 135 | Kinara Inc. Silicon utilities version 0.5.9 |
| | 136 | |
| | 137 | Run directory: /root/art/linux/aarch64/hw_utils |
| | 138 | ./bins/active_enable_aarch64 -e 0 -m 2 |
| | 139 | |
| | 140 | [I:20260129:17:16:09:595108] [] [kinara_main_678][Active_Enable] In run phase of Flash image |
| | 141 | [I:20260129:17:16:09:595458] [] [kinara_main_678][Active_Enable] Device Found Done ara-physical-id= 0 |
| | 142 | [I:20260129:17:16:09:595487] [] [kinara_main_678][IODeviceManager] enumerate ara2 pci devices |
| | 143 | [I:20260129:17:16:09:794621] [] [kinara_main_678][IODeviceManager] path= /sys/devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/ |
| | 144 | [I:20260129:17:16:09:794732] [] [kinara_main_678][IODeviceManager] instance name: IODeviceManager, found an ara2 pci device at: /sys/devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/ |
| | 145 | [I:20260129:17:16:09:794880] [] [kinara_main_678][pci_io_00:01.0] cache management 0 |
| | 146 | [I:20260129:17:16:09:794901] [] [kinara_main_678][pci_io_00:01.0] instance name: Ara2PcieIO_0, ara2 pci device folder path: /sys/devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/ |
| | 147 | [I:20260129:17:16:09:795008] [] [kinara_main_678][pci_io_00:01.0] instance name: Ara2PcieIO_0, phy0=0x18300000 phy1=0x18100000 phy2=0x18200000 |
| | 148 | [I:20260129:17:16:09:798594] [] [kinara_main_678][pci_io_00:01.0] enabling pcie_ste_dma for device |
| | 149 | [W:20260129:17:16:09:798675] [] [kinara_main_678][pci_io_00:01.0] instance name: Ara2PcieIO_0, uiodma addr is : 0xf0a00000 |
| | 150 | [I:20260129:17:16:09:798777] [] [kinara_main_678][pci_io_00:01.0] successfully enabled pcie_ste_dma for pcie device |
| | 151 | [I:20260129:17:16:09:805173] [] [kinara_main_678][pci_io_00:01.0] instance name: Ara2PcieIO_0, vendor=0x1e58 product=0x2 |
| | 152 | [I:20260129:17:16:09:807783] [] [kinara_main_678][pci_io_00:01.0] Calling pcie tl clock programming, removing pcie clock from bypass |
| | 153 | [I:20260129:17:16:09:808154] [] [kinara_main_678][Active_Enable] [CTEST]: SBP Ready for Runtime Command |
| | 154 | |
| | 155 | [I:20260129:17:16:09:808182] [] [kinara_main_678][Active_Enable] [CTEST]: HIF is SETUP |
| | 156 | [I:20260129:17:16:09:808197] [] [kinara_main_678][Active_Enable] Entering State Full PRD 2 |
| | 157 | [I:20260129:17:16:09:808214] [] [kinara_main_678][Active_Enable] {} 4 |
| | 158 | [I:20260129:17:16:09:808251] [] [kinara_main_678][Active_Enable] [CTEST]: Pushed HIF req Type : 211 1 1 |
| | 159 | [I:20260129:17:16:09:808265] [] [kinara_main_678][Active_Enable] [CTEST]: Pushed HIF req occ : 32 |
| | 160 | [I:20260129:17:16:09:808629] [] [kinara_main_678][Active_Enable] {} 4 |
| | 161 | [I:20260129:17:16:09:808673] [] [kinara_main_678][Active_Enable] [CTEST]: HIF response 0 |
| | 162 | [I:20260129:17:16:09:808693] [] [kinara_main_678][Active_Enable] [CTEST]: CMD_TYPE 211 |
| | 163 | [I:20260129:17:16:09:808711] [] [kinara_main_678][Active_Enable] [CTEST]: CMD_ID 1 |
| | 164 | [I:20260129:17:16:09:808728] [] [kinara_main_678][Active_Enable] [CTEST]: QID_ID 1 |
| | 165 | [I:20260129:17:16:09:808746] [] [kinara_main_678][Active_Enable] [CTEST]: HIF PS Read Response |
| | 166 | [I:20260129:17:16:09:808765] [] [kinara_main_678][Active_Enable] [CTEST]: Status : 0 |
| | 167 | [I:20260129:17:16:09:808782] [] [kinara_main_678][Active_Enable] [CTEST]: PS Response Data Status : 0 |
| | 168 | [I:20260129:17:16:09:808799] [] [kinara_main_678][Active_Enable] [CTEST]: PS Response Data Current Power State : 2 |
| | 169 | [I:20260129:17:16:09:808816] [] [kinara_main_678][Active_Enable] [CTEST]: PS Response Data PVT_LOCK : 0 |
| | 170 | [I:20260129:17:16:09:808836] [] [kinara_main_678][Active_Enable] [CTEST]: TEST PASSED |
| | 171 | }}} |
| | 172 | |
| | 173 | Configure the DRAM: |
| | 174 | {{{ |
| | 175 | root@noble-venice:~/art/linux/aarch64/hw_utils# ./bins/ddr_unified_config_aarch64 -e 0 -s 1 -g 1 -l 3 -w 2 -f 0 -n 0 -u 0 -m 0 -r 0 -b willow -o ./ddr_config/ddr_cfg_35.bin |
| | 176 | Kinara Inc. Silicon utilities version 0.5.9 |
| | 177 | |
| | 178 | Run directory: /root/art/linux/aarch64/hw_utils |
| | 179 | ./bins/ddr_unified_config_aarch64 -e 0 -s 1 -g 1 -l 3 -w 2 -f 0 -n 0 -u 0 -m 0 -r 0 -b willow -o ./ddr_config/ddr_cfg_35.bin |
| | 180 | |
| | 181 | [I:20260129:17:17:05:155740] [] [kinara_main_706][IODeviceManager] enumerate ara2 pci devices |
| | 182 | [I:20260129:17:17:05:343281] [] [kinara_main_706][IODeviceManager] path= /sys/devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/ |
| | 183 | [I:20260129:17:17:05:343392] [] [kinara_main_706][IODeviceManager] instance name: IODeviceManager, found an ara2 pci device at: /sys/devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/ |
| | 184 | [I:20260129:17:17:05:343538] [] [kinara_main_706][pci_io_00:01.0] cache management 0 |
| | 185 | [I:20260129:17:17:05:343558] [] [kinara_main_706][pci_io_00:01.0] instance name: Ara2PcieIO_0, ara2 pci device folder path: /sys/devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/ |
| | 186 | [I:20260129:17:17:05:343663] [] [kinara_main_706][pci_io_00:01.0] instance name: Ara2PcieIO_0, phy0=0x18300000 phy1=0x18100000 phy2=0x18200000 |
| | 187 | [I:20260129:17:17:05:346269] [] [kinara_main_706][pci_io_00:01.0] enabling pcie_ste_dma for device |
| | 188 | [W:20260129:17:17:05:346327] [] [kinara_main_706][pci_io_00:01.0] instance name: Ara2PcieIO_0, uiodma addr is : 0xf0a00000 |
| | 189 | [I:20260129:17:17:05:346428] [] [kinara_main_706][pci_io_00:01.0] successfully enabled pcie_ste_dma for pcie device |
| | 190 | [I:20260129:17:17:05:351159] [] [kinara_main_706][pci_io_00:01.0] instance name: Ara2PcieIO_0, vendor=0x1e58 product=0x2 |
| | 191 | [I:20260129:17:17:05:353537] [] [kinara_main_706][pci_io_00:01.0] Calling pcie tl clock programming, removing pcie clock from bypass |
| | 192 | [I:20260129:17:17:05:353868] [] [kinara_main_706][ddr_unified_config] Configuring DDR now. Approxmiate time to complete: 60 seconds. |
| | 193 | [I:20260129:17:17:05:353894] [] [kinara_main_706][ddr_unified_config] UNIFIED CFG BIN LOADING |
| | 194 | [I:20260129:17:17:36:009795] [] [kinara_main_706][ddr_unified_config] DDR configuation successful. DDR BIST: PASSED |
| | 195 | }}} |
| | 196 | |
| | 197 | |
| | 198 | Activate Proxy: (change config/proxy_config.yaml if you want to run in background) |
| | 199 | |
| | 200 | {{{ |
| | 201 | root@noble-venice:~/art/linux/aarch64/proxy# sudo ./proxy_aarch64 -c ../../config/proxy_config.yaml |
| | 202 | |
| | 203 | Kinara Inc. Silicon utilities version 0.5.9 |
| | 204 | |
| | 205 | Run directory: /root/art/linux/aarch64/proxy |
| | 206 | ./proxy_aarch64 -c ../../config/proxy_config.yaml |
| | 207 | |
| | 208 | [I:20260129:17:23:04:425472] [] [kinara_main_764][GlobalLogger] |
| | 209 | root@noble-venice:~/art/linux/aarch64/proxy# ps -aef | grep prox |
| | 210 | root 766 1 9 17:23 ? 00:00:00 ./proxy_aarch64 -c ../../config/proxy_config.yaml |
| | 211 | }}} |
| | 212 | |
| | 213 | Download a sample yolov8n model (.dvm file) and untar: |
| | 214 | * Download [https://workdrive.zohoexternal.com/external/8c92f49dc6ba6e433a99801eef80363a46c7c8b74c9907bd47b0f3c4b9eccf14 URL] (may require access to support.kinara.ai portal) |
| | 215 | * Transfer to Gateworks SBC and untar (adjust IP to machine where file is hosted): |
| | 216 | {{{ |
| | 217 | root@noble-venice:~/art/linux/aarch64/nnapp# wget 192.168.1.1/kinara/sdk_model_compile.tar.gz |
| | 218 | --2026-01-29 17:26:52-- http://192.168.1.1/kinara/sdk_model_compile.tar.gz |
| | 219 | Connecting to 192.168.1.1:80... connected. |
| | 220 | HTTP request sent, awaiting response... 200 OK |
| | 221 | Length: 23754978 (23M) [application/x-gtar-compressed] |
| | 222 | Saving to: ‘sdk_model_compile.tar.gz’ |
| | 223 | |
| | 224 | sdk_model_compile.tar.gz 100%[=====================================================================================================>] 22.65M 112MB/s in 0.2s |
| | 225 | |
| | 226 | 2026-01-29 17:26:52 (112 MB/s) - ‘sdk_model_compile.tar.gz’ saved [23754978/23754978] |
| | 227 | root@noble-venice:~/art/linux/aarch64/nnapp# tar -xvf sdk_model_compile.tar.gz |
| | 228 | }}} |
| | 229 | |
| | 230 | Either change the input path to the model, or move the model to /tmp |
| | 231 | |
| | 232 | Modify the ../../config/nnapp_config.yaml and change the input_path in the async section: |
| | 233 | {{{ |
| | 234 | async: |
| | 235 | # if this flag is TRUE, then the input directory of each model is iterated only once. |
| | 236 | # else, the input directory is iterated for model_param.batch_size * model_param.iterations times |
| | 237 | run_once_and_for_all: False |
| | 238 | utilization_stats: False |
| | 239 | # dump outputs with timestamp |
| | 240 | dump_with_timestamp: False |
| | 241 | # this section contains all the model related params for infer async mode |
| | 242 | models: |
| | 243 | 0: |
| | 244 | name: "model1" |
| | 245 | path: "/tmp/model.dvm" |
| | 246 | input_path: "" |
| | 247 | output_path: "" |
| | 248 | |
| | 249 | }}} |
| | 250 | |
| | 251 | Execute the sample model run: |
| | 252 | {{{ |
| | 253 | root@noble-venice:~/art/linux/aarch64/nnapp# ./nnapp_aarch64 --config ../../config/nnapp_config.yaml |
| | 254 | [W:20260129:17:29:41:832406] [] [n/a_-1][config] default YAML file not found ./config.yaml , specify yaml path |
| | 255 | Kinara, Inc. |
| | 256 | |
| | 257 | *---------------------------------------------------------------* |
| | 258 | * Neural Network Inference Application * |
| | 259 | * Copyright(c) 2018-23, Kinara, Inc. All rights reserved. * |
| | 260 | *---------------------------------------------------------------* |
| | 261 | |
| | 262 | Run: |
| | 263 | working directory: /root/art/linux/aarch64/nnapp |
| | 264 | ./nnapp_aarch64 --config ../../config/nnapp_config.yaml |
| | 265 | the app expects the inputs as raw tensors. The inputs are assumed to be preprocessed and written to a file |
| | 266 | the inputs have to be in the below format: |
| | 267 | <input_image_name>/quantized/layer<layer_id>-<blob_name>-<blob_id>_input_dv.dat |
| | 268 | and the golden inputs in the below format: |
| | 269 | <input_image_name>/quantized/<layer_name>-<layer_id>-<blob_name>-<blob_id> |
| | 270 | [I:20260129:17:29:41:898866] [] [main_807][model_parameters] empty input_path for model= model1 , setting output_path and golden_output_path to none |
| | 271 | [I:20260129:17:29:41:903483] [] [main_807][BaseApp] connected to proxy socket: IP_Address= 127.0.0.1 port= 5000 |
| | 272 | [I:20260129:17:29:41:904161] [] [main_807][BaseApp] |
| | 273 | +------------+-----------------+ |
| | 274 | | Product | Current Version | |
| | 275 | +------------+-----------------+ |
| | 276 | | client_lib | 1.3.0.0 | |
| | 277 | | firmware | 0.128.11.0 | |
| | 278 | | proxy | 1.3.0.0 | |
| | 279 | | sysapi | 1.1.61.0 | |
| | 280 | +------------+-----------------+ |
| | 281 | |
| | 282 | [I:20260129:17:29:41:904950] [] [main_807][BaseApp] |
| | 283 | +------------+--------------------+ |
| | 284 | | Product | Supported Versions | |
| | 285 | +------------+--------------------+ |
| | 286 | | client_lib | 1.0.0.0 | |
| | 287 | | client_lib | 1.1.1.0 | |
| | 288 | | client_lib | 1.1.2.0 | |
| | 289 | | client_lib | 1.3.0.0 | |
| | 290 | | cnn_model | 2.0.0.0 | |
| | 291 | | cnn_model | 2.1.0.0 | |
| | 292 | | firmware | 0.5.2.0 | |
| | 293 | | firmware | 1.1.2.0 | |
| | 294 | | llm_model | 3.0.0.0 | |
| | 295 | | llm_model | 3.1.0.0 | |
| | 296 | | pci_driver | 1.0.4.0 | |
| | 297 | | pci_driver | 1.0.6.6 | |
| | 298 | | proxy | 0.8.0.0 | |
| | 299 | | proxy | 0.9.0.0 | |
| | 300 | | proxy | 1.1.1.0 | |
| | 301 | | proxy | 1.3.0.0 | |
| | 302 | +------------+--------------------+ |
| | 303 | |
| | 304 | [I:20260129:17:29:41:905463] [] [main_807][BaseApp] found endpoints: count= 1 |
| | 305 | [I:20260129:17:29:41:905908] [] [main_807][BaseApp] creation of endpoint group successful: model= model1 |
| | 306 | [I:20260129:17:29:41:984637] [] [main_807][BaseApp] model load successful: model= model1 |
| | 307 | [I:20260129:17:29:42:011215] [] [task_print_device_stats_812][Stats] temperature= 36.2557 ep status: DV_ENDPOINT_STATE_ACTIVE 0x1000608c: 15d0200 |
| | 308 | [I:20260129:17:29:42:072253] [] [main_807][AsyncApp] completed iteration= 1 |
| | 309 | [I:20260129:17:29:42:145357] [] [main_807][AsyncApp] completed iteration= 2 |
| | 310 | [I:20260129:17:29:42:218729] [] [main_807][AsyncApp] completed iteration= 3 |
| | 311 | [I:20260129:17:29:42:291966] [] [main_807][AsyncApp] completed iteration= 4 |
| | 312 | [I:20260129:17:29:42:365203] [] [main_807][AsyncApp] completed iteration= 5 |
| | 313 | [I:20260129:17:29:42:437872] [] [main_807][AsyncApp] completed iteration= 6 |
| | 314 | [I:20260129:17:29:42:510537] [] [main_807][AsyncApp] completed iteration= 7 |
| | 315 | [I:20260129:17:29:42:584005] [] [main_807][AsyncApp] completed iteration= 8 |
| | 316 | [I:20260129:17:29:42:656563] [] [main_807][AsyncApp] completed iteration= 9 |
| | 317 | [I:20260129:17:29:42:729354] [] [main_807][AsyncApp] completed iteration= 10 |
| | 318 | [I:20260129:17:29:42:802121] [] [main_807][AsyncApp] completed iteration= 11 |
| | 319 | [I:20260129:17:29:42:874931] [] [main_807][AsyncApp] completed iteration= 12 |
| | 320 | [I:20260129:17:29:42:947354] [] [main_807][AsyncApp] completed iteration= 13 |
| | 321 | [I:20260129:17:29:43:012893] [] [task_print_device_stats_812][Stats] temperature= 36.2557 ep status: DV_ENDPOINT_STATE_ACTIVE 0x1000608c: 15d0200 |
| | 322 | [I:20260129:17:29:43:020108] [] [main_807][AsyncApp] completed iteration= 14 |
| | 323 | [I:20260129:17:29:43:094043] [] [main_807][AsyncApp] completed iteration= 15 |
| | 324 | [I:20260129:17:29:43:166269] [] [main_807][AsyncApp] completed iteration= 16 |
| | 325 | [I:20260129:17:29:43:238760] [] [main_807][AsyncApp] completed iteration= 17 |
| | 326 | [I:20260129:17:29:43:311065] [] [main_807][AsyncApp] completed iteration= 18 |
| | 327 | [I:20260129:17:29:43:383388] [] [main_807][AsyncApp] completed iteration= 19 |
| | 328 | [I:20260129:17:29:43:455880] [] [main_807][AsyncApp] completed iteration= 20 |
| | 329 | [I:20260129:17:29:43:456773] [] [main_807][Stats] summary stats |
| | 330 | ╔════════╤════════════════════════════╤═════════════════════════╤═══════════════════════════╤══════════════════╗ |
| | 331 | ║ Model │ hw_time (ms) │ ip_time (ms) │ op_time (ms) │ app_time (ms) ║ |
| | 332 | ╠════════╪════════╤═════════╤═════════╪═══════╤═══════╤═════════╪════════╤════════╤═════════╪═════╤═════╤══════╣ |
| | 333 | ║ │ max │ min │ mean │ max │ min │ mean │ max │ min │ mean │ max │ min │ mean ║ |
| | 334 | ╟────────┼────────┼─────────┼─────────┼───────┼───────┼─────────┼────────┼────────┼─────────┼─────┼─────┼──────╢ |
| | 335 | ║ model1 │ 3.1052 │ 3.08395 │ 3.09515 │ 4.365 │ 2.346 │ 3.17945 │ 12.187 │ 10.369 │ 11.3023 │ 76 │ 71 │ 71.9 ║ |
| | 336 | ╚════════╧════════╧═════════╧═════════╧═══════╧═══════╧═════════╧════════╧════════╧═════════╧═════╧═════╧══════╝ |
| | 337 | |
| | 338 | model_name=model1 iteration=20 batch_size=5 num_ip=1 num_op=1 total_ip_size=122880000 total_op_size=120960000 num_inferences=100 |
| | 339 | |
| | 340 | [I:20260129:17:29:43:457176] [] [main_807][Stats] endpoint load distribution: [0,100] |
| | 341 | [I:20260129:17:29:43:457195] [] [main_807][Stats] total number of inferences: 100 |
| | 342 | [I:20260129:17:29:43:457221] [] [main_807][Stats] Performance: HW IPS= 323.086 App IPS= 69.541 |
| | 343 | root@noble-venice:~/art/linux/aarch64/nnapp# |
| | 344 | }}} |
| | 345 | |
| | 346 | Note the final line that shows Performance: HW IPS= 323.086. |
| | 347 | |
| | 348 | == Modelzoo Demo |
| | 349 | |
| | 350 | Gain access from Kinara to https://github.com/KinaraAi/kinara-modelzoo-ara2 |
| | 351 | |
| | 352 | Scroll down for all the instructions on that page. |
| | 353 | |
| | 354 | The key instructions are: |
| | 355 | |
| | 356 | {{{ |
| | 357 | git clone https://github.com/KinaraAi/kinara-modelzoo-ara2.git |
| | 358 | pip3 install -r requirements.txt |
| | 359 | |
| | 360 | }}} |
| | 361 | |
| | 362 | |
| | 363 | Set runtime: |
| | 364 | {{{ |
| | 365 | export DV_TGT_ROOT=<Path-to-runtime> |
| | 366 | }}} |
| | 367 | |
| | 368 | Download pre-compiled models: |
| | 369 | {{{ |
| | 370 | cd kinara-modelzoo-ara2/flows |
| | 371 | ./precompiled_model_download.sh model=mobilenetv1-tf |
| | 372 | }}} |
| | 373 | |
| | 374 | |
| | 375 | Run an inference: |
| | 376 | {{{ |
| | 377 | ./infer-hw.sh images_folder=../testimages model=mobilenetv1-tf |
| | 378 | }}} |
| | 379 | |
| | 380 | == Troubleshooting |
| | 381 | |
| | 382 | Please note software support should be routed through NXP, who produces the ARA240 DNPU Chip. |
| | 383 | |
| | 384 | [https://community.nxp.com] |
| | 385 | |