Hirdetés
A Khronos Group által fejlesztett SPIR (Standard Portable Intermediate Representation) egy olyan közbülső fordítási egység, ami reprezentálja az OpenCL programot az OpenCL C kernel forrás és a lefordított bináris között. Ez azért fontos, mert lefordított állapotban vagy a magas szintű forrással szállítani egy alkalmazást nem ideális.
A SPIR tulajdonképpen fejlesztői igény volt, és olyan szabványos formátumként is jellemezhető, ami lényegében a lefordított bináris és a forráskód közötti szinten áll. Ennek hála a szállított programokból a gyártók meghajtói az adott virtuális utasításkészletnek megfelelő kódot fordítanak, majd onnan történik a valós utasításkészletnek megfelelő kód fordítása, ahonnan már egyenes út vezet a hardverhez.
A SPIR fontos eleme az LLVM fordítóprogram-infrastruktúra, hiszen erre épít az egész szabvány. Természetesen a harmadik féltől származó fordítók támogatása is lényeges, ugyanis ez biztosítja, hogy az OpenCL ökoszisztémája gyorsabban fejlődjön, amivel egyszerűbb lesz az új programnyelvek hozzáadása a rendszerhez.
A SPIR két verzióban használható. Az 1.2-es opció az OpenCL 1.2-vel, míg a 2.0-s az OpenCL 2.0-val kompatibilis.