- ZLUDA 3 adalah teknologi open-source yang berupaya menjalankan aplikasi untuk GPU NVIDIA yang terikat pada CUDA di GPU AMD tanpa modifikasi
- Awalnya dimulai sebagai implementasi pengganti CUDA untuk GPU Intel, tetapi setelah evaluasi oleh Intel dan AMD dihentikan, kali ini kode untuk GPU AMD telah dirilis
- Pada Blender, ada kasus performa yang mirip dengan backend HIP native, tetapi 3DF Zephyr dan RealityCapture ditandai “much slower” di ZLUDA sehingga perbedaannya besar tergantung aplikasi
- Kemungkinan menjalankan aplikasi CG khusus NVIDIA seperti RealityCapture dan Arnold telah dikonfirmasi, tetapi dukungan OptiX tetap pada tingkat minimal di Linux sehingga ada keterbatasan untuk alur kerja rendering
- Tanpa dukungan dari Intel maupun AMD, proyek ini dinilai hampir “realistically now abandoned”, dan lisensi SDK NVIDIA juga membatasi pengembangan lapisan translasi untuk platform non-NVIDIA
Masalah ketergantungan CUDA yang ingin dipecahkan ZLUDA 3
- ZLUDA 3 adalah proyek open-source yang memungkinkan aplikasi berbasis GPU yang dibuat untuk GPU NVIDIA berjalan di perangkat keras dari vendor lain
- Dirancang agar aplikasi yang sudah ada dapat berjalan di perangkat keras baru tanpa modifikasi, sehingga tidak memerlukan pekerjaan porting tambahan dari pengembang aplikasi
- ZLUDA pertama kali diperkenalkan pada 2020 sebagai implementasi pengganti CUDA yang bersifat drop-in untuk GPU Intel, dan setelah versi 2 pada 2021 pengembangannya menjadi sulit untuk dilanjutkan
- Pada 2021, saat Andrzej Janik masih bekerja di Intel, Intel mengevaluasi ZLUDA sebagai kandidat teknologi resmi, tetapi menilai bahwa “tidak ada business case untuk menjalankan aplikasi CUDA di GPU Intel”
- Setelah meninggalkan Intel pada 2022, Janik mendekati AMD, dan AMD juga mengevaluasi ZLUDA selama dua tahun tetapi memutuskan untuk tidak melanjutkannya
- Setelah itu, kode yang telah diperbarui dirilis sebagai open source, dan latar belakang terkait dapat dibaca lebih rinci di artikel Phoronix
Cakupan operasi yang terkonfirmasi di aplikasi CG
- ZLUDA 3 bertujuan menjalankan aplikasi GPU yang dikembangkan dengan API CUDA milik NVIDIA di GPU AMD
- Di bidang VFX, motion graphics, dan visualisasi, ada beberapa aplikasi CG inti dan renderer yang berbasis CUDA sehingga pada praktiknya tetap eksklusif untuk NVIDIA
- HIP milik AMD adalah teknologi untuk mem-porting aplikasi CUDA ke perangkat keras AMD, tetapi tetap membutuhkan pekerjaan dari pengembang perangkat lunak
- Perangkat lunak khusus NVIDIA yang diuji Janik dengan ZLUDA mencakup 3DF Zephyr, RealityCapture, dan Autodesk Arnold
- Dukungan untuk Arnold masih pada tingkat proof of concept, dan jumlah scene yang berhasil dirender dengan implementasi OptiX milik ZLUDA masih terbatas
Batasan realistis pada performa dan kompatibilitas
- Janik menilai bahwa aplikasi CUDA berjalan di GPU AMD dengan “near-native performance”
- Menurut benchmark Phoronix dan thread di forum Blender Artists, ada kasus di Blender di mana performa ZLUDA mirip dengan backend HIP native
- Sebaliknya, repositori GitHub ZLUDA menandai 3DF Zephyr dan RealityCapture sebagai much slower di ZLUDA
- Banyak renderer GPU juga menggunakan OptiX milik NVIDIA selain CUDA untuk akselerasi ray tracing
- Dukungan OptiX di ZLUDA berada pada tingkat “minimum”
- Dukungan OptiX hanya tersedia di Linux dan tidak ada di Windows
- Status implementasinya adalah “buggy, unoptimized and incomplete”
- ZLUDA-OptiX tidak disertakan dalam versi redistribusi sehingga harus dibangun sendiri
- Sulit menilai kemungkinan aplikasi CG berbasis CUDA lain dapat dijalankan tanpa pengujian dari pengguna
- Masih ada known issues
- V-Ray benchmark dapat berjalan pada sebagian kombinasi lama ZLUDA dan HIP yang “lucky”
- OctaneBench sama sekali tidak berjalan
Keberlanjutan proyek dan pembatasan lisensi
- Janik menilai bahwa tanpa dukungan dari Intel atau AMD, ZLUDA secara realistis kini berada dalam kondisi “realistically now abandoned”
- Ia tetap terbuka pada usulan untuk memajukan proyek ini
- Jika tidak, kemungkinan besar ia hanya akan menambahkan dukungan untuk teknologi NVIDIA yang secara pribadi menarik baginya seperti DLSS
- Kode saat ini juga dapat dimanfaatkan oleh pengembang perangkat lunak yang sedang melakukan porting bertahap dari CUDA ke HIP
- Menurut pembaruan 14 Maret 2024, Tom’s Hardware menyoroti bahwa ketentuan lisensi SDK NVIDIA melarang penggunaan output SDK termasuk CUDA Toolkit untuk mengembangkan teknologi translasi yang ditujukan ke platform non-NVIDIA
- Versi terkompilasi ZLUDA 3 tersedia untuk Windows dan Linux, sedangkan kode sumbernya tersedia di bawah Apache 2.0 atau MIT license
- Unduh ZLUDA 3 tersedia di repositori GitHub proyek
1 komentar
Opini Hacker News
Ada diskusi terkait juga 22 hari sebelumnya: sebuah tulisan [0] tentang AMD yang mendanai implementasi drop-in CUDA berbasis ROCm lalu kemudian merilisnya sebagai open source mendapat 400 komentar
Komentar tingkat teratas yang patut diperhatikan di thread itu mengatakan bahwa publikasinya sendiri adalah akibat AMD menghentikan pendanaan: “Setelah 2 tahun pengembangan dan peninjauan, AMD menilai bahwa menjalankan aplikasi CUDA di GPU AMD tidak memiliki kelayakan bisnis. Salah satu ketentuan kontrak dengan AMD adalah bahwa jika AMD menilai pengembangan lanjutan tidak sesuai, saya boleh mempublikasikannya. Jadi sampailah kita pada hari ini.” Sumber: https://github.com/vosen/ZLUDA?tab=readme-ov-file#faq
[0] https://news.ycombinator.com/item?id=39344815
Zluda: Run CUDA code on Intel GPUs, unmodified - https://news.ycombinator.com/item?id=36341211 - Juni 2023, 90 komentar
Zluda: CUDA on Intel GPUs - https://news.ycombinator.com/item?id=26262038 - Februari 2021, 77 komentar
Tulisan terkait terbaru lainnya adalah Nvidia bans using translation layers for CUDA software to run on other chips - https://news.ycombinator.com/item?id=39592689 - Maret 2024, 155 komentar
AMD benar-benar tidak masuk akal menghentikan pendanaan proyek ini. Begitu dirilis sebagai open source, proyek ini langsung mulai menciptakan nilai bagi pengguna AMD
Hal seperti ini rasanya semestinya menjadi prioritas utama AMD, tetapi mereka justru selama bertahun-tahun berkutat dengan dua, sekarang mungkin tiga, API alternatif yang dukungannya minim
“HIP sangat tipis sehingga dampak performanya hampir tidak ada atau tidak ada sama sekali dibandingkan coding langsung dalam mode CUDA”
“Tool HIPIFY secara otomatis mengonversi source CUDA menjadi HIP”
Untuk kartu grafis konsumen mungkin bisa memberi keuntungan jangka pendek, tetapi dalam jangka panjang ini lebih mirip langkah bunuh diri yang terus mengukuhkan posisi Nvidia di data center
Dalam diskusi ini, tulisan “Nvidia melarang penggunaan lapisan translasi untuk menjalankan software CUDA di chip lain” juga tampak relevan [1]
[1] https://news.ycombinator.com/item?id=39592689
Emulasi dilindungi hukum, baik secara eksplisit maupun berdasarkan preseden. Peniruan API untuk tujuan kompatibilitas sudah sampai ke Mahkamah Agung AS dan diputuskan bukan objek hak cipta. Setidaknya saya rasa demikian dalam cakupan yang cukup luas
Saya bukan pengacara, tetapi sulit melihat dasar hukum apa yang diharapkan Nvidia. Kalau individu atau perusahaan sama sekali tidak punya hardware Nvidia, ini terasa seperti isu yang tidak bermakna. Jika perusahaan sudah memiliki hardware Nvidia, mereka mungkin bisa mengajukan argumen sampai batas tertentu, tetapi bukankah itu justru masuk tepat ke ranah tindakan antipersaingan?
Memang melanggar EULA, tetapi selama tidak mengunduh software CUDA, tidak perlu menyetujui EULA, dan para pembuat ZLUDA mungkin bisa menghindari hal itu
“Intel pun pada akhirnya menilai bahwa ‘menjalankan aplikasi CUDA di GPU Intel tidak memiliki kelayakan bisnis’,” ini benar-benar menyulitkan
Fakta yang diketahui siapa pun yang pernah menyentuh GPGPU AMD, bahkan sekali saja, akhirnya terkonfirmasi. Satu-satunya hal yang mencegah AMD menjadi perusahaan bernilai 2 triliun dolar benar-benar adalah software yang mengerikan
Saya ingat pernah menemukan bug compiler OpenCL AMD [1], dan sangat mudah juga membuat compiler OpenCL itu mati dengan segmentation fault. Itu tidak pernah diperbaiki, jadi saya menyerah untuk melaporkannya
Fakta bahwa AMD tidak mengembangkan pesaing CUDA adalah salah satu keputusan paling rabun yang pernah saya lihat. Saya tidak mengerti mengapa dewan direksinya tidak diganti dengan orang-orang yang paham bahwa sekalipun Anda membuat hardware terbaik, jika software yang memakainya—dengan kata-kata sehalus mungkin—buruk sekali, tidak ada yang akan membeli atau menggunakannya
Kami sebagai pelanggan harus membeli kartu Nvidia yang mahal karena dewan direksi AMD rupanya terlalu kaya untuk peduli pada nilai sekitar 1 triliun dolar yang mereka biarkan tergeletak di atas meja. Kalau Anda punya saham AMD, Anda harus mulai bertanya. Dewan itu sebaiknya dibuang ke saluran pembuangan terdekat
[1] https://github.com/msoos/amdmiscompile -- pada akhirnya ini diperbaiki
Pemahaman naif saya: kartu grafis adalah komputer aneh tempat kita bisa menaruh instruksi dan data, lalu membiarkannya menghitung sendiri
Saya tidak mengerti mengapa CUDA begitu besar. Tidak bisakah AMD membuat GPU mereka bisa diakses langsung seperti array berisi 4096 board Arduino?
Perusahaan yang mengembangkan hardware pada umumnya buruk dalam software. Ada pengecualian, tetapi tidak banyak, dan perusahaan seperti itu memang mendapat imbalan lewat harga sahamnya. Saya tidak tahu budaya divisi software AMD, tetapi biasanya perlu perubahan yang cukup besar untuk memperbaiki hal seperti ini
Mengganti dewan direksi saja kemungkinan tidak akan menyelesaikannya. Jika arahan eksekutif puncak bukan satu-satunya faktor yang menyeret perusahaan ke bawah, jauh lebih banyak lapisan manajemen harus diubah, dan cukup banyak manajer menengah juga harus diganti. Jika perekrutan software-nya tidak berjalan benar, kadang sampai kontributor individual pun harus diganti
Intel bagus dalam software, dan SYCL adalah standar terbuka, jadi kedua perusahaan bisa mendapat manfaat dari kode yang sama, sementara pelanggan bisa menjalankan kode SYCL di Threadripper kalau mau. Beberapa Threadripper zaman sekarang bahkan secepat sebagian GPU
Apakah AMD mencoba membuat ekosistem lock-in proprieter miliknya sendiri? Saya tidak mengerti mengapa mereka tidak berkomitmen pada standar terbuka lintas platform
Saat UPS saya kurang bagus, saya juga bisa membatasi daya GPU, dan saya bisa melakukan auto-overclock agar RX 580 bisa dipakai sekitar satu tahun lebih lama
Namun software/driver setelah sekitar 2020 membuat judul VR crash dalam waktu kurang dari satu jam. Tidak ada paket software untuk Linux, dan CoreCtrl tidak sebagus itu. Instant replay juga kadang-kadang begitu saja tidak berfungsi. Saya tidak pernah berhasil memasangkan ROCm dengan LLM lokal, baik di Windows maupun Linux, dan DKMS suka melakukan banyak kompilasi sia-sia setiap kali apt upgrade
Untuk GPU berikutnya, saya sedang mempertimbangkan apakah akan mencoba Intel Arc karena penasaran, atau kembali saja ke Nvidia. Kandidatnya kira-kira A580, RX 6600, RTX 3050, atau mungkin saya bertahan dulu sampai harga komponen lain turun
Apakah ada bahasa pemrograman yang dikompilasi ke berbagai bahasa kernel seperti Metal, CUDA, dan sesuatu dari sisi AMD? Kalau tidak ada, kenapa?
Compiler C mengompilasi ke berbagai arsitektur CPU. Bukankah seharusnya ada juga compiler yang menargetkan arsitektur GPU? Mungkin saja hanya belum ada yang membuatnya
https://www.khronos.org/api/opencl
Ada yang pernah memakai ini untuk menjalankan alat fotogrametri open-source seperti Meshroom? Artikel menyebut beberapa alat proprieter, tetapi kebutuhan saya cukup kecil
Ini terlihat hampir persis seperti kasus Oracle vs Google seputar penggunaan bytecode JVM
Ini mirip Google mengatakan, “aplikasi Android kami hanya boleh berjalan di ponsel yang disetujui Google.” Sejauh pemahaman saya, Google memang melakukan hal semacam itu untuk hal-hal seperti framework Play atau Maps
Baru-baru ini saya mendengar rumor menarik: orang yang menangani CUDA di NVIDIA selama bertahun-tahun harus berjuang mendapatkan sumber daya dan meyakinkan perusahaan agar menganggap proyek ini serius
Tanpa CUDA, NVIDIA tidak mungkin menjadi perusahaan yang hari ini bernilai hampir 1 triliun dolar
geohot yang terus bergulat dengan GPU AMD mahal juga terkait: https://twitter.com/tinygrad/status/1764734675002810622