Abathuthukisi bephrojekthi ye-LLVM bakhiphe i-compiler ye-HPVM 1.0 (Heterogeneous Parallel Virtual Machine), ehlose ukwenza lula ukuhlela izinhlelo zezinhlelo ezingafani futhi inikeze amathuluzi okukhiqiza ikhodi yama-CPU, ama-GPU, ama-FPGA, kanye nama-hardware accelerator aqondene nesizinda (ukusekelwa kwe-FGPA kanye nama-accelerator akuzange kufakwe ekukhishweni kwe-1.0). Ikhodi yephrojekthi isatshalaliswa ngaphansi kwelayisensi ye-Apache 2.0.
Umqondo oyinhloko ngemuva kwe-HPVM ukusebenzisa ukumelwa okuhlangene kwezinhlelo ezifanayo ngesikhathi sokuhlanganiswa, okungasetshenziswa ukwenza izinhlobo ezahlukene zehadiwe esekela ukubalwa okuhambisanayo, kufaka phakathi ama-GPU, imiyalelo ye-vector, amaprosesa amaningi, ama-FPGA, kanye nama-chip ahlukahlukene akhethekile okusheshisa. Ngokungafani nezinye izinhlelo, i-HPVM izama ukuhlanganisa amakhono amathathu okuhlela ukubalwa okungafani: ukumelwa okuphakathi okungenalo ulimi kanye nehadiwe, ukwakheka kwesethi yemiyalelo ebonakalayo (ISA), kanye nokuhlela isikhathi sokusebenza.
Ukumelwa okuphakathi okuzimele kwe-HPVM (i-IR) kusekelwe ekumelweni okuphakathi kwemiyalelo ye-LLVM 9.0 (i-IR) futhi kuyandisa ngegrafu yokugeleza kwedatha elandelanayo, okuvumela ukufana emazingeni omsebenzi, idatha, kanye nephayiphi. I-IR ye-HPVM ifaka nemiyalelo ye-vector kanye nememori eyabiwe. Inhloso eyinhloko ye-IR ukuvumela ukukhiqizwa kwekhodi okuphumelelayo kanye nokwenza ngcono izinhlelo ezingafani.
Ukwakhiwa kwesethi yemiyalelo ebonakalayo (i-ISA) kwenza kube lula ukuthwaleka kuzo zonke izinhlobo ezahlukene zehadiwe yokubala efanayo futhi kuqinisekisa ukusebenza okulinganayo kuzo zonke izakhi ezahlukene zezinhlelo ezingafani. I-ISA ebonakalayo ingasetshenziswa futhi ukuletha ikhodi esebenzisekayo yomhlaba wonke engasebenza kuma-CPU, ama-GPU, ama-FPGA, kanye nama-accelerator ahlukahlukene.
Esigabeni samanje sokuthuthukiswa, i-HPVM inikeza ama-code generator akwazi ukuhumusha ama-node ohlelo lokusebenza achazwe kusetshenziswa i-virtual ISA ukuze kusetshenziswe kusetshenziswa ama-NVIDIA GPU (cuDNN kanye ne-OpenCL), imiyalelo ye-Intel AVX vector, kanye nama-CPU amaningi e-x86. Ngesikhathi sokusebenza, i-HPVM isebenzisa izinqubomgomo zokuhlela eziguquguqukayo, ezisetshenziswa kokubili ngokusekelwe kulwazi lohlelo (isakhiwo segrafu) kanye nokuhlanganisa ama-node ohlelo ngamanye ukuze kusetshenziswe kunoma iyiphi idivayisi yokubala eqondiwe etholakala ohlelweni.
Kuyaphawuleka ukuthi ukusebenzisa i-HPVM kwenza kube nenzuzo enkulu yokusebenza. Ukusebenza kwabahumushi be-HPVM kufana nekhodi ye-OpenCL ebhalwe ngesandla yama-GPU namadivayisi ekhompyutha e-vector.
Uma kuqhathaniswa nokukhishwa kokuqala kokubuka kuqala, i-HPVM 1.0 ifaka phakathi ukwesekwa kwemisebenzi ye-algebra eqondile ye-tensor, ama-frontend e-Pytorch ne-Keras, ukulinganisa kwama-operator e-convolutional, kanye nohlaka lokulungisa ukulinganisa olukhetha ngokuzenzakalelayo ukulinganisa okuhle kwemisebenzi ethile ye-tensor futhi lukhethe ukucushwa okunikeza ukusebenza okuhle kakhulu.
Source: opennet.ru
