Funk-lab/ansible/roles/rocm/README.md
alkatrazz 2dacf03f8d fix(gpu): débloque make apply-gpu — repo amdgpu rhel9.7 + pin commit llama.cpp
Le `dnf upgrade` du rôle common avait bumpé gpu-01 en AlmaLinux 9.8, mais
repo.radeon.com ne publie pas latest/rhel/9.8 (ni 9.5) — seulement 9.4/9.6/9.7.
`make apply-gpu` échouait alors dès `common` sur « Cannot download repomd.xml »
pour le repo amdgpu.

- rocm_rhel_version 9.4 → 9.7 (dernière mineure publiée par radeon) + piège
  documenté dans le README rocm (avec workaround live /etc/dnf/vars/amdgpudistro).
- Pin llama_server_commit au commit construit sur g01 : sans pin le rôle clonait
  HEAD → rebuild (~15 min) + restart GPU non déterministe à chaque apply.
- Réconciliation du drop-in llama-embed (ubatch 2048) dans l'unit rendu par le
  rôle (apply ciblé) ; drop-in temporaire supprimé. RAG validé (rag-query OK).
- Doc : etat-cluster + journal 2026-06-22 mis à jour.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 17:14:01 +02:00

48 lines
2.5 KiB
Markdown

# 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`).