GPU AMD dostala kompatibilitu s Cuda, C++. S Boltzmannem mají přebít Teslu

21. 11. 2015

Sdílet

 Autor: Redakce

Pro běh různých výpočetních úloh na čipech GPU prosazuje Nvidia vlastní programovací framework a jazyk Cuda. Pokud odhlédneme od otázky kvalit této technologie v porovnání se otevřenými standardy jako OpenCL, problém s použitím Cuda je v tom, že zákazník se dostane do situace tzv. „vendor lock-in“. Svůj kód může provozovat jen na čipech Nvidia a do budoucna je tak nucen být „věrný“ značce. Konkurenční AMD se ale nyní chce pokusit oslovit i zákazníky, kteří jsou ke Cuda buď připoutáni nebo ji prostě pro programování preferují a zprovozní běh těchto programů i na GPU Radeon/FirePro.

Bude to v rámci iniciativy nazvané Boltzmann (dle fyzika Ludwiga Boltzmanna), již AMD představilo na konferenci SC15 věnující se oblasti HPC, tedy superpočítačů a podobně. Pro toto odvětví trhu by totiž, pokud upěje, mohla do budoucna být poměrně podstatná (vedle zlepšení konkurence samozřejmě hlavně pro AMD).

AMD FirePro S9170
Výpočetní karta AMD FirePro S9170

 

HCC: program pro GPU přímo z C++

Iniciativa Boltzmann představuje vícero softwarových zlepšení pro oblast HPC, nejdůležitější jsou ale dvě. Za prvé nový překladač HCC, který umožňuje kompilovat binárky pro GPU AMD přímo z kódu v C++, C a OpenMP (měl by být založen na Clangu, LLVM a HSA). HCC navíc bude produkovat společný kód pro CPU i GPU, pro běh na GPU už tedy nebudou nutné samostatné kernely jako pod OpenCL.

AMD v HPC: Iniciativa Boltzmann

Onou druhou velkou novinkou je právě kompatibilita s prostředím Cuda. Jelikož se jedná o kompletně proprietární technologii Nvidie, nebude AMD podporovat přímo zkompilované binárky. Pod hlavičkou iniciativy Boltzmann ale představila technologii HIP (Heterogeneous-compute Interface for Portability), která umožní ze zdrojových kódů v Cuda přeložit binárky pro GPU AMD.

 

 

HIP udělá z kódu v Cuda přenositelný software

HIP má syntax podobající se syntaxi Cuda a převod do HIP bude možné provést automaticky nebo téměř automaticky nástrojem HIPify. Podstatné je, že kód v HIP, ať už zkonvertovaný z Cudy nebo nativně napsaný, se bude dát přeložit jak pro GPU AMD pomocí překladače HCC, tak nástroji Nvidie (NVCC) pro její GPU Tesla.

Skrze HIP lze tedy z kódu v Cuda udělat přenositelný software s programovacím modelem C++; vzhledem k tomu, že jsou použité open source komponenty, by nástroje měly být rozšiřitelné i pro použití s dalším cílovým hardwarem mimo GPU Radeon/FirePro. Touto cestou by se tedy programy napsané původně čistě pro GPU Nvidia mohly dát provozovat i na řadě dalších GPU (například Intel, PowerVR, ARM Mali), případně třeba Xeonech Phi nebo jiných akcelerátorech.

AMD v HPC: Iniciativa Boltzmann

Vzhledem k rozšířenému použití Cudy v oblasti HPC by HIP mělo pomoci AMD získat v superpočítačích větší tržní podíl. Prodej na tomto trhu je vzhledem k ceně výpočetních GPU poměrně lukrativní a AMD loni avizovalo, že by v profesionální oblasti rádo svoje zastoupení zvýšilo. Doposud zde dominovala Nvidia právě i kvůli zakořenění svých proprietárních technologií. Pomocí HCC a HIP by AMD rádo tyto zákazníky konvertovalo lepší nabídkou, zda to ale zabere proti síle setrvačnosti, těžko předvídat.

 

Nový linuxový ovladač speciálně pro GPU výpočty

V rámci iniciativy Boltzmann také AMD uvedlo nový linuxový ovladač pro GPU výpočty. Ten je optimalizován na běh bez grafického výstupu, tedy pro serverové karty sloužící čistě pro výpočty. Ovladač bude mít různé speciální funkce zaměřené na HPC použití, například podporu pro DMA přístup do paměti GPU přes rozhraní InfiniBand, unifikované adresní prostory RAM, nižší latence nebo vylepšený peer-to-peer model pro provoz více GPU v systému.

ICTS24

AMD v HPC: Iniciativa Boltzmann
Nový ovladač uzpůsobený pro „headless“ provoz v HPC. Umožňuje například vzdálené DMA do paměti GPU v klastrech

Zdroje: AMD, AnandTech