ROCm adalah singkatan dari Radeon Open Compute, yaitu sebuah software stack (rangkaian perangkat lunak) yang dikembangkan oleh AMD. Tujuannya: menyediakan alat-alat yang memudahkan pemrogram (developer) menggunakan GPU AMD tidak hanya untuk grafis, tetapi juga untuk keperluan komputasi yang sangat besar, misalnya simulasi, AI / machine learning, pemrosesan data ilmiah, dan lain-lain.
Dengan kata lain ROCm adalah “jembatan” antara perangkat keras GPU AMD dan program yang ingin berjalan di atasnya, meliputi dari bagian inti di dalamnya (driver, runtime) hingga bagian terluarnya seperti pustaka dan applikasinya. Cek arsitektur ROCm yang dipublikasikan oleh AMD berikut ini.

ROCm bukanlah satu perangkat lunak tunggal, melainkan kumpulan modul (komponen) yang bekerja bersama. Berikut beberapa komponen pentingn ROCm:
Library adalah kode siap pakai yang menyediakan fungsi-fungsi umum agar pengembang tidak perlu menulis semuanya dari nol. Beberapa library ROCm:
Alat untuk membantu manajemen, debugging, pemantauan performa, dan validasi:
Agar kode pengguna bisa dijalankan di GPU, dibutuhkan:
Sederhananya, ROCm bekerja seperti berikut ini:
Penulisan Kode Pengembang menulis kode aplikasi yang akan menggunakan GPU, dengan menggunakan API seperti HIP, atau library yang disediakan.
Kompilasi & Penerjemahan Kode HIP diterjemahkan oleh HIPCC ke dalam bahasa yang bisa dimengerti GPU (mirip seperti compiler → assembler).
Runtime & Eksekusi Runtime ROCm mengatur bagaimana kernel (fungsi yang dijalankan di GPU) dipanggil, mengalokasikan memori dari CPU ke GPU, pertukaran data, sinkronisasi, dan lain-lain.
Pustaka Tingkat Tinggi & Optimasi Saat aplikasi membutuhkan fungsi khusus (misalnya operasi matriks besar, transformasi Fourier, atau neural network), ia akan memanggil pustaka seperti rocBLAS, MIOpen, dll., yang sudah dioptimalkan agar berjalan cepat di GPU AMD.
Profiling & Debugging Untuk memeriksa apakah kode berjalan efisien atau ada bug, alat profiler dan debugger digunakan. Fitur ini membantu pengembang memperbaiki dan meningkatkan performa aplikasi GPU-nya.
Bagi pembaca awam yang mungkin mengenal GPU dari sisi grafis gaming, beberapa keunggulan ROCm di ranah komputasi adalah:
Arsitektur terbuka (open source) Banyak komponennya bersifat open source, sehingga pengguna dapat melihat, memodifikasi, dan ikut berkontribusi. Konsep ini berbeda dari beberapa solusi tertutup atau propietary, seperti CUDA dari NVIDIA.
Portabilitas via HIP Kode yang ditulis dengan HIP bisa lebih mudah dipindah (port) antar jenis GPU, misalnya dari AMD ke platform lain (dengan modifikasi tertentu yang lebih sederhana dibandingkan piranti lunak propietary).
Ekosistem lengkap ROCm menyediakan keseluruhan pipeline, mulai dari kernel tingkat rendah hingga library AI, sehingga pengembang tidak perlu mencari dan menggunakan banyak alat dari pihak ketiga sebagian besar modul dan pustaka sudah disediakan dan terintegrasi satu sama lainnya.
Optimasi untuk GPU AMD Karena ROCm dibuat oleh AMD sendiri, pustaka dan runtime-nya dapat dioptimalkan sedemikian rupa agar cocok dengan arsitektur GPU AMD, sehingga menghasilkan performa lebih baik.
Referensi