Праект LLVM прадставіў выпуск кампілятара HPVM 2.0 (Heterogeneous Parallel Virtual Machine), накіраванага на спрашчэнне праграмавання для гетэрагенных сістэм і які прадстаўляе сродкі для генерацыі кода для CPU, GPU, FPGA і прадметна-арыентаваных апаратных паскаральнікаў. Код праекту распаўсюджваецца пад ліцэнзіяй Apache 2.0.
Праграмаванне для гетэрагенных паралельных сістэм ускладнена з-за наяўнасці ў адной сістэме кампанентаў, якія выкарыстоўваюць розныя мадэлі дасягнення паралелізму (ядры CPU, вектарныя інструкцыі, GPU і да т.п.), розныя наборы інструкцый і розныя іерархіі памяці. У кожнай сістэме выкарыстоўваецца свая камбінацыя падобных кампанентаў. Асноўная ідэя праекта HPVM у выкарыстанні пры кампіляцыі ўніфікаванага падання паралельна выкананых праграм, якое можа ўжывацца для розных выглядаў абсталявання, які падтрымлівае распаралельванне вылічэнняў, уключаючы GPU, вектарныя інструкцыі, шмат'ядравыя працэсары, FPGA і розныя спецыялізаваныя чыпы-паскаральнікі.
У адрозненне ад іншых сістэм у HPVM паспрабавалі сумясціць тры магчымасці для арганізацыі гетэрагенных вылічэнняў - незалежнае ад мовы праграмавання і абсталявання прамежкавае прадстаўленне (IR), віртуальную архітэктуру набору каманд (V-ISA) і планаванне падчас выканання (runtime scheduling):
- Прамежкавае ўяўленне HPVM пашырае прамежкавае ўяўленне інструкцый LLVM ужываннем іерархічнага графа струменяў дадзеных, якія дазваляюць ахопліваць паралелізм на ўзроўні задач, дадзеных і вылічальных канвеераў. Прамежкавае ўяўленне HPVM таксама ўключае вектарныя інструкцыі і падзяляную памяць. Асноўнай мэтай прымянення прамежкавага прадстаўлення з'яўляецца эфектыўная генерацыя кода і аптымізацыі для гетэрагенных сістэм.
- Віртуальная архітэктура набору каманд (V-ISA) абстрагуе нізкаўзроўневыя асаблівасці абсталявання і ўніфікуе розныя формы паралелізму і архітэктуры памяці, выкарыстоўваючы толькі базавую мадэль забеспячэння паралелізму – граф патокаў дадзеных. V-ISA дазваляе дамагчыся пераноснасці паміж рознымі тыпамі абсталявання для раўналежных вылічэнняў і дае магчымасць не губляць прадукцыйнасць пры выкарыстанні розных элементаў гетэрагенных сістэм. Віртуальная ISA таксама можа прымяняцца для пастаўкі ўніверсальнага выкананага кода праграм, які можа запускацца з прыцягненнем CPU, GPU, FPGA і розных паскаральнікаў.
- Гнуткія палітыкі планавання вылічальнага працэсу прымяняюцца падчас выканання і рэалізуюцца як на аснове інфармацыі аб праграме (структуры графа), так і праз кампіляванне асобных вузлоў праграмы для выканання на любым з мэтавых вылічальных прылад, даступных у сістэме.
Развіваныя праектам генератары кода, здольныя трансляваць вузлы прыкладанняў, вызначаныя пры дапамозе віртуальнай ISA, для выканання з выкарыстаннем GPU NVIDIA (cuDNN і OpenCL), вектарных інструкцый Intel AVX, FPGA і шмат'ядравых CPU x86. Адзначаецца, што прадукцыйнасць вынікаў працы транслятараў HPVM супастаўная з напісаным уручную кодам OpenCL для GPU і вектарных вылічальных прылад.
Асноўныя навіны HPVM 2.0:
- Прапанаваны моўны фронтэнд Hetero-C++, які спрашчае распаралельванне кода прыкладанняў на мовах C/C++ для кампіляцыі ў HPVM. Hetero-C++ вызначае пашырэнні для паралелізму на ўзроўні дадзеных і іерархічных задач, пераўтвораныя ў графы струменяў HPVM.
- Дададзены бэкэнд FPGA, які забяспечвае падтрымку выканання кода на FPGA вытворчасці Intel. Для арганізацыі выканання выкарыстоўваецца Intel FPGA SDK для OpenCL.
- Дададзены фрэймворк DSE (Design Space Exploration), які ўключае аптымізацыі кампілятара і механізмы выяўлення вузкіх месцаў для аўтаматычнага цюнінгу прыкладанняў для зададзенай апаратнай платформы. Фрэймворк утрымоўвае гатовую мадэль прадукцыйнасці для FPGA ад Intel і дае магчымасць падлучаць уласныя апрацоўшчыкі для аптымізацыі пад любыя прылады, якія падтрымліваюцца HPVM. Аптымізацыі могуць прымяняцца як на ўзроўні графа патокаў дадзеных HPVM, так і на ўзроўні LLVM.
- Кампаненты LLVM абноўлены да версіі 13.0.
- Праведзена рэарганізацыя кода, накіраваная на спрашчэнне навігацыі па кодавай базе, бібліятэкам і ўтылітам.
- Палепшана інфраструктура для тэсціравання, дададзены новыя тэсты розных кампанентаў HPVM.
Крыніца: opennet.ru