AMD telah merilis AOMP 17.0-1 sebagai versi terbaru dari compiler open-source ini yang berfokus pada penyediaan dukungan offloading OpenMP terbaru untuk produk akselerator Radeon dan Instinct.
AOMP adalah sekumpulan patch yang dibawa di atas status LLVM/Clang upstream terbaru. Insinyur AMD terus berupaya meningkatkan berbagai peningkatan mereka ke LLVM sementara bagi mereka yang menginginkan yang terdepan, dukungan terbaik memiliki AOMP untuk memanfaatkan kemampuan perangkat OpenMP terbaik saat ini.
AOMP 17.0-1 didasarkan pada status upstream LLVM/Clang dari awal bulan ini dan dibuat dengan sumber AMD ROCm 5.4.4. Penting dengan pembaruan ini beralih ke plug-in generasi berikutnya secara default yang pada gilirannya akan menghasilkan peningkatan kinerja OpenMP yang signifikan.
Pengumuman rilis menyebutkan hal berikut perubahan untuk AOMP 17.0-1:
-Beralih ke plugin nextgen sebagai default. Ini telah menunjukkan peningkatan kinerja yang signifikan. Untuk kembali ke set plugin lama LIBOMPTARGET_NEXTGEN_PLUGINS=OFF.
-Beralih dari hostrpc ke hostexec. hostexec adalah penulisan ulang yang signifikan dari hostrpc. Perangkat hostexec_invoke sekarang ditulis dalam OpenMP untuk portabilitas ke platform lain. Nama pembungkus (rintisan) untuk menjalankan fungsi host telah diubah menjadi hostexec() dan hostexec_(). hostexec juga menggunakan variabel global untuk menemukan buffer muatan transfer alih-alih argumen kernel implisit AMD. Ini akan mendukung portabilitas hostexec, printf, dan fprintf ke platform lain. Pembaruan untuk global perangkat ini dibuat dengan layanan variabel global di plugin nextgen.
-Contoh penggunaan hostexec untuk menjalankan MPI_Send dan MPI_Recv di wilayah target diberikan. Contoh ini menunjukkan bagaimana pemilik perpustakaan dapat membuat file header tambahan untuk mengaktifkan eksekusi host transparan dari fungsi perpustakaan yang dipilih dalam wilayah target OpenMP dengan antarmuka host yang sama. Ini menghilangkan kebutuhan untuk setiap perubahan sumber dalam kode pengguna saat eksekusi host dari wilayah target diinginkan. Sebelum hostexec, pengguna biasanya harus mengakhiri wilayah target mereka, menjalankan fungsi khusus host, lalu memulai wilayah target lainnya. Fitur ini secara signifikan meningkatkan kemampuan komputasi tujuan umum OpenMP pada platform GPGPU.
-Dukungan target OMPT tidak lengkap dengan plugin nextgen. Untuk menggunakan OMPT, setel variabel lingkungan LIBOMPTARGET_NEXTGEN_PLUGINS=OFF.
-Setel GPU_MAX_HW_QUEUES di gpurun
-Wilayah kritis yang dibuat melalui arahan kritis sekarang lebih efisien: dengan melonggarkan semantik kunci dan menggabungkannya dengan penggunaan pagar perolehan dan pelepasan, kita dapat membatasi pembilasan cache GPU setiap kali kunci diperoleh alih-alih pada setiap pemeriksaan kunci.
-Saat menyisipkan fungsi yang dipanggil dari kernel, pindahkan alokasi untuk argumennya di blok entri kernel alih-alih meninggalkannya di titik peluncuran.
-Hormati variabel lingkungan untuk memaksa eksekusi wilayah target yang sinkron. Tersedia melalui unduhan OMPX_FORCE_SYNC_REGIONS=1.
AOMP 17.0-1 dan detail lainnya di GitHub termasuk binari RHEL/Debian untuk melengkapi sumber.