Paano magkasya ang RK3588 NPU software stack

Ang software stack ng Rockchip ng RKNN ay naghihiwalay sa paghahanda ng modelo mula sa pagpapatupad sa device. RKNN-Toolkit2 ay nagbibigay ng mga tool sa conversion at pagsusuri. Ang RKNN-Toolkit-Lite2 ay nagbibigay ng interface ng Python sa mga sinusuportahang target na platform, habang ang RKNN Runtime ay nagbibigay ng mga C/C++ na interface. Ikinokonekta ng kernel driver ang runtime sa NPU. Suriin ang compatibility ng mga bahaging ito gamit ang board support package na ibinigay para sa iyong module.

Tinutukoy ng isang kapaki-pakinabang na tala sa pag-deploy ang board at SoM rebisyon, Linux imahe, driver, runtime, bersyon ng tool ng conversion, orihinal na modelo at na-convert na modelo. I-save ang build script at mga setting ng preprocessing sa tabi ng artifact ng modelo. Isang filename tulad ng detector.rknn Hindi maipaliwanag ng nag-iisa kung bakit naiiba ang kilos ng isang deployment sa iba.

MaghandaReference model, input at inaasahang output
Magbalik-loobTarget na configuration at mga pagsusuri sa katumpakan
I-deployRuntime, application at napapanatiling pagsubok

Hakbang 1: magtatag ng reference bago ang conversion

Patakbuhin ang orihinal na modelo sa isang hanay ng pagpapatunay ng kinatawan. I-save ang mga hilaw na output at ang sukatan ng application na mahalaga: katumpakan ng pag-uuri, kalidad ng pagtuklas o isa pang panukalang partikular sa gawain. Para sa isang detector, panatilihin ang pagkakasunud-sunod ng label, mga limitasyon ng kumpiyansa at mga setting ng postprocessing. Ito ang nagiging punto ng paghahambing para sa na-convert na modelo.

Isulat ang buong kontrata ng pag-input. Isama ang mga dimensyon, laki ng batch, pag-order ng RGB o BGR, layout, hanay ng numero, normalisasyon, pagbabago ng laki at padding. Ang isang tamang modelo ay maaaring magdulot ng mga mahihirap na resulta kung ang application na mga letterbox ng isang imahe ay naiiba sa pagsasanay o ibawas ang isang offset nang dalawang beses. Panatilihin ang postprocessing sa labas ng network na nakadokumento nang maingat.

Gamitin ang mga Rockchip. RKNN Model Zoo bilang panimulang punto kapag may kasama itong tumutugmang modelo at target. Ang mga halimbawa ng conversion at inference nito ay mas kapaki-pakinabang kaysa sa pag-aakala na ang anumang na-export na network ay gagana nang hindi nagbabago. Pumili ng kilalang rebisyon ng repositoryo at sundin ang mga tagubilin para sa partikular na halimbawang iyon.

Hakbang 2: i-convert ang modelo at tingnan ang suporta ng operator

  1. Itugma ang target. Piliin ang RK3588 target at isang toolchain na tugma sa nilalayong board image.
  2. Suriin ang graph. Kumpirmahin ang mga hugis, preprocessing, mga output at suporta para sa aktwal na mga operasyon sa na-export na modelo.
  3. Bumuo ng isang reference na conversion. Gamitin ang mga opsyon sa katumpakan na sinusuportahan ng graph at bersyon ng software na iyon.
  4. Basahin ang kumpletong build log. Lutasin ang mga pagkabigo at siyasatin ang mga babala bago magdagdag ng pagkuha ng camera o isang user interface.
  5. Ihambing ang mga output. Patakbuhin ang parehong mga input sa pamamagitan ng orihinal at na-convert na mga modelo, na may parehong postprocessing.

Ang isang hindi sinusuportahang operasyon ay maaaring mangailangan ng ibang pag-export, pagsulat muli ng graph o isang tahasang yugto ng pagproseso ng CPU. Huwag ipagpalagay na ang runtime ay malinaw na isasagawa ang bawat hindi sinusuportahang layer. Kung ang bahagi ng workload ay lumipat sa CPU, isama ang mga paglilipat at pag-synchronize sa pagsukat ng pagganap.

Hakbang 3: suriin ang INT8 kumpara sa iyong kinakailangan sa katumpakan

Binabago ng quantization ang numerical representation. Kapag ang piniling daloy ng conversion ay gumagamit ng data ng pagkakalibrate, pumili ng mga input na kinatawan ng deployment: pag-iilaw, laki ng bagay, background at mga kondisyon ng operating. Panatilihin ang isang hiwalay na hanay ng pagpapatunay upang suriin ang resulta. Ang isang conversion na matagumpay na nakumpleto ay nangangailangan pa rin ng pagsusuri sa katumpakan.

Ihambing ang output ng application, hindi lamang ang pagkakaiba sa pagitan ng dalawang tensor. Halimbawa, maaaring ilipat ng isang maliit na pagbabago sa numero ang isang pagtuklas sa isang threshold ng kumpiyansa. Siyasatin ang mahihirap na kaso, mga klase na may kaunting mga halimbawa at kundisyon kung saan marginal na ang orihinal na modelo. Kung mababa ang katumpakan sa limitasyon sa pagtanggap, muling bisitahin ang saklaw ng pagkakalibrate at preprocessing bago baguhin ang hardware.

Ang ONNX Dokumentasyon ng dami ng runtime ay kapaki-pakinabang na background sa numerical trade-off at katumpakan ng pagsisiyasat. RKNN ang mga opsyon sa conversion at suportadong katumpakan ay dapat pa ring suriin sa sariling dokumentasyon ni Rockchip para sa napiling release.

Hakbang 4: sukatin ang higit sa oras ng hinuha

Sukatin ang naka-deploy na workload pagkatapos ng warm-up at muli sa panahon ng sustained run. Itala ang temperatura, power mode, kasabay na mga proseso at ang enclosure o cooling arrangement. Ang kapaki-pakinabang na resulta ay isang reproducible performance envelope, kabilang ang katumpakan at pagkaantala, sa ilalim ng mga kondisyon kung saan gagana ang produkto.

PagsukatKung ano ang sinasagot nitoAno ang ire-record
Tagal ng pagpapatupad ng modeloGaano katagal ang runtime na tawag na ito?Input na hugis, katumpakan, timing boundaries at runtime na bersyon
End-to-end latencyIlang taon na ang obserbasyon kapag naihatid na ang resulta?Oras ng pagkuha, preprocessing, queueing, inference at output time
Sustained throughputIlang nakumpletong resulta ang naihatid sa paglipas ng panahon?Haba ng pagpapatakbo, mga nakumpletong kahilingan at mga na-drop o nilaktawan na input
Katumpakan ng aplikasyonNatutugunan ba ng na-deploy na modelo ang kinakailangan sa gawain?Set ng pagpapatunay, sukatan ng gawain at mga limitasyon ng desisyon
Thermal na pag-uugaliStable ba ang resulta pagkatapos uminit ang system?Mga kondisyon sa paligid, paglamig, temperatura at orasan kung saan available

Bilang isang mapaglarawang badyet, ang isang application na tumatanggap ng bagong frame bawat 40 ms ay dapat na makasabay sa 25 mga frame bawat segundo kung ipoproseso nito ang bawat frame. Ang isang 12 ms inference measurement ay iiwan ang natitirang bahagi ng badyet na iyon para sa pagkuha, paghahanda at paghahatid lamang sa isang angkop na nakaiskedyul na disenyo. Hindi ito nagpapatunay ng 12 ms camera-to-result na pagkaantala. Ang mga numerong ito ay isang halimbawa ng pagpaplano, hindi nasusukat na ForgeEdge na pagganap.

Gumamit ng monotonic na orasan para sa mga tagal ng software. Iulat ang median at tail latency sa halip na isang solong pinakamahusay na obserbasyon, at panatilihin ang mga hilaw na sukat. Para sa ilang camera, isaalang-alang ang workload ng lahat ng aktibong stream, kabilang ang pag-decode, conversion ng imahe, paggalaw ng memorya at pag-record. Ang isang pila na lumalaki sa buong pagsubok ay nagpapahiwatig na ang average na kapasidad ay mas mababa sa papasok na workload.

Mga karaniwang sintomas ng deployment

SintomasUnang pagsisiyasat
Tamang modelo, maling label o kahonPagkakasunod-sunod ng kulay, normalisasyon, pagbabago ng laki/padding, layout ng output at postprocessing
Hindi makapagsimula ang na-convert na modeloPagpili ng target, compatibility ng runtime/driver at integridad ng artifact ng modelo
Magandang maikling benchmark, hindi magandang napanatiling pagganapTemperatura, power mode, memory pressure at nakikipagkumpitensyang trabaho
Katanggap-tanggap na oras ng hinuha, nakikitang naantala ang mga resultaPag-capture ng buffering, edad ng pila, mga kopya at pag-iiskedyul ng output
Ang output ng INT8 ay nawawalan ng mga kapaki-pakinabang na pagtuklasSaklaw ng pagkakalibrate, pagkakapareho ng preprocessing at pagpapatunay sa antas ng gawain

Gawing paulit-ulit na produkto ang prototype

I-package ang modelo, runtime at configuration ng application bilang isang kinokontrol na release. Tukuyin ang mga pagsusuri sa pagsisimula, pag-uulat ng pagkabigo, pagbawi, at landas ng rollback. Panatilihin ang isang maliit na reference-input na pagsubok na maaaring tumukoy ng maling deployment bago ikonekta ang isang camera. Paghiwalayin ang pagsusuri ng software na iyon mula sa pagsubok ng pisikal na sensor, na nagsasanay din ng paglalagay ng kable, mga driver at mga setting ng pagkakalantad.

Kapag ang board ay nangangailangan ng iba't ibang mga konektor, power conditioning o mga interface ng sensor, suriin ang SoM laban sa SBC desisyon at ang proseso ng disenyo ng carrier-board. Tinutukoy ng mga desisyong iyon kung paano nagiging isang mapanatili na sistema ang matagumpay na pagpapakita ng modelo.

RK3588 NPU mga tanong sa deployment

Maaari bang tumakbo ang bawat ONNX modelo sa RK3588 NPU?

Ang pagiging tugma ay nakasalalay sa aktwal na graph, mga hugis, mga operasyon at napiling toolchain. Magtatag ng suporta sa pamamagitan ng conversion at on-device validation ng modelong balak mong ipadala.

Nahuhulaan ba ng isang na-advertise na rating ng accelerator ang FPS ng application?

Hindi. Tinutukoy ng network, katumpakan, pag-uugali ng memorya, preprocessing at runtime ang sinusukat na throughput ng application. Gamitin ang target na workload at ang kumpletong path ng data nito kapag naghahambing ng mga platform.

Dapat ko bang i-optimize muna ang neural network?

Profile muna. Kung nangingibabaw ang pagkuha, pag-convert ng imahe o pagpila, ang pagbabawas ng oras ng pagpapatupad ng modelo ay maaaring magkaroon ng maliit na epekto sa edad ng resulta na naranasan ng application.

I-benchmark ang kumpletong gawain sa computer vision

Para sa isang object-detection application, sukatin ang camera capture, resize at normalization, NPU inference, output decoding at paghahatid ng desisyon. Iulat ang bersyon ng modelo, resolution ng input, katumpakan, threshold ng kumpiyansa at dataset ng pagsusuri kasama ang resulta ng timing. Kung hindi, maaaring maglarawan ng magkaibang mga gawain ang dalawang tila magkatulad na edge AI na mga benchmark.

Subukan ang na-export na graph at mga kinakailangang operator sa pamamagitan ng napiling RKNN toolchain bago mag-commit sa isang arkitektura ng modelo. Suriin ang katumpakan pagkatapos ng quantization at pag-uugali sa panahon ng patuloy na pagpapatupad, hindi lamang kung magtagumpay ang conversion. Ang pagtuklas ng bagay, pagse-segment at pag-uuri ay may iba't ibang gastos sa pagproseso ng output; patunayan ang aktwal na workload na pinili para sa proyekto.

Ihambing ang FPGA, NPU at MPU na mga tungkulin sa disenyo

Mga teknikal na sanggunian

Saklaw ang iyong edge AI workload.

Ibahagi ang modelo, resolution ng input, mga interface ng camera, kinakailangang rate ng resulta at power envelope. Maa-assess namin ang integration work sa paligid ng RK3588-based edge platform.