APU13: AMD baut Software-Ökosystem für Opteron-Zukunft mit APUs auf

Artikel-Index:

Im Umfeld sei­ner Ent­wick­ler­kon­fe­renz APU13 ist AMD auch auf die eige­nen Plä­ne für das im Augen­blick dahin­sie­chen­de Opte­ron-Geschäft ein­ge­gan­gen. Nach­dem bereits vor gerau­mer Zeit im Wett­ren­nen mit Intel um die schnells­te CPU die wei­ße Fah­ne gehisst wur­de, ist der Kon­zern aktu­ell mit­ten in einer Über­gangs­pha­se hin zu einer Opte­ron-Zukunft mit APUs und ARM-CPU-Ker­nen. Ele­men­ta­rer Bestand­teil auf dem Weg dort­hin ist der Auf­bau eines pas­sen­den Soft­ware-Öko­sys­tems. Hier­durch will das Unter­neh­men für spe­zi­el­le Anwen­dungs­fäl­le in ers­ter Linie hin­sicht­lich der Ener­gie­ef­fi­zi­enz kon­kur­renz­fä­hi­ge, kos­ten­güns­ti­ge Lösun­gen anbie­ten kön­nen. Ein ers­ter kon­kre­ter Ein­satz­fall für die Opte­ron-APUs sind die Moon­shoot-Pro­zes­sor­kar­ten, die von HP für Remo­te-Desk­top-Lösung ange­bo­ten wer­den. Über AMDs Akti­vi­tä­ten beim Auf­bau des Öko­sys­tems für 64-Bit-ARM-Ser­ver hat­ten wir erst kürz­lich berich­tet.

Genau dies spie­gelt auch die im Juni 2013 vor­ge­stell­te und wei­ter­hin gül­ti­ge Opte­ron-Road­map für 2014 wider. Zwar gibt es noch den bereits bekann­ten “Piledriver”-Abkömmling “War­saw” für den Sockel G34, aber ob die 32nm-CPU im Jahr 2014 noch kon­kur­renz­fä­hig sein wird, darf man bezwei­feln. Laut AMD geht es bei “War­saw” auch in ers­ter Linie um die Unter­stüt­zung des Pro­jekts AMD Open 3.0 Ser­ver. Eini­ge Groß­rech­ner­be­sit­zer könn­ten sich even­tu­ell über die Upgrade­mög­lich­keit freu­en. Mit den HSA-APUs “Ber­lin” soll dage­gen in Zukunft nahe­zu der gesam­te Anwen­dungs­be­reich abge­deckt werden:

Neue Infor­ma­tio­nen zur Hard­ware der APUs bleibt AMD aller­dings schul­dig. Die erwähn­ten Fea­tures HSA, hUMA-Spei­cher­con­trol­ler und hQ sind den Planet-3DNow!-Lesern schließ­lich längst bekannt. Sel­bi­ges gilt auch für die Koope­ra­ti­on mit Ora­cle beim Pro­jekt Suma­tra, die zum Ziel hat, die aktu­el­le Ent­wick­lung zur Befä­hi­gung der Java Vir­tu­al Machi­ne (JVM), Mehr­kern-CPUs und GPUs zur Beschleu­ni­gung ver­wen­den zu kön­nen, für Java9 (vor­aus­sicht­lich 2015) um eine Unter­stüt­zung von HSA zu erwei­tern. Als Zwi­schen­schritt und zur Über­brü­ckung soll HSA in Java bereits 2014 mit Java8 durch einen Umweg über Apa­ra­pi genutzt wer­den kön­nen. Das beson­ders gut par­al­le­li­sier­ba­re NBo­dy-Bei­spiel muss mal wie­der zur Demons­tra­ti­on als Bench­mark herhalten:

Neben Apa­ra­pi und dem Suma­tra-Pro­jekt für das OpenJDK unter­nimmt AMD auch in ande­ren Soft­ware­be­rei­chen Anstren­gun­gen. Dazu gehört die den P3D-Lesern bereits bekann­te Zusam­men­ar­beit mit The Port­land Group (PGI), in deren Rah­men der Open­ACC-Com­pi­ler von PGI befä­higt wer­den soll, neben Intel Xeon Phi und NVIDIA Tes­la auch APUs und dGPUs von AMD anspre­chen zu kön­nen. Open­ACC ist eine im HPC-Umfeld sehr belieb­te API, die ähn­lich wie OpenMP auf Direk­ti­ven basiert und spe­zi­ell für den Ein­satz von Beschleu­ni­ger­kar­ten von CAPS, Cray, NVIDIA und PGI erschaf­fen wur­de. Im Fal­le der AMD-Hard­ware setzt der Com­pi­ler die Direk­ti­ven dann nicht durch Nut­zung von CUDA, son­dern Open­CL um. Pro­ble­ma­tisch hier­bei ist jedoch, dass wäh­rend des lau­fen­den Pro­jekts PGI, die seit den Tagen des ers­ten Opte­rons 2002 ein enger Part­ner AMDs war, von NVIDIA auf­ge­kauft wur­de. Laut Mar­ga­ret Lewis haben sich dar­auf­hin die betei­lig­ten Teams von PGI und AMD zusam­men­ge­setzt und gemein­sam beschlos­sen, das lau­fen­de Pro­jekt bis zum Ende durch­zu­zie­hen. Wie es danach wei­ter­geht, ist aller­dings unklar. Die Hoff­nung ist hier, dass PGI mög­lichst die Beschleu­ni­ger von allen Her­stel­lern (AMD, Intel und NVIDIA) unter­stüt­zen will, was den Com­pi­ler für Kun­den attrak­ti­ver macht. Der­zeit steht eine Test­ver­si­on des Open­ACC-Com­pi­lers mit Unter­stüt­zung für APUs und dGPUs von AMD zur Ver­fü­gung und die fina­le Ver­si­on soll 2014 folgen.

Weni­ger bekannt, aber auch nicht neu sind die Bemü­hun­gen von AMD in Koope­ra­ti­on mit SUSE, die Open-Source-Gemein­de bei der Imple­men­tie­rung eines HSA-Back-Ends in die GNU Com­pi­ler Coll­ec­tion (GCC) zu unter­stüt­zen. Der gewähl­te Weg führt hier über die OpenMP-Direk­ti­ven in der Ver­si­on 4.0, die bereits seit vie­len Jah­ren zur Par­al­le­li­sie­rung auf Mehr­kern- und Mul­ti-Pro­zes­sor­sys­te­men zum Ein­satz kom­men. AMD und SUSE ori­en­tie­ren sich hier­bei an den von Open­ACC genutz­ten Direktiven.

Zu guter Letzt weist AMD noch auf sei­ne Soft­ware­bi­blio­thek APPML hin, die inzwi­schen als Open-Source-Pro­jekt unter dem neu­en Namen clMath ver­öf­fent­licht wur­de. Dar­in sind in Open­CL imple­men­tier­te, hoch opti­mier­te Funk­tio­nen ent­hal­ten, mit denen sich bei­spiels­wei­se die Fast-Fou­rier-Trans­for­ma­ti­on (FFT) und die Basic Line­ar Alge­bra Sub­pro­grams der Level 1 bis 3 berech­nen las­sen. Von jenen Rechen­ope­ra­tio­nen wird in wis­sen­schaft­li­chen Anwen­dun­gen häu­fig Gebrauch gemacht. Dank sol­cher Biblio­the­ken muss sich der Nut­zer sel­ber weni­ger Gedan­ken über die zugrun­de­lie­gen­de Hard­ware und die Open­CL-Pro­gram­mier­platt­form machen. Acce­le­rEyes nutzt wie­der­um die clMath-Biblio­thek, um über das eige­ne Soft­ware­pa­ket Array­Fi­re 2.0 eine noch ein­fa­cher benutz­ba­re Schnitt­stel­le zur Ver­wen­dung der GPU sowohl unter Win­dows als auch Linux anzu­bie­ten. Array­Fi­re kann zusätz­lich auch NVIDIA GPUs über CUDA oder Intels Xeon Phi über Open­CL nutzen.

Das Ent­wick­ler-Tool CodeXL hat­ten wir bereits zu sei­nem ers­ten Release vor­ge­stellt und auch von den Neue­run­gen der aktu­el­len Ver­si­on 1.3 mehr­fach berich­tet. Die aus Ser­ver-Sicht wich­tigs­te Neue­rung ist die Mög­lich­keit, das Tool nicht län­ger nur auf der Enwick­ler-Work­sta­tion, son­dern jetzt auch per Remo­te-Zugriff auf dem eigent­li­chen Ser­ver-Node ver­wen­den zu können.

Neben den typi­schen Mar­ke­ting­phra­sen (“gai­ning momen­tum”) gibt es zum Abschluss noch eine gute Über­sichts­fo­lie über HSA, APUs und deren Soft­ware­ein­satz­ge­bie­te zu sehen. Dort sieht man schön, dass sich das OS um den HSA-Ver­bund aus CPU+GPU+Speicher küm­mert, alte (Lega­cy-) Soft­ware nur auf der CPU-Sei­te (links) läuft, wäh­rend HSA dann den Gesamtraum ein­nimmt. Zudem wird hier noch­mals deut­lich gemacht, dass HSA zwar ursprüng­lich in ers­ter Linie ent­wi­ckelt wur­de, um das Zusam­men­spiel zwi­schen CPU und GPU zu opti­mie­ren, dies aber längst auch auf ande­re Beschleu­ni­ger erwei­tert wurde.

Mit Hil­fe der auf “Kaveri” vor­han­de­nen Kom­bi­na­ti­on aus UVD, VCE und TrueAu­dio-DSPs lie­ße sich bei­spiels­wei­se sehr ener­gie­ef­fi­zi­ent die Trans-/En­ko­die­rung von Bild und Ton eines Video­streams nahe­zu ohne jeg­li­che Belas­tung der x86-CPU-Ker­ne rea­li­sie­ren. Poten­ti­el­le Anwen­dun­gen hier­für wären die Trans­ko­die­rung von Vide­os, Fil­te­rung von Audio­si­gna­len oder das auf­stre­ben­de Cloud Gam­ing. Um Ent­wick­lern die Nut­zung der fest­ver­drah­te­ten Ein­hei­ten zu erleich­tern, ent­wi­ckelt AMD das Media SDK, zu dem es auf der APU13 auch einen eige­nen Vor­trag gab. Lei­der ste­hen hier­von die Foli­en noch immer nicht zur Verfügung.

Im Rah­men unse­rer aus­führ­li­chen Bericht­erstat­tung zur APU13 hat­ten wir uns auch schon mit ande­ren Soft­ware­pro­jek­ten von AMD befasst. Stell­ver­tre­tend sei­en der Linux-Open-Source-Com­pi­ler für C++ AMP, Text­ana­ly­se mit­tels Hadoop und Big-Data sowie B+-Bäume in Daten­ban­ken genannt.

Abzu­war­ten bleibt aller­dings wei­ter­hin, was die APUs tat­säch­lich im Ser­ver-Ein­satz zu leis­ten im Stan­de sind. Dank der HSA-Fea­tures und den dadurch kür­zer aus­fal­len­den Laten­zen haben die APUs zudem das Poten­ti­al, für das GPG­PU-Com­pu­ting neue Anwen­dungs­fel­der zu erschlie­ßen. Hier könn­te aller­dings ins­be­son­de­re die vom Spei­cher­in­ter­face bereit­ge­stell­te Band­brei­te schnell zu einem neu­en Fla­schen­hals wer­den. Inter­es­sant wird aber auch der Ver­gleich zu Kom­bi­na­tio­nen aus CPUs und aus­ge­wach­se­nen Beschleu­ni­ger­kar­ten vom Schla­ge einer NVDIA Tes­la K40 oder Intel Xeon Phi 7100, die in zuneh­men­dem Maße in Super­com­pu­tern zum Ein­satz kom­men. Ein sol­cher Ver­gleich wür­de natür­lich erst im grö­ße­ren Maß­stab Sinn machen. AMD sieht hier die Mög­lich­keit, mit APUs Sys­te­me zu bau­en, die mehr real nutz­ba­re Rechen­leis­tung auf enge­rem Raum (leich­ter zu küh­len) bei gerin­ge­rer Leis­tungs­auf­nah­me bieten.

Knack­punkt für “Ber­lin” dürf­te aber sein, wann der not­wen­di­ge HSA-Soft­ware-Stack zur Ver­fü­gung steht. Auf Sei­ten des Betriebs­sys­tems muss für HSA offen­bar ledig­lich die Unter­stüt­zung für AMDs I/O‑Virtualisierungslösung IOMMU v2.5 vor­han­den sein. Für Linux wur­den bereits ent­spre­chen­de Patches in den Ker­nel inte­griert. Wie es bei den Betriebs­sys­te­men von Micro­soft aus­sieht, ist nicht klar.

Laut die­sem offi­zi­el­len Fahr­plan wird der HSA-Soft­ware-Stack vor­aus­sicht­lich erst im zwei­ten Quar­tal 2014 ver­füg­bar. Ein zwei­ter Release ist dann für das ers­te Quar­tal 2015 geplant, mit dem dann auch der neue Stan­dard Open­CL 2.0 voll­stän­dig unter­stützt wer­den soll.

Auf den nach­fol­gen­den Sei­ten haben wir die Foli­en von eini­gen inter­es­san­ten Prä­sen­ta­tio­nen von der APU13 eingestellt.

Quel­len: