Í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.

Hirdetés

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.

Hirdetés

Fotóznál vagy videóznál? Mutatjuk, melyik okostelefon mire való igazán!

PR Vásárlás előtt érdemes megnézni, mit kínálnak az aktuális telefonok, ha igazán ütős képeket vagy profi mozgóképeket szeretnénk készíteni.

  • Kapcsolódó cégek:
  • AMD

Azóta történt

Előzmények