ZLUDA membuat aplikasi CUDA dapat berjalan di GPU AMD
- ZLUDA 3, proyek open source yang dikembangkan oleh Andrzej Janik, memungkinkan aplikasi berbasis GPU yang dirancang untuk GPU NVIDIA berjalan di perangkat keras dari produsen lain.
- Teknologi ini dirancang agar aplikasi yang sudah ada dapat berjalan di perangkat keras baru tanpa pekerjaan tambahan dari pengembang.
- Versi sebelumnya dari ZLUDA memungkinkan aplikasi CUDA berjalan di GPU Intel, tetapi pada versi 3 fokusnya beralih ke GPU AMD.
Bukankah ZLUDA untuk GPU Intel?
- ZLUDA pertama kali dirilis pada 2020 sebagai pengganti CUDA untuk GPU Intel.
- Setelah perilisan versi 2 pada 2021, Janik mengumumkan bahwa ia tidak dapat melanjutkan pengembangan proyek, tetapi kemudian Intel mulai mengevaluasi ZLUDA sebagai teknologi resmi.
- Intel memutuskan tidak ada alasan bisnis untuk menjalankan aplikasi CUDA di GPU Intel, lalu Janik meninggalkan perusahaan dan mendekati AMD.
- AMD mengevaluasi ZLUDA selama dua tahun, tetapi memutuskan untuk tidak melanjutkan proyek tersebut, dan Janik kemudian merilis kode yang telah diperbarui sebagai open source.
Mengapa ini penting bagi artist CG?
- ZLUDA versi 3 memungkinkan aplikasi berbasis GPU yang dikembangkan menggunakan CUDA API milik NVIDIA berjalan di GPU AMD.
- Di industri seperti VFX, motion graphics, dan visualisasi, banyak aplikasi CG utama, khususnya renderer, berbasis CUDA dan eksklusif untuk NVIDIA.
- AMD memiliki teknologinya sendiri, HIP, tetapi ini memerlukan pekerjaan dari pengembang perangkat lunak.
- ZLUDA sendiri sebenarnya dibangun di atas HIP, dan dirancang agar aplikasi CUDA dapat berjalan di GPU AMD tanpa modifikasi.
Seberapa cepat aplikasi CUDA berjalan di bawah ZLUDA?
- Janik menjelaskan bahwa aplikasi CUDA berjalan di GPU AMD dengan "kinerja yang hampir native".
- Namun, menurut repositori GitHub ZLUDA, 3DF Zephyr dan RealityCapture berjalan "jauh lebih lambat" di bawah ZLUDA.
- Banyak pengembang GPU renderer juga menggunakan OptiX, API NVIDIA kedua yang turut berkontribusi pada performa, dan ZLUDA hanya memberikan dukungan "minimal" untuk OptiX.
Apakah aplikasi CG lain bisa berjalan melalui ZLUDA di GPU AMD?
- Tanpa pengujian dari pengguna, sulit mengatakan seberapa baik aplikasi CG berbasis CUDA lain akan berjalan di bawah ZLUDA.
- Ada banyak masalah yang sudah diketahui, dan Janik hanya meraih keberhasilan terbatas dengan GPU renderer lain.
Apakah lebih banyak aplikasi CG berbasis CUDA bisa berjalan di bawah ZLUDA di masa depan?
- Janik mengatakan bahwa tanpa dukungan dari Intel atau AMD, ZLUDA "secara realistis berada dalam keadaan terbengkalai".
- Ia terbuka terhadap usulan yang dapat mendorong proyek ini maju, tetapi jika tidak, kemungkinan besar ia hanya akan mendukung teknologi NVIDIA yang secara pribadi menarik baginya.
- Kode sumber tersedia untuk umum, dan bahkan dalam kondisi saat ini, ZLUDA dapat digunakan oleh pengembang perangkat lunak sebagai bagian dari "porting yang lebih bertahap" dari CUDA ke HIP.
Lisensi dan persyaratan sistem
- Versi terkompilasi ZLUDA 3 tersedia untuk Windows dan Linux. Kode sumber disediakan di bawah lisensi Apache 2.0 atau MIT.
Opini GN⁺
- ZLUDA berpotensi mendorong persaingan di pasar GPU dengan membuka ekosistem CUDA milik NVIDIA yang tertutup bagi pengguna AMD.
- Proyek ini dapat bermanfaat khususnya bagi pengguna perangkat lunak rendering atau aplikasi komputasi ilmiah yang bergantung pada CUDA, dengan menyediakan lebih banyak pilihan perangkat keras.
- Namun, karena ZLUDA masih berada pada tahap awal dan belum menawarkan performa serta kompatibilitas penuh, adopsinya di lingkungan produksi nyata perlu dilakukan dengan hati-hati.
- Mengurangi kesenjangan teknologi antara AMD dan NVIDIA dapat memberi konsumen harga yang lebih baik dan lebih banyak pilihan, yang pada akhirnya mendorong persaingan pasar yang sehat.
- Minat dan kontribusi berkelanjutan dari komunitas open source akan penting bagi keberhasilan proyek ini, sekaligus memberi peluang baik bagi para ahli di bidang terkait untuk berkontribusi.
1 komentar
Komentar Hacker News
Diskusi sebelumnya 22 hari lalu: AMD mengembangkan implementasi CUDA berbasis ROCm dan merilisnya sebagai open source [0], ada 400 komentar.
Sangat tidak masuk akal bahwa AMD menghentikan pendanaan proyek ini. Begitu dirilis sebagai open source, proyek ini langsung mulai memberi nilai bagi pengguna AMD, padahal ini seharusnya menjadi prioritas tertinggi AMD, tetapi AMD justru membuang waktu bertahun-tahun dengan dua (atau tiga?) API alternatif yang sampai sekarang hampir tidak mendapat dukungan.
Hal yang relevan dengan diskusi ini: Nvidia melarang penggunaan translation layer untuk perangkat lunak CUDA agar bisa berjalan di chip lain [1]
Intel pada akhirnya juga memutuskan bahwa "tidak ada business case untuk menjalankan aplikasi CUDA di GPU Intel". Ini menegaskan apa yang sudah diketahui semua orang yang pernah berurusan dengan AMD GPGPU.
Sudah menjadi pengetahuan umum bahwa perangkat lunak AMD sangat buruk, dan ini adalah satu-satunya faktor yang menghalangi AMD menjadi perusahaan bernilai 2 triliun dolar. Kompiler OpenCL AMD punya bug, dan saya bisa dengan mudah membuat kompiler itu crash lewat segfault (akhirnya saya menyerah dan tidak melaporkannya). Fakta bahwa AMD tidak mengembangkan pesaing untuk CUDA adalah pandangan yang sangat jangka pendek. Saya tidak mengerti kenapa dewan direksi AMD belum diganti. Anda bisa membuat hardware terbaik, tetapi jika perangkat lunak untuk memakainya buruk, tidak ada yang akan membeli atau menggunakannya. Sebagai pelanggan, AMD terlihat seperti tidak peduli dengan nilai triliunan dolar yang dibiarkan begitu saja di atas meja, sehingga saya tidak punya pilihan selain membeli kartu Nvidia yang dinilai terlalu mahal. Orang-orang yang memiliki saham AMD seharusnya mulai bertanya, dan dewan direksi itu sebaiknya dibuang ke selokan terdekat.
Saya penasaran apakah ada bahasa pemrograman yang bisa dikompilasi ke berbagai bahasa kernel seperti Metal, CUDA, dan apa pun yang dimiliki AMD. Kalau belum ada, kenapa? Seperti halnya ada kompiler C yang bisa menargetkan berbagai arsitektur CPU, bukankah seharusnya juga ada kompiler yang bisa menargetkan arsitektur GPU? Mungkin memang belum ada yang membuatnya.
Saya penasaran apakah ada yang sudah mencoba menjalankan ini dengan alat fotogrametri OSS seperti Meshroom. Artikelnya memang menyebut beberapa hal yang proprietary, tetapi kebutuhan nyatanya sepertinya tidak terlalu banyak.
Masalah pada GPU AMD bukan kernel individualnya, melainkan library. Dari release note yang menyebutkan 'menambahkan dukungan minimal untuk cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL, NVML', tampaknya proyek ini memang bergerak ke arah itu. Tidak ada yang tahu apakah proyek ini bisa mempertahankan momentumnya setelah AMD menghentikan pendanaannya.
Ini hampir persis sama dengan persoalan penggunaan bytecode JVM dalam kasus Oracle vs Google.
Perjuangan geohot yang terus berlanjut dengan GPU AMD (dan mahal) juga relevan: tautan Twitter