Rozšíření instrukčního repertoáru procesoru RISC-V o neuronvé instrukce
RISC-V instruction set extension by neural instructions
Typ dokumentu
diplomová prácemaster thesis
Autor
Tomáš Věžník
Vedoucí práce
Skrbek Miroslav
Oponent práce
Kubátová Hana
Studijní obor
Návrh a programování vestavných systémůStudijní program
InformatikaInstituce přidělující hodnost
katedra číslicového návrhuPráva
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Zobrazit celý záznamAbstrakt
Cílem této práce je otestovat přístup využívající lineárně aproximované funkce realizované pomocí posunů a sčítáni pro urychlení výpočtu neuronových sítí. Proto byl vytvořen Shift-block, univerzální blok, který má sloužit jako náhrada za posuvník, implementující lineárně aproximované instrukce. Tento blok byl integrován do existující otevřeného RISC-V jádra. Byly vytvořeny tři varianty: první, která nemá hardware násobičku ani Shift-block, druhá, která obsahuje Shift-block, a třetím která obsahuje hardware násobičku. Pro testování implementací byl rozšířen RISC-V kompilátor o nové instrukce. Bylo vytvořeno několik testů, aby se zajistilo, že daný návrh pracuje korektně. Nakonec byly vytvořeny programy pro test výkonu návrhů, které byly zaměřeny hlavně na testování výkonu násobení a počítání neuronových sítí. Výsledku ukazují, že varianta vybavená Shift-blockem je stejně výkonná jako varianta s hardware násobičkou, a navíc spotřebovává méně zdrojů. This thesis aims to implement and test an approach of using linearly approximated functions implemented using shifts and additions to speed up the calculations of neural networks. A Shift-block, a universal block meant as a barrel shifter replacement, was created, implementing linearly approximated instructions. This block was integrated into an existing open-source RISC-V core. Three variants of this core were created: first without hardware multiplier and Shift-block, second with the Shift-clock, and last with hardware multiplier. To test the implementations, a RISC-V compiler was extended with new instructions. Several tests were created to ensure that the design works as intended. Lastly, benchmarks were created to test the design's performance, focusing primarily on multiplication and neural network performance. The results show that the core variant with the Shift-block performs similarly to the variant with the hardware multiplier, while utilizing fewer resources.