Kas yra AI MPU?
AI palaikanti MPU platforma sujungia taikomųjų programų mikroprocesorių su programine įranga ir spartinimo ištekliais, reikalingais mašininio mokymosi darbo krūviui. Pradėkite nustatydami, kurios užduotys priklauso CPU ir kurioms naudingas palaikomas greitintuvas.
MPU arba taikomosios programos mikroprocesorius paprastai yra įterptosios Linux sistemos programinės įrangos centras. „AI MPU“ nėra atskira procesoriaus kategorija, kiek MPU platforma, apimanti spartinimo išteklius, pvz., NPU, GPU, DSP arba FPGA, arba glaudžiai su jais bendradarbiaujanti. MPU talpina Linux, tinklą, saugyklą, saugos paslaugas, programų logiką ir vykdymo laiką, koordinuojantį AI darbo krūvius.
Kalbant apie MPU mašininį mokymąsi, praktinis klausimas yra ne tik procesoriaus greitis. Atminties pralaidumas, greitintuvo palaikymas, fotoaparato ir didelės spartos I/O, Linux BSP kokybė, ilgalaikis pasiekiamumas, šiluminis dizainas ir modelio įrankių grandinės brandumas dažnai yra svarbesni nei pagrindinė TOPS vertė.
Kas daro MPU gera dirbtinio intelekto platforma?
Geriausias dirbtinio intelekto MPU priklauso nuo darbo krūvio. Vaizdo šliuzas gali teikti pirmenybę MIPI CSI, aparatinės įrangos vaizdo vamzdynams ir NPU. Tvirtam kompiuteriui gali prireikti PCIe, kelių Ethernet prievadų, deterministinių kompanioninių branduolių ir stipresnių saugos funkcijų. Pramoninė platforma gali vertinti ilgą produkto naudojimo laiką, TSN, CAN-FD ir stabilią Linux ekosistemą.
Palyginkite tikrąjį modelį ir užbaikite išankstinio apdorojimo grandinę. Platforma su mažesniu reklamuojamu greitintuvo rodikliu gali laimėti, jei išvengs atminties kopijų, palaikys reikiamus operatorius ir užtikrins efektyvų kelią nuo jutiklio iki rezultato.
NPU: efektyvi nervinė išvada krašte
Kraštas NPU pagreitina neuroninio tinklo operatorius, pvz., konvoliucijas, matricos operacijas ir įprastas aktyvinimo funkcijas. Paprastai tai yra efektyviausia vieta palaikomiems aptikimo, klasifikavimo, segmentavimo ir funkcijų ištraukimo modeliams, kai svarbi galia ir nuolatinis išvadų pralaidumas.
NPU našumas priklauso nuo kompiliavimo ir operatoriaus aprėpties. Nepalaikomi sluoksniai gali grįžti į centrinį procesorių arba kitą greitintuvą. Kvantifikavimo reikalavimai, tenzoriaus išdėstymas, įvesties skiriamoji geba ir atminties judėjimas taip pat gali dramatiškai pakeisti realų našumą. Visada palyginkite gamybos grafiką, o ne pasikliaukite vien teoriniu TOPS.
FPGA: deterministiniai vamzdynai ir AI išvada, kur svarbus lankstumas
FPGA pasižymi deterministiniu duomenų judėjimu, tinkintomis sąsajomis ir masiškai lygiagrečiais konvejeriais. Kraštinėse sistemose jis gali deserializuoti jutiklius, suderinti laiko žymes, filtruoti duomenis, generuoti dominančias sritis, atlikti išankstinį vaizdo apdorojimą ir tiekti greitintuvą su nuspėjamu delsimu. FPGA AI taip pat galima daryti išvadą, kai modelis gerai susietas su turimu DSP, atmintimi ir tiekėjo pagreičio paketu.
Kompromisas yra inžinerinės pastangos. Turi būti suplanuotas RTL arba HLS projektavimas, modeliavimas, laiko uždarymas, tikrinimo ir atnaujinimo strategija. Reikėtų pasirinkti FPGA, nes deterministinis elgesys arba tinkintas lygiagretumas sukuria sistemos vertę, o ne vien todėl, kad ji gali vykdyti aritmetiką.
NPU prieš FPGA už edge AI
Sprendimas NPU prieš FPGA dažnai yra klaidingas dvejetainis. NPU paprastai yra lengvesnis pasirinkimas palaikomiems neuroniniams tinklams ir dideliam našumui vienam vatui. FPGA yra stipresnis, kai sistemai reikia tinkintų jutiklių sąsajų, deterministinio išankstinio apdorojimo, neįprastų duomenų formatų arba griežtai kontroliuojamo konvejerio prieš ir po išvados.
Įprastoje architektūroje naudojami abu: FPGA jutikliui gauti ir išankstiniam apdorojimui, NPU neuroniniam tinklui ir MPU Linux orkestravimui. Tai sumažina netaisyklingo darbo, tenkančio vienam procesoriui, skaičių.
| Išteklius | Geriausiai tinkantys darbo krūviai | Pagrindiniai apribojimai |
|---|---|---|
| FPGA | Deterministiniai konvejeriai, pasirinktinis I/O, laiko žymėjimas, išankstinis apdorojimas, specializuotas pagreitis | RTL/HLS pastangos, patikrinimas, įrenginio ištekliai |
| NPU | Palaikoma neuroninė išvada su geru našumu vienam vatui | Operatoriaus palaikymas, kompiliatorius / vykdymo laikas, kvantavimas ir atminties judėjimas |
| MPU | Linux programos, tinklai, saugykla, kibernetinis saugumas, orkestravimas | Mažiau deterministinis vykdymas; bendrosios paskirties pridėtinės išlaidos |
| MCU / RT branduolys | Valdymo kilpos, saugos priežiūra, galios seka, deterministinė I/O | Ribota atmintis ir aukšto lygio skaičiavimas |
Edge computing
- Pradėkite nuo terminų: nustatyti, kurie signalai turi griežtus laiko reikalavimus ir didžiausią jutiklio veikimo delsą.
- Žemėlapio duomenų perdavimo spartos: apskaičiuoti jutiklio pralaidumą, tarpinius tenzoriaus dydžius ir blogiausio atvejo atminties srautą.
- Laikykite deterministinį apdorojimą šalia sąsajos: FPGA, dažnai tinka DMA varikliai arba realaus laiko branduoliai.
- Įdėkite palaikomus neuronų modelius NPU: patvirtinti operatoriaus aprėptį ir faktinį sudarytą našumą.
- Sistemai naudokite MPU: tinklai, saugykla, naujinimai, registravimas, API ir programų politika natūraliai priklauso Linux.
- Rezervuoti realiojo laiko valdymą: MCU arba deterministinis branduolys, jei reikia, turėtų prižiūrėti laiko kritinį aktyvavimą ir platformos būklę.
Atminties pralaidumas dažnai yra paslėpta kliūtis
Daugelyje edge AI dizainų dėmesys sutelkiamas į skaičiavimo smailes ir vėliau atrandama, kad kopijos, spalvų konvertavimas, tensor formatavimas iš naujo arba bendrinamas DDR dominuoja delsoje. Nulinės kopijos arba mažos kopijos keliai, DMA topologija, talpyklos elgsena ir greitintuvo atminties prieiga turėtų būti įvertinti anksti. Terminis droselis taip pat gali paversti stiprų etaloną silpnu nuolatiniu veikimu.
Tai ypač svarbu, kai kelios kameros, radarai, įvykių jutikliai arba didelės spartos Ethernet srautai naudoja tą pačią atminties posistemę.
Nuorodų architektūros pavyzdžiai
Regėjimo / įvykių jutiklio vamzdynas
Jutiklis → FPGA perdavimas ir laiko žymėjimas → NPU išvada → MPU sprendimo paslaugos → CAN-FD arba Ethernet išvestis. Tai yra stiprus mažo vėlavimo suvokimo modelis ir tiesiogiai susijęs su mūsų .
Integruotas AI kompiuteris
Didelės spartos I/O → DMA / greitintuvo kelias → NPU arba GPU išvada → Linux taikomųjų programų paslaugos → saugykla ir tinklo API. Mūsų įdėtas skaičiavimo modulis ir tvirto krašto kompiuteris Produktų klasės yra sukurtos pagal tokio tipo skaidymą.
Pramoniniai deterministiniai vartai
CAN-FD / serijos / Ethernet sąsajos → FPGA arba MCU laiko žymos ir protokolų tvarkymas → MPU paslaugos → pasirenkama NPU analizė. Čia deterministinis I/O ir ilgalaikis programinės įrangos palaikymas gali būti svarbesnis už maksimalų AI pralaidumą.
Kaip pasirinkti tarp FPGA, NPU ir MPU
Pasirinkite iš viso darbo krūvio, o ne iš procesoriaus etiketės. Jei dominuojanti problema yra neuroninė išvada, pradėkite nuo NPU suderinamumo. Jei dominuoja tinkintas I/O ir deterministinis išankstinis apdorojimas, įvertinkite FPGA išteklius. Jei dominuoja Linux paslaugos, tinklai ir taikomoji programinė įranga, pradėkite nuo MPU galimybės. Dauguma didelio našumo kraštinių platformų sujungs bent du iš šių išteklių.
Prieš naudodami aparatinę įrangą, paleiskite tipinius srautus per numatytą programinės įrangos paketą ir išmatuokite galutinį delsą, galią, atminties pralaidumą ir terminus. Šie įrodymai yra vertingesni nei bendrieji greitintuvo reitingai.
Veikęs pavyzdys: keturios kameros ir bendros atminties biudžetas
Apsvarstykite planavimo pavyzdį su keturiais 1280 × 720 srautais 30 kadrų per sekundę greičiu, vaizduojama kaip RGB su vienu baitu kanale po vaizdo konvertavimo. Jų bendra loginio vaizdo naudingoji apkrova yra 4 × 1280 × 720 × 30 × 3 = 331,776,000 baitai per sekundę, maždaug 332 MB/s dešimtainiais vienetais. Tai nėra fotoaparato nuorodos pralaidumas ar išmatuotas ALVEXIS produkto našumas.
Viena papildoma viso kadro kopija nuskaito ir įrašo tą naudingą apkrovą, pridėdama maždaug 664 MB/s atminties srauto prieš svarstant talpyklos veikimą ar kitas operacijas. Modelių tensoriai, spalvų konvertavimas, registravimas ir lygiagrečios paslaugos prideda savo srautą. Tai paaiškina, kodėl dizainą gali apriboti duomenų judėjimas, net jei jo antraštės greitintuvo įvertinimas atrodo pakankamas.
| Darbas į vietą | Atspirties taškas | Įrodymai prieš įsipareigojant |
|---|---|---|
| Kameros priėmimas ir sinchronizavimas | Palaikomos SoC sąsajos su FPGA arba papildomu įrenginiu, kur reikia | Vienalaikis srauto fiksavimas, laiko žymos veikimas ir praradimas apkrovos metu |
| Neuroninė išvada | NPU, kai palaikomas pasirinktas grafikas ir tikslumas | Konversijos tikslumas ir nuolatiniai įrenginio taikomųjų programų matavimai |
| Linux paslaugos ir įrašymas | MPU išteklių ir aiškiai numatytą saugyklos kelią | CPU, atmintis ir I/O elgesys, kai išvada yra aktyvi |
| Laiko kritinis išorinis valdymas | Tinkamas realaus laiko valdiklis arba patvirtintas deterministinis įgyvendinimas | Atsakymo laiko įrodymai esant atitinkamam blogiausio atvejo darbo krūviui |
Padalijimo tikslas yra aiškiai nurodyti kiekvieną laiką ir išteklių poreikį. Tai nereiškia, kad kiekvienam dizainui reikia keturių skirtingų procesorių. Pradėkite nuo paprasčiausios architektūros, kuri atitinka reikalavimus, tada pridėkite išteklių ten, kur matavimai ar sąsajos apribojimai juos pateisina.
Procesoriaus derinio pasirinkimo patvirtinimo planas
- Įšaldyti įvesties sutartį: jutiklius, duomenų formatus, modelį, skiriamąją gebą ir veikimo sąlygas.
- Prieš palygindami greitintuvo pralaidumą, patikrinkite modelio palaikymą ir išvesties kokybę.
- Atskirai išmatuokite gavimą, išankstinį apdorojimą, išvadas ir pristatymą, tada išmatuokite visą kelią.
- Pakartokite esant nuolatinei šiluminei apkrovai, kai įrašomas, prijungiamas tinklas ir visi numatyti jutikliai yra aktyvūs.
- Įrašykite eilės amžių, prarastas įvestis ir uodegos delsą, todėl didelis vidutinis rodiklis neslepia periodiškų vėlavimų.
Išsaugokite plokštės versiją, programinės įrangos vaizdą, įrankių grandinės versijas ir patikrinkite rezultatus. Jei norite įdiegti Rockchip, RK3588 modelio diegimo vadovas plėtoja šią darbo eigą. Jei norite gauti įvykių kameros duomenis, naudokite programinės įrangos integravimo vadovas apibrėžti laiko žymes ir atvaizdus prieš pasirenkant išvados kelią.
Apibūdinę darbo krūvį, palyginkite SoM ir SBC integravimo parinktys. Šis sprendimas sujungia skaičiavimo architektūrą su jungtimis, maitinimu, korpusu ir gamybos darbais.
Nuo procesoriaus pasirinkimo iki sukonstruojamo produkto
Procesoriaus trumpasis sąrašas naudingas tik tada, kai jis tinka visam produktui. Prieš užsakydami individualią plokštę, paverskite darbo krūvį trumpa inžinerine instrukcija:
- Įėjimai: jutiklių skaičius, sąsajos, mėginių ėmimo dažnis ir sinchronizavimo reikalavimai.
- AI darbo krūvis: tikrasis modelis, palaikomas tikslumas ir priimtina išvesties kokybė.
- Fiziniai apribojimai: matmenys, maitinimo šaltinis, aušinimas ir darbo aplinka.
- Pristatymas: prototipo kiekis, gamybos apimtis, programinės įrangos nuosavybės ir priėmimo testai.
Apžiūros stotyje kameros vamzdyną prijunkite prie linijos paleidimo, dalies identifikatoriaus ir rezultato sąsajos. Mūsų pramoninės mašinos vizijos ir kokybės kontrolės sprendimas paaiškina, kaip tie reikalavimai tampa pilotu.
MPU, NPU ir FPGA edge AI DUK
Kas yra MPU AI?
MPU AI aprašo dirbtinio intelekto darbo krūvius, įdiegtus įterptųjų mikroprocesorių platformoje, dažniausiai su Linux ir dažnai su integruotu arba papildomu spartintuvu, pvz., NPU, GPU arba FPGA. MPU paprastai valdo programas, tinklų kūrimą, saugyklą, saugą ir orkestravimą aplink išvadų vamzdyną.
Ar MPU gali vykdyti mašininį mokymąsi?
Taip. MPU mašininio mokymosi darbo krūviai gali būti naudojami procesoriaus branduoliuose arba naudoti integruotus greitintuvus. Gamybinėms sistemoms modelio palaikymas, atminties pralaidumas, nuolatiniai terminiai ir visiška delsa yra svarbesni nei vien antraštė TOPS.
NPU prieš FPGA: kuris yra geresnis edge AI?
NPU paprastai yra paprastesnis pasirinkimas palaikomam neuroninio tinklo išvadoms su dideliu našumu vienam vatui. FPGA yra pageidautina, kai projektuojant svarbiausia yra tinkintos jutiklių sąsajos, deterministinis išankstinis apdorojimas, neįprasti duomenų formatai ar specializuoti vamzdynai. Daugelis sistemų naudoja abu.
Ar galite atlikti NPU darbo krūvį naudodami FPGA?
FPGA gali įdiegti neuroninio tinklo greitintuvus arba išvadų vamzdynus, tačiau jis nėra automatiškai lygiavertis tam skirtam NPU. Prekyba apima programuojamus loginius išteklius, atmintį, įrankių grandinės brandą, modelio palaikymą, patikrinimo pastangas ir galią.
Kada FPGA AI išvada yra prasminga?
FPGA AI išvados yra patrauklios, kai išvados turi būti glaudžiai susietos su deterministiniu išankstiniu apdorojimu, tinkintomis sąsajomis arba specializuotu duomenų judėjimu. Tai ypač naudinga, kai standartinis NPU vykdymo laikas neatitinka jutiklio kelio arba delsos apribojimų.
Kur TinyML tinka krašto skaičiavimui
Edge computing apibūdina apdorojimą šalia duomenų šaltinio; edge AI pritaiko mašininio mokymosi išvadą. TinyML skirta labiau suvaržytai diegimo klasei, dažnai naudojant ribotą atmintį ir galią turinčius mikrovaldiklius. Todėl nedideliam vibracijos klasifikatoriui ir kelių kamerų suvokimo vamzdynui reikia labai skirtingų aparatinės įrangos biudžetų, nors abu gali būti edge AI.
Jei norite naudoti mikrovaldiklį, patikrinkite modelio dydį, vykdymo laiką, palaikomus operatorius ir įsigijimo išlaidas. Jei naudojate NPU arba FPGA pagrįstą dizainą, taip pat įvertinkite atminties judėjimą ir paskirstymą tarp pagreitinto ir nepagreitinto darbo. Pasirinkite mažiausią architektūrą, atitinkančią išmatuotą užduotį ir atkūrimo reikalavimus, o ne pasirinkdami technologiją vien iš jos santrumpos.
Techninės nuorodos
- Rockchip: RKNN programinės įrangos komponentai ir diegimo įrankiai
- Rockchip: modelio konvertavimo ir išvadų pavyzdžiai
- Gallego ir kt.: Įvykiu pagrįsta vizija – apklausa
- TensorFlow Lite Micro: išvados apie įrenginius, kurių atmintis yra ribota
Pralaidumo pavyzdys yra aiškus skaičiavimas, o ne produkto etalonas. Patvirtinkite pasirinktą architektūrą pagal numatytą darbo krūvį.
Padalinkite savo tikrąjį edge AI darbo krūvį.
Nusiųskite jutiklių sąsajas, modelio tipą, duomenų perdavimo spartą, galios apvalkalą ir diegimo apribojimus. Galime susieti juos su MPU/NPU/FPGA architektūra ir tinkama skaičiavimo modulio klase.
