Seorang insinyur kompiler NVIDIA minggu lalu memaparkan rencana perusahaan untuk mengimplementasikan dukungan offloading OpenACC 3.3 dalam kompiler LLVM Clang.
Erich Keane dengan NVIDIA memaparkan rencana awal mereka tentang bagaimana mereka berharap untuk dukungan offload OpenACC 3.3 upstream dalam Clang. OpenACC adalah standar komputasi paralel yang dikembangkan oleh NVIDIA dengan PGI dan Cray untuk C/C++/Fortran. Selama beberapa tahun Departemen Energi AS dan lainnya telah mengerjakan CLACC untuk mendukung OpenACC dengan Clang dan LLVM serta “Flacc” sebagai implementasi Fortran OpenACC untuk Flang. Implementasi yang dipimpin NVIDIA ini akan berbeda. Ada juga beberapa berbagi kode yang dapat dilakukan dengan kode OpenMP LLVM.
Adapun strategi implementasi OpenACC NVIDIA untuk Dentang:
“Jangka pendek, kami akan memulai upaya Clang dengan menerapkan arahan Parsing dan Analisis Semantik, yang diaktifkan oleh flag -fopenacc, yang dipilih untuk kompatibilitas GCC. Kami juga akan menerapkan flag sementara untuk mengontrol pengesampingan makro __OPENACC (akan menjadi dihapus ketika kami memiliki implementasi yang lengkap), yang akan memungkinkan program yang ada dikompilasi dengan Clang untuk memanfaatkan pemeriksaan analisis semantik kami.
Kami yakin ini adalah cara terbaik untuk memulai karena beberapa alasan. Pertama, hal ini memungkinkan kami untuk membuat kemajuan yang diperlukan sementara desain dan rekayasa Flang pada komponen bersama terus berlanjut, sehingga kami dapat membantu memandu upaya tersebut, dan mulai menggunakan infrastruktur dan implementasi ketika sudah matang. Kami yakin ini akan mempersingkat waktu yang dibutuhkan untuk mengembangkan OpenACC di Clang.
Kedua, hal ini memungkinkan kita menerapkan aturan analisis semantik OpenACC sesuai standar, sehingga Clang dapat digunakan untuk memvalidasi program yang ada, sehingga menjadi lebih berguna. Hal ini dimungkinkan karena arahan OpenACC diperlakukan sebagai petunjuk lanjutan bagi kompiler, jadi mengabaikannya adalah model implementasi yang sesuai, meskipun kami jelas bermaksud untuk menambahkan analisis offload segera setelah tersedia untuk melakukannya.
Kami bermaksud memanfaatkan pengujian yang ada dari produk NVHPC, dan pengembangan akan mengikuti konvensi LLVM untuk pengujian lit, serta menggunakan pengujian lit yang ditulis untuk CLACC.”NVIDIA menyatakan bahwa mereka berkomitmen terhadap dukungan OpenACC hulu ini di LLVM/Clang:
“NVIDIA sebagai sebuah perusahaan berdedikasi terhadap keberhasilan OpenACC, seperti yang terlihat jelas dari partisipasi kami dalam upaya standardisasi OpenACC dan komitmen kami untuk mengimplementasikan OpenACC di Flang, dan juga berkomitmen untuk memperbanyak penggunaannya di banyak compiler. Kami bermaksud untuk melakukannya melanjutkan pengembangan dan dukungan OpenACC di Flang dan Clang selamanya melalui pendanaan beberapa pengembang teknik kompiler. Kami berkomitmen terhadap dukungan ini.
…
Meskipun kami belum memiliki implementasinya, kami bermaksud untuk melakukan implementasi tersebut sepenuhnya ‘upstream’ di Clang, yang mana implementasi tersebut harus ditinjau dan divalidasi secara ekstensif oleh pemilik kode dan kontributor lainnya. Selain itu, sebagai Pemilik Kode Atribut (dan peninjau utama sebagai kontributor tambahan mulai membantu), saya bermaksud memastikan bahwa setiap bit kode yang dikontribusikan memenuhi atau melampaui standar dan tingkat kualitas pengkodean LLVM dan Clang. “Mereka yang ingin mempelajari lebih lanjut tentang NVIDIA Harapan/rencana pembongkaran OpenACC untuk LLVM/Clang dapat menemukan permintaan komentar mereka melalui Wacana LLVM.
Itulah berita seputar NVIDIA Ingin Menambahkan Dukungan OpenACC 3.3 ke LLVM Dentang Hulu, semoga bermanfaat. Disadur dari Phoronix.com.