izpis_h1_title_alt

Generiranje vektorske kode za arhitekturo RISC-V
ID Zupančič Muc, Marko (Author), ID Slivnik, Boštjan (Mentor) More about this mentor... This link opens in a new window

.pdfPDF - Presentation file, Download (503,91 KB)
MD5: 37CB8E9D20A2748258A36D8B995D45F6

Abstract
V diplomski nalogi je predstavljena razširitev prevajalnika za programski jezik Lang24, ki omogoča avtomatično pretvorbo zank v vektorsko obliko. S tem izboljšamo izrabo vzporednega procesiranja, ki ga podpirajo sodobni procesorji. Zanimajo nas predvsem vektorske razširitve, kot jo najdemo v od- prti arhitekturi RISC-V, ki vpelje vektorske registre in ukaze. Ti omogočajo čisto vzporedno izvajanje enega ukaza nad več podatki. Razširitev je tako sposobna opravljati cevovodno izvajanje na ukazni in podatkovni ravni. Razvili smo prevajalnik, ki omogoča programerjem, da s preprostim ozna- čevanjem zank aktivirajo vektorsko optimizacijo, ne da bi se morali ukvarjati z nizkonivojskim programiranjem ali z uporabo knjižnic, ki lahko otežijo razvoj programske rešitve. Glavni problem je v podatkovnih odvisnostih med operacijami znotraj zanke. Podatkovne odvisnosti pomenijo, da ena iteracija zanke lahko zahteva rezultate prejšnje iteracije, kar preprečuje, da bi bile iteracije izvedene vzporedno. Analiza znak se opravi z uporabo odvisnostnih testov. Po analizi odvisno- sti prevajalnik zgradi odvisnostni graf, ki ga uporabi za generiranje vektorske kode, optimizirane za procesorje arhitekture RISC-V z vektorsko razširitvijo. Končni rezultat je zbirna koda, ki maksimizira učinkovitost izvajanja in upo- raba procesorskih virov.

Language:Slovenian
Keywords:prevajalnik, vektorski registri, vektorski ukazi, vektorska razširitev, paralelizem, SIMD, RISC-V, RVV
Work type:Bachelor thesis/paper
Typology:2.11 - Undergraduate Thesis
Organization:FRI - Faculty of Computer and Information Science
Year:2024
PID:20.500.12556/RUL-163934 This link opens in a new window
COBISS.SI-ID:214844163 This link opens in a new window
Publication date in RUL:14.10.2024
Views:90
Downloads:9
Metadata:XML DC-XML DC-RDF
:
Copy citation
Share:Bookmark and Share

Secondary language

Language:English
Title:Generation of vector code for the RISC-V architecture
Abstract:
This work presents an extension to the Lang24 compiler, enabling the au- tomatic transformation of loops into vectorized form. This improves the utilization of parallel processing supported by modern processors. Our focus is on vector extensions, such as those found in the open RISC-V architec- ture, which introduces vector registers and instructions. These allow for clean parallel execution of a single instruction across multiple data points. The extension is thus capable of pipelined execution at both the instruction and data levels. We developed a compiler that allows programmers to activate vector opti- mization by simply annotating loops, without needing to deal with low-level programming or using libraries that can complicate software development. The main challenge lies in data dependencies between operations within the loop. Data dependencies mean that one iteration of the loop might require results from the previous iteration, which prevents iterations from being ex- ecuted in parallel. The analysis of loops is performed using dependence tests. After this analysis, the compiler builds a dependency graph, which it uses to generate vector code optimized for processors with RISC-V architecture and vector extensions. The final result is assembly code that maximizes execution effi- ciency and the use of processor resources.

Keywords:compiler, vector registers, vector instructions, vector extension, SIMD, RISC-V, RVV

Similar documents

Similar works from RUL:
Similar works from other Slovenian collections:

Back