Iată că avem parte de o prezentare generală a HSA (Heterogeneous System Architecture) cu ocazia celei de-a 25-a ediţii a HotChips. În cadrul unui PDF de 42 pagini, Phil Rogers (HSA Foundation President şi AMD Corporate Fellow) prezintă scopurile HSA Foundation şi cum ne vor afecta acestea în mod concret.

HSA Foundation reprezintă cea mai interesanta iniţiativă din partea AMD în întreaga lor istorie şi şi-a inceput activitatea în iunie 2012. Printre membrii fondatori se numară AMD desigur, dar şi alte corporaţii de renume precum ARM, Qualcomm, Texas Instruments, Samsung, Imagination şi MediaTek. În lista de companii şi corporaţii asociate cu HSA Foundation se regăsesc şi alţi giganţi, precum LG Electronics, Marvell, Sony, Ubuntu, ST Ericsson, Broadcom şi alţii. Aveţi mai jos lista completă:

HSAMembers2013

Prezentarea continuă prin a evidenţia ţinta principală a HSA Foundation, anume SoC-urile (System on Chip). Acestea combină nucleele de procesare (CPU) cu nuclee grafice (GPU) şi controllere (precum cele de memorie, PCI-Express, etc.), cu accesul la memorie cu lăţime de bandă foarte mare. Pentru îmbunătăţirea SoC-urilor, HSA Foundation mizează pe patru categorii în paralel: uşurinţa de a programa, uşurinţa de a optimiza, creşterea performanţei şi scăderea consumului. Unul dintre punctele forte ale HSA este proiectarea pe module a unui SoC, astfel încât componentele (CPU, GPU, controllere) să poată să fie schimbate uşor cu versiuni noi, fără investiţii majore în proiectare. Practic, toţi membrii HSA vor putea să combine hardware-ul propriu cu cel al celorlalţi membri fără probleme datorită principiilor de modularitate impuse de HSA. De exemplu, un procesor produs de Samsung, cu nuclee de procesare ARM, controller de memorie proiectat de Qualcomm si nucleu grafic AMD. Totul implementat cu costuri minime de proiectare.

Această abordare este deja implementată de procesoarele AMD actuale, iar în viitor accentul nu va fi pus doar pe GPU-uri. Este subliniată importanţa pe care o acordă membrii HSA dezvoltării de software şi hardware care să le permită programatorilor să lucreze cu SoC-urile la fel de uşor ca şi cu procesoarele (CPU, mai exact) la ora actuală. De asemenea, SoC-urile vor juca un rol foarte important atât pentru segmentul consumer, cât şi pentru servere şi cloud.

Următoarea schemă explică evoluţia procesoarelor în timp, începând cu modelele single core, apoi multi-core şi în final Heterogeneous Systems. Accentul este pus pe faptul că dezvoltarea Heterogeneous Systems este abia la început.

HSACPUDesign

Urmează definirea caracteristicilor la care lucrează la ora actuală grupurile HSA, alături de definirea ISA-ului specific denumit HSAIL şi a funcţiilor şi atributelor acestuia. Este scos în evidenţă accesul unificat la memoria RAM a sistemului, compatibilitatea cu diferite modele de folosire a memoriei (C++11, Java, .NET) şi ordonarea firelor de execuţie în funcţie de prioritate, alături de un set de instrucţiuni specifice. Această parte expune avantajele oferite de hardware-ul membrilor HSA Foundation şi îndrăznesc să spun că reprezintă un avantaj major deoarece răspunde cerinţelor dezvoltatorilor (uşurinta de a programa) şi foloseşte o platformă Open Source, disponibilă tuturor. De multe ori am auzit dezvoltatori care comparau PC-urile cu consolele şi scoteau în evidenţă accesul unificat la memoria RAM ca fiind un avantaj major pentru console. Ei bine, în viitorul (foarte) apropiat o să beneficiem de aceleaşi facilităţi si pe PC-uri.

HSAHLF

HSAAOP

HSAIL

HSAMEM

În ceea ce priveşte software-ul, prezentarea începe prin a clarifica faptul că HSA nu este o alternativă la OpenCL, ci o arhitectură pentru platforme optimizate pentru OpenCL. Folosirea API-ului OpenCL pe platforme HSA va beneficia de evitarea copiilor inutile, low lantency dispatch, un model de memorie îmbunătăţit şi pointeri comuni pentru CPU şi GPU. Deoarece o bună parte dintre membrii HSA Foundation sunt şi membri ai Khronos (grupul care se ocupa de dezvoltarea OpenCL), este vizibilă alinierea standardului OpenCL 2.0 cu HSA. Este prezentat Bolt pentru cei care doresc să folosească pe deplin potenţialul GPU-urilor folosind OpenCL.

HSAOCL1

HSAOCL2

HSAOCL3

Susţinătorii software-ului Open Source au motive suplimentare de bucurie deoarece HSA Foundation intenţionează să ofere suport extins pentru Linux atât ca sistem de operare, cât şi ca mediu de lucru pentru programatori. Faptul că HSA Foundation nu ignoră, ba chiar mai mult, vizează comunitatea Open Source este o mişcare foarte bună. Utilizatori vor avea acces la software gratuit şi per total la o diversitate mai mare în ceea ce priveşte opţiunile. Dar adevăratul avantaj al acestei mişcări este faptul că orice platforma şi orice implementator vor beneficia de metode foarte simple şi mai ales eficiente de scrie software-ul pentru hardware-ul membrilor HSA Foundation. Indiferent dacă folosiţi Windows sau Linux, va fi foarte uşor pentru dezvoltatori să creeze software optimizat nou sau să-l optimizeze pe cel deja existent. Mai presus de orice, nu veţi mai fi obligaţi să folosiţi un sistem de operare anume ca să beneficiaţi de întreaga panoplie de opţiuni pe care v-o pune la dispoziţie hardware-ul. Because it’s the right thing to do:

HSAOSS

Accelerarea Java la nivel hardware nu mai este de mult o noutate. HSA vrea să ducă lucrurile la un nou nivel prin intermediul Aparapi, un runtime dedicat convertirii bytecode-ului Java în limbaj OpenCL. Deşi la prima vedere această capacitate poate să pară inutilă, ea de fapt este importantă pentru viitor deoarece le permite programatorilor să ruleze cod Java direct pe GPU fără să depună muncă suplimentară.

Sumatra este un proiect nou de tip Open Source sponsorizat de AMD şi Oracle, al cărui scop este să pună la dispoziţia dezvoltatorilor de software o modalitate eficientă de reprezentare a data parallel algorithms folosind Java 9 (programat pentru lansare în 2015). Noul proiect refoloseşte API-urile multi-core Stream/Lambda existente în Java 8 ca să permită execuţia programului pe CPU sau GPU folosind dispozitive JVM (Java Virtual Machine) pentru alocarea sarcinilor. Dezvoltatorii care folosesc library-uri existente vor beneficia de accelerare pe GPU fără să trebuiască să efectueze schimbări în codul sursă al programului.

HSAJVA1

HSAJVA2

HSAJVA3

Sunt date şi o serie de exemple concrete în ceea ce priveşte avantajele aduse de abordarea HSA, pe care am să vi le ofer mai jos sub forma unor imagini. Primul set se referă la prelucrarea unei imagini şi exemplifică balansarea sarcinilor între CPU şi GPU, respectiv diferenţele de performanţă (şi implicit consum de curent) între folosirea exclusiva a CPU-ului sau a GPU-ului sau a amândurora. Pentru exemple sunt folosite procesoare AMD Trinity.

HSAHAAR2

HSAHAAR3

HSAHAAR4

HSAHAAR5

HSAHAAR6

HSAHAAR7

HSAHAAR8

HSAHAAR9

HSAHAAR10

Cel de-al doilea exemplu scoate în evidenţă avantajele oferite de HSA pentru servere, mai exact tipul de sarcini specifice cloud-computing. Accentul este pus în continuare pe balansarea sarcinilor între CPU şi GPU, respectiv diferenţele între această abordare şi cazul în care este utilizat numai procesorul. Se remarcă eficienţa energentică a soluţiei oferită de HSA, unul dintre cele mai importante aspecte pentru servere.

HSACLO1

HSACLO2

Ultimul exemplu dat face referire la un subiect cunoscut gamerilor, anume simularea fizicii corpurilor. Toată lumea a auzit de engine-uri de fizică precum PhysX şi Havok, însă gaming-ul nu este singurul domeniu care beneficiază de aportul GPU-ului pentru executarea calculelor de fizică. De la efectele speciale din filme şi până la simulatoare pentru industria medicală, calculele de fizică sunt din ce în ce mai importante. Exemplul dat nu are legatură cu jocurile, însă nu ar fi nerealist să ne aşteptăm ca în viitor calculele de fizică să fie efectuate direct de IGP-ul procesorului.

HSARBP1

HSARBP2

HSARBP3

HSARBP4

Ultimul grafic din acest document compară performanţele obţinute de diferite limbaje de programare şi abordări comparativ cu cantitatea de muncă depusă pentru obţinerea aceluiaşi rezultat. Scopul declarat al HSA este să ofere performanţe de top în condiţiile în care programarea în sine să fie la fel de simplă şi eficientă ca şi pentru CPU-urile normale. Din tabelul prezentat reiese faptul că folosind library-ul HSA Bolt, dezvoltatorii pot să obţină de aproximativ de 26 ori mai multă performanţă în condiţiile în care codul sursă rămâne la fel de simplu şi mai ales scurt ca şi în cazul programării pentru procesoarele clasice. În schimb, programarea în OpenCL pentru accelerarea pe GPU este de departe cea mai complicată dintre sarcinile enumerate.

HSAeasyprogr

La finalul PDF-ului este prezentat viitorul HSA. Scopul principal al acestei iniţiative, după cum am mai precizat, este să le permită dezvoltatorilor să folosească toate resursele puse la dispoziţie de SoC-uri în mod dinamic şi cât mai uşor cu putinţă, cu ajutorul unui singur SDK (Software Development Kit). La ora actuală, optimizarea software-ului pe GPU implică resurse enorme şi tocmai aici iese la iveală devăratul avantaj al soluţiei HSA. Dezvoltatorilor le place la nebunie să poată să obţină cât mai multă funcţionalitate cu o cantitate cât mai mică de muncă depusă. Daca HSA reuşeşte în ceea ce şi-a propus, vom vedea suport din partea întregii industrii pentru acest standard.

Dar totul nu se opreşte aici. Gândiţi-vă că HSA promite aceste avantaje nu numai dacă pentru procesoarele AMD, ci şi Qualcomm, Texas Instruments, Samsung şi ARM. Practic, noul standard are cu atât mai multe şanse de reusită cu cât este sprijinit de şi dezvoltat cu ajutorul intregii industrii mobile. Iar acesta este un avantaj major, deoarece s-ar putea să putem să rulăm fără probleme aceleaşi programe şi pe telefonul mobil, şi pe laptop şi pe desktop, toate compatibile între ele. Rămâne de văzut ce ne rezervă viitorul în această privinţă, însă HSA Foundation promite că software-ul va fi optimizat pentru hardware-ul produs de oricare dintre membrii săi.

Iar dacă v-aţi întrebat ce urmează după GPU, se pare că HSA Foundation deja au DSP-urile (Digital Signal Processor) în vedere.

Similar Articles

Lasă un răspuns

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.