Implementasi OpenCL Mesa yang ditulis dalam rust telah lulus tes CTS

Implementasi baru dari OpenCL (pedesaan) dikembangkan untuk proyek Mesa, ditulis dalam Rust, telah berhasil lulus tes CTS (Kronos Conformance Test Suite) yang digunakan oleh konsorsium Khronos untuk menguji kompatibilitas dengan spesifikasi OpenCL 3.0.

Bagi mereka yang tidak mengetahui »Rusticl» mereka harus tahu bahwa itu telah diterbitkan sebagai implementasi baru dari Mesa OpenCL yang ditulis dalam bahasa pemrograman Karat.

pedesaan dimulai oleh kolaborator Mesa terkenal Karol Herbst dari Red Hat yang memulai sebagai insinyur pada driver open source "Nouveau" NVIDIA saat berada di Red Hat, dan bekerja pada dukungan IT Clover Mesa dan upaya lainnya. Rusticl adalah upaya Herbst untuk mempelajari bahasa pemrograman Rust dan juga menyediakan implementasi OpenCL yang baru (dan semoga lebih unggul).

Rusticl jauh lebih modern dengan fokus pada OpenCL dibandingkan dengan kode Clover lama dan itu terlihat, Rusticl pada saat ini masih tidak memiliki dukungan gambar OpenCL yang merupakan masalah lain dengan Clover.

pedesaan bergantung pada clc untuk mengkompilasi kode sumber OpenCL ke dalam SPIR-V. Rusticl juga bergantung pada driver Mesa Gallium3D yang sesuai dengan NIR, tetapi semua driver utama sudah melakukannya. Perlu dicatat bahwa Carol menghubungi Khronos untuk mendapatkan sertifikasi resmi kompatibilitas OpenCL 3.0 di rusticl.

Dan sekarang, rusticl telah berhasil melewati Kronos Conformance Test Suite untuk menilai kompatibilitas dengan spesifikasi OpenCL 3.0, seperti yang diumumkan neil trevett di Twitter:

Khronos bangga telah membebaskan semua biaya adopsi MESA selama bertahun-tahun, dan banyak implementasi MESA secara resmi sesuai. Hebat bahwa OpenCL 3.0 dari MESA melewati CTS! Beri tahu kami ketika MESA siap untuk menjalankan Perjanjian Adopsi OCL 3.0 dan kami dapat memulai prosesnya…

Pengujian dilakukan pada sistem dengan GPU Intel Generasi ke-12 build (Alder Lake), yang dengannya pekerjaan dilakukan dengan driver Iris Mesa, tetapi disebutkan bahwa proyek tersebut harus bekerja dengan driver Mesa lain yang menggunakan representasi perantara (IR) shader yang tidak diketik dari NIR.

Rusticl bertindak sebagai mitra untuk antarmuka OpenCL Clover Mesa dan juga dikembangkan menggunakan antarmuka Gallium Mesa. Clover telah lama diabaikan dan rusticl diposisikan sebagai penggantinya di masa depan. Selain mencapai kompatibilitas OpenCL 3.0, proyek Rusticl berbeda dari Clover karena mendukung ekstensi OpenCL untuk pemrosesan gambar, tetapi belum mendukung format FP16.

Rusticl menggunakan rust-bindgen untuk menghasilkan binding untuk Mesa dan OpenCL yang memungkinkan fungsi Rust dipanggil dari kode C dan sebaliknya.

Kemungkinan menggunakan bahasa Rust dalam proyek Mesa telah dibahas sejak 2020. Di antara kelebihan dukungan Rust, mereka menyebutkan peningkatan keamanan dan kualitas driver dengan menghilangkan masalah umum saat bekerja dengan memori, serta kemungkinan menyertakan pengembangan pihak ketiga di Mesa, seperti Kazan (implementasi Vulkan di Rust).

Di antara kekurangannya, ada komplikasi dari sistem build, keengganan untuk mengikat ke sistem paket payload, peningkatan persyaratan untuk lingkungan build, dan kebutuhan untuk menyertakan compiler Rust dalam dependensi build yang disediakan. untuk membangun komponen desktop utama di Linux.

Akhirnya, disebutkan bahwa permintaan untuk menggabungkan Rusticl dengan Mesa masih tertunda dan belum ada keputusan yang dibuat untuk memasukkan kode bahasa Rust di Mesa, tetapi diharapkan tiba di rilis Mesa 22.2

Inilah sebabnya mengapa sebelum Rusticl diterima ke dalam komposisi Mesa utama, cabang terpisah dapat digunakan untuk membangun, saat kompilasi, Anda harus menentukan parameter build "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader -cache=true -Dllvm = benar».

Jika Anda tertarik untuk mengetahui lebih banyak tentangnya tentang spesifikasi baru ini, Anda dapat memeriksa detailnya Di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.