HPVM 2.0, pengkompil untuk CPU, GPU, FPGA dan pemecut perkakasan diterbitkan

Projek LLVM mengumumkan pengeluaran HPVM 2.0 (Mesin Maya Selari Heterogen), pengkompil yang bertujuan untuk memudahkan pengaturcaraan untuk sistem heterogen dan menyediakan alat penjanaan kod untuk CPU, GPU, FPGA dan pemecut perkakasan khusus domain. Kod projek diedarkan di bawah lesen Apache 2.0.

Pengaturcaraan untuk sistem selari heterogen adalah rumit oleh kehadiran komponen dalam sistem yang sama yang menggunakan model yang berbeza untuk mencapai keselarian (teras CPU, arahan vektor, GPU, dll.), set arahan yang berbeza dan hierarki memori yang berbeza. Setiap sistem menggunakan gabungan komponen ini sendiri. Idea utama projek HPVM adalah menggunakan perwakilan bersatu program yang dilaksanakan selari semasa menyusun, yang boleh digunakan untuk pelbagai jenis perkakasan yang menyokong pengkomputeran selari, termasuk GPU, arahan vektor, pemproses berbilang teras, FPGA dan pelbagai cip pemecut khusus.

Tidak seperti sistem lain, HPVM cuba menggabungkan tiga keupayaan untuk mengatur pengkomputeran heterogen - bahasa pengaturcaraan dan perwakilan perantaraan bebas perkakasan (IR), seni bina set arahan maya (V-ISA) dan penjadualan masa jalan:

  • Perwakilan perantaraan HPVM memanjangkan perwakilan perantaraan LLVM bagi arahan dengan menggunakan graf aliran data hierarki untuk menangkap keselarian pada tahap tugas, data dan saluran paip. Perwakilan perantaraan HPVM juga termasuk arahan vektor dan memori yang dikongsi. Tujuan utama menggunakan perwakilan perantaraan adalah penjanaan kod yang cekap dan pengoptimuman untuk sistem heterogen.
  • Senibina Set Arahan Maya (V-ISA) mengabstraksi ciri perkakasan peringkat rendah dan menyatukan pelbagai bentuk keselarian dan seni bina ingatan hanya menggunakan model selari asasβ€”graf aliran data. V-ISA membolehkan anda mencapai kemudahalihan antara pelbagai jenis peralatan untuk pengkomputeran selari dan membolehkan anda tidak kehilangan prestasi apabila menggunakan elemen sistem heterogen yang berbeza. ISA Maya juga boleh digunakan untuk menyampaikan kod program boleh laku universal yang boleh dijalankan menggunakan CPU, GPU, FPGA dan pelbagai pemecut.
  • Dasar penjadualan fleksibel untuk proses pengiraan digunakan pada masa jalan dan dilaksanakan kedua-duanya berdasarkan maklumat tentang program (struktur graf) dan melalui penyusunan nod program individu untuk pelaksanaan pada mana-mana peranti pengkomputeran sasaran yang tersedia dalam sistem.

Penjana kod yang dibangunkan oleh projek itu mampu menterjemah nod aplikasi yang ditakrifkan menggunakan ISA maya untuk pelaksanaan menggunakan GPU NVIDIA (cuDNN dan OpenCL), arahan vektor Intel AVX, FPGA dan CPU x86 berbilang teras. Adalah diperhatikan bahawa prestasi penterjemah HPVM adalah setanding dengan kod OpenCL tulisan tangan untuk GPU dan peranti pengkomputeran vektor.

Inovasi utama HPVM 2.0:

  • Bahagian hadapan bahasa Hetero-C++ telah dicadangkan, yang memudahkan penyelarasan kod aplikasi dalam C/C++ untuk penyusunan dalam HPVM. Hetero-C++ mentakrifkan sambungan untuk keselarian peringkat data dan tugasan hierarki yang dipetakan ke graf utas HPVM.
  • Bahagian belakang FPGA telah ditambahkan untuk menyediakan sokongan untuk pelaksanaan kod pada FPGA Intel. Untuk mengatur pelaksanaan, Intel FPGA SDK untuk OpenCL digunakan.
  • Rangka kerja DSE (Penerokaan Angkasa Reka Bentuk) telah ditambah, yang merangkumi pengoptimuman pengkompil dan mekanisme untuk mengenal pasti kesesakan untuk menala aplikasi secara automatik untuk platform perkakasan tertentu. Rangka kerja ini mengandungi model prestasi sedia untuk FPGA daripada Intel dan membolehkan anda menyambungkan pemproses anda sendiri untuk pengoptimuman bagi mana-mana peranti yang disokong oleh HPVM. Pengoptimuman boleh digunakan pada kedua-dua tahap graf aliran data HPVM dan LLVM.
  • Komponen LLVM telah dikemas kini kepada versi 13.0.
  • Kod telah disusun semula untuk memudahkan anda menavigasi pangkalan kod, perpustakaan dan utiliti.
  • Infrastruktur ujian telah dipertingkatkan, ujian baharu telah ditambah untuk pelbagai komponen HPVM.

Sumber: opennet.ru

Tambah komen