Bachelor's Thesis

Design of RISC-V Architecture Instruction Set Extension for MPC Acceleration

Final Thesis 2.32 MB Appendix 5.14 MB

Author of thesis: Bc. Oleh Krasovskyi

Acad. year: 2025/2026

Supervisor: Ing. Václav Šimek

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

Abstract:

This thesis presents the acceleration of Model Predictive Control (MPC) software, developed within the EU-sponsored ISOLDE project, through the design of a custom attached facility matrix instruction set architecture (ISA) extension for RISC-V. The study examines the MPC computational problem, analyzes the solver deployed in the ISOLDE project, and introduces an ISA extension specifically tailored to improve its performance. The extension was implemented in CodAL, an architecture design language developed by Codasip s.r.o., and used to develop an instruction-accurate (IA) model. Evaluation results demonstrate an optimization level of up to 98.8\% for several linear algebra routines (98.8\% improvement was measured for a specific use case of the \textbf{sgemm} routine) and a projected performance improvement of the solver of 16–34\% on standard benchmarks. Despite these gains, the findings highlight the need to validate IA model results through the development of a cycle-accurate (CA) model. The thesis also discusses potential directions for future development of the matrix extension and related architectural optimizations.

Keywords:

RISC-V, RISC-V ISA extension, matrix instructions, MPC, MPC acceleration, BLAS, BLASFEO

Date of defence

18.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaEznamka

Grading

E

Process of defence

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 E.

Topics for thesis defence

  1. Proč jste se rozhodl implementovat vlastní instrukční sadu namísto použití některého z existujících rozšíření?
  2. Na základě jakých informací jste určil množinu instrukcí, které byly následně implementovány?
  3. Jaké důvody vedly k volbě šesti maticových registrů a k jejich uspořádání ve formátu 4×16 namísto 8×8?
  4. Jak hodnotíte výsledky své práce z hlediska praktické využitelnosti? Jaké další kroky by bylo nutné provést, aby bylo možné objektivně porovnat přínos vaší implementace pro projekt ISOLDE?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

prof. Ing. Lukáš Sekanina, Ph.D. (předseda)
doc. Ing. Ondřej Lengál, Ph.D. (místopředseda)
Ing. Marta Jaroš, Ph.D. (člen)
Ing. Libor Polčák, Ph.D. (člen)
Ing. Tomáš Milet, Ph.D. (člen)

Supervisor’s report
Ing. Václav Šimek

S ohledem na výše uvedené skutečnosti - tedy ne zcela ideální komunikaci se studentem, nepředložení technické zprávy ke kontrole před jejím odevzdáním a poněkud problematické splnění bodů 4) a 5) - není hodnocení této práce z pozice vedoucího úplně radostné, byť skýtala poměrně značný potenciál pro reálné uplatnění.


Domnívám se, že vůbec neproběhlo profilování reálného MPC kódu, na jehož základě měla být navržena sada rozšíření instrukční sady procesoru urisc-v. Zřejmě došlo k tomu, že student provedl návrh ad hoc bez návazností na reálnou situaci. Kromě toho si nejsem jistý tím, že výsledky prezentované v technické zprávě byly skutečně získány z exekuce instruction-accurate nebo následně cycle-accurate modelu. Alespoň mě osobně nic z výše uvedeného nebylo prezentováno.


Z těchto důvodů navrhuji souhrnné hodnocení stupněm E - dostatečně, 50 bodů.

Evaluation criteria Verbal classification
Information about assignment

Zadání bakalářské práce považuji za nadstandardně náročné, neboť kombinuje studium architektury RISC-V a jejích rozšíření, seznámení s jazykem CodAL a nástrojem Codasip Studio, analýzu existujícího procesorového modelu, profilaci reálného MPC kódu a následný návrh i implementaci specializovaného rozšíření instrukční sady. Práce tematicky navazuje na aktivity projektu ISOLDE a na spolupráci se společností Codasip.

Z technické zprávy je patrné, že student zpracoval rešeršní část a provedl analýzu relevantních lineárně-algebraických výpočtů knihovny BLASFEO. Nicméně návrh vlastního maticového rozšíření instrukční sady a popis jeho implementace v instruction-accurate modelu v jazyce CodAL měly proběhnout až na základě výsledků profilování reálného MPC kódu (viz body 4. a 5. zadání). V tomto směru tedy považuji splnění požadavků zadání za velmi problematické.

Work with literature

Základní informační prameny byly studentovi doporučeny ze strany vedoucího práce a odborného konzultanta. Zbývající literaturu si iniciativně zajistil vlastními silami.

Activity during solution, consultations, communication

V počáteční fázi projektu proběhla konzultace, kde byl student detailně instruován ohledně dalšího postupu. Následnou komunikaci se studentem bych označil za velmi sporadickou. Technické aspekty práce byly následně diskutovány s odborným konzultantem ze společnosti Codasip, jímž byl Ing. Jan Kaštil, Ph.D. Je možno říci, že aktivita studenta velmi kolísala a celkově jeho přístup nebyl úplně systematický.

Activity during completion

Technickou zprávu k této bakalářské práci jsem před jejím odevzdáním vůbec neviděl. Moje eventuální připomínky tedy nemohly být zapracovány. V každém případě je na technické zprávě patrné, že dokončování probíhalo doslova na poslední chvíli.

Publication activity, awards

V souvislosti s řešení této bakalářské práce mi není znám zisk souvisejících ocenění či další publikační činnost.

Points proposed by supervisor: 50

Grade proposed by supervisor: E

Předložená bakalářská práce trpí celou řadou nedostatků. Zaprvé se poměrně výrazně odchýlila od zadání, zadruhé výrazně pokulhává formální stránka technické zprávy, avšak především její prezentační úroveň nedosahuje potřebné míry detailu. Čtenář nemá jasnou představu o tom, proč autor učinil jednotlivá rozhodnutí. Je postaven před hotovou věc a formou manuálu dostává sadu instrukcí, přičemž souvislosti a detaily si musí odvodit sám. Testování navrženého řešení je velmi povrchní a v aktuální podobě nevypovídá nic o potenciálu navržených instrukcí ani je nijak nesrovnává s existujícími řešeními.

Evaluation criteria Verbal classification Points
The difficulty of the assignment

Evaluation level: moderately difficult assignment

Cílem bakalářské práce bylo navrhnout rozšíření instrukční sady procesoru RISC-V pro akceleraci problému MPC. Práce se zaměřovala na prostudování a analýzu softwaru MPC a následný návrh instrukčního rozšíření podporujícího jeho akceleraci. Přestože má práce svá úskalí, profilování existující aplikace i samotný návrh rozšíření považuji z hlediska náročnosti za standardní.

Presentation level of the technical report

Prezentační úroveň technické zprávy je velmi špatná. Jak již bylo uvedeno výše, práce působí spíše jako manuál popisující formát instrukcí a jejich implementaci. Takový popis by se sám o sobě hodil spíše do přílohy.

Práce naopak postrádá detailní popis problému MPC, včetně analýzy použitých instrukcí a jejich četnosti. Autor dále zcela opomíjí cílový procesor, na který má práce mířit. Je sice pozitivní, že je navržené rozšíření generické pro všechny procesory RISC-V, avšak bez základní znalosti typu procesoru a jeho paměťového subsystému, především velikostí pamětí cache, a bez znalosti velikosti instance řešeného problému je jakékoliv testování bezpředmětné.

Práce dále postrádá zdůvodnění provedených rozhodnutí. Přestože jsou v práci popsána dvě vektorová rozšíření, autor vůbec nevysvětluje, proč se rozhodl vytvořit nové řešení, a to i za cenu výrazných nákladů na vývoj a testování. Rovněž není jasné, jak se inspiroval existujícími řešeními.

Práce také postrádá jakékoliv zdůvodnění a racionální vysvětlení výběru instrukcí. Při čtení práce tak čtenář netuší, proč jsou právě tyto instrukce důležité. Jejich popis navíc začíná popisem generických typů, což orientaci v textu dále ztěžuje.

Vlastní testování je velmi slabé. Je provedeno pouze na úrovni počtu instrukcí, které musí procesor vykonat. Autor tuto skutečnost sice v textu komentuje, avšak bez kompletního cycle-accurate simulátoru je přínos navrženého rozšíření velmi obtížné stanovit. Pro ilustraci: jedno násobení matic 4×4 provede 32 načtení, 16 nulování, 16 uložení a 64 násobení, tedy přibližně 128 instrukcí. Ty lze nahradit jedinou instrukcí pro násobení matice, o její latenci však práce neposkytuje žádné informace.

55
Formal preparation of a technical report

Předložená práce trpí množstvím formálních prohřešků, z nichž je patrné, že vznikala na poslední chvíli. Za zmínku stojí například nevhodně nastavené okraje a formát stránky, obrázky v nízké kvalitě, které jsou téměř nečitelné, například obrázek 2.5, či chybějící odkazy na použité obrázky a tabulky v textu. V popisu algoritmů se navíc objevují chyby, například na straně 27 je v kroku j*8 pravděpodobně uvedena hodnota 8 namísto 16. Práci rovněž chybí rozšířený abstrakt v českém jazyce. 

60
Realisation output

Implementace je provedena v jednom souboru o přibližně 750 řádcích, což lze považovat za odpovídající rozsah. Je však škoda, že autor nepřiložil žádné testovací benchmarky ani naměřené výsledky, protože bez nich nelze ověřit funkčnost programu.

60
Usability of results

Bez implementace v reálném procesoru, změření latencí jednotlivých operací a vyhodnocení náročnosti na plochu čipu je využitelnost dosažených výsledků velmi omezená.

The extent to which the requirements of the assignment have been met

Evaluation level: assignment fulfilled only partially with major reservations

Z pohledu oponenta bylo zadání splněno pouze částečně, a to s následujícími výhradami:

  1. Problému MPC je věnována pouze marginální část textu a čtenář se o jeho implementaci nedozví téměř nic.
  2. Práce se věnuje akceleraci knihovny BLASFEO, která je pravděpodobně součástí řešení problému MPC, avšak tato souvislost je v práci popsána spíše vágně.
  3. V práci měl být pravděpodobně použit některý z existujících procesorů RISC-V, jak vyplývá z bodu 3 zadání. Práce však obsahuje pouze obecný popis architektury.
  4. Bod 4 zadání měl analyzovat MPC software na úrovni použitých instrukcí, analyzovány jsou však pouze typy kernelů z knihovny BLASFEO.

Extent of the technical report

Evaluation level: almost meets the minimum requirements

Práce splňuje pouze naprosté minimum požadovaného rozsahu. Působí spíše jako manuál popisující chování instrukcí než jako technická zpráva. Výpisy funkcí některých BLAS kernelů na stranách 8–9, 21, 22 a 23 by bylo možné výrazně zredukovat, přibližně až na pětinu současného rozsahu.

Work with literature

Práci s literaturou považuj za standardní.

70
Topics for thesis defence:
  1. Na základě jakých informací jste určil množinu instrukcí, které byly následně implementovány?
  2. Jak hodnotíte výsledky své práce z hlediska praktické využitelnosti? Jaké další kroky by bylo nutné provést, aby bylo možné objektivně porovnat přínos vaší implementace pro projekt ISOLDE?
  3. Proč jste se rozhodl implementovat vlastní instrukční sadu namísto použití některého z existujících rozšíření?
  4. Jaké důvody vedly k volbě šesti maticových registrů a k jejich uspořádání ve formátu 4×16 namísto 8×8?
Points proposed by reviewer: 52

Grade proposed by reviewer: E

Responsibility: Mgr. et Mgr. Hana Odstrčilová