Beszámolt a ROCm szoftvercsomag első évéről az AMD

A Boltzmann Initiative szoftvercsomag a tervektől ténylegesen eljutott a gyakorlatig.

Az AMD szinte pontosan egy évvel jelentette be a Boltzmann Initiative szoftvercsomagot, amelynek célja az NVIDIA munkájának megpuccsolása volt a HPC-piacon. A vállalat az idei SC16 alkalmával most részletezte, hogy mit sikerült elérni egy év alatt, és az is kiderült, hogy a legújabb csomag milyen újításokat hoz.


[+]

A Boltzmann Initiative az elmúlt évben csak ígéret volt, így ténylegesen használható csomaggá idén tavasszal vált. Ekkor jelent meg ugyanis a nyílt forráskódú ROCm 1.0, amely a rendszer mögötti meghajtónak tekinthető. Ez a Fiji cGPU támogatásával kezdett a P2P RDMA (Peer-to-Peer with Remote Direct Memory Access) mellett. A ROCm 1.1 júniusban érkezett és több GPU-s lehetőségekben újított, az 1.2-es verzió pedig augusztusban futott be a Hawaii cGPU támogatásával, illetve béta fázisban már elérhető volt a natív LLVM fordító.

A friss bejelentés része a most megjelenő ROCm 1.3, amely végre elhozza a Polaris 10 és 11 kódnevű cGPU-k támogatását. Utóbbi az AMD szerint azért fontos, mert a ROCm eddig meglehetősen drága belépőn keresztül volt elérhető. Eddig ugyanis a FirePro W9100, S9150, S9170, S9300x2, illetve Radeon Pro Duo és Radeon R9, Fury X, Fury, valamint Nano VGA-kkal működött a csomag, és ezek közül az utóbbi is relatíve drágának tekinthető hobbi felhasználásra. A ROCm 1.3 azonban már támogatja a Radeon Pro WX4100, WX5100 és WX7100 VGA-kat, illetve a Radeon RX 460, 470 és 480 jelzésű megoldásokat, vagyis a belépő jelentősen olcsóbb lett, így például a tanulók is könnyen vehetnek maguknak egy megfelelő alaprendszert. Az operációs rendszerek tekintetében továbbra is az Ubuntu 16.04, illetve a Fedora 24 kapja a legnagyobb figyelmet, de persze más Linux disztribúciókkal is használható.


[+]

A ROCm 1.3 másik nagy újítása a natív, LLVM 4.0-s fordítót is véglegesíti, amivel a fejlesztők GCN binárist fordíthatnak az adott programjukból. Emellett a Fiji, illetve a Polaris 10 és 11 lapkákra megjelent a natív Float16 és Integer16 támogatás, amivel a fejlesztők elérhetik, hogy kisebb legyen a regiszterhasználat a lapkán belül.


[+]

A ROCm képességeiről az alábbi egy év meglehetősen sok információval szolgál. Többek között az AMD ecsetelte, hogy a CAFFE nevű deep learning keretrendszert Tip verzióját négy nap alatt portolták CUDA-ról HIP-re. Ez 55 000-nél is több sort jelent, aminek a 99,6%-át automatikusan megoldott a HIPify nevű eszköz, ami pontosan azt a célt szolgálja, hogy a CUDA-ról való portolást drámaian megkönnyítse. Fontos kiemelni, hogy a CUDA és a HIP közötti jelentős egyezés miatt a HIPify a kódok jelentős részét érintetlenül hagyta. Ez nagyjából 54 000 sort jelentett. A konvertálás tehát ezernél kevesebb sort érintett, és ezek között is nagyjából száz sorhoz kellett manuálisan hozzányúlni. Az érintett programnak van OpenCL verziója is, amit kis túlzással a nulláról írtak meg, vagyis a portolás nagyjából 32 000 sor manuális átírását vonta maga után. Látható, hogy a befektetett munka mennyisége mennyire nem mindegy, így egy CUDA alkalmazást sokkal célszerűbb HIP-re portolni, ami szintén platformfüggetlen, mint az OpenCL. Ráadásul a HIP kód gyorsabb is.


[+]

A fentiek mellett az AMD az elmúlt egy évben azon fáradozott, hogy a ROCm köré kiépítse a szükséges ökoszisztémát, így az elérhető keretrendszerek és könyvtárak száma folyamatosan bővül. Ehhez hozzájön még a bővülő hardvertámogatás is, ugyanis az eddigi x86-os rendszerek mellett az AMD felveszi a listára az ARMv8-A-t, illetve az IBM Power 8-at. Utóbbi várható lépés volt, mivel az IBM nagyon érdeklődik a HPC-piac iránt, és az érkező fejlesztéseiket figyelembe véve a támogatás biztosítása fontos lesz. Az ARMv8 azonban váratlan, de megmagyarázható, mivel a Cavium ThunderX egy igen jól skálázható megoldás a maga 48 processzormagjával, és ki tudja, hogy az AMD milyen ARMv8-as processzorokon dolgozik a háttérben. Ezekre vonatkozna a heterogén programozás lehetővé tétele szintén fontos tényező lehet. Mindemellett beépül a támogatás a Gen-Z, a CCIX és az OpenCAPI interfészre. Végül további adalék még, hogy érkezik az OpenUCX platform támogatása is is a csomagba.


[+]

Az OpenCL is kap némi frissítést, de ezt nem a ROCm 1.3-ban, hanem egy picivel később, egy decemberi fejlesztői kiadás formájában. Az AMD szerint egy OpenCL 1.2+ típusú támogatást hoznak, amely a ROCm csomagra lesz felhúzva, és lehetővé teszi számos OpenCL 2.0-s funkció elérését az OpenCL 1.2-vel kompatibilis futtatási környezet mellett. Ez egy nagyon tudatos fejlesztés az AMD részéről, mert az OpenCL 2.0 alatt a futtatási környezet nagymértékben megváltozott, ami azt jelenti, hogy az aktuális programok modernizálása rengeteg erőforrást emésztene fel. Ráadásul a közhiedelemmel ellentétben a HPC-piacon az OpenCL igen elterjedtnek számít, mivel az elmúlt években nagyon sokan nem akarták magukat bezárni egy gyártói rendszer mögé, így az OpenCL 1.2-t választották alapnak. Többek között emiatt készít például az NVIDIA egy publikusan nem elérhető OpenCL 1.2-es meghajtó a partnereinek. Ha nem tennék meg, akkor leváltanák a hardvert, semmint átírnák a kódot. Az AMD konkrétan úgy gondolja, hogy az OpenCL 2.0-s funkciókra nagyon sokan igényt tartanának, csupán az átállás árát nem akarják megfizetni. A ROCm decemberi fejlesztői kiadása ezt teszi lehetővé az érintetteknek: maradhatnak az aktuális futtatási környezeten, miközben hozzáférhetnek az OpenCL 2.0 fontos újításaihoz. Ezért cserébe csak a hardvereiket kell lecserélni, ami a portoláshoz szükséges erőforrásokhoz képest bőven vállalható költség.

  • Kapcsolódó cégek:
  • AMD

Azóta történt

Előzmények

Hirdetés