GPU: ROCm
Penjelasan Detail tentang ROCm
ROCm (Radeon Open Compute) adalah platform perangkat lunak open-source dari AMD yang dirancang untuk memungkinkan pemrograman dan pengoptimalan komputasi paralel pada Graphics Processing Units (GPU) AMD. ROCm berfungsi sebagai tumpukan perangkat lunak (software stack) yang mencakup alat-alat untuk pengembangan aplikasi tingkat rendah (seperti kernel GPU) hingga tingkat tinggi (aplikasi end-user), dan mendukung lingkungan Linux serta Windows. Platform ini dioptimalkan untuk beban kerja High-Performance Computing (HPC) dan Artificial Intelligence (AI), memungkinkan ekstraksi performa maksimal dari akselerator AMD Instinct serta GPU Radeon. Berbeda dengan CUDA milik NVIDIA yang proprietary, ROCm sepenuhnya open-source, sehingga memungkinkan modifikasi, kolaborasi komunitas, dan menghindari vendor lock-in.
Sejarah Singkat
ROCm pertama kali diluncurkan oleh AMD pada tahun 2016 sebagai respons terhadap dominasi CUDA di ekosistem komputasi GPU. Sejak itu, ROCm telah berevolusi melalui berbagai versi utama, dengan fokus pada peningkatan dukungan hardware, stabilitas, dan integrasi framework AI seperti PyTorch dan TensorFlow. Pada September 2025, versi terbaru adalah ROCm 7.0.1, yang memperkenalkan dukungan lebih luas untuk GPU generasi terbaru seperti MI300X/MI325X dan Radeon RX 7000/9000 series, serta peningkatan performa hingga 83% pada training FP16 dibandingkan versi sebelumnya. ROCm kini digunakan di lebih dari 162 superkomputer TOP500, menjadikannya pilihan utama untuk skala besar di HPC dan AI.
Arsitektur
Arsitektur ROCm bersifat berlapis (layered), dimulai dari runtime tingkat rendah hingga library tingkat tinggi. Ini memungkinkan pengembang untuk berinteraksi dengan GPU melalui antarmuka portabel, dengan dukungan untuk model pemrograman seperti HIP (mirip CUDA) dan OpenCL. Struktur utamanya mencakup:
- Runtime Layer: Menangani eksekusi kernel dan manajemen memori GPU.
- Compiler Layer: Mengkompilasi kode ke instruksi GPU.
- Library Layer: Menyediakan fungsi siap pakai untuk komputasi khusus.
- Tool Layer: Untuk debugging, profiling, dan manajemen sistem.
Komponen Utama
ROCm terdiri dari berbagai komponen yang dikelompokkan menjadi library, tools, compiler, dan runtime. Berikut adalah yang paling penting:
- HIP (Heterogeneous-compute Interface for Portability): Bahasa pemrograman GPU portabel yang mirip CUDA, memudahkan migrasi kode dari NVIDIA ke AMD melalui tool HIPIFY (konversi otomatis). HIP mendukung pengembangan aplikasi HPC dan AI dengan runtime yang efisien.
- Library:
- Machine Learning & Computer Vision: MIOpen (library deep learning), MIGraphX (graph inference engine), Composable Kernel (model pemrograman untuk kernel ML).
- Communication: RCCL (komunikasi multi-GPU/node), rocSHMEM (jaringan GPU-centric untuk skalabilitas).
- Math: rocBLAS (implementasi BLAS), hipBLAS (wrapper BLAS), rocFFT (library FFT untuk transformasi Fourier cepat).
- Primitives: rocPRIM (primitif paralel HIP), hipCUB (wrapper untuk algoritma paralel).
- Tools:
- AMD SMI (System Management Interface) untuk monitoring dan kontrol GPU.
- ROCm Compute Profiler untuk profiling kernel dan optimasi performa.
- HIPIFY untuk porting kode CUDA.
- Compilers: HIPCC (driver compiler HIP), compiler berbasis LLVM untuk C/C++/Fortran, termasuk FLANG untuk Fortran.
- Runtimes: AMD Compute Language Runtime (CLR) untuk HIP dan OpenCL, ROCR-Runtime untuk peluncuran kernel komputasi.
Fitur Utama untuk HPC dan AI
ROCm unggul dalam mendukung beban kerja paralel skala besar:
- Performa Tinggi: Optimasi untuk FP16/FP8 pada training/inference AI, dengan dukungan multi-node via RCCL.
- Portabilitas: HIP memungkinkan kode berjalan di berbagai GPU tanpa perubahan besar.
- Integrasi Framework: Dukungan native untuk PyTorch, TensorFlow, dan vLLM untuk serving AI; update 2025 menambahkan integrasi Windows preview.
- Tools Pengembangan: Profiler dan debugger untuk mengidentifikasi bottleneck di HPC simulasi atau AI model training.
- Open-Source: Komunitas aktif untuk customisasi, dengan update bi-weekly di ROCm 7.0.
Hardware yang Didukung
ROCm secara resmi mendukung GPU AMD diskrit mulai dari arsitektur GFX9 (seperti Vega) dan generasi lebih baru, termasuk:
- Instinct Series: MI300X, MI325X untuk HPC/AI enterprise.
- Radeon Series: RX 7000/9000 untuk consumer/prosumer.
- Ryzen AI: Dukungan preview untuk APU dengan iGPU.
Pengecualian: Beberapa GPU lama seperti GFX8 tidak didukung penuh. Verifikasi kompatibilitas dengan `rocm-smi` setelah instalasi.
ROCm gratis untuk developer, tapi memerlukan hardware AMD kompatibel. Untuk detail lebih lanjut, kunjungi dokumentasi resmi AMD.
Cara Instalasi ROCm di Ubuntu 24.04
Instalasi ROCm di Ubuntu 24.04 (codename "noble") didukung mulai ROCm 6.1+, dengan versi terbaru 7.0.1 yang stabil. Gunakan metode package manager native (APT) untuk kemudahan. Catatan Penting:
- Pastikan Anda memiliki GPU AMD yang kompatibel (GFX9+).
- Jalankan sebagai root atau gunakan `sudo`.
- Setelah instalasi, reboot sistem dan tambahkan user ke grup `render` dan `video` untuk akses GPU.
- Jika ada kesalahan verifikasi tanda tangan (GPG key), unduh ulang key karena bisa berubah.
- Untuk upgrade dari versi sebelumnya, ikuti langkah yang sama; gunakan `apt autoremove rocm` untuk uninstall.
Prasyarat
1. Update sistem:
sudo apt update && sudo apt upgrade
2. Instal header kernel dan modul ekstra:
sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)"
3. Instal Python prasyarat:
sudo apt install python3-setuptools python3-wheel
4. Konfirmasi GPU: Jalankan perintah berikut untuk memeriksa hardware.
lspci | grep -i amd
Langkah Instalasi (Metode Package Manager)
1. Buat Direktori Keyrings (jika belum ada):
sudo mkdir --parents --mode=0755 /etc/apt/keyrings
2. Unduh dan Konversi Kunci Penandatanganan Paket (GPG Key):
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null
3. Tambahkan Repositori ROCm:
Buat file `/etc/apt/sources.list.d/rocm.list` dengan konten berikut (untuk Ubuntu 24.04/noble):
sudo tee /etc/apt/sources.list.d/rocm.list << EOF deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/7.0.1 noble main deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/graphics/7.0.1/ubuntu noble main EOF
4. Atur Prioritas Paket (untuk menghindari konflik):
sudo tee /etc/apt/preferences.d/rocm-pin-600 << EOF Package: * Pin: release o=repo.radeon.com Pin-Priority: 600 EOF
5. Update Daftar Paket:
sudo apt update
6. Instal Paket AMDGPU Installer (untuk driver):
wget https://repo.radeon.com/amdgpu-install/7.0.1/ubuntu/noble/amdgpu-install_7.0.1.70001-1_all.deb sudo apt install ./amdgpu-install_7.0.1.70001-1_all.deb
7. Instal Driver AMDGPU DKMS:
sudo apt install amdgpu-dkms
8. Instal ROCm:
- Untuk instalasi dasar (semua komponen core, tools, dan library):
sudo amdgpu-install --usecase=rocm
- Atau instal meta-paket spesifik, misalnya:
sudo apt install rocm # semua ROCm core sudo apt install rocm-hip-sdk # untuk pengembangan HIP sudo apt install rocm-ml-sdk # untuk machine learning
9. Konfigurasi Akses User: kemudian
sudo usermod -a -G render,video $LOGNAME
10. Reboot Sistem:
sudo reboot
- Verifikasi Instalasi
- Jalankan `rocm-smi` untuk memeriksa GPU dan versi ROCm (mirip `nvidia-smi`).
rocm-smi
- Uji HIP: `hipconfig --full` untuk info konfigurasi.
hipconfig --full
- Jika error, periksa log di `/var/log/rocm-install.log` atau jalankan `rocminfo` untuk info runtime.
rocminfo
Jika mengalami isu (misalnya dependensi jammy), tambahkan repo jammy sementara untuk paket lama: Ganti "noble" dengan "jammy" di langkah 3, tapi prioritaskan noble untuk stabilitas. Untuk troubleshooting lebih lanjut, lihat forum AMD atau dokumentasi resmi.