GPU NVIDIA Dapatkan Dukungan SYCL Setelah Codeplay Berkontribusi Pada Pengembangan Standar DPC++
Setelah mendapatkan dukungan dari perusahaan terkemuka seperti Intel, Xilinx, Renesas dan Imagination Technologies, SYCL (diucapkan 'sabit'), para pengembang yang menggunakan GPU NVIDIA sekarang akan dapat memperoleh manfaat juga. Codeplay, organisasi yang telah menjadi kontributor aktif Komunitas SYCL, kini memuncak pada pengembangan lanjutan DPC ++ (Data Parallel C ++), yang memfasilitasi daur ulang dan penggunaan ulang kode di beberapa platform perangkat keras. Hasilnya adalah ComputeCpp, implementasi SYCL Codeplay sendiri.
Edisi Terbaru ComputeCpp Menawarkan Dukungan Eksperimental Untuk GPU NVIDIA menggunakan OpenCL dan PTX NVIDIA
Tahun lalu, Intel mengambil langkah tegas untuk mendorong SYCL, dan bahkan mulai mengerjakan oneAPI Standard. OneAPI menyertakan DPC++ (implementasi SYCL dengan ekstensi) untuk CPU, GPU, dan FPGA Intel. Gerakan ini segera menjadi cukup besar dan mendapatkan momentum setelah dukungan untuk SYCL datang dari Xilinx, Renesas, dan Imagination Technologies. Sederhananya, pengembang perangkat lunak sekarang dapat menargetkan berbagai perangkat menggunakan SYCL.
ComputeCpp menawarkan dukungan eksperimental untuk GPU NVIDIA menggunakan OpenCL dan PTX NVIDIA. Tetapi DPC++ (implementasi SYCL Intel) menawarkan kesempatan untuk menambahkan dukungan penuh untuk GPU NVIDIA yang terintegrasi ke dalam kompiler LLVM tanpa melalui OpenCL. Codeplay mengumumkan bahwa mereka membuka sumber awal, fase eksperimental implementasi mereka yang memungkinkan pengembang SYCL untuk menargetkan GPU NVIDIA. Basis kode untuk implementasi ini tetap digarpu terpisah dari proyek kompiler LLVM utama dan cabang DPC++. Organisasi tersebut menambahkan bahwa mereka bermaksud untuk bekerja dengan Intel untuk mendapatkan dukungan GPU NVIDIA yang ditambahkan ke kompiler Intel/LLVM upstream.
Bagaimana Pengembang Dapat Manfaat Dari Dukungan SYCL Untuk GPU NVIDIA?
Proyek ini memungkinkan pengembang untuk menargetkan GPU NVIDIA menggunakan kode SYCL, tanpa harus melalui lapisan OpenCL di sistem. Dengan kata lain, hanya dengan GPU NVIDIA, pengembang dapat menjalankan DPC++ di sistem mereka untuk mengkompilasi aplikasi SYCL. Selain itu, setiap Aplikasi CUDA yang ada dapat di-porting secara bertahap ke SYCL menggunakan dukungan CUDA, dan kemudian menjalankannya pada platform yang tidak memiliki CUDA. Ini jelas menghemat banyak waktu dan upaya berulang.
Codeplay telah menawarkan instruksi pada file README proyek yang menjelaskan cara menggunakan back-end NVIDIA untuk DPC++. Pengembang diharuskan menggunakan beberapa tanda saat kompilasi, dan beberapa kode untuk mengatur pemilih perangkat mereka untuk memastikan waktu proses mengetahui perangkat apa yang akan ditargetkan. Secara khusus, bagian “Bangun rantai alat SYCL dengan dukungan untuk NVIDIA CUDA” dan opsi kompiler Dentang memilikiinstruksi khusus.
Codeplay mengonfirmasi bahwa mereka berhasil menjalankan proyek dengan Ubuntu 18.04 menggunakan CUDA 10.1 pada GPU Titan RTX (kemampuan komputasi 7.5). Tim memastikan bahwa itu juga harus berfungsi pada versi Linux lainnya dengan GPU NVIDIA apa pun yang kompatibel dengan SM 5.0 atau lebih tinggi. Namun, aplikasi SYCL yang dikompilasi hanya akan dapat menargetkan CUDA atau OpenCL, tidak keduanya secara bersamaan.
Tim juga memperingatkan bahwa rilis awal proyek belum dioptimalkan, sehingga kinerja mungkin tidak optimal dalam semua keadaan. Dengan kata lain, pengembang perlu menerapkan hal yang sama dan memastikan peningkatan kecepatan sendiri, jika ada. Ini karena pembuatan kode tidak menerapkan pengoptimalan tertentu. Selain itu, implementasi CUDA dari spesifikasi SYCL di Antarmuka Plugin tidak menggunakan fitur CUDA tingkat lanjut.
Codeplay telah menunjukkan bahwa meningkatkan kompatibilitas dan fungsionalitas tetap menjadi prioritas utama mereka. Mereka menunjukkan bahwa fokus saat ini adalah untuk mengimplementasikan fungsionalitas sebanyak mungkin sehingga pengembang dapat menjalankan berbagai aplikasi SYCL pada platform GPU NVIDIA. Optimalisasi kinerja akan datang nanti dengan bantuan anggota komunitas.