Óriási dobásra készül az AMD a HPC piacon

A vállalat kiterjeszti a HSA platformot dGPU-ra, valamint a CUDA támogatását is megoldják – persze, nem futtatható alkalmazások, hanem csak forráskódok szintjén.

Óriási dobásra készül az AMD a HPC piacon

Az AMD egy új stratégiával próbál a korábbinál nagyobb sikereket elérni a HPC szegmensben, a stratégia pedig a Boltzmann Initiative nevet viseli, és tulajdonképpen egy komplett, rendkívül szerteágazó szoftvercsomagot takar. Az AMD célja ezzel az egésszel nem más, mint az, hogy versenyképesebbé válhasson az Nvidia CUDA technológiájával szemben, ami nagyon népszerű a HPC piacon, sőt, ezzel együtt a rivális CUDA alapú programkódokkal való kompatibilitás is megoldott lesz, ami óriási lehetőség a fejlesztők számára.

Forrás: AnandTech

A Boltzmann Initiative egyik alappillére a megfelelő driveres támogatás, ezt pedig dedikált 64-bites Linux driver keretén belül biztosítja a cég. A dedikált driver támogatja az úgynevezett headless, vagyis megjelenítő, billentyűzet és egér nélküli OpenCL kódfuttatást, amire eddig csak kisebb trükkök alkalmazása árán volt lehetőség, ám mostantól semmi ilyesmire nem lesz szükség. A szóban forgó Linux driver a HSA platform kibővített változatát alkalmazza – ezt az AMD HSA+ néven emlegeti. A HSA alapjaira épített kibővített környezet speciális bővítményekkel gondoskodik arról, hogy a dGPU alapú rendszerek kiaknázhassák a HSA-ban rejlő lehetőségeket. A klasszikus HSA platform eredetileg az APU egységeket célozza, a HSA+ azonban már dGPU támogatást is kínál, viszont ez a környezet nem képezi részét a hivatalos HSA specifikációnak, mivel az AMD saját fejlesztéséről van szó – ami egyébként később nyílt forráskódú szoftverként is elérhető lesz.

A HSA+ jóvoltából a CPU-k és a dGPU-k egyetlen egységesített címtartományba olvaszthatóak, ami jelentősen egyszerűsíti az olyan alkalmazások programozását, amelyek különböző feladatok elvégzésére a CPU-t és a GPU-t egyaránt aktívan használják. Ezzel az AMD és az Nvidia (CUDA 6) közötti szakadék is csökken.

Forrás: AnandTech

A Boltzmann Initiative második összetevője egy új HPC fordító, ami a Heterogeneous Compute Compiler nevet viseli. Az új fordítóra azért van szükség, mert a HPC szegmensben az OpenCL térhódítása finoman szólva sem túl komoly, aminek több oka van. Egyrészt az Nvidia CUDA már nagyon régóta támogatja a C++ programnyelvet, illetve egyéb magas szintű programnyelveket is, ami az OpenCL esetében eleinte hiánycikk volt, hisz az csak C-szerűen, alacsonyabb szinten volt programozható, méghozzá elég sokáig. Az OpenCL ökoszisztéma az OpenCL 2.1 és az OpenCL C++ kernel nyelv megjelenésével nagyot ugrott előre, ám az OpenCL 2.x támogatása még elég gyér, így ebből túl sokat egyelőre nem lehet profitálni. Az Nvidia például még csak az OpenCL 1.2 támogatásánál tart, és nem is siet a felzárkózással, hiszen számára nem fontos.

Forrás: AnandTech

A fentiek eredményeként az AMD-nek új stratégiát kellett kitalálnia ahhoz, hogy a HPC szegmensben javíthassa esélyeit, hisz az OpenCL támogatás önmagában kevés. Persze az AMD továbbra is kitart az OpenCL mellett, de ezzel egy időben saját API-t és saját szoftverkörnyezetet is bevet. Ez a szoftverkörnyezet a már említett HCC köré épül és elég jól ki van találva. A HCC tulajdonképpen az AMD saját válasza az Nvidia CUDA technológiájára, ami nem más, mint egy CPU-hoz és GPU-hoz egyaránt használható C/C++/OpenMP fordító. A HCC fordítás terén a Clang-ra és az LLVM-re támaszkodik, futtatókörnyezet terén pedig a HSA egyes részeit veti be. Az egész megoldás lényege, hogy a HCC segítségével a fejlesztők CPU-ra és/vagy GPU-ra egyaránt írhatnak kódot egyetlen programnyelv, egyetlen fordító és egyetlen forrásfájl használatával. Ez komoly előrelépés, hisz így a végeredmény a Microsoft C++ AMP megoldásához hasonlít, azaz a fejlesztők igény szerint akár párhuzamos hívásokat is készíthetnek az adott C++ programban, a munka végén pedig az OpenCL-lel ellentétben itt nem kell külön forrásfájlt készíteni a GPU kernelek számára.

Forrás: AnandTech

A HCC és a CUDA közötti szakadék áthidalását a HIP (Heterogeneous-compute Interface for Portability) segíti: a fejlesztők a CUDA világából ismerős szintaxisok használata mellett AMD GPU-ra is írhatnak majd különböző alkalmazásokat a HIP-en keresztül. A meglévő CUDA kódokat a HIPify Tools segítségével lehet átkonvertálni HIP kódra, méghozzá meglehetősen hatékonyan. A HIP kódot – mindegy, hogy natívan készült, vagy CUDA kódból konvertálták – igény szerint AMD és Nvidia GPU-ra egyaránt le lehet fordítani: előbbiben a HCC, utóbbiban az NVCC segít.

Félreértés ne essék: a CUDA kódra fordított alkalmazások továbbra sem futnak majd AMD GPU-n, de a CUDA forrást át lehet konvertálni HIP forrássá, amiből a HCC-vel már AMD GPU-n futó alkalmazás is készíthető. Az egyelőre kérdéses, hogy az AMD a HIP esetében mennyire naprakészen követi majd a CUDA funkcionalitásának bővülését, valamint az is kérdés, hogy az Nvidia hogyan reagál majd erre az egész kis magánakcióra. Az AMD jogászai nem tartanak pereskedéstől, ugyanis a Google korábbi akciójából sem volt baj, amelynek keretén belül a GPUCC segítségével CUDA támogatással vértezték fel az LLVM-et. Azért azt sem szabad elfelejteni, hogy a Google az Nvidia számára nem direkt rivális, míg az AMD az. Idővel kiderül, mi lesz a dologból.

Forrás: AnandTech

Az viszont biztos, hogy a Boltzmann Initiative szoftvercsomag a következő év első negyedévében válik elérhetővé, így rövidesen kiderül, mekkora fantáziát lát benne a HPC szegmens.

Tesztek

{{ i }}
arrow_backward arrow_forward
{{ content.commentCount }}

{{ content.title }}

{{ content.lead }}
{{ content.rate }} %
{{ content.title }}
{{ totalTranslation }}
{{ orderNumber }}
{{ showMoreLabelTranslation }}
A komment írásához előbb jelentkezz be!
Még nem érkeztek hozzászólások ehhez a cikkhez!
Segíts másoknak, mond el mit gondolsz a cikkről.
{{ showMoreCountLabel }}

Kapcsolódó cikkek

Magazin címlap arrow_forward