Érkezik az OpenCL SPIR 2.0

A Khronos Group az idei SIGGRAPH alkalmával nem csak az OpenGL-re koncentrált, így a korábban már véglegesített OpenCL 2.0 mellé most bemutatták a SPIR 2.0-t is.

Hirdetés

Mint ismeretes a 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 tehát leginkább egy 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 funkciója nem változik meg, de a 2.0-s verzió képességei kiegészülnek úgy, hogy képes legyen támogatni az OpenCL 2.0-t. Ez gyakorlatilag csak azt jelenti, hogy amelyik funkció létezik az OpenCL 2.0-ban, az reprezentálható a legújabb SPIR-en keresztül is.

Ennél érdekesebb, hogy a SPIR 2.0-val igen komoly tervei vannak a Khronos Groupnak, hiszen egy egységes futtatási környezetet szeretnének létrehozni, amin belül a gyártók teljes mértékben a SPIR-ből állítják elő az adott hardver számára szükséges kódot, míg a programozónak egyszerűen a SPIR-t kell megcélozni. Ez tökéletes kompatibilitást garantálna, illetve a programozó számára is szabad nyelvválasztást jelentene, mivel a Khronos Group megközelítőleg 200 nyelv és keretrendszer támogatását tervezi, ideértve a C++ AMP-t, a Pythont és az OpenACC-t.

Azóta történt

Előzmények

Hirdetés