Vcc, kompilátor založený na Clang navrhnutý na generovanie spustiteľného kódu vo Vulkan

vcc

Vcc: kompilátor Vulkan Clang

V prostredí grafického rozhrania API Jazyky tieňovania čelili obmedzeniu, pretože napriek možnosti písania kódu v spoločnej podmnožine medzi GLSL, HLSL a C++ existujú súčasné obmedzenia.

To je dôvod, prečo sa narodil Vcc (Vulkan Clang Compiler) kompilátor Vulkan Clang, čo je projekt, ktorý bol vo vývoji 3 roky, vzniká ako reakcia na tieto obmedzenia a výzvy. Tento projekt sa snaží nielen prekonať expresívne obmedzenia, ale eliminovať samotný koncept tieňovacích jazykov.

Začlenením kompletnú jazykovú rodinu C / C ++ na Vulkan, Vcc predstavuje funkcie, ktoré sa v shader Vulkan predtým nevideli, ako sú fyzické ukazovatele, generické ukazovatele, volania skutočných funkcií a úplný tok riadenia.

Táto iniciatíva sa snaží preklenúť softvérovú medzeru medzi grafickými a výpočtovými API. Tým, že je Vulkan kompatibilný s inými GPU výpočtovými API, Vcc je prezentovaný ako dôležitý krok smerom k zjednoteniu programovania v grafike a výpočtovej technike, v súlade s masovým prijatím a kvalitou implementácie, ktorou je Vulkan známy.

O VCC

Vcc je kompilátor založený na Clang navrhnutý na generovanie spustiteľného kódu vo Vulkan, jeho cieľom je postaviť sa ako kompilátor schopný preložiť kód C++ v reprezentácii, ktorá môže bežať na GPU ktoré podporujú grafické API Vulkan. Na rozdiel od programovacích modelov GPU založených na shader jazykoch GLSL a HLSL, Vcc berie myšlienku úplne eliminovať používanie samostatných shader jazykov a poskytuje možnosť priamo kompilovať kód C/C++ pre Vulkan.

Hoci možno považovať za konkurenta GLSL a HLSL, Skutočný zámer tohto projektu siaha ešte ďalej, od r Vcc sa snaží začleniť rodinu jazykov C/C++ do Vulkan, predstavenie množstva funkcií v shaderoch Vulkan.

Vcc je jednoducho rozhranie pre Shady, IR a kompilátor navrhnutý na rozšírenie SPIR-V o podporu vyššie uvedených konštruktov. Shady je prezentovaný ako relatívne konvenčné IR a zahŕňa podporu pre analýzu LLVM IR. Zvláda redukciu a emuláciu všetkých dodatočných funkcií, ktoré sa nenachádzajú v aktuálnych verziách SPIR-V 3.

Samozrejme, existuje množstvo unikátnych funkcií, ktoré nájdeme len v shaderoch. Tieto sú vystavené vo Vcc pomocou vnútorných prvkov a anotácií, čo vám umožňuje písať kód, ktorý interaguje s rôznymi funkciami kanála Vulkan.

Proces kompilácie vo Vcc zahŕňa použitie komponentov projektu LLVM a Clang ako rozhranie. Pre spustenie na GPU, Vcc vyvíja svoju vlastnú prechodnú shaderovú reprezentáciu "Shady", spolu so špecializovaným kompilátorom na konverziu kódu na túto reprezentáciu. Tento prístup umožňuje kompiláciu štandardného kódu C/C++ a je doplnený o špecifické vstavané funkcie, aby sa využili možnosti GPU.

VDC vyniká podporou natívnych funkcií C/C++ na riadenie toku programu, dokonca umožňuje použitie inštrukcie „goto“. Okrem toho poskytuje možnosť volať funkcie, vykonávať funkcie rekurzívne a používať rôzne typy ukazovateľov, ako sú fyzické ukazovatele, značkované ukazovatele a ukazovatele funkcií. Okrem toho uľahčuje vykonávanie aritmetických operácií s ukazovateľmi a určovanie rozloženia typov v pamäti.

Stredná reprezentácia Shady shadera je založená na SPIR-V 3 a je rozšírená tak, aby podporovala špeciálne konštrukcie, ktoré sú vlastné funkciám C/C++. Emulácia sa používa na implementáciu pokročilých schopností, ktoré nie sú priamo aplikovateľné na SPIR-V. Vcc obsahuje vstavané funkcie a anotácie, ktoré umožňujú programom efektívne využívať špecifické schopnosti shaderov, čím poskytuje všestranné a výkonné prostredie pre vývoj aplikácií GPU.

Na záver stojí za zmienku, že nie všetko je ružové aJe nevyhnutné vziať do úvahy niektoré obmedzenia implementácie. Napríklad Vcc nepodporuje výnimky C++ a funkcia malloc/free nie je dostupná. Okrem toho existuje obmedzenie prenosnosti funkcií a ukazovateľov medzi hostiteľským systémom a GPU. Tieto úvahy sú kľúčové pri plánovaní vývoja aplikácií, ktoré používajú Vcc na zabezpečenie efektívneho a bezproblémového nasadenia.

Ak ste záujem dozvedieť sa o tom viac, môžete sa poradiť s miesto a pre záujemcov o kód by ste mali vedieť, že je k dispozícii tu.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.