# rocm

Stack GPU AMD sur gpu-01 (AlmaLinux, RX 6700XT) : repos AMD, runtime ROCm, paquets de build pour llama.cpp.

## Ce que fait le rôle

- Clé GPG AMD + repos `amdgpu` et `rocm` (latest)
- kernel headers/devel (requis pour amdgpu-dkms)
- Runtime : rocminfo, rocm-hip-runtime, rocm-opencl-runtime, rocblas, hipblaslt
- Paquets build (pour le rôle `llama_server`) : hipblas-devel, rocblas-devel, hip-devel, hipcc, cmake, gcc-c++, patchelf
- `HSA_OVERRIDE_GFX_VERSION=10.3.0` **system-wide** (`/etc/environment`) et dans `profile.d`
- Ajoute le user ansible aux groupes `video` et `render`

## Variables principales

| Variable | Défaut |
|---|---|
| `rocm_rhel_version` | `9.7` |
| `hsa_override_gfx_version` | `10.3.0` |

## ⚠️ Contrainte critique

La RX 6700XT (**gfx1031**) n'est pas supportée officiellement par ROCm. Sans `HSA_OVERRIDE_GFX_VERSION=10.3.0` (la faire passer pour une gfx1030), **tout calcul GPU échoue**. La variable doit être présente dans l'environnement de chaque service GPU (le template systemd de llama_server la définit aussi).

## ⚠️ Piège `rocm_rhel_version` — radeon.com ne publie pas toutes les mineures

`repo.radeon.com/amdgpu/latest/rhel/<v>/` n'existe **pas** pour chaque mineure RHEL. Au 2026-06-22 :
`9.4` ✅, `9.5` ❌, `9.6` ✅, `9.7` ✅, `9.8` ❌ — alors que gpu-01 tourne sous **AlmaLinux 9.8**.
Il faut donc pinner `rocm_rhel_version` sur la dernière mineure **publiée** (`9.7`), pas sur le
`VERSION_ID` de l'hôte.

**Symptôme si décalé** (vécu le 2026-06-22 après un `dnf upgrade` qui a bumpé l'hôte en 9.8) :
`make apply-gpu` échoue **dès le rôle `common`** :
> `Failed to download metadata for repo 'amdgpu': Cannot download repomd.xml … All mirrors were tried`

La cause est le **repo `amdgpu.repo` package-shipped** (écrit par `amdgpu-install`, visible via
`amdgpu.repo.rpmsave`), dont la `baseurl` utilise `$amdgpudistro` (vide → repli sur `$releasever`
= 9.8 → 404). Le repo géré par CE rôle (`latest/rhel/{{ rocm_rhel_version }}`) est correct, mais
`common` tourne **avant** `rocm` dans le playbook → il bute sur le repo cassé en premier.

**Workaround live** (soigne dnf immédiatement, sans rejouer le rôle) :
```bash
echo 9.7 > /etc/dnf/vars/amdgpudistro && dnf repolist   # doit lister amdgpu sans erreur
```

## Caveat

Les repos pointent vers `latest` — un `make apply-gpu` peut tirer une nouvelle version majeure de ROCm. Après upgrade kernel ou ROCm, vérifier `rocm-smi` et un completion de test avant de considérer le nœud sain (voir `admin/ia/rocm.md`).
