HPVM 2.0, du pou CPU, GPU, FPGA ak akseleratè pyès ki nan konpitè pibliye

Pwojè LLVM te anonse lage HPVM 2.0 (Machin Viryèl Paralèl Etewojèn), yon konpilatè ki vize pou senplifye pwogramasyon pou sistèm etewojèn epi bay zouti jenerasyon kòd pou CPU, GPU, FPGA, ak akseleratè pyès ki nan konpitè espesifik. Kòd pwojè a distribye anba lisans Apache 2.0.

Pwogramasyon pou sistèm paralèl eterojèn konplike pa prezans nan menm sistèm nan eleman ki sèvi ak modèl diferan pou reyalize paralelis (nwayo CPU, enstriksyon vektè, GPU, elatriye), seri enstriksyon diferan ak yerachi memwa diferan. Chak sistèm sèvi ak konbinezon pwòp li yo nan eleman sa yo. Lide prensipal pwojè HPVM a se sèvi ak yon reprezantasyon inifye nan pwogram paralèl egzekite lè konpile, ki ka itilize pou divès kalite pyès ki nan konpitè ki sipòte informatique paralèl, ki gen ladan GPU, enstriksyon vektè, processeur milti-nwayo, FPGA ak divès kalite bato akseleratè espesyalize.

Kontrèman ak lòt sistèm, HPVM te eseye konbine twa kapasite pou òganize informatique eterojèn - yon langaj pwogramasyon ak reprezantasyon entèmedyè pyès ki nan konpitè endepandan (IR), achitekti seri enstriksyon vityèl (V-ISA) ak orè ègzekutabl:

  • Reprezantasyon entèmedyè HPVM pwolonje reprezantasyon entèmedyè LLVM nan enstriksyon yo lè l sèvi avèk yon graf yerarchize koule done pou kaptire paralelis nan nivo travay, done ak tiyo. Reprezantasyon entèmedyè HPVM gen ladan tou enstriksyon vektè ak memwa pataje. Objektif prensipal itilize yon reprezantasyon entèmedyè se jenerasyon kòd efikas ak optimize pou sistèm etewojèn.
  • Virtual Instruction Set Architecture (V-ISA) abstrè karakteristik pyès ki nan konpitè ba-nivo epi inifye divès fòm paralèlism ak achitekti memwa lè l sèvi avèk sèlman yon modèl paralelis debaz—graf la koule done. V-ISA pèmèt ou reyalize portabilite ant diferan kalite ekipman pou informatique paralèl ak fè li posib pou pa pèdi pèfòmans lè w ap itilize eleman diferan nan sistèm etewojèn. Virtual ISA kapab tou itilize pou delivre kòd pwogram inivèsèl ègzèkutabl ki ka kouri lè l sèvi avèk CPU, GPU, FPGA, ak akseleratè divès kalite.
  • Règleman orè fleksib pou pwosesis enfòmatik yo aplike nan tan exécution epi yo aplike tou de baze sou enfòmasyon sou pwogram nan (estrikti graf) ak nan konpilasyon an nan pwogram endividyèl nœuds pou ekzekisyon sou nenpòt nan aparèy enfòmatik sib ki disponib nan sistèm nan.

Dèlko kòd yo devlope pa pwojè a kapab tradui nœuds aplikasyon yo defini lè l sèvi avèk yon ISA vityèl pou ekzekisyon lè l sèvi avèk GPU NVIDIA (cuDNN ak OpenCL), enstriksyon vektè Intel AVX, FPGA ak milti-nwayo CPU x86. Li te note ke pèfòmans nan tradiktè HPVM yo konparab ak kòd OpenCL ekri alamen pou GPU ak aparèy enfòmatik vektè.

Prensipal inovasyon HPVM 2.0:

  • Yo te pwopoze yon frontend lang Hetero-C++, ki senplifye paralelizasyon kòd aplikasyon an nan C/C++ pou konpilasyon nan HPVM. Hetero-C++ defini ekstansyon pou paralèl nivo done ak travay yerarchize ki kat sou graf fil HPVM.
  • Yon backend FPGA te ajoute pou bay sipò pou ekzekisyon kòd sou Intel FPGAs. Pou òganize ekzekisyon, yo itilize Intel FPGA SDK pou OpenCL.
  • Yo te ajoute kad DSE (Design Space Exploration), ki gen ladan optimize konpilatè ak mekanis pou idantifye blokaj pou otomatikman ajiste aplikasyon pou yon platfòm pyès ki nan konpitè. Fondasyon an gen yon modèl pèfòmans pare pou FPGA soti nan Intel epi li fè li posib konekte processeurs pwòp ou a pou optimize pou nenpòt aparèy ki sipòte pa HPVM. Optimize yo ka aplike nan nivo graf HPVM ak LLVM dataflow.
  • Konpozan LLVM yo te mete ajou nan vèsyon 13.0.
  • Kòd la te reòganize pou fè li pi fasil pou navige nan baz kòd, bibliyotèk, ak sèvis piblik yo.
  • Yo te amelyore enfrastrikti tès la, yo te ajoute nouvo tès pou divès konpozan HPVM.

Sous: opennet.ru

Add nouvo kòmantè