AMD pr채sentiert HSA-Details auf der Hot Chips 25 [Update]

Auf der gera짯de statt짯fin짯den짯den Hot-Chips-Kon짯fe짯renz hat AMD in Zusam짯men짯ar짯beit mit den HSA-Part짯nern Qual짯comm und ARM Details zur ihrer gemein짯sa짯men hete짯ro짯ge짯nen Sys짯tem짯ar짯chi짯tek짯tur (HSA) preis짯ge짯ge짯ben. Die Grund짯la짯gen von HSA sind schon seit deren Gr체n짯dung 2012 bekannt, ein Eck짯pfei짯ler der Archi짯tek짯tur ist u.a. die Unter짯st체t짯zung von gemein짯sam benutz짯tem, hete짯ro짯ge짯nen Sys짯tem짯spei짯cher, der unter dem Schlag짯wort hUMA bewor짯ben wird. Aktu짯ell ist der Begriff auf짯grund der even짯tu짯el짯len hUMA-Unter짯st체t짯zung der PS4 im Gespr채ch. In der Pr채짯sen짯ta짯ti짯on wur짯de anfangs durch AMDs Fel짯low und HSA-Pr채짯si짯den짯ten Phil Rogers noch짯mals die obers짯te HSA-Ebe짯ne erkl채rt:

  • Gemein짯sa짯mer Adress짯raum quer 체ber alle ein짯ge짯setz짯ten Pro짯zes짯so짯ren des HSA-SoCs: Der GPU-Com짯pu짯te-Pro짯zes짯sor nutzt die glei짯chen Adres짯sen und Poin짯ter wie die CPU.
  • M철g짯li짯ches Nut짯zen einer Spei짯cher-Aus짯la짯ge짯rungs짯da짯tei auf der Festplatte.
  • Spei짯cher짯ko짯h채짯renz: Alle Threads k철n짯nen auf die Ergeb짯nis짯se ande짯rer Threads zugreifen.
  • User Mode Dis짯patch: Appli짯ka짯tio짯nen und Biblio짯the짯ken k철n짯nen die Hard짯ware direkt, ohne Umweg 체ber Trei짯ber짯rou짯ti짯nen, nutzen.
  • Archi짯tec짯ted queu짯ing lan짯guage: Rechen짯pa짯ke짯te f체r GPU-Com짯pu짯te haben ein iden짯ti짯sches, hard짯ware-unab짯h채n짯gi짯ges Format.
  • Hoch짯spra짯chen짯un짯ter짯st체t짯zung f체r GPU-Com짯pu짯te (Java, C++, etc.)
  • Pre짯emp짯ti짯on und Kon짯textswit짯ching: Auf짯grund des h철he짯ren Nut짯zungs짯grads durch vie짯le Threads wer짯den Zeit짯schei짯ben짯mo짯del짯le auch f체r die GPU ben철tigt.

Wie man also sieht, ist HSA unab짯h채n짯gig von spe짯zi짯el짯lem Maschi짯nen짯code wie x86 oder ARMv8, statt짯des짯sen gibt es eine Zwi짯schen짯schicht namens HSAIL (HSA Inter짯me짯dia짯te Lay짯er), d.h. Pro짯gramm짯code wird mit짯tels eines Echt짯zeit-Com짯pi짯lers auf die ent짯spre짯chen짯de Ziel짯platt짯form 체ber짯setzt. Schlie횩짯lich ging es dann in den Pra짯xis짯teil 체ber. Den Anfang mach짯te die Pla짯nung zu AMDs Apa짯ra짯pi. Die짯ses Soft짯ware짯tool gibt es seit 2012 und erm철g짯licht es, Java-Appli짯ka짯tio짯nen auf GPUs lau짯fen zu las짯sen. F체r die im Jah짯re 2015 geplan짯te Java-Ver짯si짯on 9 ist erst짯mals eine voll짯st채n짯di짯ge Inte짯gra짯ti짯on in die JVM mit dem Code짯na짯men 쏶uma짯tra vorgesehen:

19hc25_hsa

Kern짯punkt der Unter짯st체t짯zung ist der bei Java 8 ein짯ge짯f체hr짯te Lamb짯da-Aus짯druck. Ver짯wen짯det man die짯sen bereits in sei짯nem Java-Code, so wird Java 9 auto짯ma짯tisch Tei짯le davon auf der GPU aus짯f체h짯ren k철n짯nen. Anschlie짯횩end wur짯den Leis짯tungs짯bei짯spie짯le gebracht. So kann man bei Algo짯rith짯men zur Gesichts짯er짯ken짯nung, die in meh짯re짯ren Stu짯fen (im Bei짯spiel 22) erfol짯gen, durch die abwech짯seln짯den Berech짯nun짯gen auf CPU und GPU eine Leis짯tungs짯ver짯bes짯se짯rung bzw. eine Ener짯gie짯kos짯ten짯min짯de짯rung um den Fak짯tor 2,5 erm철glichen:

29hc25_hsa

Wie man dem obi짯gen Bild ent짯neh짯men kann, ist das Leis짯tungs짯ma짯xi짯mum der APU bei Aus짯la짯ge짯rung der ers짯ten drei Berech짯nungs짯schrit짯ten auf die GPU erreicht. Der Rest der Schrit짯te wird dann auf der CPU aus짯ge짯f체hrt, da der Par짯al짯le짯li짯sie짯rungs짯grad stark abnimmt. W채h짯rend die CPU also den Aus짯schnitt zu Ende rech짯net, beginnt die GPU mit den Berech짯nungs짯schrit짯ten des n채chs짯ten Bild짯aus짯schnitts. Exklu짯si짯ves Rech짯nen auf der CPU (blau, links) bzw. GPU (grau, rechts) lie짯fert jeweils eine schlech짯te짯re Leis짯tung. W채h짯rend die weni짯gen CPU-Ker짯ne anfangs mit der Daten짯men짯ge 체ber짯for짯dert sind, bricht die GPU in den hin짯te짯ren Berech짯nungs짯stu짯fen auf짯grund der stark gesun짯ke짯nen Thre짯a짯dan짯zahl und ihrer gerin짯gen Sin짯gle-Thread-Leis짯tung ein. Ein kom짯bi짯nier짯ter Ansatz ist somit die Ide짯al짯l철짯sung. Neben die짯sem bereits fr체짯her gezeig짯ten Bei짯spiel gab es auch noch ande짯re, eben짯falls schon bekann짯te F채l짯le. Als neu fiel dage짯gen der Anwen짯dungs짯fall 쏥ame짯play Rigid Body Phy짯sics auf, der mit an Sicher짯heit gren짯zen짯den Wahr짯schein짯lich짯keit aus der Zusam짯men짯ar짯beit mit den Spie짯le짯kon짯so짯len짯her짯stel짯lern ent짯stam짯men d체rf짯te, schlie횩짯lich ist zumin짯dest Sony offi짯zi짯el짯les Mit짯glied der HSA-Foun짯da짯ti짯on. Zuerst eine 횥ber짯sichts짯fo짯lie als Einsteig:

35hc25_hsa

Wie man sieht, wird die rea짯lis짯ti짯sche (phy짯si짯ka짯li짯sche) Starr짯k철r짯per짯ani짯ma짯ti짯on bis짯her nur in Effek짯ten, aber nicht direkt im Spiel als Inter짯ak짯ti짯on genutzt. Auf der n채chs짯ten Sei짯te wird erkl채rt, wie der Algo짯rith짯mus funk짯tio짯niert. Zuerst lau짯fen drei Pha짯sen der Kol짯li짯si짯ons짯er짯ken짯nung, dann wer짯den die Kon짯takt짯punk짯te berech짯net, danach die Ein짯schr채n짯kun짯gen gel철st:

36hc25_hsa

Die n채chs짯ten bei짯den Foli짯en lie짯fern dann all짯ge짯mei짯ne Gr체n짯de, wie짯so HSA bzw. hUMA Vor짯tei짯le bei der Ver짯wen짯dung mit Starr짯k철r짯pern und deren rea짯lis짯ti짯scher Ani짯ma짯ti짯on und Inter짯ak짯ti짯on bringt:

37hc25_hsa
38hc25_hsa

Zusam짯men짯fas짯send kann man sagen, dass HSA v.a. Vor짯tei짯le bei vie짯len, inter짯ak짯ti짯ven Objek짯ten bie짯tet, da der gesam짯te Spei짯cher짯raum und nicht nur das begrenz짯te VRAM zur Ver짯f체짯gung ste짯hen. Au횩er짯dem kann durch eine ver짯bes짯ser짯te Koope짯ra짯ti짯on zwi짯schen CPU und GPU eine h철he짯re Bild짯wie짯der짯hol짯ra짯te garan짯tiert wer짯den. Fazit: Die M철g짯lich짯kei짯ten von HSA sind viel짯ver짯spre짯chend, aber lang짯sam soll짯ten den Wor짯ten auch Taten in Form von funk짯ti짯ons짯t체ch짯ti짯ger und kauf짯ba짯rer Hard짯ware fol짯gen. Dass AMD hin짯ter dem Zeit짯plan liegt, sieht man schon allein an dem Umstand, dass die Pr채짯sen짯ta짯ti짯on nur wenig Neu짯es ent짯hielt. Vie짯les stamm짯te aus einer fr체짯he짯ren Pr채짯sen짯ta짯ti짯on des letz짯ten Jah짯res: ARM Tech짯con Key짯note 2012. Aber immer짯hin, die Soft짯ware짯ent짯wick짯ler schei짯nen sich durch den z철ger짯li짯chen Hard짯ware짯start nicht aus dem Rhyth짯mus brin짯gen zu las짯sen und die Spielekonsole(n) schei짯nen eine trei짯ben짯de Kraft zu sein. Je sp채짯ter die Hard짯ware am Ende erscheint, des짯to gr철짯횩er wird die Soft짯ware짯aus짯wahl sein. Zum Abschluss alle Foli짯en in der 횥bersicht:

Update 27.08.2013: Der Bil짯der짯ga짯le짯rie wur짯den noch eini짯ge Foli짯en von PC Watch hinzugef체gt.

Pro짯gram짯mier짯links: