HPVM 2.0, compiler ya CPU, GPU, FPGA ndi hardware accelerators, yasindikizidwa

Pulojekiti ya LLVM idalengeza kutulutsidwa kwa HPVM 2.0 (Heterogeneous Parallel Virtual Machine), chojambulira chomwe cholinga chake ndi kufewetsa mapulogalamu a machitidwe osiyanasiyana ndikupereka zida zopangira ma code a CPUs, GPUs, FPGAs, ndi ma accelerators amtundu wamtundu wina. Khodi ya polojekitiyi imagawidwa pansi pa layisensi ya Apache 2.0.

Kukonzekera kwa machitidwe ofananirako kumakhala kovuta chifukwa cha kupezeka kwa zigawo mu dongosolo lomwelo lomwe limagwiritsa ntchito mitundu yosiyanasiyana kuti akwaniritse kufanana (CPU cores, malangizo a vector, GPU, etc.), magawo osiyanasiyana a malangizo ndi makumbukidwe osiyanasiyana. Dongosolo lililonse limagwiritsa ntchito kuphatikiza kwake kwa zigawozi. Lingaliro lalikulu la pulojekiti ya HPVM ndikugwiritsa ntchito chifaniziro chogwirizana cha mapulogalamu omwe amachitidwa mofanana polemba, omwe angagwiritsidwe ntchito pamitundu yosiyanasiyana ya hardware yomwe imathandizira makompyuta ofanana, kuphatikizapo ma GPU, malangizo a vector, mapurosesa amitundu yambiri, FPGAs ndi tchipisi tapadera ta accelerator.

Mosiyana ndi machitidwe ena, HPVM idayesa kuphatikiza maluso atatu okonzekera makompyuta osasinthika - chilankhulo cha pulogalamu ndi chiwonetsero chapakatikati cha hardware (IR), zomangamanga zokhazikika (V-ISA) ndi kukonza nthawi yothamanga:

  • Kuyimira kwapakati kwa HPVM kumawonjezera kuyimira kwapakatikati kwa LLVM kwa malangizo pogwiritsa ntchito mawonekedwe owongolera a data kuti agwire kufanana kwa ntchito, deta, ndi mapaipi. Kuyimilira kwapakatikati kwa HPVM kumaphatikizanso malangizo a vector komanso kukumbukira komwe kumagawana. Cholinga chachikulu chogwiritsa ntchito chiwonetsero chapakatikati ndichopanga ma code abwino komanso kukhathamiritsa kwa machitidwe osiyanasiyana.
  • Virtual Instruction Set Architecture (V-ISA) imatanthawuza mawonekedwe a hardware otsika ndikugwirizanitsa mitundu yosiyanasiyana ya kufanana ndi mamangidwe a kukumbukira pogwiritsa ntchito chitsanzo chofanana cha kufanana - graph flow data. V-ISA imakulolani kuti mukwaniritse kusuntha pakati pa mitundu yosiyanasiyana ya zida zamakompyuta ofanana ndikupangitsa kuti musataye ntchito mukamagwiritsa ntchito zinthu zosiyanasiyana zamakina osiyanasiyana. Virtual ISA itha kugwiritsidwanso ntchito popereka ma code apulogalamu onse omwe amatha kugwiritsa ntchito ma CPU, ma GPU, ma FPGA, ndi ma accelerator osiyanasiyana.
  • Ndondomeko zosinthika za ndondomeko yowerengera zimagwiritsidwa ntchito panthawi yothamanga ndipo zimagwiritsidwa ntchito potengera zambiri za pulogalamuyo (mawonekedwe a ma graph) komanso pophatikiza ma node a pulogalamu kuti agwiritse ntchito pa chipangizo chilichonse cha makompyuta chomwe chilipo mu dongosolo.

Majenereta opangidwa ndi pulojekitiyi amatha kumasulira ma node ogwiritsidwa ntchito pogwiritsa ntchito ISA yeniyeni kuti aphedwe pogwiritsa ntchito NVIDIA GPUs (cuDNN ndi OpenCL), malangizo a Intel AVX vector, FPGAs ndi multi-core x86 CPUs. Ndizodziwika kuti machitidwe a omasulira a HPVM akufanana ndi code ya OpenCL yolembedwa pamanja ya ma GPU ndi zida zamakompyuta a vector.

Zatsopano zazikulu za HPVM 2.0:

  • Chiyankhulo cha Hetero-C++ chaperekedwa, chomwe chimathandizira kufananitsa kwa kachidindo ka ntchito mu C/C++ kuti apangidwe mu HPVM. Hetero-C++ imatanthauzira zowonjezera za kufanana kwa data-level ndi ntchito zotsogola zomwe zimatengera ma graph a ulusi wa HPVM.
  • FPGA backend yawonjezedwa kuti ipereke chithandizo cha ma code pa Intel FPGAs. Kukonzekera kuphedwa, Intel FPGA SDK ya OpenCL imagwiritsidwa ntchito.
  • Dongosolo la DSE (Design Space Exploration) lawonjezedwa, lomwe limaphatikizapo kukhathamiritsa kwa ma compiler ndi njira zodziwira zovuta zomwe zimangosintha zokha mapulogalamu a nsanja yomwe yapatsidwa. Chigawochi chili ndi mawonekedwe okonzekera a FPGA kuchokera ku Intel ndipo amathandizira kulumikiza mapurosesa anu kuti akwaniritse bwino zida zilizonse zothandizidwa ndi HPVM. Kukhathamiritsa kutha kugwiritsidwa ntchito pamagulu onse a HPVM ndi LLVM dataflow graph.
  • Zida za LLVM zasinthidwa kukhala 13.0.
  • Khodiyo yakonzedwanso kuti ikhale yosavuta kuyendetsa ma code, malaibulale, ndi zofunikira.
  • Malo oyesera asinthidwa, mayesero atsopano awonjezedwa pazinthu zosiyanasiyana za HPVM.

Source: opennet.ru

Kuwonjezera ndemanga