AMD kündigt Veröffentlichung von Open-Source-HSA-Softwarestack an

AMD hat am Sams­tag eine neue Patch-Samm­lung für den in der Ent­wick­lung befind­li­chen Hete­ro­ge­neous-Sys­tem-Archi­tec­tu­re-Trei­ber (AMDKFD-Ker­nel-Trei­ber) ver­öf­fent­licht, der einen wich­ti­gen Teil des HSA-Soft­ware-Stacks dar­stellt und zunächst aus­schließ­lich auf dem Open-Source-Linux-Gra­fik­trei­ber von AMD auf­setzt. Mit der nun­mehr fünf­ten Ver­si­on des AMDKFD-Trei­bers haben die Ent­wick­ler neben Bug­fi­xes und klei­ne­ren Ände­run­gen erst­mals Unter­stüt­zung für die HSA Archi­tec­ted Queue Lan­guage (AQL) hin­zu­ge­fügt, was das von der HSA Foun­da­ti­on stan­dar­di­sier­te Gegen­stück zu AMDs eige­nem Hete­ro­ge­neous Queu­ing (hQ) ist und damit prin­zi­pi­ell von der HSA-kom­pa­ti­blen Hard­ware aller Mit­glie­der der HSA Foun­da­ti­on unter­stützt wird.

In sei­nem Mai­ling­list-Ein­trag zur neu­en Patch-Samm­lung stellt der AMD-Ent­wick­ler Oded Gab­bay zudem die Ver­öf­fent­li­chung der Open-Source-HSA-Lauf­zeit­um­ge­bung für die­se Woche in Aus­sicht. Hier­zu feh­le ledig­lich noch die fina­le IP-Frei­ga­be. Zudem soll im Zuge des­sen auch der Quell­code eines voll funk­ti­ons­tüch­ti­gen Test-Pro­gramms (eine Matrix­mul­ti­pli­ka­ti­on) bereit­ge­stellt wer­den, mit dem der HSA-Soft­ware­stack aus­pro­biert wer­den kann. Es ist aller­dings anzu­mer­ken, dass es sich hier­bei zunächst um einen für die Ent­wick­lung wich­ti­gen Zwi­schen­schritt han­delt, damit über­haupt erst­mals unter Linux Open­CL-Anwen­dun­gen über den HSA-Stack aus­ge­führt wer­den kön­nen. Bis zu einer für den Pro­duk­tiv­ein­satz geeig­ne­ten Lösung muss noch eini­ges an Arbeit geleis­tet werden.

AMD-HSA-Open-Source-Plan
Von AMD ent­wi­ckel­te Bestand­tei­le für Open-Source-HSA-Software-Stack

Um die HSA-Lauf­zeit­um­ge­bung zu ver­wen­den, muss der Quell­code aller­dings zunächst off­line – also vor der Aus­füh­rung – mit­tels des Open­CL-Front-Ends Clang und eines modi­fi­zier­ten r600-LLVM-Back-Ends in Maschi­nen­code über­setzt wer­den. Mit dem hier­durch erzeug­ten Binär­code wird dann die HSA-Lauf­zeit­um­ge­bung gefüt­tert. Wie ein wei­te­rer AMD-Open-Source-Ent­wick­ler, John Bridgman, im Forum von Pho­ro­nix erklärt, soll in einem zwei­ten Schritt die übli­che Kom­pi­lie­rung zur Pro­gramm­lauf­zeit (JIT-Kom­pi­ler) ermög­licht wer­den. Hier­zu müs­sen die not­wen­di­gen Rou­ti­nen zur Kom­mu­ni­ka­ti­on zwi­schen HSA- und Clover-Open­CL-Lauf­zeit­um­ge­bung noch imple­men­tiert wer­den. In einem drit­ten Schritt soll dann die Opti­on geschaf­fen wer­den, hard­wareun­ab­hän­gi­gen, von der HSA Foun­da­ti­on stan­dar­di­sier­ten HSAIL-Code zu erzeu­gen, den dann ein her­stel­ler­spe­zi­fi­scher soge­nann­ter HSA-Fina­li­zer zur Lauf­zeit in Maschi­nen­code über­setzt. Damit könn­te der HSAIL-Code auf belie­bi­gen HSA-Imple­men­tie­run­gen (Hard- & Soft­ware) unter­schied­li­cher Her­stel­ler aus­ge­führt werden.

Wann AMD den Code für den eige­nen HSA-Fina­li­zer, mit dem Maschi­nen­code für AMDs APUs und GPUs erzeugt wer­den kann, bereit­stel­len wird, ist unbe­kannt. Sel­bi­ges gilt für die Ver­öf­fent­li­chung der ers­ten Cata­lyst-Trei­ber mit inte­grier­tem HSA-Soft­ware­stack sowohl für Win­dows als auch Linux.

Quel­le: Pho­ro­nix