Google heeft een open platform geïntroduceerd, de Coral NPU (Neural Processing Unit), die een open hardwareversneller biedt voor machine learning-modellen en softwaretools voor gebruik met gangbare AI-engines. Coral kan worden gebruikt als basis voor het creëren van energiezuinige systemen op een chip (SoC), geschikt voor gebruik in IoT-systemen, edge computing en informatieverzamelingsplaten voor sensoren, evenals in consumentenelektronica met een zeer laag energieverbruik, zoals hoofdtelefoons, augmented reality-bril en smartwatches. De ontwikkelingen van het project worden verspreid onder de Apache 2.0-licentie.
Coral NPU is gericht op het uitvoeren van voortdurend werkende AI-applicaties aan de kant van draagbare apparaten met een minimaal energieverbruik. De basisimplementatie van de Coral NPU biedt een prestatie van 512 miljard bewerkingen per seconde (GOPS) met een energieverbruik van slechts een paar milliwatt. De NPU is ontworpen voor flexibele aanpassing van de architectuur op basis van de behoeften van SoC-fabrikanten. De eerste fabrikant die chips op basis van Coral NPU zal vervaardigen, is Synaptics, die een reeks processors voor IoT-apparaten, de Astra SL2610, heeft aangekondigd, inclusief een Torq NPU-subsysteem dat is gerealiseerd op basis van de Coral NPU-architectuur.
Typische toepassingen van de Coral NPU omvatten het gebruik van AI voor beeld- en geluidsverwerking, gebruikersinteractie en contextbewaking. Bijvoorbeeld, op apparaten kunnen grote taalmodellen en applicaties voor gezichts- en objectherkenning, visuele zoekopdrachten, spraakherkenning, live vertaling, spraaktranscriptie, sleutelwoordherkenning in spraak, gebaren- en spraakopdrachtbeheer, en activiteitsdetectie van de gebruiker (wandelen, rennen, slapen) en omgevingssoorten (binnen, buiten) worden uitgevoerd.
De NPU maakt gebruik van een 32-bits RISC-V RV32IMF_Zve32x architectuur, AXI4-bus, een vier-traps instructieverwerkingspijplijn met geordende dispatch, niet-geordende uitvoering van instructies, vier-thread scalar en twee-thread vector dispatch. De processor ondersteunt SIMD-bewerkingen voor gelijktijdige verwerking van 128-bits vectoren en is uitgerust met 8 KB ITCM-geheugen voor instructies en 32 KB DTCM-geheugen voor gegevens.

NPU omvat drie samenwerkende processorcomponenten:
- Een kern voor scalare berekeningen - een lichtgewicht programmeerbare RISC-V front-end in C, die de gegevensstromen naar de hoofdprocessoren beheert en het 'run-to-completion'-model gebruikt om functionaliteit van traditionele CPU's te waarborgen met een extreem laag energieverbruik.
- Een vector SIMD-co-processor die de vectoruitbreidingen van de RISC-V instructieset (RVV v1.0) ondersteunt en waarmee meerdere bewerkingen tegelijkertijd op grote hoeveelheden data kunnen worden uitgevoerd.
- Een matrixco-processor die efficiënt gecombineerde vermenigvuldiging- en optelling (MAC) uitvoert en is ontworpen om de basisbewerkingen van neurale netwerken te versnellen.

Voor applicatieontwikkelaars is er een set van AI-modelcompilers (IREE en TFLM), een compiler voor programma's in C en een simulator. De compilatie van modellen die worden gebruikt in AI-applicaties op basis van de TensorFlow, JAX en PyTorch frameworks wordt ondersteund. Het model wordt gecompileerd naar een universele tussentijdse voorstelling, die vervolgens met behulp van LLVM wordt omgezet in een laag-niveau instructieset van RISC-V, die wordt ondersteund in de Coral NPU.

Bron: opennet.ru
