bakalářská práce

Vylepšení RISC-V procesoru pro automobilový průmysl

Text práce 1.15 MB

Autor práce: Bc. Jiří Gallo

Ak. rok: 2023/2024

Vedoucí: Ing. Václav Šimek

Oponent: prof. Ing. Jiří Jaroš, Ph.D.

Abstrakt:

Cílem této práce je úprava existujícího RISC-V procesoru pro použití v automobilovém průmyslu - konkrétně ovládání motorů. Tyto úpravy jsou založeny na ukázkovém kódu pro řízení motoru využívajícím aritmetiku s pevnou řádovou čárkou. Tento kód byl profilován a analyzován, na základě čehož byly vytvořeny nové instrukce. Vliv těchto instrukcí byl zanalyzován jak z pohledu zrychlení běhu, tak z pohledu dopadu na parametry procesoru.

Klíčová slova:

RISC-V, CPU, instrukční sada, vylepšení, frakční aritmetika

Termín obhajoby

13.06.2024

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaDznamka

Klasifikace

D

Průběh obhajoby

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm D.

Otázky k obhajobě

  1. Jaká je latence nových instrukcí, především odmocniny? Nebylo by možné operaci odmocniny rozdělit do více taktů, jako např. dělení?
  2. Co vlastně dělá vámi profilovaný kód? S jakými datovými strukturami pracuje? Obsahuje nějaké delší smyčky, či hluboké větvení?
  3. Proč přiložené CD neobsahuje zdrojové texty s modifikací kompilátoru?
  4. Podle čeho jste implementoval instrukce (napr. odmocninu)?
  5. Kolik aplikacii jste skusil otestovat s novými instrukcemi?

Jazyk práce

angličtina

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

prof. Ing. Lukáš Sekanina, Ph.D. (předseda)
Ing. Marcela Zachariášová, Ph.D. (člen)
Ing. Zdeněk Materna, Ph.D. (člen)
Ing. Miloš Musil, Ph.D. (člen)
doc. Mgr. Lukáš Holík, Ph.D. (člen)

Posudek vedoucího
Ing. Václav Šimek

S ohledem na výše uvedené skutečnosti navrhuji souhrnné hodnocení stupněm B - velmi dobře, 80 bodů.

Kritérium hodnocení Slovní hodnocení
Informace k zadání

Zadání této bakalářské práce se díky svému zaměření pohybuje na rozmezí návrhu číslicového hardware a programování vestavěných systémů. Cílem je navrhout a zrealizovat na úrovni RTL reprezentace rozšíření architektury RISC-V o instrukce podporující tzv. frakční aritmetiku. Jedná se o přístup, který lze nejen v automobilobém průmyslu použít k velmi efektivní realiazci řídicích algoritmů pro elektromotory.

V případě této bakalářské práce bylo zadání připraveno ve spolupráci se společností Codasip. Kromě toho je zde i přímá návaznost na evropský projekt ISOLDE, který je aktuálně řešen na FIT VUT v Brně. Domnívám se, že zdůvodů nutnosti skloubit při řešení projektu znalosti z různých domén je možno charakter zadání vnímat coby obtížnější.

Bráno z pohledu vedoucího práce, tak bylo zadání jako takové bez problémů splněno za dosažení všech z něj plynoucích cílů. Drobnou připomínku bych měl k bodům 6) a 7) zadání, kdy mohlo být lépe provedeno zdokumentování provádaných testů a vyhodnocení dosažehých výsledků.

Práce s literaturou

Přizískávání a dohledávání potřebných informačních pramenů si student počínal velmi samostatně. Konečný výběr v technické zprávě použitých referencí a způsob jejich použití při vypracování tohoto projektu byl adekvátně konzultován.

Aktivita během řešení, konzultace, komunikace

V průběhu celého období řešení projektu jsem byl ze strany studenta pravidelně informován o postupu prácí a aktuálně řešených problémech. Konzultace byly iniciovány v případě potřeby ze strany studenta a to zejména online formou, pričemž těchto setkání se účastnil nálěžitě pripřaven.

Aktivita při dokončování

Je možno prohlásit, že realizační výstup jako takový byl dokončen ve stanoveném termínu, avšak jen s mírnou časovou rezervou. Bohužel na podobě závěrečné části technické zprávy věnované testování a vyhodnocení dosažených výsledků se do určité míry projevilo dokončování na poslední chvíli. I tak ale bylo možné do její výsledné podoby promítnou většinu připomínek a námětu na vylepšení.

Publikační činnost, ocenění

V souvislosti s řešením tohoto projektu mi není známa další publikační činnost či případný zisk relevantních ocenění.

Výsledný počet bodů navržený vedoucím: 80

Známka navržená vedoucím: B

Jedná se o solidně zpracovanou bakalářskou práci. Student prokázal znalosti v oblasti procesorových architektur a schopnost navrhnout nové instrukce, upravit kompilátor, nasadit a otestovat vytvořené řešení. Práce však má i slabé stránky, a to jak v textové části (chybějící popis akcelerovaného algoritmu, implementace změn v kompilátoru), tak v implementační části (chybějící zdrojové kódy pro některé úpravy a analýza zpoždění nových instrukcí).

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: průměrně obtížné zadání

Cílem této práce bylo vytvořit specifickou variantu procesoru RISC-V určenou k akceleraci algoritmů v automobilovém průmyslu. Hlavním úkolem bylo navrhnout několik specifických aritmetických instrukcí v pevné řadové čárce, upravit kompilátor a otestovat dobu běhu v simulátoru i na FPGA. Rozsah potřebných prací považuji za standardní.

Prezentační úroveň technické zprávy

Prezentační úroveň práce je poměrně dobrá a čtenář získá solidní představu o tom, co student udělal. Nicméně práce postrádá řadu podstatných detailů, které ji činí téměř nereprodukovatelnou:

  1. Čtenář se nedozví téměř nic o algoritmu, který měl student akcelerovat. Jediné dostupné informace se týkají četnosti použití instrukcí. To sice stačí pro nalezení vhodných instrukcí k akceleraci, ale nikoliv pro složitější optimalizace v kompilátoru.
  2. Chybí detailní popis vlastní realizace úprav kompilátoru.
  3. Z pohledu realizace nových instrukcí chybí analýza zpoždění. Vzhledem k tomu, že jsou všechny instrukce považovány za jedno-taktové, zejména operace odmocniny bude mít zásadní vliv na dosažitelné takty.
75
Formální úprava technické zprávy

Formální stránka práce je zdařilá, jazyková úroveň je velmi vysoká.

85
Realizační výstup

Pokud budu vycházet pouze z textu, je implementace plně funkční a poměrně zdařilá. Dosažené výsledky jsou zajímavé, i když bez analýzy zpoždění je vlastní akcelerace sporná.

Problémem je, že přiložené CD neobsahuje téměř nic, co by se dalo hodnotit. Jsou zde pouze definice nových instrukcí a HDL popis rozhraní AHB a UART. Obě tyto části jsou poměrně dobře provedeny.

Bohužel chybí zdrojový kód, který byl optimalizován, implementace změn kompilátoru, procesoru atd. CD místo toho obsahuje zkompilované verze kompilátoru a BIT stream pro FPGA. Přestože jsou tyto části pravděpodobně funkční, nemohu hodnotit jejich implementaci.

65
Využitelnost výsledků

Dosažené výsledky na FPGA ukazují výrazné zrychlení oproti původní verzi při přijatelném nárůstu plochy, což je určitě pozitivní a má praktické uplatnění. Při syntéze do ASIC však vidím problém v chybějící analýze doby výpočtu (latenci) jednotlivých instrukcí. Ty mohou mít výrazný vliv na maximální dosažitelnou frekvenci procesoru a tím i na jeho výkon. Zisk z nových instrukcí tak může být znehodnocen nižším taktem.

Rozsah splnění požadavků zadání

Stupeň hodnocení: zadání nesplněno

Zadání bylo splněno.

Rozsah technické zprávy

Stupeň hodnocení: je v obvyklém rozmezí

Práce je v obvyklém rozmezí.

Práce s literaturou

Práce se cituje pouze manuály a použité technologie. Práce je sice výrazně implementačně zaměřena, mohla ale obsahovat reference na podobné práce.

70
Otázky k obhajobě:
  1. Co vlastně dělá vámi profilovaný kód? S jakými datovými strukturami pracuje? Obsahuje nějaké delší smyčky, či hluboké větvení?
  2. Proč přiložené CD neobsahuje zdrojové texty s modifikací kompilátoru?
  3. Jaká je latence nových instrukcí, především odmocniny? Nebylo by možné operaci odmocniny rozdělit do více taktů, jako např. dělení?
Výsledný počet bodů navržený oponentem: 78

Známka navržená oponentem: C

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová