„Google“ pristatė atvirojo kodo „Coral NPU“ (neuroninio apdorojimo bloko) platformą, siūlančią atvirą aparatinės įrangos greitintuvą mašininio mokymosi modeliams ir programinės įrangos įrankius, skirtus naudoti su standartiniais dirbtinio intelekto varikliais. „Coral“ gali būti naudojama kaip pagrindas kuriant energiją taupančias sistemas lustuose (SoC), tinkamas naudoti daiktų interneto sistemose, periferiniuose skaičiavimuose ir jutiklių duomenų rinkimo plokštėse, taip pat itin mažai energijos naudojančiuose nešiojamuose įrenginiuose, tokiuose kaip ausinės, papildytosios realybės akiniai ir išmanieji laikrodžiai. Projekto darbai licencijuojami pagal „Apache 2.0“ licenciją.
„Coral NPU“ skirtas nuolat įjungtoms dirbtinio intelekto programoms nešiojamuosiuose įrenginiuose vykdyti su minimaliomis energijos sąnaudomis. Bazinis „Coral NPU“ įgyvendinimas užtikrina 512 milijardų operacijų per sekundę (GOPS) greitį, sunaudodamas vos kelis milivatus energijos. NPU sukurtas lanksčioms architektūros modifikacijoms, atsižvelgiant į SoC gamintojų poreikius. „Synaptics“ bus pirmoji gamintoja, pradėjusi gaminti lustus, pagrįstus „Coral NPU“, paskelbusi apie „Astra SL2610“ procesorių seriją daiktų interneto įrenginiams, kuri apima „Torq NPU“ posistemį, pagrįstą „Coral NPU“ architektūra.
Tipinės „Coral NPU“ taikymo sritys apima dirbtinio intelekto naudojimą vaizdų ir garso apdorojimui, naudotojo sąveikai ir konteksto suvokimui. Pavyzdžiui, įrenginiai gali paleisti didelius kalbos modelius ir programas, skirtas veido ir objektų atpažinimui, vaizdinei paieškai, kalbos atpažinimui, tiesioginiam vertimui, kalbos transkripcijai, raktinių žodžių išskyrimui, gestų ir balso valdymui, taip pat naudotojo veiklos (vaikščiojimas, bėgimas, miegas) ir aplinkos (patalpose, lauke) nustatymui.
NPU naudoja 32 bitų RISC-V RV32IMF_Zve32x instrukcijų rinkinio architektūrą, AXI4 magistralę ir keturių pakopų instrukcijų apdorojimo kanalą su eilės tvarka siunčiamu išsiuntimu, ne eilės tvarka siunčiamų instrukcijų užbaigimu, keturių srautų skaliariniu išsiuntimu ir dviejų srautų vektorių išsiuntimu. Procesorius palaiko SIMD operacijas, skirtas vienu metu apdoroti 128 bitų vektorius, ir turi 8 KB instrukcijų atminties bei 32 KB duomenų atminties.

NPU sudaro trys kartu veikiantys apdorojimo komponentai:
- Skaliarinis branduolys yra lengvas, C kalba programuojamas RISC-V sąsajos elementas, kuris valdo duomenų srautus į pagrindinius branduolius ir naudoja „nuo paleidimo iki užbaigimo“ modelį, kad užtikrintų tradicinį procesoriaus funkcionalumą ir itin mažą energijos suvartojimą.
- Vektorinis SIMD koprocesorius, palaikantis vektorinius RISC-V instrukcijų rinkinio (RVV v1.0) plėtinius ir leidžiantis vienu metu vykdyti kelias operacijas su dideliais duomenų kiekiais.
- Matricos koprocesorius, kuris efektyviai atlieka daugybos ir sudėties (MAC) operacijas ir yra skirtas paspartinti pagrindines neuroninio tinklo operacijas.

Programų kūrėjams parengtas dirbtinio intelekto modelių kompiliatorių rinkinys (IREE ir TFLM), C kompiliatorius ir simuliatorius. Palaikomas dirbtinio intelekto programose naudojamų modelių kompiliavimas, pagrįstas „TensorFlow“, „JAX“ ir „PyTorch“ karkasais. Modelis kompiliuojamas į universalų tarpinį atvaizdavimą, kuris vėliau, naudojant LLVM, konvertuojamas į žemo lygio RISC-V instrukcijų rinkinį, kurį palaiko „Coral NPU“.

Šaltinis: opennet.ru
