Si vas a comenzar a trabajar con ROCm para GPUs de AMD, te explico cómo se puede instalar en tu distro Linux favorita paso a paso. Además, te mostraré qué se puede hacer con este software y cómo puedes empezar con tus primeros proyectos.
Mientras CUDA está más orientado a programación GPGPU, ROCm de AMD, es una suite con la que trabajar tanto con GPGPU, como también con IA usando tarjetas gráficas de esta marca.
Requisitos previos y compatibilidad
Para poder usar ROCm, también es necesario cumplir una serie de requisitos, de lo contrario, no podrás usar esta toolkit:
- Distro: confirma que tu distro cumple los requisitos de ROCm antes de instalar. En la guía oficial selecciona tu sistema y versión para ver comandos exactos y prerrequisitos. Si usas Ubuntu, Debian, RHEL o SUSE, el soporte está garantizado.
- Hardware: recuerda que para ROCm tendrás que tener una GPU compatible, desde Vega, pasando por CDNA 1, 2 Y 3, así como para RDNA 1, 2, 3, y 4, o las venideras, son compatibles.
- Biblioteca: debes tener la versión Glib indicada para tu versión de ROCm, y que también podrás buscar en la web anterior…
También te puede interesar conocer cuáles son las mejores GPUs
Instalar ROCm paso a paso en Linux
Dependiendo de la distro que uses, el proceso será ligeramente diferente:
Ubuntu
En caso de tener Ubuntu, lo primero es instalar los drivers propietarios de AMD, los AMDGPU PRO, y luego el paquete de ROCm y las dependencias:
wget https://repo.radeon.com/amdgpu-install/7.1.1/ubuntu/noble/amdgpu-install_7.1.1.70101-1_all.deb
sudo apt install ./amdgpu-install_7.1.1.70101-1_all.deb
sudo apt update
sudo apt install python3-setuptools python3-wheel
sudo usermod -a -G render,video $LOGNAME
sudo apt install rocm
sudo reboot
Estos comandos validan la pila ROCm y el compilador HIP.
Debian
Para Debian, puedes usar estos otros comandos:
wget https://repo.radeon.com/amdgpu-install/7.1.1/ubuntu/noble/amdgpu-install_7.1.1.70101-1_all.deb
sudo apt install ./amdgpu-install_7.1.1.70101-1_all.deb
sudo apt update
sudo apt install python3-setuptools python3-wheel
sudo usermod -a -G render,video $LOGNAME
sudo apt install rocm
sudo reboot
Si `rocminfo` enumera tu GPU y `hipcc` muestra versión, la base está lista.
RHEL
En este caso, los pasos serían estos otros:
sudo dnf install https://repo.radeon.com/amdgpu-install/7.1.1/rhel/10/amdgpu-install-7.1.1.70101-1.el10.noarch.rpm
sudo dnf clean all
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm
sudo rpm -ivh epel-release-latest-10.noarch.rpm
sudo dnf config-manager –enable codeready-builder-for-rhel-10-x86_64-rpms
sudo dnf install python3-setuptools python3-wheel
sudo usermod -a -G render,video $LOGNAME
sudo dnf install rocm
sudo reboot
SUSE
En caso de tener una distro SUSE Linux Enterprise, tanto la versión Desktop como la Server, los pasos son:
sudo SUSEConnect -p sle-module-desktop-applications/15.7/x86_64
sudo SUSEConnect -p sle-module-development-tools/15.7/x86_64
sudo SUSEConnect -p PackageHub/15.7/x86_64
sudo zypper install zypper
sudo zypper –no-gpg-checks install https://repo.radeon.com/amdgpu-install/7.1.1/sle/15.7/amdgpu-install-7.1.1.70101-1.noarch.rpm
sudo zypper –gpg-auto-import-keys refresh
sudo zypper addrepo https://download.opensuse.org/repositories/science/SLE_15_SP5/science.repo
sudo zypper install python3-setuptools python3-wheel
sudo usermod -a -G render,video $LOGNAME
sudo zypper install rocm
sudo reboot
Verificación
Una vez esté instalada la herramienta AMD ROCm, lo siguiente es comprobar que todo ha salido bien, y que funciona. Para ello, ejecuta, independientemente de la distro que uses:
/opt/rocm/bin/rocminfo
/opt/rocm/hip/bin/hipcc –version
/opt/rocm/opencl/bin/clinfo #si instalaste OpenCL
Te recomiendo leer sobre qué es GPGPU
¿Qué incluye ROCm?
Una vez instalas ROCm en tu sistema, éste paquete incluye varias herramientas y componentes que debes conocer:
- Lenguaje y compilación:
- HIP: Capa de abstracción CUDA-like
- hipcc: Compilador HIP (basado en Clang)
- HIP Runtime
- HSA Runtime
- rocBLAS: BLAS
- rocFFT: FFT
- rocRAND: Números aleatorios
- rocSPARSE: Álgebra dispersa
- rocSOLVER: Solvers numéricos
- rocPRIM: Primitivas paralelas
- hipCUB: Port de CUB
- MIOpen: Deep Learning (equivalente a cuDNN)
- Composable Kernel (CK): Kernels optimizados
- Depuración:
- rocgdb: Depurador basado en GDB
- ROCdbgapi: API de depuración
- Address Sanitizer (ASan) support
- Profiling y análisis de rendimiento:
- rocprof: Profiling de kernels
- rocprofiler: API de profiling
- Omniperf: Análisis avanzado de kernels
- Omnitrace: Trazado de ejecución
- ROCm SMI (rocm-smi): Monitorización del sistema
- Utilidades:
- rocm-smi
- HIPIFY tools (hipify-clang y hipify-perl)
- ROCm Bandwidth Test
- ROCm Examples
- rocminfo
Primeros pasos con ROCm
Dependiendo de tus necesidades, es posible que necesites instalar paquetes adicionales, pero esto ya es más personal. Por ejemplo, PyTorch, TensorFlow, JAX, ONNX Runtime, etc., si quieres trabajar con IA, Python, etc. En cualquier caso, los primeros pasos para ver si todo funciona bien serían:
- Abre tu editor de texto favorito para escribir el código en C++:
#include
#include
// Kernel HIP: se ejecuta en la GPU
__global__ void holaMundoKernel() {
printf(«Hola Mundo desde la GPU (ROCm)!\n»);
}
int main() {
// Lanza el kernel con 1 bloque y 1 hilo
holaMundoKernel<<<1, 1>>>();
// Sincroniza para esperar a que la GPU termine
hipDeviceSynchronize();
std::cout << «Hola Mundo desde la CPU!» << std::endl;
return 0;
}
- Guarda el código fuente con un nombre, como por ejemplo, prueba-rocm.cpp. Puedes elegir el nombre que desees, pero importante la extensión cpp para C++, como es el caso.
- Para transformar el código fuente en un binario ejecutable, hay que compilarlo con el compilador Hipp:
/opt/rocm/hip/bin/hipcc prueba-rocm.cpp -o prueba-rocm
- Y, finalmente, para su ejecución:
./prueba-rocm
Verás que muestra dos mensajes de hola mundo, pero uno se ejecuta por la CPU y otro por la GPU, trabajando como GPGPU. Es decir, ejecutando código de programa en vez de simplemente dedicarse a gráficos…
¡No olvides dejar tus comentarios!
