Rozšíření instrukčního repertoáru procesoru RISC-V o neuronvé instrukce
RISC-V instruction set extension by neural instructions
Type of document
diplomová prácemaster thesis
Author
Tomáš Věžník
Supervisor
Skrbek Miroslav
Opponent
Kubátová Hana
Field of study
Návrh a programování vestavných systémůStudy program
InformatikaInstitutions assigning rank
katedra číslicového návrhuRights
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
Show full item recordAbstract
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.