HPVM 2.0, alakojo fun Sipiyu, GPU, FPGA ati hardware accelerators atejade

Ise agbese LLVM ṣafihan itusilẹ ti akopo HPVM 2.0 (Heterogeneous Parallel Virtual Machine), ti o ni ero lati dirọsọ siseto fun awọn ọna ṣiṣe oriṣiriṣi ati pese awọn irinṣẹ fun ṣiṣẹda koodu fun awọn CPUs, GPUs, FPGAs, ati awọn ohun imuyara ohun elo-apa kan. Koodu ise agbese ti pin labẹ iwe-aṣẹ Apache 2.0.

Siseto fun awọn ọna ṣiṣe afiwera oriṣiriṣi jẹ idiju nitori wiwa ninu eto kan ti awọn paati ti o lo awọn awoṣe oriṣiriṣi fun iyọrisi afiwera (awọn ohun kohun Sipiyu, awọn ilana fekito, GPUs, ati bẹbẹ lọ), awọn ilana oriṣiriṣi ti awọn ilana, ati awọn ilana ilana iranti oriṣiriṣi. Kọọkan eto nlo awọn oniwe-ara apapo ti awọn wọnyi irinše. Ero akọkọ ti iṣẹ akanṣe HPVM ni lati lo ni iṣakojọpọ aṣoju iṣọkan ti awọn eto afiwera ti o le ṣee lo fun ọpọlọpọ awọn iru ohun elo ti o ṣe atilẹyin iširo afiwera, pẹlu awọn GPUs, awọn itọnisọna vector, awọn olutọsọna-ọpọlọpọ-mojuto, FPGAs, ati ọpọlọpọ amọja. ohun imuyara awọn eerun.

Ko dabi awọn ọna ṣiṣe miiran, HPVM gbiyanju lati ṣajọpọ awọn aye mẹta fun siseto awọn iṣiro oriṣiriṣi - aṣoju agbedemeji (IR), eto eto ilana foju kan (V-ISA), ati ṣiṣe eto akoko ṣiṣe, ominira ti ede siseto ati ẹrọ:

  • Aṣoju agbedemeji HPVM faagun aṣoju agbedemeji ti awọn ilana LLVM nipa lilo iwọn ṣiṣan data logalomomoise lati mu afiwera ni ipele awọn iṣẹ ṣiṣe, data, ati awọn opo gigun ti iṣiro. Aṣoju agbedemeji HPVM tun pẹlu awọn itọnisọna fekito ati iranti pinpin. Idi pataki ti lilo aṣoju agbedemeji jẹ iran koodu daradara ati iṣapeye fun awọn ọna ṣiṣe oriṣiriṣi.
  • Iṣeto Ilana Foju (V-ISA) ṣe agbekalẹ ohun elo kekere-kekere ati ṣọkan awọn ọna oriṣiriṣi ti parallelism ati awọn faaji iranti ni lilo awoṣe concurrency ti o wa ni ipilẹ nikan, Aworan Flow Data. V-ISA ngbanilaaye lati ṣaṣeyọri gbigbe laarin awọn oriṣiriṣi iru ohun elo fun iširo afiwera ati jẹ ki o ṣee ṣe lati ma padanu iṣẹ nigba lilo awọn eroja oriṣiriṣi ti awọn ọna ṣiṣe oriṣiriṣi. Foju ISA tun le ṣee lo lati fi jeneriki eto executable koodu ti o le ṣiṣẹ lori CPUs, GPUs, FPGAs, ati orisirisi accelerators.
  • Awọn ilana iṣeto ilana iṣiro rọ ni a lo ni akoko asiko ati pe a ṣe imuse mejeeji lori ipilẹ alaye nipa eto naa (ẹya aworan) ati nipa ṣiṣe akojọpọ awọn apa eto olukuluku fun ipaniyan lori eyikeyi awọn ẹrọ iširo ibi-afẹde ti o wa ninu eto naa.

Awọn olupilẹṣẹ koodu ti o dagbasoke nipasẹ iṣẹ akanṣe naa ni agbara lati tumọ awọn apa ohun elo ti a ṣalaye nipa lilo ISA foju fun ipaniyan nipa lilo awọn NVIDIA GPUs (cuDNN ati OpenCL), awọn itọnisọna vector Intel AVX, FPGAs, ati awọn CPUs pupọ-core x86. O ṣe akiyesi pe iṣẹ ti awọn abajade ti awọn onitumọ HPVM jẹ afiwera si koodu OpenCL ti a kọ pẹlu ọwọ fun awọn GPU ati awọn ẹrọ iširo vector.

Awọn imotuntun akọkọ ti HPVM 2.0:

  • Hetero-C ++ ede frontend ti wa ni dabaa, eyi ti o simplifies awọn parallelization ti C / C ++ koodu elo fun akopo ni HPVM. Hetero-C ++ n ṣalaye awọn amugbooro fun ibajọra ipele data ati awọn iṣẹ-ṣiṣe logalomomoise ti o ti ya aworan si awọn aworan okun HPVM.
  • A ti ṣafikun ẹhin FPGA lati ṣe atilẹyin ipaniyan koodu lori Intel FPGA kan. Lati ṣeto ipaniyan, Intel FPGA SDK fun OpenCL ti lo.
  • Ilana DSE (Ṣawari Space Design) ti ni afikun, eyiti o pẹlu awọn iṣapeye iṣapejọ ati awọn ilana wiwa igo fun awọn ohun elo ti n ṣatunṣe laifọwọyi fun iru ẹrọ ohun elo ti a fun. Ilana naa ni awoṣe iṣẹ ṣiṣe ti o ti ṣetan fun FPGA lati Intel ati pe o fun ọ laaye lati sopọ awọn ilana tirẹ fun iṣapeye fun ẹrọ eyikeyi ti o ni atilẹyin nipasẹ HPVM. Awọn iṣapeye le ṣee lo mejeeji ni ipele iyaworan ṣiṣan data HPVM ati ni ipele LLVM.
  • Awọn paati LLVM imudojuiwọn si ẹya 13.0.
  • A ti tunto koodu naa lati jẹ ki o rọrun lati lilö kiri nipasẹ koodu koodu, awọn ile ikawe, ati awọn ohun elo.
  • Awọn amayederun fun idanwo ti ni ilọsiwaju, awọn idanwo tuntun ti ṣafikun fun ọpọlọpọ awọn paati HPVM.

orisun: opennet.ru

Fi ọrọìwòye kun