6 poin oleh GN⁺ 2024-02-13 | 2 komentar | Bagikan ke WhatsApp

AMD diam-diam mendukung implementasi CUDA berbasis ROCm dan merilisnya sebagai open source

  • AMD telah berupaya selama bertahun-tahun agar para pengembang dapat menjalankan codebase yang menargetkan API CUDA milik NVIDIA di atas HIP/ROCm.
  • Terlepas dari upaya tersebut, jika mengejar performa terbaik, itu bukan solusi yang baik (sederhana, langsung, dan dengan performa yang terjamin).
  • Selama dua tahun terakhir, AMD diam-diam mendukung sebuah proyek yang menyediakan kompatibilitas biner pada level library agar banyak aplikasi NVIDIA CUDA dapat berjalan di atas stack AMD ROCm tanpa perubahan source code.

ZLUDA: dukungan CUDA untuk grafis Intel

  • Beberapa tahun lalu, proyek bernama ZLUDA dimulai untuk mendukung CUDA pada grafis Intel, tetapi dihentikan karena alasan pribadi.
  • Pengembang ZLUDA, Andrzej Janik, menerima kontrak dari AMD pada tahun 2022 untuk menerapkan ZLUDA pada GPU AMD menggunakan HIP/ROCm.
  • Selama dua tahun terakhir, Janik telah mengimplementasikan ZLUDA pada GPU Radeon sehingga banyak software CUDA dapat berjalan di HIP/ROCm tanpa modifikasi.

Perilisan open source ZLUDA

  • AMD memutuskan untuk menghentikan pendanaan proyek ini tahun ini dan tidak merilisnya sebagai produk software.
  • Namun, saat kontrak berakhir ada klausul yang memungkinkan Janik merilis hasil kerjanya sebagai open source.
  • Janik menyediakan akses untuk menguji dan menjalankan benchmark terhadap implementasi ZLUDA baru ini.

Keterbatasan implementasi ZLUDA dan kode open source

  • Implementasi ZLUDA tidak 100% aman, misalnya dukungan untuk NVIDIA OptiX belum lengkap dan software yang tidak menggunakan kode assembly PTX saat ini belum ditangani.
  • Dalam banyak kasus, implementasi ini sangat mengesankan untuk sebuah upaya dari satu orang pengembang.
  • Kode open source tersedia dengan lisensi ganda Apache 2.0 atau MIT.
  • Bahasa pemrograman Rust digunakan untuk implementasi Radeon ini.

Opini GN⁺

  • Artikel ini memperkenalkan proyek yang diam-diam didukung AMD untuk menyediakan kompatibilitas CUDA, dan ini dapat menjadi kontribusi besar bagi komunitas open source.
  • ZLUDA merupakan kemajuan penting yang memungkinkan para pengembang menjalankan aplikasi CUDA di platform AMD tanpa harus mengubah source code.
  • Upaya seperti ini memberi pengguna GPU AMD kesempatan untuk mengakses ekosistem software yang lebih luas, dan penggunaan bahasa pemrograman modern seperti Rust juga menarik.

2 komentar

 
bbulbum 2024-02-13

Nvidia, brengsek!

 
GN⁺ 2024-02-13
Opini Hacker News
  • ZLUDA dirilis sebagai open source sebagai akibat AMD menghentikan pendanaan

    • AMD memutuskan bahwa menjalankan aplikasi CUDA di GPU AMD bukanlah kasus bisnis yang layak setelah 2 tahun pengembangan.
    • Berdasarkan ketentuan kontrak, jika AMD menilai pengembangan lanjutan tidak layak, ZLUDA dapat dirilis ke publik.
  • Penyebutan tentang CUDA Dark API

    • CUDA Dark API terdiri dari fungsi-fungsi yang tidak terdokumentasi, dan jumlah pastinya tidak diketahui.
    • Aplikasi pada umumnya menggunakan satu atau dua fungsi yang paling umum.
    • Karena nama maupun tipe argumennya tidak diketahui, implementasinya memakan banyak waktu.
    • ZLUDA melakukan reverse engineering dan implementasi per kasus setelah mengamati aplikasi yang menggunakannya.
  • Opini yang mendukung AMD untuk mematahkan monopoli CUDA

    • Lapisan translasi punya keunggulan karena bisa langsung membuat hardware lebih layak digunakan dan mendorong adopsi.
    • Namun ada risiko para pengembang tidak mendukung ROCm dan hanya memakai lapisan translasi.
    • Proton+DXVK memang memberi dampak positif pada gaming Linux, tetapi untuk mengeluarkan performa GPU computing diperlukan tuning yang sesuai dengan arsitektur spesifik.
    • AMD harus melakukan sesuatu agar tetap kompetitif di pasar.
  • Pengalaman mencoba menjalankan Stable Diffusion di GPU AMD dan kesulitan yang dihadapi

    • Tidak ada masalah saat ROCm dipasang dan GPU terdeteksi, tetapi karena ekosistem ML berfokus pada Nvidia, instalasi PyTorch dan lainnya sulit.
    • Pada akhirnya model berhasil dimuat, tetapi software tersebut bahkan tidak sempat menghasilkan satu gambar pun sebelum membuat sesi grafis crash.
    • Pengalaman ini memunculkan keinginan untuk membeli GPU Nvidia lagi.
  • Beberapa tahun setelah Blender meninggalkan OpenCL dan memakai backend CUDA, backend Radeon HIP ditambahkan, tetapi ternyata penggunaan ZLUDA + backend CUDA sedikit lebih cepat daripada backend Radeon HIP.

  • Keputusan AMD menghentikan pendanaan untuk proyek ini tampak sulit dipahami.

    • CUDA-on-ROCm dapat mematahkan monopoli NVIDIA dan berperan menahan NVIDIA agar tidak sembarangan mengubah CUDA.
    • Jika bukan pemain nomor satu di pasar, Anda perlu mengikuti standar de facto untuk benar-benar bersaing soal nilai, sekaligus membuat dan mengikuti standar yang benar-benar terbuka.
  • Pertanyaan terkait kabar bahwa Nvidia melewati pemeriksaan driver berlisensi GPL milik kernel

    • Ada kabar bahwa di kernel 6.6 driver Nvidia akan diblokir jika Nvidia tidak memperbaikinya, tetapi tidak ada respons dari Nvidia.
    • Saat ini digunakan kernel 6.7.4, dan ada informasi yang membingungkan tentang apakah Nvidia sudah memperbaiki masalah ini atau pemblokirannya ditunda.
  • Panduan bagi mereka yang ingin mengompilasi sendiri stack ROCm/HIP AMD diperkenalkan dalam artikel Phoronix.

  • ROCm dijelaskan lebih baik di Github daripada di dokumentasi resminya, dan ini menekankan pentingnya branding sebagai salah satu alasan AMD kehilangan daya saing di pasar.

  • Ada pendapat bahwa AMD seharusnya menugaskan lebih banyak tim untuk proyek ini.