AMD Catalyst Omega: Spezialedition vom Treiberpaket bringt Downsampling für Radeons und viele weitere Neuerungen

Artikel-Index:

OpenCL 2.0 & Entwickler-Tools

Tools für Spieleentwickler

Im Gegen­satz zu NVI­DI­As Black-Box-Stra­te­gie bei der Imple­men­tie­rung von Game­Works-Effek­ten in PC-Spie­le setzt AMD beim eige­nen Rade­on SDK auf die frei zugäng­li­che Bereit­stel­lung von Quell­code für die ein­zel­nen Effek­te. Ent­wick­ler­stu­di­os kön­nen die­sen Code als Basis ver­wen­den und nach den eige­nen Bedürf­nis­sen anpas­sen und opti­mie­ren. Teil die­ser Effek­te ist auch die Haar­si­mu­la­ti­on Tress­FX, mit der Lara Croft 2013 erst­mals rea­li­täts­na­he Haa­re erhielt. Mit der Ver­si­on 3.0 kann Tress­FX jetzt auch für die Simu­la­ti­on von Fell ver­wen­det wer­den. Ein ein­spre­chen­des Demo­vi­deo soll im Lau­fe des Tages ver­füg­bar wer­den. Sel­bi­ges gilt für den Quellcode.

Für die Opti­mie­rung von PC-Spie­len und ande­ren 3D-Anwen­dun­gen stellt AMD das Tool GPU Perf­Stu­dio bereit. Die wich­tigs­te Neue­rung in Ver­si­on 3.1 dürf­te die Unter­stüt­zung für die eige­ne 3D-API Man­t­le sein. Zudem wur­de neben all­ge­mei­nen Opti­mie­run­gen ein GPU Shader Ana­ly­zer inte­griert und die OpenGL-Unter­stüt­zung auf Ver­si­on 4.4 erwei­tert. Die neue Ver­si­on soll noch heu­te zum Down­load auf der Ent­wick­ler­sei­te von AMD bereit­ge­stellt werden.

OpenCL 2.0

Abseits von 3D-Anwen­dun­gen setzt AMD für die Aus­la­ge­rung von Berech­nun­gen von der CPU auf die GPU in ers­ter Linie auf Open­CL. Mit dem Cata­lyst Ome­ga lie­fert der klei­ne x86-Rie­se den ers­ten sta­bi­len Trei­ber mit voll­stän­di­ger Unter­stüt­zung für die OpenCL‑2.0‑Core-Features und eini­ge her­stel­ler­spe­zi­fi­sche Erwei­te­run­gen. Das zuge­hö­ri­ge APP SDK 3.0 mit­samt der für Ent­wick­ler wich­ti­gen aktua­li­sier­ten Doku­men­ta­ti­on wird eben­falls im Lau­fe des Tages ver­öf­fent­licht. Dar­in sol­len dann auch Code­bei­spie­le ent­hal­ten sein, um inter­es­sier­ten Ent­wick­lern den Ein­stieg in Ver­si­on 2.0 der Open Com­pu­ting Lan­guage zu erleich­tern. Wel­che Hard­ware kom­pa­ti­bel zum OpenCL‑2.0‑Standard ist, bleibt bis dahin unge­klärt. Aktu­ell deu­tet alles dar­auf hin, dass ledig­lich die Kaveri-APUs sowie Gra­fik­kar­ten auf Basis der jün­ge­ren GCN-GPUs (Ton­ga, Hawaii und Bon­aire) über die not­wen­di­gen Hard­ware-Vor­aus­set­zun­gen ver­fü­gen – gänz­lich klar ist die Situa­ti­on aber nicht. Im Vor­lauf wur­den bereits Blogs zu eini­gen wich­ti­gen Neue­run­gen ver­öf­fent­licht (Shared Vir­tu­al Memo­ry, Pipes, Device Enqueue and Work­group Built-in Func­tions).

Anhand der Anwen­dung Corel AfterShot Pro 2.1.1.9 (64-Bit-Ver­si­on), die dem Her­stel­ler zufol­ge Open­CL 2.0 nut­zen kann, haben wir einen Ver­gleich (Test­sys­tem) zwi­schen den Lauf­zeit­um­ge­bun­gen mit (Open­CL 2.0 Ver­si­on 1642.5, Cata­lyst Ome­ga) und ohne Unter­stüt­zung für Open­CL 2.0 (Open­CL 1.2 Ver­si­on 1445.5, Cata­lyst 14.4 WHQL) vor­ge­nom­men. Da uns kei­ne genaue Auf­lis­tung dar­über vor­liegt, wel­che Fil­ter von Corel wie umge­setzt wur­den, haben wir uns für den Fil­ter “loka­ler Kon­trast” ent­schie­den. Die­ser wur­de näm­lich zum “Kaveri”-Start von AMD zur Demons­tra­ti­on der HSA-beschleu­nig­ten Open­CL-Lauf­zeit­um­ge­bung her­an­ge­zo­gen. Laut dama­li­gem Review­er Gui­de soll die Imple­men­tie­rung des Fil­ters von Shared Vir­tu­al Memo­ry pro­fi­tie­ren kön­nen, was Teil von Open­CL 2.0 ist und von “Kaveri” in Form des HSA-Fea­tures hUMA unter­stützt wird. Damals war die­ser Fil­ter noch nicht Bestand­teil von AfterShot Pro, wes­halb von der Pres­se Modi­fi­ka­tio­nen am Pro­gramm vor­ge­nom­men wer­den muss­ten, um den Fil­ter ver­wen­den zu kön­nen. In Ver­si­on 2.x gehört er jetzt aber zum nor­ma­len Funk­ti­ons­um­fang des Bild­be­ar­bei­tungs­pro­gramms. Als Bench­mark dient die Anwen­dung des bereits erwähn­ten Fil­ters “loka­ler Kon­trast” auf 21 Bil­der, die im RAW-For­mat vor­lie­gen und eben­falls aus dem dama­li­gen Bench­mark­pa­ket von AMD stam­men, sowie deren Aus­ga­be im JPEG-For­mat. Nach Been­di­gung der Umwand­lung zeigt AfterShot Pro die benö­tig­te Gesamt­zeit an, wel­che wir notieren.

Kom­men allein die zwei “Steamroller”-Module der APU A10-7850K zum Ein­satz, dau­ert die Umwand­lung zwi­schen 12,952 und 13,406 s, wobei alle vier x86-Ker­ne voll aus­ge­las­tet wer­den. Mit Hil­fe der OpenCL‑1.2‑Beschleunigung hal­biert sich die Berech­nungs­zeit auf 5,909 bis 7,660 s, was auf dem Niveau liegt, wel­ches damals mit der AfterShot-Pro-Pres­se­ver­si­on und der HSA-beschleu­nig­ten Open­CL-Lauf­zeit­um­ge­bung erzielt wer­den konn­te. Hier­bei spielt es in unse­ren Mes­sun­gen kei­ne Rol­le, wel­che Open­CL-Beschleu­ni­gungs­stu­fe in AfterShot Pro 2 gewählt ist. Dar­an ändert sich bei Ver­wen­dung der OpenCL‑2.0‑Laufzeitumgebung des Cata­lyst Ome­ga kaum etwas. Auch hier beob­ach­ten wir star­ke Schwan­kun­gen zwi­schen den ein­zel­nen Mes­sun­gen bei glei­cher Beschleu­ni­gungs­stu­fe. Wel­che Open­CL-Stu­fe akti­viert ist, spielt eben­falls kaum eine Rol­le. Über alle vier Stu­fen mit jeweils drei Mes­sun­gen schwan­ken die Ergeb­nis­se zwi­schen 5,845 und 6,989 s.

Eine mög­li­che Erklä­rung für die­ses Ergeb­nis ist, dass laut dem dama­li­gen Review­er Gui­de Shared Vir­tu­al Memo­ry in ers­ter Linie als Mög­lich­keit beschrie­ben wird, die Ent­wick­lungs­zeit zu ver­kür­zen und Opti­mie­run­gen zu ver­ein­fa­chen. Wird dem­nach ent­spre­chend viel Zeit in die Opti­mie­rung der OpenCL‑1.2‑Implementierung gesteckt, kann die­se eine mit einer OpenCL‑2.0‑Implementierung ver­gleich­ba­re Per­for­mance errei­chen. Haupt­vor­teil von Open­CL 2.0 wäre dem­nach die ver­kürz­te Ent­wick­lungs­zeit, wel­che für die Errei­chung eines bestimm­ten Ziels benö­tigt wird.

Was aller­dings wei­ter­hin auf sich war­ten lässt, ist die HSA-Lauf­zeit­um­ge­bung als opti­mier­ter Unter­bau für Open­CL. HSA exis­tiert abge­se­hen von der Open-Source-Imple­men­tie­rung für Linux, die sich aktu­ell aus­schließ­lich an Ent­wick­ler rich­tet, somit für den End­kun­den wei­ter­hin nur auf bun­ten Foli­en. AMD hat uns in die­sem Zusam­men­hang bestä­tigt, dass der mit dem Cata­lyst-Trei­ber­pa­ket aus­ge­lie­fer­te JPEG-Deco­der Open­CL nutzt und nicht wie anfangs komu­ni­ziert HSA.

CodeXL 1.6

Das Tool AMD CodeXL, wel­ches kos­ten­los zum Ana­ly­sie­ren und Debug­gen von Open­CL-Ker­nel bereit­ge­stellt wird, bie­tet mit der neu­en Ver­si­on 1.6 neben der Unter­stüt­zung für Open­CL 2.0 auch die Mög­lich­keit zur Mes­sung von Leis­tungs­auf­nah­me, Takt­fre­quen­zen, Span­nun­gen und Tem­pe­ra­tu­ren ein­zel­ner Funk­ti­ons­ein­hei­ten einer APU an. Damit kön­nen Ent­wick­ler fort­an nicht nur die Aus­füh­rungs­ge­schwin­dig­keit des Codes ana­ly­sie­ren, son­dern auch des­sen Ener­gie­ef­fi­zi­enz. Dies dürf­te ins­be­son­de­re bei der Ent­schei­dung wich­tig sein, wel­che Teil­be­rech­nun­gen auf den CPU-Ker­nen aus­ge­führt und wel­che auf die GPU aus­ge­la­gert wer­den. Die Ver­si­on 1.6 von CodeXL unter­stützt die­se Funk­tio­na­li­tät für die APUs Kaveri und Mullins/Beema. Ver­öf­fent­licht wer­den soll die neue Ver­si­on am 15. Dezember.

Auf der letz­ten Sei­te fin­det Ihr schließ­lich den voll­stän­di­gen Foliensatz.