It LLVM-projekt yntrodusearre HPVM 1.0, in kompilator foar CPU, GPU, FPGA en accelerators

De ûntwikkelders fan it LLVM-projekt hawwe de frijlitting fan 'e kompilator HPVM 1.0 (Heterogeneous Parallel Virtual Machine) publisearre, rjochte op it ferienfâldigjen fan programmearring foar heterogene systemen en it leverjen fan ark foar it generearjen fan koade foar CPU's, GPU's, FPGA's en domeinspesifike hardwareversnellers (stipe foar FGPA's en accelerators wiene net opnommen yn 'e 1.0-release). De projektkoade wurdt ferspraat ûnder de Apache 2.0-lisinsje.

It haadidee fan HPVM is om by it kompilearjen in unifoarme fertsjintwurdiging fan parallel-útfierbere programma's te leverjen, dy't kinne wurde brûkt foar útfiering mei ferskate soarten hardware dy't parallelle komputer stypje, ynklusyf GPU's, vectorynstruksjes, multi-core processors, FPGA's en ferskate spesjalisearre accelerator chips. Oars as oare systemen, besocht HPVM trije mooglikheden te kombinearjen foar it organisearjen fan heterogene computing: taal- en hardware-ûnôfhinklike tuskenfertsjintwurdiging, firtuele ynstruksjeset-arsjitektuer (ISA) en runtime-skema.

HPVM's doelûnôfhinklike tuskenfertsjintwurdiging (IR) bout op 'e LLVM 9.0 tuskenynstruksjefertsjintwurdiging en wreidet it út mei in hiërargyske gegevensstreamgrafyk om parallelisme op taak-, gegevens- en pipelinenivo te fangen. De HPVM-tuskenfertsjintwurdiging omfettet ek fektorynstruksjes en dielde ûnthâld. It wichtichste doel fan it brûken fan in tuskenlizzende fertsjintwurdiging is effisjinte koade generaasje en optimalisaasje foar heterogene systemen.

De firtuele ynstruksjeset-arsjitektuer (ISA) makket portabiliteit mooglik tusken ferskate soarten parallelle kompjûterhardware en makket it mooglik om prestaasjes net te ferliezen by it brûken fan ferskate eleminten fan heterogene systemen. Firtuele ISA kin ek brûkt wurde om universele útfierbere programmakoade te leverjen dy't kin rinne mei CPU's, GPU's, FPGA's en ferskate accelerators.

Op it hjoeddeistige stadium fan ûntwikkeling biedt HPVM koadegenerators dy't by steat binne om tapassingsknooppunten te oersetten definieare mei in firtuele ISA foar útfiering mei NVIDIA GPU's (cuDNN en OpenCL), Intel AVX vector ynstruksjes en multi-core x86 CPU's. By runtime jildt HPVM fleksibele berekkeningsproses scheduling belied, ymplemintearre sawol basearre op programma ynformaasje (grafyk struktuer) en troch it kompilearjen fan yndividuele programma knooppunten foar útfiering op ien fan 'e doel Computing apparaten beskikber yn it systeem.

It wurdt opmurken dat it brûken fan HPVM in signifikante ferheging fan produktiviteit kin berikke. De prestaasjes fan HPVM-oersetters binne te fergelykjen mei mei de hân skreaune OpenCL-koade foar GPU's en fektorkomputerapparaten.

Yn ferliking mei de earste preview release befettet HPVM 1.0 stipe foar lineêre algebra tensor operaasjes, frontends foar Pytorch en Keras, convolution operator approximations, en in approximation tuning ramt dat automatysk selektearret optimale approximations foar spesifike tensor operaasjes en selekteart de konfiguraasje dy't soarget foar optimale prestaasjes.

Boarne: opennet.ru

Add a comment