AMD veröffentlicht Windows- und Linux-Compiler für C++ AMP Version 1.2

2011 kün­dig­te Herb Sut­ter, Micro­soft Prin­ci­pal Archi­tect, auf AMDs Ent­wick­ler­kon­fe­renz AFDS (AMD Fusi­on Deve­lo­per Sum­mit, inzwi­schen in APU umbe­nannt) an, dass über die Pro­gram­mier­spra­che C++ künf­tig auch GPUs pro­gram­miert wer­den kön­nen sol­len (dama­li­ge News). Bis­her stan­den hier­für nur C++-ähnliche Lösun­gen wie bei­spiels­wei­se Open­CL C oder CUDA C++ zur Ver­fü­gung. Durch die Bereit­stel­lung der Biblio­thek C++ Acce­le­ra­ted Mas­si­ve Par­al­le­lism (C++ AMP) in Visu­al Stu­dio hofft Micro­soft die Pro­gram­mie­rung von par­al­le­len Anwen­dun­gen, die auf GPUs aus­ge­führt wer­den sol­len, stark zu ver­ein­fa­chen und einer wesent­lich grö­ße­ren Ent­wick­ler­grup­pe zugäng­lich zu machen. Schon damals ver­sprach Herb Sut­ter, dass die Spe­zi­fi­ka­ti­on von C++ AMP offen­ge­legt wer­de, sodass ande­re Unter­neh­men ihre eige­ne Imple­men­tie­rung rea­li­sie­ren kön­nen. Zwei Jah­re spä­ter ver­kün­de­te AMD auf der APU13, an einem Linux-Com­pi­ler für C++ AMP zu arbei­ten.

Die Ver­öf­fent­li­chung einer ers­ten Ver­si­on sowohl für Win­dows als auch Linux, die sich zunächst spe­zi­ell an inter­es­sier­te Ent­wick­ler rich­tet, hat AMD heu­te bekannt­ge­ge­ben. Mit dem Open-Source-Com­pi­ler wird die Ver­si­on 1.2 des C++-AMP-Stan­dards umge­setzt. Als Basis die­nen das Com­pi­ler-Front­end für die diver­sen C‑Programmiersprachen Clang und die Com­pi­ler­infra­struk­tur von LLVM. In C++ AMP geschrie­be­ne Pro­gram­me kön­nen dar­über in drei ver­schie­de­ne Aus­ga­be­for­ma­te über­setzt wer­den. Hier­zu gehö­ren die von der Khro­nos Group ver­wal­te­ten Stan­dards Open­CL und der her­stel­ler­un­ab­hän­gi­ge Zwi­schen­code SPIR, was bei­des nicht nur von AMD, son­dern auch von Apple, Intel und NVIDIA unter­stützt wird. Zusätz­lich kann als drit­tes Aus­ga­be­for­mat der Zwi­schen­code HSAIL ver­wen­det wer­den, wel­cher von der HSA Foun­da­ti­on spe­zi­fi­ziert wird. Letz­te­res kann aktu­ell nur von AMDs “Kaveri”-APUs ver­wen­det wer­den, wel­che über die not­wen­di­gen Hard­ware­vor­aus­set­zun­gen ver­fü­gen. Aller­dings ist der eben­falls not­wen­di­ge HSA-Soft­ware­stack noch nicht verfügbar.

AMD has a con­sis­tent track record of enri­ching the deve­lo­per expe­ri­ence, and we’re proud to make the first open source imple­men­ta­ti­on of C++ AMP available to enable grea­ter per­for­mance and more power-effi­ci­ent appli­ca­ti­ons. The cross-plat­form release is ano­ther step in streng­thening AMD’s deve­lo­per solu­ti­ons, allo­wing for increased pro­duc­ti­vi­ty and acce­le­ra­ted appli­ca­ti­ons through shared phy­si­cal memo­ry across the CPU and GPU on both Linux and Win­dows.” — Man­ju Heg­de, Cor­po­ra­te Vice Pre­si­dent, Hete­ro­ge­neous Appli­ca­ti­ons and Solu­ti­ons, AMD

Auch Micro­soft zeigt sich erfreut über die Ver­öf­fent­li­chung des ers­ten Linux-Com­pi­lers für C++ AMP. In wel­cher Form die eben­falls auf­ge­führ­te Zusam­men­ar­beit mit AMD bei der Umset­zung statt­ge­fun­den hat, ist jedoch unklar.

AMD con­ti­nues to deli­ver excel­lent deve­lo­per tools for hete­ro­ge­neous pro­gramming. Part­ne­ring with AMD to deli­ver C++ AMP to the Linux and Open Source com­mu­ni­ties was a natu­ral step for Micro­soft as we work to impro­ve the per­for­mance and deve­lo­per expe­ri­ence on modern com­pu­ting plat­forms.” — S. Soma­se­gar, Cor­po­ra­te Vice Pre­si­dent of the Deve­lo­per Divi­si­on at Microsoft.

Der Source Code des C++-AMP-Com­pi­lers kann hier ein­ge­se­hen werden.

Quel­le: Pres­se­mit­tei­lung