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: