Meskipun ada upaya yang dilakukan AMD selama bertahun-tahun untuk mempermudah porting basis kode yang menargetkan API CUDA NVIDIA agar berjalan di atas HIP/ROCm, hal ini masih memerlukan kerja keras dari pihak pengembang. Perkakasnya telah ditingkatkan seperti HIPIFY untuk membantu pembuatan otomatis, tetapi ini bukanlah solusi yang sederhana, instan, dan terjamin — terutama jika berupaya mencapai kinerja optimal. Selama dua tahun terakhir AMD diam-diam mendanai upaya untuk menghadirkan kompatibilitas biner sehingga banyak aplikasi NVIDIA CUDA dapat berjalan di atas tumpukan AMD ROCm di tingkat perpustakaan — pengganti drop-in tanpa perlu mengadaptasi kode sumber. Dalam praktiknya untuk banyak beban kerja dunia nyata, ini merupakan solusi bagi pengguna akhir untuk menjalankan perangkat lunak berkemampuan CUDA tanpa intervensi pengembang apa pun. Berikut adalah informasi lebih lanjut tentang proyek “skunkworks” ini yang sekarang tersedia sebagai sumber terbuka bersama dengan beberapa pengujian saya sendiri dan tolok ukur kinerja implementasi CUDA yang dibuat untuk GPU Radeon.
Dari beberapa tahun yang lalu Anda mungkin ingat ZLUDA yang digunakan untuk mengaktifkan CUDA dukungan pada grafis Intel. Proyek sumber terbuka tersebut bertujuan untuk menyediakan implementasi CUDA drop-in pada grafis Intel yang dibangun di atas Intel oneAPI Level Zero. ZLUDA dihentikan karena alasan pribadi tetapi ternyata pengembang di balik itu (dan yang juga dipekerjakan oleh Intel pada saat itu), Andrzej Janik, dikontrak oleh AMD pada tahun 2022 untuk secara efektif mengadaptasi ZLUDA untuk digunakan pada GPU AMD dengan HIP/ ROCM. Sebelum dikontrak oleh AMD, Intel sedang mempertimbangkan pengembangan ZLUDA. Namun, mereka akhirnya menolak ide tersebut dan tidak menyediakan dana untuk proyek tersebut.
Andrzej Janik menghabiskan dua tahun terakhir menghadirkan ZLUDA ke GPU Radeon dan berhasil: banyak perangkat lunak CUDA dapat berjalan di HIP/ROCm tanpa modifikasi apa pun — atau proses lainnya … Jalankan saja biner seperti biasa sambil memastikan bahwa perpustakaan ZLUDA pengganti CUDA dimuat. Untuk alasan yang tidak saya ketahui, AMD memutuskan tahun ini untuk menghentikan pendanaan upaya tersebut dan tidak merilisnya sebagai produk perangkat lunak apa pun. Namun kabar baiknya adalah ada klausul jika terjadi kemungkinan ini: Janik dapat membuat karya tersebut menjadi sumber terbuka jika/ketika kontrak berakhir.
Andrzej Janik menghubungi dan memberikan akses ke implementasi ZLUDA baru untuk AMD ROCm agar saya dapat mengujinya keluar dan melakukan benchmark sebelum pengumuman publik yang direncanakan hari ini. Saya telah mengujinya selama beberapa hari dan ini merupakan pengalaman positif: perangkat lunak berkemampuan CUDA memang berjalan di atas ROCm dan tanpa perubahan apa pun. Bahkan penyaji berpemilik dan sejenisnya bekerja dengan implementasi “CUDA on Radeon” ini.
Meskipun implementasi ZLUDA tidak 100% aman dari kegagalan karena dukungan NVIDIA OptiX tidak sepenuhnya didukung dan beberapa fitur seperti perangkat lunak yang tidak menggunakan kode perakitan PTX tidak saat ini ditangani. Namun sebagian besar implementasi ini secara mengejutkan mampu menjadi upaya pengembang tunggal.
Bagi mereka yang bertanya-tanya tentang kode sumber terbuka, ini memiliki lisensi ganda di bawah Apache 2.0 atau MIT. Penggemar Rust akan senang mengetahui bahasa pemrograman Rust dimanfaatkan untuk implementasi Radeon ini.
CATATAN: Dalam tangkapan layar saya dan selama dua tahun pengembangan terakhir, nama perangkat yang diekspos untuk GPU Radeon melalui CUDA hanyalah “Perangkat Grafis” dan bukan “Perangkat Grafis” adaptor grafis AMD Radeon sebenarnya dengan ROCm. Alasannya adalah karena hasil pelaporan otomatis benchmark CUDA dan perangkat lunak lain yang mungkin memiliki telemetri otomatis, untuk menghindari bocornya fakta penggunaan GPU Radeon di bawah CUDA, ini telah disetel ke string “Perangkat Grafis” generik. Saya diberi tahu sebagai bagian dari open-source ZLUDA pada kode Radeon hari ini bahwa perubahan akan diterapkan untuk mengekspos string kartu grafis Radeon yang sebenarnya, bukan concealer “Perangkat Grafis” generik.
Itulah berita seputar AMD Diam-diam Mendanai Implementasi CUDA Drop-In yang Dibangun Pada ROCm: Sekarang Open-Source, semoga bermanfaat. Disadur dari Phoronix.com.