SPIR-V

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
SPIR / SPIR-V
software
Siglă
Dezvoltator Grupul Khronos
Data primei versiuni Ianuarie 2014
Ultima versiune 1.5 Revizuirea 3 (24 aprilie 2020)
Sistem de operare Multiplatform
Licență ( licență gratuită )
Site-ul web www.khronos.org/spir


SPIR / SPIR-V [1] ( Standard Portable Intermediate Representation ) este un limbaj open-source intermediar pentru calcul paralel și grafică, dezvoltat de Khronos Group , pentru utilizare cu limbajele OpenCL , Vulkan și OpenGL. OpenCL folosește compilația just-in-time (JIT) , care necesită două modele de distribuție software: dezvoltatorii pot distribui binare precompilate specifice dispozitivului / perifericului pe care vor rula ( GPU / FPGA ) sau pot distribui sursa de cod, care poate să fie limitat de necesitatea de a proteja proprietatea intelectuală a software-ului. SPIR permite crearea și distribuirea de binare independente de dispozitiv în stiva OpenCL.

Versiuni

SPIR a fost introdus inițial în 2011, în timp ce versiunea actuală, SPIR-V, a fost introdusă în 2015.

• SPIR 1.2 (mai 2013), bazat pe versiunea LLVM IR 3.2; face parte din extensiile pentru OpenCL 1.2.

• SPIR 2.0 (iunie 2014), bazat pe versiunea LLVM IR 3.4; face parte din extensiile pentru OpenCL 2.0.

• SPIR-V 1.0 (noiembrie 2015) nu mai este bazat pe LLVM IR; este o parte integrantă a OpenCL 2.1, precum și a Vulkan și OpenGL .

• SPIR-V 1.1 (aprilie 2016), suport Python îmbunătățit, a introdus suport OpenCL 2.2 și a remediat multe erori.

• SPIR-V 1.2 (mai 2017), a introdus suport pentru HLSL , suport îmbunătățit pentru OpenCL 2.2.

• SPIR-V 1.3 (martie 2018), suport complet pentru Vulkan 1.1 este integrat și reprezintă un pas semnificativ înainte în uniunea dintre Vulkan și OpenCl

• SPIR-V 1.4 (mai 2019), a remediat multe erori, a introdus o mai bună gestionare a memoriei și alte caracteristici.

• SPIR-V 1.5 Revizuirea 3 (aprilie 2020)

Spir-V

Versiunile anterioare lui Spir-V s-au bazat pe LLVM. Prima specificație provizorie pentru SPIR 1.0 a fost anunțată în 2012, în timp ce versiunea stabilă 1.2 a fost anunțată la SIGGRAPH 2013, cu versiunea 2.0 prezentă la aceeași conferință în anul următor. SPIR a evoluat apoi într-un standard deschis definit de KronosGroup, cu adevărat cross-API: SPIR-V este încorporat nativ în specificațiile OpenCL 2.1 și 2.2 (în timp ce SPIR era o extensie externă), în specificațiile Vulkan și, de asemenea, în specificațiile versiunii. 4.6 din OpenGL. SPIR-V depășește multe limitări ale modelului LLVM, susținând de asemenea kernelurile OpenCL C și OpenCL C ++, cu toate posibilitățile legate de aceste două limbaje standard.

Hardware și limbi acceptate

Deși născut în tandem cu OpenCL, SPIR-V a fost conceput pentru a suporta cea mai largă gamă posibilă de limbaje de programare, cum ar fi Python , Vulkan , C # , Rust , LINQ și multe altele. La nivel hardware, SPIR-V este susținut de toți furnizorii majori care acceptă OpenCL (cum ar fi AMD , Intel , Xilinx , Nvidia și altele) și este, de asemenea, capabil să funcționeze pe dispozitive mobile prin stratul Android.

Funcționalitate

SPIR-V reprezintă o mare noutate atât din partea furnizorului de hardware, cât și din partea programatorilor: primul poate evita necesitatea de a construi un compilator la nivel înalt al limbii sursă în interiorul driverelor periferice, reducând semnificativ complexitatea acestora și permițând utilizarea o gamă largă de limbaje și cadre frontale pe diferite arhitecturi hardware. Pentru dezvoltatori, utilizarea SPIR-V înseamnă că codul sursă de nucleu nu mai trebuie expus direct, că timpii de încărcare a nucleului pot fi accelerați și că pot alege să folosească un limbaj de front-end comun, îmbunătățind fiabilitatea și portabilitatea nucleului în mai multe configurații hardware.

Odată cu proiectul de unificare a limbajelor Vulkan și OpenCL, SPIR-V va deveni și mai fundamental pentru a gestiona împreună programarea efectelor grafice și a aplicațiilor GPGPU .

Notă

linkuri externe