- SCALE adalah toolkit pemrograman GPGPU yang memungkinkan aplikasi CUDA dikompilasi secara native untuk GPU AMD
- Tidak perlu memodifikasi program CUDA maupun sistem build, dan dukungan untuk lebih banyak vendor GPU serta API CUDA sedang dalam pengembangan
Bagaimana cara kerjanya?
- SCALE memiliki beberapa inovasi utama dibandingkan solusi GPGPU lintas platform lainnya
- Menerima program CUDA apa adanya. Tidak perlu di-porting ke bahasa lain. Ini juga berlaku bahkan jika program menggunakan inline PTX
asm
- Kompiler SCALE menerima opsi baris perintah dan dialek CUDA yang sama dengan
nvcc, sehingga berfungsi sebagai pengganti langsung
- "Menyamar" sebagai instalasi NVIDIA CUDA Toolkit sehingga alat dan skrip build yang ada tetap bekerja seperti biasa
Proyek apa saja yang telah diuji?
- SCALE divalidasi dengan mengompilasi proyek CUDA open source dan menjalankan pengujiannya
- Saat ini proyek open source berikut termasuk dalam pengujian otomatis nightly dan semuanya lulus sepenuhnya
- NVIDIA Thrust, Blender Cycles, AMGX, llama-cpp, faiss, xgboost, GOMC, stdgpu, hashcat
GPU apa saja yang didukung?
- Target GPU berikut didukung dan termasuk dalam pengujian nightly
- AMD
gfx1030 (Navi 21, RDNA 2.0)
- AMD
gfx1100 (Navi 31, RDNA 3.0)
- Target GPU berikut telah melalui pengujian manual sementara dan "tampaknya berfungsi"
- Dukungan untuk GPU berikut sedang dikerjakan
- AMD
gfx900 (Vega 10, GCN 5.0)
- Jika Anda ingin dukungan cepat untuk arsitektur GPU AMD tertentu, silakan hubungi mereka
Komponen SCALE
- Kompiler kompatibel
nvcc yang dapat mengompilasi CUDA dialek nvcc untuk GPU AMD, termasuk PTX asm
- Implementasi runtime CUDA dan API driver untuk GPU AMD
- Library wrapper open source yang menyediakan API "CUDA-X" dengan mendelegasikan ke library ROCm. Library seperti
cuBLAS dan cuSOLVER ditangani dengan cara ini
Perbedaan SCALE dengan solusi lain
- Alih-alih menyediakan cara baru untuk menulis perangkat lunak GPGPU, SCALE memungkinkan program yang ditulis dalam bahasa CUDA yang digunakan luas untuk langsung dikompilasi bagi GPU AMD
- SCALE bertujuan untuk sepenuhnya kompatibel dengan NVIDIA CUDA. Mereka meyakini pengguna seharusnya dapat mendukung banyak vendor GPU tanpa harus memelihara banyak codebase atau berkompromi pada performa
- Bahasa SCALE adalah superset dari NVIDIA CUDA, yang menawarkan ekstensi bahasa opsional agar penulisan kode GPU menjadi lebih mudah dan efisien bagi pengguna yang ingin melampaui
nvcc
- SCALE adalah pekerjaan yang masih berlangsung. Jika ada API yang belum tersedia dan menghalangi penggunaan, silakan hubungi mereka. Prioritas pengembangan akan disesuaikan
Ringkasan GN⁺
- SCALE adalah toolkit penting yang memungkinkan aplikasi CUDA dikompilasi secara native untuk GPU AMD
- Ada keuntungan besar bagi pengembang karena dapat dijalankan di GPU AMD tanpa perlu memodifikasi program CUDA yang sudah ada
- Karena menargetkan kompatibilitas penuh dengan NVIDIA CUDA, ini menguntungkan untuk mendukung banyak vendor GPU
- Ini adalah proyek yang masih berjalan, dan jika API yang dibutuhkan belum tersedia, Anda dapat menghubungi tim pengembang untuk menyesuaikan prioritas
- Proyek dengan fungsi serupa termasuk ROCm dan HIP
1 komentar
Komentar Hacker News
Ada pendapat bahwa banyak orang berpikir AMD harus mendukung lapisan translasi, tetapi itu adalah ide yang buruk
Ada pendapat bahwa mengejar kompatibilitas bug adalah hal yang bodoh
Ada pendapat bahwa sulit memahami bagaimana kode yang sangat bergantung pada hardware bisa "langsung berfungsi" di AMD
Ada pendapat bahwa jika ini benar maka mengesankan, tetapi proyek ini tidak open source dan kurang detail yang tepat tentang cara kerjanya
Ada pendapat bahwa penyebab utama valuasi Nvidia yang tinggi adalah karena AMD tidak berinvestasi untuk membuat GPU-nya berguna bagi ML
Ada pendapat bahwa AMD sudah melakukan terlalu banyak kesalahan sampai-sampai proyek seperti ini ingin diberi selamat
Pernah bekerja di Spectral Compute beberapa tahun lalu
Pernah menulis sedikit CUDA
Ada pendapat bahwa proyek ini hebat
Bagus bahwa ada halaman mengenai keterbatasan saat ini, tetapi ada pendapat bahwa apa yang kebanyakan orang sebut sebagai "CUDA" hanyalah sebagian kecil dari kemampuan CUDA yang sebenarnya
Ada pendapat bahwa ini mungkin nyata karena secara teknis memungkinkan