[Vuong Nguyen] kent duidelijk zijn weg in hardware voor kunstmatige intelligentie-accelerator, waardoor ztachip: een open source-implementatie van een acceleratorplatform voor AI en traditionele beeldverwerkingsworkloads. Ztachip (uitgesproken als "zeta-chip") bevat een reeks aangepaste processors en is niet gebonden aan één bepaalde architectuur. Ztachip implementeert een nieuw paradigma voor tensorprogrammering dat [Vuong] heeft gecreëerd, dat: wel versnel TensorFlow-taken, maar is daar niet toe beperkt. In feite kan het TensorFlow parallel met niet-AI-taken verwerken, zoals de onderstaande video laat zien.
Een RISC-V-kern, gebaseerd op het VexRiscV-ontwerp, wordt gebruikt als de hostprocessor die de distributie van de applicatie afhandelt. VexRiscV zelf is best interessant. Geschreven in SpinalHDL (een Scala-variant), is het super configureerbaar en produceert het een Verilog-kern, klaar om in het ontwerp te vallen.
Vanuit een hardware-ontwerpperspectief haakt de RISC-V-kern aan op een AXI-dwarsbalk, met alle AXI-lite-bussen naast elkaar zoals gebruikelijk is voor de AMBA AXI-ecosysteem. De Ztachip-kern en een DDR3-controller zijn ook aangesloten, samen met een camera-interface en VGA-video.
Afgezien van het bieden van een FPGA-specifieke DDR3-controller en AXI crossbar IP, is de rest van het ontwerp generiek RTL. Dit is goed nieuws. De onderstaande demo wordt geïmplementeerd op een op Artix-7 gebaseerde Digilent (Arty-A7) met een VGA PMOD-module, maar verder weinig nodig. Pre-build Xilinx IP wordt geleverd, maar het richten op een andere FPGA zou geen enorme taak moeten zijn voor de ervaren FPGA-ninja.
De magie gebeurt in de Ztachip-kern, die meestal een reeks Pcores is. Elke Pcore heeft zowel vector- als scalaire verwerkingscapaciteit, waardoor het superflexibel is. De Tensor Engine (intern is dit de 'dataplane-processor') heeft hier de leiding en verzendt instructies van de RISC-V-kern naar de Pcore-array samen met beeldgegevens, evenals het streamen van videogegevens. Die camera is slechts een 0.3 MP Arducam en de video heeft een VGA-resolutie, maar geef hem een grotere FPGA en die limieten kunnen worden verhoogd.
Deze domeinspecifieke benadering maakt gebruik van een sterk gewijzigde C-achtige taal (met een aangepaste compiler) om de applicatie te beschrijven die over de accelerator-array moet worden gedistribueerd. We konden hier geen documentatie over vinden, maar er zijn een paar voorbeeldalgoritmen.
De demovideo toont een realtime mix van vier parallel lopende algoritmen; één objectclassificatie (Tensorflow van Google mobielnet-ssd, een vooraf getraind AI-model) canny edge detectie, een Harris hoekdetectie, en optische stroom die het een roofdierachtig bewegingsbeeld geeft.
[Vuong] schat dat het qua efficiëntie 5.5x efficiënter is dan een Jetson Nano en 37x meer dan de TPU-edge van Google. Dit zijn op zijn zachtst gezegd gewaagde beweringen, maar wie zijn wij om ruzie te maken met een duidelijk ongelooflijk getalenteerde ingenieur?
We behandelen veel AI-gerelateerde onderwerpen, zoals deze AI-geassisteerd tik-typgadget, voor starters. En om de originele AI-hardware niet te vergeten, het goede ouderwetse neuron, dat hebben we ook geregeld!