U trenutnom fokusu ka mogućim primenama AI u što većem broju projekata pojavio se problem u AI mogućnostima dostupnih SoC-eva. Oni po pravilu ili nemaju NPU ili je ugrađeni NPU veoma skromnih karakteristika do 5 TOPS. Jedino iole moćnije, a opet ekonomično rešenje je do sada bio Jetson Orin Nano sa svojih 40 INT8 TOPS. Hailo-8 M.2 AI Acceleration Module je možda pravo rešenje koje je nedostajalo tržištu gladnom AI-a.
Izraelska kompanija Hailo je ponudila veoma interesantno rešenje kojim bi se veliki broj postojećih i novih sistema moglo pojačati respektabilnom AI snagom. U ponudi su dva osnovna modela Hailo-8 sa 26 TOPS i Hailo-8l sa 13 TOPS, sa tim da je proizvođač za prvi dao cenu od $179, dok za drugi model nema cene na njegovom sajtu. Doduše, postoji drugi način da nabavite taj model, o čemu ćemo kasnije. Hailo-8 M.2 AI Acceleration Module u vidu kita dolazi u luksuznoj beloj kartonskoj kutiji, kao što i dolikuje predloženoj ceni.
Dobro upakovan tu je Hailo-8 Ai modul, ali i mali zvezdasti šrafciger, nekoliko šrafova potrebnih za montažu, pasivni hladnjak i nekoliko termalnih pedova unapred odrezanih na potrebnu veličinu u skladu sa telom hladnjaka i Hailo-8 čipa. Postavlja se pitanje da li je potrebno dodatno aktivno hladiti čip. Na našim testovima nije dolazilo do značajnog zagrevanja hladnjaka, pa ćemo smatrati da je Hailo dobro procenio potrebe. Moramo istaći da drugi proizvođači koji su tržištu ponudili HAT-ove sa ovim čipom, čak u kompletima nisu ponudili ni pasivni hladnjak.
Hailo-8 se izrađuje u tri M.2 verzije: Key M, Key B+M i Key A+E, što omogućava ugradnju ovog modula u praktično svaki hardver koji ima M.2 PCIe port. Prva dva modela, a mi smo za potrebe ove recenzije od Hailo-a dobili Key M, su dimenzije 2242, sa odlomljivim delovima te se mogu montirati i u 2260 i 2280 PCIe port. Poslednji Key A+E se izrađuje isključivo u dimenziji 2230. Sam akceleratorski čip je identičan na svim Hailo-8 modelima, ali ugrađeni interfejs u nekim slučajevima utiče na performanse. Kada god je protok podataka između modula i baznog računara veliki, upravo brzina ovog interfejsa će biti presudna za postizanje performansi. Imajte na umu da Key M podržava PCIe 3.0 (4 linije) što omogućava protok od 32 Gbps, dok ostala dva Key B+M i Key A+E podržava PCIe 3.0 (2 linije) sa protokom od 16 Gbps.
Sa druge strane M.2 modula nema komponenti sa visokim profilom, te se može ugraditi u svaki M.2 konektor. Ovo govorimo jer smo se sretali sa M.2 modulima koji i sa naličja imaju relativno visoke komponente, te je ugradnja u nekim slučajevima problematična.
Sa gornje strane se praktično nalazi samo Hailo-8 na koji treba montirati pasivni hladnjak. Iako na ploči modula postoje rupe za montažu hladnjaka, model koji dolazi u kitu nema mogućnost fiksiranja, te se samo lepi lepljivim termalnim pedom za Hailo-8. To nas je iskreno začudilo, mada moramo priznati da nam u radu ni jednom nije došlo do odvajanja hladnjaka od čipa. Naravno, sve vreme smo bili oprezni.
Hailo-8 je edge AI procesor, sa deklarisanih 26 TOPS AI mogućnosti. Po tvrdnjama proizvođača ovaj čip je daleko energetski efikasniji (odnos fps/w u vizuelnim Ai zadacima) od svih drugih rešenja na tržištu. Ovde realno ulazimo na klizav teren međusobnog upoređenja jedne izuzetno fluidne stvari kao što je AI mogućnost. Da pojasnimo naš stav. Razna hardverska rešenja postojeće opšteprihvaćene frejmvorke (Tensorflow, Tensorflow Lite, ONNX, Keras, Pytorch) konvertuju u prilagođene za neku arhitekturu. Kao primer možemo uzeti Rockchip i njihov RKNN-Toolkit2 kojim se prethodno: Tensorflow, Pytorch ili ONNX pretvara u RKNN model prilagođen za NPU u Rochchip SoC-u. Odavde je jasno da je svako poređenje hardvera veoma nezahvalno, jer je uticaj softverskih rešenja konverzije na performanse izuzetno veliki. Drugi potencijalni razlog je i sama priroda dobijenog rezultata. Za razliku od standardnih benčmarka gde imamo jasno definisane rezultate, kod AI-a imamo stepene verovatnoće i pragove odlučivanja vezane za njihove vrednosti koje mi sami definišemo. Na primer, prilikom detekcije objekta, AI mreža će dati procenu verovatnoće da je detektovan objekat zaista taj, a mi ćemo smatrati da je objekat uspešno detektovan ako je taj stepen veći od nekog broja, recimo 80%. Tu vrednost ćemo definisati iskustveno, što unosi dozu neodređenosti i neuporedivosti praktičnih rezultata. Naravno, postoje benčmarci, i mi smo koristili neke u inicijalnom testiranju u ovom tekstu. U našem slučaju test je proveravao kojom brzinom je moguće provesti ulaznu sliku kroz kompletnu Ai mrežu. Na taj način dobijamo maksimalni fps obrade video signala, te smo time dobili kakav-takav osećaj o sposobnosti samog hardvera. Da li takvi testovi mogu potvrditi da je Hailo-8 26 TOPS četiri puta više od 6 TOPS Rockchip RK3588 u Orange Pi 5 plus ili za 1/3 manje od 40 TOPS NVIDIA Jetson Orin Nano? Naravno da ne i mi smo stanovišta da su usled prevelikih hardverskih i softverskih specifičnosti same platforme samo grubo uporedive. Savetujemo da prilikom izbora platforme za vaše rešenje ipak inicijalno isprobate dostupne modele na samoj platformi, pa tek onda donesete odluku u tome na kojoj ćete nastaviti razvoj.
Ukoliko procenjujete da je Hailo-8 predimenzioniran za vaš projekat, kako zbog 26 TOPS, tako i finansijski, možda je interesantno rešenje Hailo-8L. Pomenuli smo da je manji modul moguće naći i na druge načine. Jedan od njih je Raspberry Pi AI kit o kome smo detaljno pisali na našem engleskom sajtu. Ukoliko vas interesuju tehničke karakteristike i detaljniji prikaz samog Hailo-8L modula savetujemo da obavezno pogledate taj tekst. Tu ćete naći i poređenje performansi ova dva Hailo čipa.
U tom tekstu je dat opis rada na Raspberry Pi SBC-u, ali Hailo-8(L) modul je smišljen za svaku ARM i x86 procesore sa Linux i Windows OS-om. Pre svega treba da posetite Developer Zone na Hailo sajtu i da napravite sopstveni nalog. U Software Downloads delu, do koga neće moći da stignete dok ne autorizujete svoj nalog, možete naći HailoRT PCIe drajvere za ARM64, ARMHF, ARMEL i x86 CPU, za Ubuntu i Windows i HailoRT Python paket za Python verzije 3.8, 3.9, 3.10 i 3.11. Dodatno može se preuzeti Ai Software Suite, Dataflow Compiler, Model Zoo i TAPAS, ali samo za x86 Ubuntu Linux kombinaciju. Sav softver je besplatan.
U Developer Zone delu nalazi se i kompletna i detaljna dokumentacija, link ka GitHub sajtu i Model Zoo sa modelima. Tu je i veoma aktivan Hailo forum gde korisnici iznose svoje probleme, a vidimo da Hailo tim aktivno učestvuje u rešavanju. Zaključujemo da tim posvećuje veliku pažnju korisničkoj podršci.
Za kraj ove recenzije, veoma interesantnog AI proizvoda, isprobali smo ugradnju modula u dve popularne mejkerske platforme. Jedna je Radxa Rock 5A, a druga Orange Pi 5 Plus. Prvi je sa Rockchip RK3588s SoC-em, te je na njemu ograničen PCIe, a drugi je sa RK3588 sa četiri linije PCIe 3.0. Instaliranje na oba modela je identično, pa ćemo ga proći kroz Radxa model. Nakon ubacivanja modula u M.2 port, a kod Radxa Rock 5A modela je potrebno imati zvanični Key E to Key M konvertor o kome smo pisali u recenziji. Obratite pažnju da je ovde PCIe 3.0 sa dve linije. Nakon komande lshw uočavamo da je Hailo-8 PCIe modul prepoznat.
Pre instalacije drajvera potrebno je instalirati dkms, koji se mora uključiti odgovorom Y u toku kasnije instalacije drajvera/HailoRT-a.
sudo apt install dkms
Potrebno je instalirati i Linux header-e. Kako ćete to uraditi zavisi od OS-a i SBC-a. Za Radxa OS je dovoljno pokrenuti:
sudo apt install linux-headers-$(uname -r)
Dok se kod Orange Pi-a oni nalaze u /opt direktorijumu, što je često kod SBC-ova:
cd /opt
sudo dpkg –install linux-headers-current-rockchip-rk3588_1.0.8_arm64.deb
Nakon ove pripremne instalacije preuzeli smo sa Developer Zone drajvere (u ovom trenutku verzija 4.19.0) i instalirali ih komandom:
sudo dpkg –install hailort-pcie-driver_4.19.0_all.deb
Nakon toga instalirali smo HailoRT:
sudo dpkg –install hailort_4.19.0_arm64.deb
Proveravamo i vidimo da je sve tu i da radi.
NAPOMENA: Kod Radxa OS-a nakon instalacije drajvera i reseta, izgubićete desktop. Nismo želeli da ulazimo u razloge, jer nam oni za ovu recenziju nisu od značaja. Generalno za rad možete koristiti server verziju i ssh pristup. Orange Pi OS radi kako treba.
Prvo smo testirali Efficientnet_m konvolucionu arhitekturu neuralne mreže i kod oba SBC-a, bez obzira na različite brzine PCIe-a dobili potpuno identične benčmark fps rezultate i prosečnu potrošnju od oko 4.3 W.
Razlika se pojavila kod veće mreže koja je zahtevnija sa stanovišta protoka podataka između SBC-a i modula: Clip Text Encoder Vit Large.
Vidimo da je Radxa postizala svega 2 fps-a uz potrošnju od svega 0.6 W, dok je RK3588 sa 4 linije PCIe obrađivao 15 fps, ali je angažovao duplo veću snagu od 1.15 W.
Zaključak
Hailo je ponudio pravi proizvod u pravom trenutku. AI akcelerator u obliku M.2 PCIe modula za svaki od Key tipova, za ARM i x86 arhitekturu i Linux i Windows OS. Uz Python 3.8 do 3.11 i Docker podršku. Sve ovo uz odličnu dokumentaciju i mnoštvo modela neuralnih mreža u svom Zoo-u. I da ne zaboravimo, sav potreban softver je besplatan. Isprobali smo, a videli smo da su i veliki igrači u Edge/Embedded svetu prepoznale ovaj proizvod.
Za razliku od kompletnih rešenja, kakva nudi NVIDIA sa svojom Jetson serijom, ovde imamo rešenje za gotovo svaki računar, bio on industrijski ili mejkerski. Cena je na ivici, jer je $176 relativno puno za 26 TOPS, čak je i mali 13 TOPS-ni Hailo-8L u vidu Raspberry Pi AI Kit-a po $70 ceni daleko povoljniji, ali ipak škakljivo dostižan. Svakako moć ovog NPU-a prevazilazi gotovo sve SoC-eve sa integrisanim NPU-om za red veličine – osim naravno NVIDIA modela.
Ono što nam uliva veliku nadu u budućnost ovog proizvoda je što je integracija u ARM64 i x86 sisteme sa PCIe M.2 veoma jednostavna i uvek nam je radila „iz prve“. Često nam se dešava da kod ovakvih rešenja, trećeg proizvođača prilikom instalacije, bez obzira na praćenje uputstava i preuzimanje najnovijih drajvera i softvera, „to jednostavno ne radi bez mnogo sati istraživanja i usaglašavanja softverskih verzija“. Ovde je sve u svakom trenutku radilo na „prvu loptu“. To ukazuje da je Hailo ozbiljan tim koji veruje u budućnost svog proizvoda. Što bi onda mi sumnjali u ovaj inovativni koncept AI akceleratora?
- ICOP 86Duino One recenzija - 30/12/2024
- Hailo-8 M.2 AI Acceleration Module recenzija - 28/12/2024
- Mitsubishi Electric & Omniprojekt: Automatski paletizer u Severnoj Makedoniji - 27/12/2024