Proyék LLVM ngenalkeun HPVM 1.0, kompiler pikeun CPU, GPU, FPGA sareng akselerator.

Pamekar proyék LLVM parantos nyebarkeun sékrési kompiler HPVM 1.0 (Heterogen Parallel Virtual Machine), tujuanana pikeun nyederhanakeun program pikeun sistem hétérogén sareng nyayogikeun alat pikeun ngahasilkeun kode pikeun CPU, GPU, FPGA sareng akselerator hardware khusus domain (rojongan pikeun FGPA sareng akselerator henteu kalebet dina sékrési 1.0). Kodeu proyék disebarkeun dina lisénsi Apache 2.0.

Gagasan utama HPVM nyaéta nyayogikeun perwakilan ngahijikeun program anu tiasa dieksekusi paralel nalika kompilasi, anu tiasa dianggo pikeun palaksanaan nganggo sababaraha jinis hardware anu ngadukung komputasi paralel, kalebet GPU, petunjuk vektor, prosesor multi-inti, FPGA sareng rupa-rupa chip akselerator husus. Beda sareng sistem anu sanés, HPVM ngusahakeun ngagabungkeun tilu kamampuan pikeun ngatur komputasi hétérogén: perwakilan perantara anu mandiri sareng hardware, arsitektur set instruksi virtual (ISA), sareng jadwal runtime.

Répréséntasi perantara target-independen (IR) HPVM diwangun dina representasi instruksi perantara LLVM 9.0 sareng ngalegaan ku grafik aliran data hierarkis pikeun moto paralelisme task-, data-, sareng pipeline-level. Perwakilan panengah HPVM kalebet ogé petunjuk vektor sareng mémori anu dibagi. Tujuan utama ngagunakeun representasi panengah nyaéta generasi kode efisien sareng optimasi pikeun sistem hétérogén.

Arsitéktur set instruksi virtual (ISA) ngamungkinkeun pikeun portability antara tipena béda hardware komputasi paralel jeung ngamungkinkeun teu leungit kinerja lamun ngagunakeun elemen béda sistem hétérogén. Virtual ISA ogé bisa dipaké pikeun nganteurkeun kode program executable universal nu bisa ngajalankeun maké CPUs, GPUs, FPGAs, sarta sagala rupa akselerators.

Dina tahap pangwangunan ayeuna, HPVM nawiskeun generator kode anu tiasa narjamahkeun titik aplikasi anu ditetepkeun nganggo ISA maya pikeun palaksanaan nganggo GPU NVIDIA (cuDNN sareng OpenCL), petunjuk vektor Intel AVX sareng CPU x86 multi-inti. Dina runtime, HPVM nerapkeun kawijakan scheduling prosés komputasi fléksibel, dilaksanakeun duanana dumasar kana informasi program (struktur grafik) jeung ngaliwatan compiling titik program individu pikeun palaksanaan on salah sahiji alat komputasi target sadia dina sistem.

Ieu dicatet yén pamakéan HPVM bisa ngahontal kanaékan signifikan dina produktivitas. Kinerja penerjemah HPVM tiasa dibandingkeun sareng kode OpenCL anu ditulis leungeun pikeun GPU sareng alat komputasi vektor.

Dibandingkeun jeung release sawangan munggaran, HPVM 1.0 ngawengku rojongan pikeun operasi tensor aljabar linier, frontends pikeun Pytorch na Keras, convolution operator approximations, sarta hiji kerangka tuning perkiraan nu otomatis milih approximations optimal pikeun operasi tensor husus tur pilih konfigurasi nu nyadiakeun kinerja optimal.

sumber: opennet.ru

Tambahkeun komentar