ЛЛВМ пројекат је представио ХПВМ 1.0, компајлер за ЦПУ, ГПУ, ФПГА и акцелераторе

Програмери пројекта ЛЛВМ објавили су издање компајлера ХПВМ 1.0 (Хетерогена паралелна виртуелна машина) са циљем да поједностави програмирање за хетерогене системе и обезбеди алате за генерисање кода за ЦПУ, ГПУ, ФПГА и хардверске акцелераторе специфичне за домен (подршка за ФГПА и акцелератори нису укључени у издање 1.0). Код пројекта се дистрибуира под лиценцом Апацхе 2.0.

Главна идеја ХПВМ-а је да обезбеди обједињено представљање паралелно извршних програма приликом компајлирања, који се могу користити за извршавање помоћу различитих типова хардвера који подржавају паралелно рачунарство, укључујући ГПУ, векторске инструкције, вишејезгарне процесоре, ФПГА и разне специјализоване акцелераторске чипове. За разлику од других система, ХПВМ је покушао да комбинује три могућности за организовање хетерогеног рачунарства: међурепрезентацију независно од језика и хардвера, архитектуру виртуелног скупа инструкција (ИСА) и временско планирање.

ХПВМ-ова средња репрезентација независна од циља (ИР) се заснива на ЛЛВМ 9.0 међурепрезентацији инструкција и проширује је са хијерархијским графиконом тока података како би ухватио паралелизам на нивоу задатака, података и цевовода. ХПВМ међурепрезентација такође укључује векторске инструкције и заједничку меморију. Основна сврха употребе средњег представљања је ефикасно генерисање кода и оптимизација за хетерогене системе.

Архитектура виртуелног скупа инструкција (ИСА) омогућава преносивост између различитих типова паралелног рачунарског хардвера и омогућава да се не изгубе перформансе када се користе различити елементи хетерогених система. Виртуелна ИСА се такође може користити за испоруку универзалног извршног програмског кода који може да ради помоћу ЦПУ-а, ГПУ-а, ФПГА-а и разних акцелератора.

У тренутној фази развоја, ХПВМ нуди генераторе кода способне да преведу апликационе чворове дефинисане коришћењем виртуелног ИСА за извршење помоћу НВИДИА ГПУ-а (цуДНН и ОпенЦЛ), Интел АВКС векторских инструкција и вишејезгарних к86 ЦПУ-а. Током рада, ХПВМ примењује флексибилне политике планирања рачунарских процеса, имплементиране и на основу програмских информација (структура графикона) и путем компајлирања појединачних програмских чворова за извршење на било ком од циљних рачунарских уређаја доступних у систему.

Напомиње се да се употребом ХПВМ-а може постићи значајно повећање продуктивности. Перформансе ХПВМ преводилаца су упоредиве са ручно писаним ОпенЦЛ кодом за ГПУ и векторске рачунарске уређаје.

У поређењу са првим издањем за преглед, ХПВМ 1.0 укључује подршку за тензорске операције линеарне алгебре, фронтенде за Питорцх и Керас, апроксимације конволуционих оператора и оквир за подешавање апроксимације који аутоматски бира оптималне апроксимације за специфичне тензорске операције и бира конфигурацију која обезбеђује оптималне перформансе.

Извор: опеннет.ру

Додај коментар