Evaluation of the State of High-level Synthesis : A hardware engineer's perspective
Lahti, Sakari (2025)
Lahti, Sakari
Tampere University
2025
Tieto- ja sähkötekniikan tohtoriohjelma - Doctoral Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Väitöspäivä
2025-05-09
Julkaisun pysyvä osoite on
https://urn.fi/URN:ISBN:978-952-03-3872-5
https://urn.fi/URN:ISBN:978-952-03-3872-5
Tiivistelmä
Tuottavuuden kasvattaminen on jatkuva tavoite suunniteltaessa sovelluksia ohjelmoitaville porttimatriiseille (engl. field-programmable gate array, FPGA) ja sovelluskohtaisille integroiduille piireille (engl. application-specific integrated circuit, ASIC). Näiden laitteiden kompleksisuus kasvaa Mooren lakiin verrattavalla nopeudella, mikä vaatii vastaavaa nousua tuottavuudessa, jotta suunnittelukustannukset pysyisivät kohtuullisina. Eräs tapa parantaa tuottavuutta on nostaa suunnittelun abstraktiotasoa. Tällöin sovellukset suunnitellaan abstraktimman syötteen perusteella ja elektroniset automaatiotyökalut huolehtivat alemman tason yksityiskohtien laatimisesta syötteen ja teknologiavaatimusten perusteella.
Korkean tason synteesi (engl. high-level synthesis, HLS) on lupaavin ehdokas abstraktiotason nostamiseksi. HLS:ssä sovellussyöte annetaan korkean tason koodina, joka yleensä perustuu perinteiseen ohjelmointikieleen. HLS-työkalu tuottaa rekisterisiirtotason (engl. register-transfer level, RTL) ulostulon tämän syötteen, kohdeteknologian, ja arkkitehtuuriin liittyvien yksityiskohtien perusteella, ja tätä ulostuloa voidaan käyttää myöhemmissä suunnitteluvuon työkaluissa.
Kaupallisia HLS-työkaluja on ollut saatavilla vuosikymmenien ajan, mutta ne ovat alkaneet saavuttaa suurempaa suosiota vasta viimeisen 10-20 vuoden aikana. Vaikka on yleisesti hyväksyttyä, että HLS merkittävästi vähentää suunnittelutyötä, niin tulosten laatua suorituskyvyn ja pinta-alan suhteen pidetään huonompana kuin, mitä voidaan saavuttaa manuaalisella RTL-koodauksella.
Tämä väitöskirja tutkii HLS:n tilaa FPGA-pohjaisessa suunnittelussa. Se pyrkii selvittämään, kuinka suurta tuottavuushyötyä HLS:llä voidaan saavuttaa ja millaista laatua voidaan odottaa teollisuudessa yhä dominoivaan manuaaliseen RTL-suunnitteluun verrattuna. Työ myös selvittää, millaisia HLS-työkaluja on saatavilla ja millaisia ominaisuuksia niillä on. C++-kielelle annetaan suosituimpana HLS-kielenä erityishuomiota tutkimalla, kuinka tuottavuutta voidaan parantaa käyttämällä uusimpia C++-standardin ominaisuuksia. HLS:n tuottavuutta ja tulosten laatua selvitetään laajalla kirjallisuuskatsauksella perustuen viimeisen 10 vuoden aikana julkaistuihin artikkeleihin. Lisää näkemyksiä saadaan kolmesta tapaustutkimuksesta, joissa HLS:llä toteutetaan sovelluksia, jotka vaativat erilaisia suunnittelunäkökohtia.
Työn johtopäätös on, että HLS:ää voidaan käyttää nopeuttamaan suunnitteluprosessia. Manuaaliseen RTL-koodaukseen verrattuna voidaan odottaa noin 50 %:n nopeutusta kehitystyössä. Toisaalta havaitaan, että korkealaatuisten tulosten saavuttaminen vaatii insinööreiltä HLS-osaamista ja merkittäviä muutoksia prosessorille suunnattuun sovellusmalliin. Jos vaaditaan parasta suorituskykyä ja pienintä pinta-alaa, on manuaalinen RTL-suunnittelu luultavasti yhä turvallisin vaihtoehto, mikäli nopea markkinoillepääsy ei ole kriittinen vaatimus. Muussa tapauksessa HLS:ää kannattaa harkita työkaluna. Väitöskirja esittää saavutettuihin havaintoihin perustuen myös suosituksia HLS-työkalujen kehittäjille, jotta tuottavuutta ja tulosten laatua voitaisiin parantaa.
Korkean tason synteesi (engl. high-level synthesis, HLS) on lupaavin ehdokas abstraktiotason nostamiseksi. HLS:ssä sovellussyöte annetaan korkean tason koodina, joka yleensä perustuu perinteiseen ohjelmointikieleen. HLS-työkalu tuottaa rekisterisiirtotason (engl. register-transfer level, RTL) ulostulon tämän syötteen, kohdeteknologian, ja arkkitehtuuriin liittyvien yksityiskohtien perusteella, ja tätä ulostuloa voidaan käyttää myöhemmissä suunnitteluvuon työkaluissa.
Kaupallisia HLS-työkaluja on ollut saatavilla vuosikymmenien ajan, mutta ne ovat alkaneet saavuttaa suurempaa suosiota vasta viimeisen 10-20 vuoden aikana. Vaikka on yleisesti hyväksyttyä, että HLS merkittävästi vähentää suunnittelutyötä, niin tulosten laatua suorituskyvyn ja pinta-alan suhteen pidetään huonompana kuin, mitä voidaan saavuttaa manuaalisella RTL-koodauksella.
Tämä väitöskirja tutkii HLS:n tilaa FPGA-pohjaisessa suunnittelussa. Se pyrkii selvittämään, kuinka suurta tuottavuushyötyä HLS:llä voidaan saavuttaa ja millaista laatua voidaan odottaa teollisuudessa yhä dominoivaan manuaaliseen RTL-suunnitteluun verrattuna. Työ myös selvittää, millaisia HLS-työkaluja on saatavilla ja millaisia ominaisuuksia niillä on. C++-kielelle annetaan suosituimpana HLS-kielenä erityishuomiota tutkimalla, kuinka tuottavuutta voidaan parantaa käyttämällä uusimpia C++-standardin ominaisuuksia. HLS:n tuottavuutta ja tulosten laatua selvitetään laajalla kirjallisuuskatsauksella perustuen viimeisen 10 vuoden aikana julkaistuihin artikkeleihin. Lisää näkemyksiä saadaan kolmesta tapaustutkimuksesta, joissa HLS:llä toteutetaan sovelluksia, jotka vaativat erilaisia suunnittelunäkökohtia.
Työn johtopäätös on, että HLS:ää voidaan käyttää nopeuttamaan suunnitteluprosessia. Manuaaliseen RTL-koodaukseen verrattuna voidaan odottaa noin 50 %:n nopeutusta kehitystyössä. Toisaalta havaitaan, että korkealaatuisten tulosten saavuttaminen vaatii insinööreiltä HLS-osaamista ja merkittäviä muutoksia prosessorille suunnattuun sovellusmalliin. Jos vaaditaan parasta suorituskykyä ja pienintä pinta-alaa, on manuaalinen RTL-suunnittelu luultavasti yhä turvallisin vaihtoehto, mikäli nopea markkinoillepääsy ei ole kriittinen vaatimus. Muussa tapauksessa HLS:ää kannattaa harkita työkaluna. Väitöskirja esittää saavutettuihin havaintoihin perustuen myös suosituksia HLS-työkalujen kehittäjille, jotta tuottavuutta ja tulosten laatua voitaisiin parantaa.
Kokoelmat
- Väitöskirjat [5035]