AMD veröffentlicht Preview-Versionen kommender Entwicklertools

AMD hat auf sei­ner Ent­wick­ler­sei­te Pre­view-Ver­sio­nen der kom­men­den Ent­wick­ler­tools Acce­le­ra­ted Par­al­lel Pro­ces­sing (APP) Soft­ware Deve­lo­p­ment Kit (SDK) 2.9, CodeXL 1.3 sowie Bolt 1.1 zum Down­load bereit­ge­stellt. Außer­dem wird inter­es­sier­ten Tes­tern ein soge­nann­ter “Friends-of-AMD”-Gutschein für die Teil­nah­me am AMD Deve­lo­per Sum­mit 2013 (APU13) in Aus­sicht gestellt, auf dem dann die neu­en Ver­sio­nen offi­zi­ell vor­ge­stellt wer­den sol­len. Jenen Gut­schein sol­len die ers­ten 100 Teil­neh­mer erhal­ten, wel­che die neu­en Ver­sio­nen der Tools getes­tet und anschlie­ßend einen Fra­ge­bo­gen aus­ge­füllt haben. Wie groß der Preis­nach­lass gegen­über dem Nor­mal­preis von 695,- US-Dol­lar aus­fällt, dazu schweigt sich AMD in sei­nem Blog-Post jedoch aus. Für Kurz­ent­schlos­se­ne könn­te sich ein Blick jedoch lohnen.

AMD APP SDK 2.9

Das AMD APP SDK ist AMDs Lösung zur Ent­wick­lung par­al­le­li­sier­ter Soft­ware auf Basis der Open­CL-Pro­gram­mier­platt­form. Mit der Ver­öf­fent­li­chung neu­er APP SDKs wer­den vor allem die Doku­men­ta­ti­on auf den neu­es­ten Stand gebracht und die Pro­gram­mier­bei­spie­le ergänzt bzw. über­ar­bei­tet. Zudem nutzt AMD die Gele­gen­heit, um neue Ver­sio­nen sei­ner Tools zu ver­öf­fent­li­chen. Die Open­CL-Lauf­zeit­um­ge­bung lie­fert AMD mitt­ler­wei­le als fes­ten Bestand­teil der Cata­lyst-Trei­ber­pa­ke­te aus, sodass die­se ste­tig wei­ter­ent­wi­ckelt wird.

AMD APP SDK v2.9 inclu­des the fol­lowing new features:

  • Linux sup­port for Bolt: As the next step toward broad cross-OS sup­port, Bolt now adds sup­port for Linux. Bolt can be built with GCC 4.6.3 and abo­ve, and will run on the fol­lowing dis­tri­bu­ti­ons: Open­Su­se 12.3, RHEL 6.4 64-bit, RHEL 6.3 32-bit, and Ubun­tu 13.
  • Bolt: Mul­ti­Core code paths have been added for all the rou­ti­nes inclu­ding the new rou­ti­nes. All the rou­ti­nes now sup­port the Open­CL™, Mul­ti­Core CPU (TBB), and Seri­al paths. One new sam­ple has been added to demons­tra­te the use of the fea­tures of Bolt 1.1. For infor­ma­ti­on on the per­for­mance impro­ve­ments, see 1.3, “Key fea­tures sup­por­ted in Bolt 1.1”.
  • Open­CV: AMD has been working clo­se­ly with the Open­CV open source com­mu­ni­ty to add hete­ro­ge­ne­ous acce­le­ra­ti­on capa­bi­li­ty to the world’s most popu­lar com­pu­ter visi­on libra­ry. The­se chan­ges are alrea­dy inte­gra­ted into Open­CV and are rea­di­ly avail­ab­le for deve­lo­pers who want to impro­ve the per­for­mance and effi­ci­en­cy of their com­pu­ter visi­on app­li­ca­ti­ons. The new sam­ples illus­tra­te the­se impro­ve­ments and high­light how simp­le it is to inclu­de them in your app­li­ca­ti­on. For infor­ma­ti­on on the latest Open­CV enhan­ce­ments, see Har­ris’ blog.
  • AMD APP SDK 2.9 also inclu­des new Open­CL, Bolt 1.1, and Open­CV sam­ples including:
  • New Open­CL samples:
    – Dyna­mi­cO­pen­CLDe­tec­tion: A sam­ple that shows how to dyna­mi­cal­ly detect Open­CL plat­form avai­la­bi­li­ty on a machi­ne and accord­in­gly run eit­her an Open­CL ver­si­on or a sequen­ti­al ver­si­on of the application.
    – KMe­ans­Au­to­Clus­te­ring: A sam­ple that demons­tra­tes the clus­te­ring of a given set of points into the most fit­ting num­ber of clus­ters using the K‑means clus­te­ring algo­rithm and the Sil­hou­et­te method.
    – Buf­ferIma­ge­In­terOp: A sam­ple that demons­tra­tes the inter­ope­ra­bi­li­ty bet­ween an Open­CL Image object and the Open­CL buf­fer object.
    – SimpleDX9: A sam­ple that demons­tra­tes the inter­ope­ra­bi­li­ty bet­ween an Open­CL buf­fer and a DirectX9 buffer.
    – Asyn­cData­Trans­fer: A sam­ple that demons­tra­tes how to harness asyn­chro­nous memo­ry trans­fer in Open­CL. The sam­ple shows the over­lap of ker­nel exe­cu­ti­on and data trans­fer in a device.
    – Con­cur­rent­Ker­nels: A sam­ple that demons­tra­tes how to exe­cu­te more than one ker­nel con­cur­r­ent­ly using mul­ti­ple com­mand queues.
  • New BOLT sample:
    – Per­lin­Noi­se: A sam­ple that imple­ments the Per­lin noi­se visu­al effect using Bolt. The sam­ple gene­ra­tes noi­se simi­lar to a cloud, which gets stored as a 2D Image.
  • New Open­CV sample:
    – Ges­tu­r­e­Reco­gni­ti­on: A sam­ple that demons­tra­tes ges­tu­re reco­gni­ti­on using Open­NI libra­ries and the inter­ope­ra­bi­li­ty bet­ween Open­CV-CL and Open­NI. This sam­ple works with .oni files and live feed from a 3D depth camera.
  • AMD APP SDK 2.9 inclu­des sup­port for the CMake build tool, which is popu­lar among the deve­lo­per com­mu­ni­ty. For Win­dows, in addi­ti­on to CMake, Visu­al Stu­dio sup­port is available.
  • AMD APP SDK 2.9 inclu­des the AMD SDK Sam­ple Brow­ser. The AMD SDK Sam­ple Brow­ser pro­vi­des users with a uni­fied GUI inter­face to brow­se through the various sam­ples pre­sent in AMD’s SDKs and to access code, bench­marks, and docu­men­ta­ti­on rela­ted to the sam­ples. The AMD SDK Sam­ple Brow­ser allows users to run advan­ced sear­ches, inclu­ding full text sear­ches, based on the SDK type, com­ple­xi­ty, tech­no­lo­gy, and con­tent of the samples.
  • AMD APP SDK 2.9 also inclu­des a com­po­nent-based instal­ler, which installs com­pon­ents based on the com­po­nent selec­tions made.

CodeXL 1.3

CodeXL ist eine Tool-Samm­lung, die bei der Ent­wick­lung von Soft­ware für hete­ro­ge­ne Sys­te­me bestehend aus CPUs und GPUs hilf­reich sein soll. Hier­zu stellt CodeXL Funk­tio­nen bereit, mit denen sich leich­ter Per­for­mance­pro­ble­me und Pro­gram­mier­feh­ler ohne Modi­fi­ka­tio­nen am Pro­gramm­code iden­ti­fi­zie­ren las­sen. Eine Anlei­tung sowie wei­te­re Infor­ma­tio­nen las­sen sich auf der Pro­dukt­sei­te fin­den.

The fol­lowing new fea­tures for AMD CodeXL ver­si­on 1.3 expand plat­form sup­port and provide
impro­ve­ments to the deve­lo­per experience:

  • Remo­te GPU debug­ging and pro­filing to enab­le ser­ver and embed­ded customers.
  • The CPU Pro­fi­ler now sup­ports Java inli­ne func­tions, has a revi­sed Source Code view for bet­ter navi­ga­ti­on and usa­bi­li­ty, and con­tains a new pro­fi­le ses­si­on type for sam­pling Cache Line Utilization.
  • Sta­tic Open­CL Ker­nel Ana­ly­sis is now inte­gra­ted into CodeXL app­li­ca­ti­on and Visu­al Stu­dio exten­si­on, using a brand new user expe­ri­ence. The ana­ly­sis modu­le sup­ports the Sou­thern Islands and Sea Islands fami­lies of GPUs.
  • THe debug­ger sup­port was exten­ded to the API, sta­te varia­bles and shader types of OpenGL up to and inclu­ding OpenGL 4.3, and to the API of Open­CL 1.2.

Bolt 1.1

Die HSA Bolt libra­ry stellt opti­mier­te Rou­ti­nen für aller­hand Stan­dard­an­wen­dungs­fäl­le bereit und soll dabei so ange­legt sein, dass sie auf allen Sys­te­men genutzt wer­den kann, die zur Hete­ro­ge­ne­ous Sys­tem Archi­tec­tu­re (HSA) kom­pa­ti­bel sind. All­ge­mein wur­de laut AMD bei der Defi­ni­ti­on der ein­zel­nen HSA-Kom­po­nen­ten gro­ßer Wert auf die Por­ta­bi­li­tät der hier­mit erstell­ten Anwen­dun­gen gelegt, wes­halb die Pro­gram­mie­rung unab­hän­gig von der Ziel­hard­ware erfol­gen kann. Ledig­lich der HSA Fina­li­zer und der HSA Ker­nel Dri­ver sind her­stel­ler­spe­zi­fisch. Außer­dem stellt die Biblio­thek sicher, dass die Anwen­dung zumin­dest auf den CPU-Ker­nen läuft, wenn das jewei­li­ge Sys­tem die APIs C++ AMP oder Open­CL nicht unter­stützt. Mit der Bereit­stel­lung die­ser Biblio­thek möch­te AMD die Kom­ple­xi­tät und Ent­wick­lungs­zeit redu­zie­ren, sodass nicht län­ger aus­schließ­lich weni­ge Exper­ten hete­ro­ge­ne Sys­te­me pro­gram­mie­ren kön­nen. C++-Entwickler sol­len mit Hil­fe die­ser Biblio­thek in der Lage sein, ihre daten­par­al­le­len Anwen­dun­gen zu beschleu­ni­gen, ohne genaue Kennt­nis­se über die Pro­gram­mie­rung mit Hil­fe von C++ AMP oder Open­CL haben zu müssen.

Zwi­schen­zeit­lich hat AMD den Bolt-Code ver­öf­fent­licht und treibt die Ent­wick­lung als Open-Source-Pro­jekt vor­an. Die wich­tigs­te Neue­rung in Bolt 1.1 dürf­te die Unter­stüt­zung von Linux sein. Zuvor wur­de aus­schließ­lich Win­dows unter­stützt. Außer­dem sind eini­ge Funk­tio­nen neu hin­zu­ge­kom­men und für bestehen­de will man die Per­for­mance um bis zu 400 % ver­bes­sert haben. In den Release Notes ist eine voll­stän­di­ge Lis­te sämt­li­cher der­zeit unter­stüt­zen Funk­tio­nen zu finden.

Key fea­tures sup­por­ted in Bolt 1.1

  • Bolt func­tions can be exe­cu­t­ed with four code paths (Open­CL™, C++ AMP, Mul­ti­Core CPU (TBB), and Seri­al CPU). The default mode is “Auto­ma­tic”: the GPU paths are first, then Mul­ti­Core CPU (TBB), then Seri­al CPU. The con­trol goes to the other paths only if the selec­ted path is not found. For­cing the mode to any code path will run the func­tion with that code path. All Bolt func­tions have Open­CL™, Mul­ti­Core CPU(TBB), and Seri­al path implementations.
  • The new func­tions are: binary_search, mer­ge, scat­ter, scatter_if, gather, and gather_if.
  • The fol­lowing rou­ti­nes for the Open­CL path demons­tra­te a 40–300% impro­ve­ment in
    per­for­mance: (sie­he Release Notes)
  • The fol­lowing Bolt func­tions and code paths are sup­por­ted for Bolt 1.1: (sie­he Release Notes)

 

Die Down­loads für die Pre­view-Ver­sio­nen des APP SDK 2.9, CodeXL 1.3 sowie Bolt 1.1 sind auf die­ser Sei­te zu fin­den und das Umfra­ge­for­mu­lar gibt es hier. Als Trei­ber, mit dem auch die aktu­ells­te Open­CL-Lauf­zeit­um­ge­bung aus­ge­lie­fert wird, emp­fiehlt AMD den Cata­lyst 13.11 Beta.

Quel­le: AMD — Entwickler-Blog