Hirdetés

Mostantól CPU-n is tudja futtatni a Vulkan shadereit az Intel

A vállalat ezzel vezető szerepet szánhat a SPIR-V-nek az eltérő architektúráik kiszolgálásában.

Az Intel egy nagyon érdekes projekten dolgozott az elmúlt időszakban, ugyanis a vállalat publikált egy olyan konvertert, ami a legújabb Vulkan, OpenCL és OpenGL API-k által használt SPIR-V shadereket képes ISPC kóddá konvertálni. Ehhez a cég a SPIRV-Cross fejlesztőeszközt módosította, és a kimenetként kapott kód egyszerűen lefordítható SSE-t, AVX2-t vagy AVX-512-t támogató objektumfájllá, méghozzá az SPMD programfordító segítségével.

A projekt az aktuális állapotában a SPIR-V szabványos képességeinek egy részhalmazát támogatja, és az Intel sem tekint jelenleg erre reálisan alkalmazható megoldásként, a jövőben viszont sokra viheti, hiszen érdemes figyelembe venni, hogy a vállalat a CPU-k mellett már GPU-kat és FPGA-kat is fejleszt, nem beszélve az egyedi rendszerekről, gondolva itt a Nervana IP-kre. Ezek a hardver oldalán megvannak egymás mellett, de nyilvánvaló, hogy az Intel az integráció lehetőségét látja a rendszerekben, amikor egy lapkára, vagy akár egy tokozásra mindegyik részegységből kerül. Ilyenkor olyan kódok megírására adódik igen hatékonyan kihasználható lehetőség, amelyeknek egy része a CPU-n, a másik része a GPU-n, a harmadik az FPGA-n fut, és így tovább. Ebben az esetben célravezető mindegyik hardvert egy szabványos köztes rétegből célozni, hiszen az a programozó számára egy jól elemezhető, viszonylag alacsony szinten elhelyezkedő absztrakciós réteget biztosít. Ezalatt a programot már le lehet fordítani a célzott hardverre, amivel az említett részegységek jól kiegészítenék egymást, az alkalmazásnak azon részeit futtatva, amelyekhez igazán jók.

Az Intel szerint az aktuális, GitHUB-on elérhető eszköz már most használható tesztelési céllal, többek között a Vulkan compute példaprogramjainak SPIR-V shaderei könnyedén lefordíthatók és futtathatók a CPU-kon, méghozzá SSE, AVX2 vagy AVX-512 utasításkészlet mellett (attól függően, hogy a hardver mit támogat). Természetesen lehet kísérletezni az OpenGL 4.6 és az OpenCL 2.2 API-kra írt példaprogramokkal is, de a kezdetleges alapok miatt ezek működésére azért még nincs garancia.

  • Kapcsolódó cégek:
  • Intel

Előzmények

Hirdetés