Spesifikasi OpenCL 3.0 diperkenalkan

Kekhawatiran Khronos, yang bertanggung jawab untuk mengembangkan spesifikasi keluarga OpenGL, Vulkan dan OpenCL, diumumkan pada penyelesaian pengembangan spesifikasi OpenCL 3.0 yang mendefinisikan API dan ekstensi bahasa C untuk mengatur komputasi paralel lintas platform menggunakan CPU multi-core, GPU, FPGA, DSP, dan chip khusus lainnya, dari yang digunakan di superkomputer dan server cloud hingga chip yang dapat ditemukan di perangkat seluler dan teknologi tertanam. Standar OpenCL sepenuhnya terbuka dan tidak memerlukan biaya lisensi. Perusahaan seperti IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments dan Toshiba mengambil bagian dalam pengerjaan standar ini.

Pada tahap saat ini, spesifikasi telah ditetapkan status sementara, yang menyiratkan kemungkinan penyempurnaan berdasarkan masukan yang dikirim melalui GitHub. Setelah komentar dipertimbangkan, spesifikasi akan diselesaikan dan rangkaian pengujian akhir akan dipublikasikan untuk menguji kompatibilitas implementasi yang ada.

Spesifikasi OpenCL 3.0 diperkenalkan

Paling menonjol fitur OpenCL 3.0:

  • OpenCL 3.0 API kini mencakup semua versi OpenCL (1.2, 2.x), tanpa memberikan spesifikasi terpisah untuk setiap versi. OpenCL 3.0 memberikan kemampuan untuk memperluas fungsionalitas inti melalui integrasi spesifikasi tambahan yang akan berlapis dalam bentuk opsi tanpa menghalangi sifat monolitik OpenCL 1.2/2.X.
  • Hanya fungsionalitas yang sesuai dengan OpenCL 1.2 yang dinyatakan wajib, dan semua fitur yang diusulkan dalam spesifikasi OpenCL 2.x diklasifikasikan sebagai opsional. Pendekatan ini akan mempermudah pembuatan implementasi khusus yang kompatibel dengan OpenCL 3.0, dan akan memperluas jangkauan perangkat yang dapat menggunakan OpenCL 3.0. Misalnya, produsen dapat menerapkan dukungan OpenCL 3.0 tanpa menerapkan fitur OpenCL 2.x tertentu. Untuk mengakses fitur bahasa opsional, OpenCL 3.0 telah menambahkan sistem kueri pengujian yang memungkinkan Anda mengevaluasi dukungan elemen API individual, serta makro khusus.
  • Penyatuan dengan spesifikasi yang dirilis sebelumnya memudahkan migrasi aplikasi ke OpenCL 3.0. Aplikasi OpenCL 1.2 akan dapat berjalan pada perangkat yang mendukung OpenCL 3.0 tanpa modifikasi. Aplikasi OpenCL 2.x juga tidak memerlukan perubahan kode, selama lingkungan OpenCL 3.0 menyediakan fungsionalitas yang diperlukan (untuk memastikan portabilitas di masa mendatang, aplikasi OpenCL 2.x disarankan untuk menambahkan kueri pengujian guna mengevaluasi dukungan terhadap fitur OpenCL 2.x sedang digunakan). Pengembang driver dengan implementasi OpenCL dapat dengan mudah meningkatkan produk mereka ke OpenCL 3.0, hanya menambahkan pemrosesan kueri untuk panggilan API tertentu, dan secara bertahap meningkatkan fungsionalitas seiring waktu.
  • Spesifikasi OpenCL 3.0 selaras dengan lingkungan, ekstensi, dan spesifikasi representasi perantara generik SPIR-V, yang juga digunakan oleh Vulkan API. Dukungan untuk spesifikasi SPIR-V 1.3 disertakan dalam inti OpenCL 3.0 sebagai fitur opsional. Melalui penggunaan representasi perantara SPIR-V dukungan untuk operasi dengan subgrup telah ditambahkan untuk inti komputasi.
    Spesifikasi OpenCL 3.0 diperkenalkan

  • Menambahkan dukungan untuk ekstensi untuk melakukan operasi DMA asinkron (Asynchronous DMA), didukung dalam chip mirip DSP dengan akses memori langsung. DMA asinkron memungkinkan penggunaan transaksi DMA untuk mentransfer data antara memori global dan lokal secara asinkron, bersamaan dengan perhitungan atau operasi transfer data lainnya.
  • Spesifikasi Ekstensi Pemrograman Paralel C telah diperbarui menjadi versi 3.0, dan pengembangan ekstensi bahasa OpenCL untuk C++ dihentikan demi proyek β€œC++ untuk OpenCL”. C++ untuk OpenCL adalah kompiler berdasarkan Dentang/LLVM dan penyiaran Kernel C++ dan OpenCL C menjadi representasi perantara SPIR-V atau kode mesin tingkat rendah. Melalui penyiaran, SPIR-V juga mengatur perakitan aplikasi C++ menggunakan perpustakaan template SYCL, yang menyederhanakan pembuatan aplikasi paralel.

    Spesifikasi OpenCL 3.0 diperkenalkan

  • Kompiler telah diusulkan untuk menyiarkan OpenCL melalui Vulkan API clspv, yang mengubah kernel OpenCL menjadi representasi Vulkan SPIR-V, dan sebuah lapisan clvk untuk mengaktifkan OpenCL API agar berfungsi di atas Vulkan.

    Spesifikasi OpenCL 3.0 diperkenalkan

Sumber: opennet.ru

Tambah komentar