Semidynamics i Barcelona lanserar en neuronkärna baserad på den fria arkitekturen Risc V. Samtidigt presenterar företaget en processorarkitektur för artificiella neuronnät.
Neuronkärnan (omväxlande kallad NPU och TPU, tensorenhet) är inte Semidynamics första Risc V-baserade kärna. Företaget har sedan tidigare en VPU (Vector Processing Unit) och två 64-bitars CPU:er – allt baserat på Risc V.
Semidynamics har dessutom en patenterad cacheteknik kallad Gazzillion som används för att skyffla data till och från minnet. Gazzillion implementerar cachekoherens som ett alternativ till DMA (direkt minnesaccess) som Semidynamics anser är svårprogrammerat.
Så kan du bygga en neuronnätsaccelerator: En Atrevido 423-cpu, en Gazzillion-enhet, en vektorenhet och en tensorenhet. |
Allt detta föreslår Semidynamics kan pusslas samman till en neuronnätsaccelerator. Vektorenhetens register lagrar neuronnätets viktmatris, matrismultiplikationerna utförs i neuronkärnan och Gazzillion håller vektorregistren fyllda. Resultatet vore en prestandaökning på 128 gånger jämfört med att bara köra AI-programvaran på CPU:n, enligt Semidynamics.
Arkitekturen skulle kunna köra Linux utan några ändringar, givet att denna Linux stöder Risc V:s standardvektorinstruktioner.
Här är den IP du kan licensera från Semidynamics:
• Atrevido är en två-, tre- eller fyrvägs cpu med stöd för att kasta om exekveringsordningen (OOO).
• Semidynamics har även en enklare tvåvägs-cpu som kör instruktioner i den ordning de kommer in, Avispado. Båda den och Atrevido kan designas som multikärnor och båda kan utrustas med vektorenhet.
• Kännetecknande för cacheenheten Gazillion är att den kan hålla många minnesaccesser i luften – 128 eller 64 stycken för Atrevido respektive Avispado – när den hämta data som inte finns i cache. Andra processorer storknar och gör halt med bara ett fåtal cachehämtningar i luften, mellan 10 (Boom) och 20 (Cortex A76) i några välkända cpu:er som Semidynamics jämför sig med.
• Vektorenheten jobbar i 64 bitar och stöder ”alla” numeriska format från 8 till 64 bitar, inklusiver Bfloat16. Vektorlängden är upp till 4096 bitar. Den har komplett stöd för Risc V Vector 1.0.