La LLVM-projekto lanĉis HPVM 1.0, kompililon por CPU, GPU, FPGA kaj akceliloj

La programistoj de la LLVM-projekto publikigis la liberigon de la HPVM 1.0 (Heterogeneous Parallel Virtual Machine) kompililo, celita al simpligado de programado por heterogenaj sistemoj kaj disponigado de iloj por generi kodon por CPUoj, GPUoj, FPGAoj kaj domajna-specifaj hardvarakceliloj (subteno por FGPAoj kaj akceliloj ne estis inkluditaj en la 1.0 eldono). La projektkodo estas distribuita sub la permesilo Apache 2.0.

La ĉefa ideo de HPVM estas provizi unuigitan reprezenton de paralel-efektiveblaj programoj dum la kompilo, kiu povas esti uzata por ekzekuto uzante diversajn specojn de aparataro kiu subtenas paralelan komputadon, inkluzive de GPU-oj, vektoraj instrukcioj, multkernaj procesoroj, FPGA-oj kaj diversaj specialigitaj akcelilpetoj. Male al aliaj sistemoj, HPVM provis kombini tri kapablojn por organizado de heterogena komputiko: lingvo- kaj hardvar-sendependa meza reprezentantaro, virtuala instrukcia arkitekturo (ISA), kaj rultempa planado.

La cel-sendependa meza reprezentantaro (IR) de HPVM konstruas sur la LLVM 9.0 meza instrukcioreprezentantaro kaj etendas ĝin kun hierarkia datenfluografo por kapti tasko-, daten-, kaj dukto-nivelan paralelecon. La HPVM meza reprezentantaro ankaŭ inkluzivas vektorajn instrukciojn kaj komunan memoron. La ĉefa celo de uzado de meza reprezentado estas efika kodgenerado kaj optimumigo por heterogenaj sistemoj.

La virtuala instrukcia arkitekturo (ISA) enkalkulas porteblon inter malsamaj specoj de paralela komputika aparataro kaj ebligas ne perdi efikecon dum uzado de malsamaj elementoj de heterogenaj sistemoj. Virtuala ISA ankaŭ povas esti uzita por liveri universalan plenumeblan programkodon kiu povas funkcii per CPUoj, GPUoj, FPGAoj, kaj diversaj akceliloj.

En la nuna stadio de evoluo, HPVM ofertas kodgenerantojn kapablajn traduki aplikaĵnodojn difinitajn uzante virtualan ISA por ekzekuto uzante NVIDIA GPU-ojn (cuDNN kaj OpenCL), Intel AVX-vektorinstrukciojn kaj multkernajn x86 CPUojn. Ĉe rultempo, HPVM aplikas flekseblajn komputilajn procezplanadpolitikojn, efektivigitajn kaj surbaze de programinformoj (grafeostrukturo) kaj tra kompilado de individuaj programnodoj por ekzekuto sur iu el la celkomputikaj aparatoj haveblaj en la sistemo.

Oni rimarkas, ke la uzo de HPVM povas atingi signifan pliiĝon en produktiveco. La agado de HPVM-tradukiloj estas komparebla al manskribita OpenCL-kodo por GPUoj kaj vektoraj komputikaj aparatoj.

Kompare kun la unua antaŭprezenteldono, HPVM 1.0 inkluzivas subtenon por linearaj algebraj tensoroperacioj, fasadoj por Pytorch kaj Keras, konvoluciaj operatoraj aproksimadoj, kaj proksimuma agorda kadro, kiu aŭtomate elektas optimumajn aproksimadojn por specifaj tensoroperacioj kaj elektas la agordon kiu provizas optimuman rendimenton.

fonto: opennet.ru

Aldoni komenton