Alaposan továbbfejlődött a HSA szabvány

Az 1.1-es specifikáció az igazán gyártófüggetlen működésre, illetve a platform kiegészítésére fókuszált.

A HSA alapítvány még az előző év márciusában jelentette be a HSA 1.0-s szabvány véglegesítését. Akkor még megfelelő hardver sem volt a platformhoz, de az időközben megjelent AMD Carrizo SoC APU megkapta a hitelesítést. Ugyanakkor az 1.0-s szabvány elsődlegesen az AMD hardveréhez készült, főleg amiatt, hogy a többi gyártó nem állt elő tesztelhető komponensekkel, így a HSA alapítvány sarokba volt szorítva. A HSA 1.1-es verziója ugyanakkor már igazán gyártófüggetlen működésre lett felkészítve, ugyanis a legtöbb tag már képes volt megfelelő adatokkal szolgálni a készülő fejlesztésekről.

Az 1.1-es specifikáció egyelőre még draft fázisú, de a HSA alapítvány szerint ennek a véglegesítése csak minimális módosításokat fog tartalmazni, így a frissen közölt adatok már tényeknek tekinthetők. Új hardvert az új HSA szabvány nem igényel majd, így minden olyan rendszer, amely megfelelt az 1.0-s szabványnak át fog menni az 1.1-es verzió hitelesítési tesztjén is. Ugyanakkor több funkcióval is kiegészült az AQL (Architected Queuing Language), illetve a memóriamodell, ami jobb használhatóságot biztosít, és nem mellesleg növeli a programfuttatás hatékonyságát. Lényeges változás érte még a finalizer specifikációját, ugyanis több cég is panaszkodott arra, hogy a HSAIL-ről a valós utasításarchitektúrára való fordítás nem működik tökéletesen. A probléma okát a HSA alapítvány a homályosan megfogalmazott specifikációkra vezette vissza, így erre vonatkozóan szigorodtak a követelmények, továbbá az új finalizer specifikációval jöhetnek a verziókiterjesztések, illetve lehetővé válik a szabványos kódobjektumok linkelése. A módosításokkal a HSA alapítvány reményei szerint a támogatók kevésbé fogják megkerülni a HSAIL-t a programfordítás végső fázisában.

Hirdetés

Jelentős előrelépés még, hogy a HSA 1.1 a fejlesztőeszközökre is gondol, így számos profilozó API-t is bevezet. Ez a programozók számára fontos tényező, mivel így átfogó képet kaphatnak a programjaik működéséről.

A legnagyobb változás azonban a gyártófüggetlen eszközmeghajtó bevezetése, illetve ehhez kapcsolódóan a transzparens funkcióspecifikációk, és a több gyártótól származó IP blokkok megfelelő kezelése. Mindez kiegészül még az újabb hardverdizájnok jobb támogatásával, ugyanis a HSA 1.0 elsődlegesen a grafikus gyorsítókra fókuszált, főleg azért, mert csak ilyen hardverrel lehetett gyakorlati teszteket végezni, de a HSA alapítvány végig azt vallotta, hogy a konstrukciójuk igazából általánosan vonatkozik a gyorsításra, így jöhetnek például DSP-t és ISP-k is. Utóbbi kettő a HSA 1.1-gyel lényegében felkerült a listára. Ezekre vonatkozóan külön készült egy úgynevezett multivendor specifikáció. Utóbbi azt garantálja, hogy licencelésre fókuszáló cégek úgy tudjanak különböző IP blokkokat a készülő rendszerchipekbe építeni, hogy elég legyen csak a megfelelő HSA hitelesítést figyelni. Ezzel például egy ARM processzormag mellé egy másik tervezőcégtől származó IGP-t vagy DSP-t is be lehet építeni úgy, hogy a HSA-val való kompatibilitás a végső rendszerchipre vonatkozóan megmaradjon.

A multivendor specifikáció nyilván nem sokat jelent azoknak a cégeknek, amelyek szinte mindent maguk terveznek, így például az AMD és a Qualcomm számára ez az újítás kvázi lényegtelen, de számos támogatónak nagyon fontos, hogy a saját IP blokkjaikkal a konkurensek IP blokkjai kompatibilisek legyenek a HSA szabvány szempontjából is.

A HSA alapítvány szerint a HSA 1.0-ról 1.1-re való átállás az adott gyártó meghajtóiban nem jelentős munka. Erre bizonyíték, hogy az AMD az elmúlt évben bemutatott Boltzmann Initiative szoftvercsomagban már eleve használ HSA 1.1-hez igazodó komponenseket, ezeket persze kiegészítik saját konstrukciókkal is, hogy a dedikált GPU-kkal is üzemképes legyen a rendszer.


[+]

Kisebbfajta adalék még, hogy a Continuum Analytics’ Numba Python fordítója direkt HSA támogatást kapott, ami drasztikusan megkönnyítheti a programozók dolgát a párhuzamosítás szempontjából. A támogatás minden univerzális függvényre vonatkozik, és a fordító fejlesztői szerint az elérhető gyorsulás kétszeres és kétszázszoros közötti lesz – függően a programkódtól.

Azóta történt

Előzmények

Hirdetés