Hirdetés

Ízelítőt ad a BOLT-ból az AMD új fejlesztőkörnyezete

Az AMD a szokásos év végi frissítési periódust tartva elérhetővé tette az APP (Accelerated Parallel Processing) SDK 2.8-as verzióját, mely tényleg értékes újításokat vezet be. Az OpenCL 1.2-t is támogató fejlesztőkörnyezet a korábban bevezetett 32 bites atomi műveletek mellett támogatja a 64 biteseket is, illetve a Direct3D 11-es programokban is megoldható a pufferek és a textúra objektumok megosztása az OpenCL felülettel.

Az új APP SDK a C++ AMP és az Aparapi felületeket is támogatja, továbbá új és felújított mintaprogramokat kínál a fejlesztőknek. Az AMD mérései szerint az APP SDK 2.7-hez képest átlagosan több mint kétszer gyorsabban futnak a mintaprogramok, ami az optimalizálás mellett a meghajtó fejlesztésének is köszönhető.

Az új APP SDK fő érdekessége azonban, hogy végre ízelítőt ad a BOLT nevű STL kompatibilis szabványos C++ sablonkönyvtárból. A támogatás egyelőre csak előzetes fázisban van, így a valós programfejlesztés helyett inkább az ismertetés a cél. Éppen ezért az aktuális verzió sok limitációt tartalmaz még, de hamarosan béta fázisba lép a fejlesztés. A BOLT célja a heterogén módon történő programozás jelentős megkönnyítése. Ma a gyorsítóként szolgáló grafikus vezérlő – legyen szó dedikált vagy integrált egységről – elkülönülő kódot kap a központi processzorhoz írt kódbázistól. Az OpenCL ugyan jó alternatíva, de a fejlesztők többségének túl időigényes jól optimalizált kódot írni. A BOLT három koncepcióval próbálja megkönnyíteni a fejlesztéseket.

Először is a programozási modell nagyon hasonlít a fejlesztők által kedvelt C++-hoz. A rendszer olyan környezetet biztosít, mintha a programozó többmagos processzorra kódolna, másodsorban a forráskódból készített bináris kód azonos. A futtatásért felelős eszközök kiválasztása a program indításakor történik. Itt két eset lehetséges: amennyiben rendelkezésre áll egy gyorsításra alkalmas, megfelelő OpenCL támogatással rendelkező grafikus processzor (integrált vagy dedikált), akkor a program automatikusan kihasználja. Ellenkező esetben a kód a központi processzoron fog futni a rendelkezésre álló magok képességeit a lehető legjobban kamatoztatva (ezt a BOLT aktuális implementációja még nem támogatja, de a béta megjelenésével már megoldott lesz). Harmadrészt manapság a kód portolhatósága is komoly kihívás, hiszen a különböző architektúrákhoz specifikus kernel implementációk szükségesek. A BOLT ezen is segít, mivel sablonfunkció API-kkal magasabb szintű absztrakciót tesz lehetővé, hogy az algoritmus a legjobban fusson a megcélzott eszközön. Példaként említve a BOLT által definiált reduce funkció eltérő implementációt használ GPU-ra, illetve CPU-ra. A fejlesztő mindkét implementációhoz a reduction operációt és a bemeneti tömböket specifikálhatja.

A BOLT a fentiek mellett egy device_vector osztályt is definiál, mely arra szolgál, hogy a gyorsító és a központi processzor által használt különálló memóriaterület menedzselése annyira könnyű legyen, amennyire csak lehetséges. Az különálló memóriát használó erőforrások közötti adatmásolására sajnos a mai rendszerek mellett szükség van, és erre oda kell figyelni, ha jó teljesítményt szeretne elérni a fejlesztő. Ez azonban később megváltozik, mivel az AMD korábban már felvázolta, hogy a fő célja az integrációnak, hogy a gyorsítóként funkcionáló grafikus vezérlő és a központi processzor teljesen koherens memóriát osszon meg, illetve ugyanazokat a pointereket kezeljék. Erre a BOLT végleges verziója szintén fel lesz készítve, így a grafikus vezérlő teljes értékű koprocesszorként funkcionál majd a központi processzormagok mellett.

Az AMD szerint a BOLT használatával fejlesztett alkalmazás képes megközelíteni az OpenCL-ben vagy a C++ AMP-ben írt kód sebességét. Mindeközben nagyjából annyi kódsort kell beírni, amennyi az egy szálon futó C-ben írt alkalmazáshoz szükséges.

Az AMD APP SDK 2.8 az alábbi oldalról tölthető le. A fejlesztőkörnyezet a Windows 8, 7 és Vista operációs rendszerek mellett az openSUSE 11, a Red Hat Enterprise Linux 6, illetve az Ubuntu 11 verziójú Linux disztribúciókat támogatja. Ezenkívül kezeli a Microsoft Visual Studio (MSVS) 2008/2010/2012 Professional Edition, a GCC (GNU Compiler Collection) 4.4-es, valamint az ICC (Intel C Compiler) 11-es fordítómodulokat. A megfelelő működéshez legalább a Catalyst 12.10-es, vagy a FirePro 9.003 drivert kell telepíteni. A hardver szempontjából minimum SSE2 utasításkészletet támogató processzor szükséges, a grafikus vezérlő oldaláról pedig minden, minimum DirectX 11-et kezelő termék bevethető.

Az új APP SDK mellett végleges formát öntött a CodeXL is. Az 1.0.1-es verziójú fejlesztőkörnyezet kifejezetten a heterogén módon történő programozáshoz lett kialakítva, így a fejlesztők az adott programot a teljes rendszer működése szempontjából analizálhatják, profilozhatják és debugolhatják. A CodeXL hivatalosan az AMD platformokat (CPU+GPU) és APU-kat támogatja, de a vállalat nem zárta ki a konkurens hardvereket sem, noha azok működésért nem vállalnak felelősséget.

A CodeXL az alábbi oldalról tölthető le. A rendszer elérhető a Microsoft Visual Studio 2010 beépülő moduljaként, vagy különálló formában a Windows 7-hez, valamint a Red Hat Enterprise Linux 6 és az Ubuntu 11 verziójú Linux disztribúciókhoz. A megfelelő működéshez a legújabb Catalyst driver telepítése szükséges.

  • Kapcsolódó cégek:
  • AMD

Azóta történt

Előzmények

Hirdetés