Апублікаваны HPVM 2.0, кампілятар для CPU, GPU, FPGA і апаратных паскаральнікаў

Праект 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

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