Hirdetés

A Khronos Group véglegesítette a SYCL 1.2-t

A Khronos Group hivatalosan is bejelentette, hogy véglegesítették a SYCL 1.2 specifikációit, amely radikálisan leegyszerűsíthető a fejlesztők számára a gyorsítók, illetve a széles vektoregységekkel rendelkező hardverek kihasználását. A SYCL koncepciójáról a konzorcium nagyjából egy évvel korábban beszélt először. A fejlesztést nagyrészt a Codeplay delegálta az iparág egyik legnagyobb szakemberének számító Andrew Richards vezetésével.

A SYCL esetében már az alapötlet is nagyszerű, hiszen egyetlen C++ forrásból történő programfejlesztést kíván megvalósítani, ahol a C++ template függvényeket tartalmazhatja a host (gazda) és a device (eszköz) kód, illetve komplex algoritmusok kreálhatók, amelyeket gyorsítani lehet OpenCL-lel.

A működés szempontjából a SYCL bevetésével ugyanaz a forráskód lefordítható az adott fejlesztő kedvenc fordítójával (gcc, llvm, Visual C++, stb.), amiből egy C++ objektumfájl keletkezik. Eközben ugyanannak a kódnak a fordítása a SYCL eszközre (például grafikus vezérlő) is megtörténik, aminek az eredménye az eszköz saját objektumfájlja lesz, ami többek között lehet a SPIR is, jelen esetben az 1.2-es SPIR specifikációkhoz igazodóan. Persze több SYCL eszközre is lehet élni a fordítással, de ez alapvetően csak egy opció. Az objektumfájlok megléte után a SYCL futtatási környezet veszi át az irányítást, és megoldja a program futtatását OpenCL 1.2-n.

Andrew Richards, a Codeplay elnök-vezérigazgatója szerint a SYCL által elérhető C++ programozási technikák jelentősen megkönnyítik a gyorsítók, illetve a széles vektoregységekkel rendelkező hardverekhez fejlesztett alkalmazások teljesítményének portolhatóságát, egyszerűsítve ezzel a fejlesztők dolgát. A Codeplay korábban erre példát is mutatott, amelyben ugyanannak a programnak az OpenCL C kódja volt összehasonlítható a SYCL kóddal. Ez persze a legrosszabb és a legjobb eshetőség összemérése, hiszen az OpenCL C kódot már rövidebben is meg lehet írni, de a SYCL előnye az egyszerűsége mellett az egyetlen C++ forrásból történő programfejlesztés, ami már önmagában is jelentős fegyvertény.

A SYCL 1.2 a C++11 funkciókra építkezik kiegészítő támogatással a C++14-re vonatkozóan, illetve lehetővé teszi majd a C++17 Parallel STL programok gyorsítását is OpenCL-en keresztül. Ehhez a Khronos Group már létrehozott egy "Parallel STL on top of SYCL" nevű projektet, amit az alábbi oldalon el is lehet érni.

A SYCL 1.2-re vonatkozóan az AMD, az Imagination és a Qualcomm már bejelentette a támogatást, de nyílt specifikációjú iparági szabványról lévén szó valószínűleg a többi gyártó is csatlakozni fog.

Azóta történt

Előzmények

Hirdetés