Праект LLVM прадставіў HPVM 1.0, кампілятар для CPU, GPU, FPGA і паскаральнікаў

Распрацоўнікі праекту LLVM апублікавалі выпуск кампілятара HPVM 1.0 (Heterogeneous Parallel Virtual Machine), накіраванага на спрашчэнне праграмавання для гетэрагенных сістэм і які прадстаўляе сродкі для генерацыі кода для CPU, GPU, FPGA і прадметна-арыентаваных апаратных паскаральнікаў у падтрымка FGPA і ў выпуску FGPA і ў выпуску FGPA ). Код праекту распаўсюджваецца пад ліцэнзій Apache 1.0.

Асноўная ідэя HPVM у тым, каб выкарыстоўваць пры кампіляцыі ўніфікаванае ўяўленне раўналежна выкананых праграм, якое можа ўжывацца для выканання з выкарыстаннем розных выглядаў абсталявання, які падтрымлівае распаралельванне вылічэнняў, уключаючы GPU, вектарныя інструкцыі, шмат'ядравыя працэсары, FPGA і розныя спецыялізаваныя чыпы-паскаральнікі. У адрозненне ад іншых сістэм у HPVM паспрабавалі сумясціць тры магчымасці для арганізацыі гетэрагенных вылічэнняў: незалежнае ад мовы праграмавання і абсталяванні прамежкавае ўяўленне, віртуальную архітэктуру набору каманд (ISA) і планаванне падчас выканання (runtime scheduling).

Ужывальнае ў HPVM незалежнае ад мэтавай сістэмы прамежкавае ўяўленне (IR) заснавана на прамежкавым уяўленні інструкцый LLVM 9.0 і пашырае яго іерархічным графам струменяў дадзеных, якія дазваляюць ахопліваць паралелізм на ўзроўні задач, дадзеных і вылічальных канвеераў. Прамежкавае ўяўленне HPVM таксама ўключае вектарныя інструкцыі і падзяляную памяць. Асноўнай мэтай прымянення прамежкавага прадстаўлення з'яўляецца эфектыўная генерацыя кода і аптымізацыі для гетэрагенных сістэм.

Віртуальная архітэктура набору каманд (ISA) дазваляе дамагчыся пераноснасці паміж рознымі тыпамі абсталявання для раўналежных вылічэнняў і дае магчымасць не губляць прадукцыйнасць пры выкарыстанні розных элементаў гетэрагенных сістэм. Віртуальная ISA таксама можа прымяняцца для пастаўкі ўніверсальнага выкананага кода праграм, які можа запускацца з прыцягненнем CPU, GPU, FPGA і розных паскаральнікаў.

На бягучым этапе развіцця ў HPVM прапанаваны генератары кода, здольныя трансляваць вузлы прыкладанняў, вызначаныя пры дапамозе віртуальнай ISA, для выканання з выкарыстаннем GPU NVIDIA (cuDNN і OpenCL), вектарных інструкцый Intel AVX і шмат'ядравых CPU x86. Падчас выканання HPVM ужывае гнуткія палітыкі планавання вылічальнага працэсу, якія рэалізуюцца як на аснове інфармацыі аб праграме (структуры графа), так і праз кампіляванне асобных вузлоў праграмы для выканання на любым з мэтавых вылічальных прылад, даступных у сістэме.

Адзначаецца, што ўжыванне HPVM дазваляе дамагчыся істотнага прыросту прадукцыйнасці. Прадукцыйнасць вынікаў працы транслятараў HPVM супастаўная з напісаным уручную кодам OpenCL для GPU і вектарных вылічальных прылад.

У параўнанні з першым папярэднім выпускам версія HPVM 1.0 уключае падтрымку тэнзарных аперацый лінейнай алгебры, фронтэнды для Pytorch і Keras, апраксімацыі скруткавых аператараў і фрэймворк для налады апраксімацыі, аўтаматычна выбіральны аптымальныя апраксімацыі для вызначаных тэнзарных аперацый і які выбірае канфігурацыю.

Крыніца: opennet.ru

Дадаць каментар