<?xml version="1.0" encoding="utf-8"?>
<Gradivo ID="163934" NadgradivoID="0" NRID="25290967" OceID="0" DomainUrl="https://repozitorij.uni-lj.si/" IzpisPolniUrl="https://repozitorij.uni-lj.si/IzpisGradiva.php?lang=slv&amp;id=163934" StOgledov="730" StPrenosov="254" StOcen="0" VsotaOcen="0" DatumIzvoza="2026-09-26 20:16:35" OcenaSkupna="0" StPodgradiv="0" StudijskiProgramEvsID="1000468" JeIndeksirano="0" JeVecAvtorjev="0" DovoliZahtevkeZaDostop="0">
  <PID Url="http://hdl.handle.net/20.500.12556/RUL-163934">20.500.12556/RUL-163934</PID>
  <Naslov>Generiranje vektorske kode za arhitekturo RISC-V</Naslov>
  <Podnaslov></Podnaslov>
  <TujJezik_Naslov>Generation of vector code for the RISC-V architecture</TujJezik_Naslov>
  <TujJezik_Podnaslov></TujJezik_Podnaslov>
  <Opis>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.</Opis>
  <TujJezik_Opis>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.</TujJezik_Opis>
  <KljucneBesede>
    <Beseda>prevajalnik</Beseda>
    <Beseda>vektorski registri</Beseda>
    <Beseda>vektorski ukazi</Beseda>
    <Beseda>vektorska razširitev</Beseda>
    <Beseda>paralelizem</Beseda>
    <Beseda>SIMD</Beseda>
    <Beseda>RISC-V</Beseda>
    <Beseda>RVV</Beseda>
  </KljucneBesede>
  <TujJezik_KljucneBesede>
    <Beseda>compiler</Beseda>
    <Beseda>vector registers</Beseda>
    <Beseda>vector instructions</Beseda>
    <Beseda>vector extension</Beseda>
    <Beseda>SIMD</Beseda>
    <Beseda>RISC-V</Beseda>
    <Beseda>RVV</Beseda>
  </TujJezik_KljucneBesede>
  <Potrjeno>true</Potrjeno>
  <JeZaklenjeno>false</JeZaklenjeno>
  <JeRecenzirano>false</JeRecenzirano>
  <Zaloznik></Zaloznik>
  <Izvor></Izvor>
  <Jezik ID="1060" ISO639-3="slv">Slovenski jezik</Jezik>
  <TujJezik ID="1033" ISO639-3="eng">Angleški jezik</TujJezik>
  <Povezave></Povezave>
  <Pokrivanje></Pokrivanje>
  <CasovnoPokritje></CasovnoPokritje>
  <AvtorskePravice></AvtorskePravice>
  <VrstaGradiva ID="mb11" DRIVER="info:eu-repo/semantics/bachelorThesis">Diplomsko delo/naloga</VrstaGradiva>
  <DatumVstavljanja>2024-10-14 12:07:55</DatumVstavljanja>
  <DatumObjave>2024-10-14 12:07:55</DatumObjave>
  <DatumSpremembe>2024-11-13 13:20:34</DatumSpremembe>
  <DatumTrajnegaHranjenja>0000-00-00 00:00:00</DatumTrajnegaHranjenja>
  <LetoIzida>2024</LetoIzida>
  <LetoIzidaDo>0</LetoIzidaDo>
  <KrajIzida></KrajIzida>
  <LetoIzvedbe>0</LetoIzvedbe>
  <KrajIzvedbe></KrajIzvedbe>
  <Opomba></Opomba>
  <StStrani></StStrani>
  <StevilcenjeNivo1></StevilcenjeNivo1>
  <StevilcenjeNivo2></StevilcenjeNivo2>
  <Kronologija></Kronologija>
  <Patent_Stevilka></Patent_Stevilka>
  <Patent_DatumVeljavnosti>0000-00-00</Patent_DatumVeljavnosti>
  <VerzijaDokumenta>NiDoloceno</VerzijaDokumenta>
  <StatusObjaveDrugje>NiDoloceno</StatusObjaveDrugje>
  <VrstaStroskaObjave>NiDoloceno</VrstaStroskaObjave>
  <DatumPoslanoVRecenzijo>0000-00-00</DatumPoslanoVRecenzijo>
  <DatumSprejetjaClanka>0000-00-00</DatumSprejetjaClanka>
  <DatumObjaveClanka>0000-00-00</DatumObjaveClanka>
  <EmbargoDo></EmbargoDo>
  <VrstaEmbarga ID="1" Naziv="Takojšnja javna objava" OpenAIREDostop="openAccess"></VrstaEmbarga>
  <Osebe>
    <Oseba ID="140010" Ime="Marko" Priimek="Zupančič Muc" AltIme="" VlogaID="70" VlogaNaziv="Avtor" ConorID="" Afiliacija="" ArrsID="0" ORCID=""></Oseba>
    <Oseba ID="23518" Ime="Boštjan" Priimek="Slivnik" AltIme="" VlogaID="991" VlogaNaziv="Mentor" ConorID="3746915" Afiliacija="" ArrsID="12766" ORCID=""></Oseba>
  </Osebe>
  <Identifikatorji>
    <Identifikator ID="16" Sifra="VisID" Naziv="VisID" URL="">37674</Identifikator>
    <Identifikator ID="3" Sifra="CobissID" Naziv="COBISS_ID" URL="https://plus.cobiss.net/cobiss/si/sl/bib/214844163">214844163</Identifikator>
  </Identifikatorji>
  <Datoteke>
    <Datoteka ID="193925" DatotekaNRID="13954492" NamenDatotekeID="2" NamenDatoteke="Predstavitvena datoteka" FormatDatotekeID="2" FormatDatoteke=".pdf" MIME="application/pdf" IkonaFormata="pdf.png" IkonaFormataPolniUrl="https://repozitorij.uni-lj.si/teme/rulDev/img/fileTypes/pdf.png" VelikostDatoteke="516005" VelikostDatotekeKratko="503,91 KB" DatumVstavljanja="2024-10-14 12:07:55" JeZbrisana="false" JeJavnoVidna="true" JeIndeksirana="true" JeVidno="true" VidnoOd="01.01.1970" Zaporedje="0">
      <Naziv>Zupancic_muc_Marko_-_Generiranje_vektorske_kode_za_arhitekturo_RISC-V.pdf</Naziv>
      <OrgNaziv>Zupancic_muc_Marko_-_Generiranje_vektorske_kode_za_arhitekturo_RISC-V.pdf</OrgNaziv>
      <URL></URL>
      <Opis></Opis>
      <OpisTujJezik></OpisTujJezik>
      <UrlObdelave></UrlObdelave>
      <FrekvencaAzuriranjaID>1</FrekvencaAzuriranjaID>
      <Verzija></Verzija>
      <MD5>37CB8E9D20A2748258A36D8B995D45F6</MD5>
      <SHA256>f380bf67fdc5c6e8d6ed7cac28b7613210734f8f28d0321b51fab2a2785d0b57</SHA256>
      <UUID>f4fc2fef-8a13-11ef-b232-0050569b8976</UUID>
      <PID></PID>
      <PrenosPolniUrl>https://repozitorij.uni-lj.si/Dokument.php?lang=slv&amp;id=193925</PrenosPolniUrl>
      <Vsebine>
        <Vsebina TipVsebine="GoloBesedilo" JezikID="1060" Oznaka="" Dolzina="76403"></Vsebina>
      </Vsebine>
    </Datoteka>
  </Datoteke>
  <Organizacije>
    <Organizacija OrganizacijaID="25" Kratica="FRI" ZavodEvsID="0000066" Logo="" LogoPolniUrl="https://repozitorij.uni-lj.si/teme/rulDev/img/logo/">Fakulteta za računalništvo in informatiko</Organizacija>
  </Organizacije>
  <OrganizacijeVira>
  </OrganizacijeVira>
  <MetodeZbiranjaPodatkov>
  </MetodeZbiranjaPodatkov>
  <TipologijaDela ID="2.11" Koda="2.11" Naziv="Diplomsko delo" SchemaOrg="Thesis"></TipologijaDela>
  <Ostalo>
    <StIrodsDatotek>0</StIrodsDatotek>
    <StDatotekPodTrajnimEmbargom>0</StDatotekPodTrajnimEmbargom>
    <StDatotekZOmejenimDostopom>0</StDatotekZOmejenimDostopom>
  </Ostalo>
</Gradivo>
