# ROCm — GPU AMD RX 6700XT (gpu-01)

ROCm tourne directement sur l'hôte AlmaLinux (pas dans des conteneurs).
La RX 6700XT (gfx1031) n'est pas officiellement supportée → `HSA_OVERRIDE_GFX_VERSION=10.3.0` obligatoire.

---

## Vérification de base

```bash
# Le GPU est-il détecté par le kernel ?
ssh g01 "lspci | grep -i amd | grep -i vga"

# Le module amdgpu est-il chargé ?
ssh g01 "lsmod | grep amdgpu"

# ROCm voit-il le GPU ? (doit lister la RX 6700XT)
ssh g01 "HSA_OVERRIDE_GFX_VERSION=10.3.0 rocminfo | grep -A5 'Agent 2'"

# Version ROCm installée
ssh g01 "rocminfo | grep 'ROCk'"

# GPU info complet
ssh g01 "HSA_OVERRIDE_GFX_VERSION=10.3.0 rocminfo"
```

---

## Variable HSA_OVERRIDE

```bash
# Vérifier qu'elle est bien définie system-wide
ssh g01 "cat /etc/environment | grep HSA"

# Vérifier dans profile.d (sessions interactives)
ssh g01 "cat /etc/profile.d/rocm.sh"

# Tester manuellement (si la variable n'est pas dans l'env courant)
ssh g01 "HSA_OVERRIDE_GFX_VERSION=10.3.0 rocminfo | grep gfx"
```

---

## Modules kernel

```bash
# Statut du module amdgpu
ssh g01 "lsmod | grep amdgpu"

# Recharger le module (si nécessaire)
ssh g01 "sudo modprobe -r amdgpu && sudo modprobe amdgpu"

# Logs kernel liés au GPU
ssh g01 "sudo dmesg | grep -i amdgpu | tail -20"
ssh g01 "sudo dmesg | grep -i 'drm\|gpu' | tail -20"
```

---

## Repos AMD

```bash
# Vérifier les repos installés
ssh g01 "sudo dnf repolist | grep -i 'amd\|rocm'"

# Voir les packages ROCm installés
ssh g01 "sudo dnf list installed | grep -i rocm"
ssh g01 "sudo rpm -qa | grep rocm"
```

---

## Groupes utilisateur (accès GPU)

```bash
# L'user doit être dans video et render
ssh g01 "groups ansible"

# Si absent — ajouter manuellement
ssh g01 "sudo usermod -aG video,render ansible"
```

---

## Debug ROCm / llama-server

```bash
# Tester OpenCL
ssh g01 "HSA_OVERRIDE_GFX_VERSION=10.3.0 clinfo | head -30"

# Voir l'utilisation GPU en temps réel
ssh g01 "watch -n 1 'cat /sys/class/drm/card*/device/gpu_busy_percent'"

# Température GPU
ssh g01 "cat /sys/class/drm/card*/device/hwmon/hwmon*/temp1_input"
# (valeur en millidegrés → diviser par 1000)

# VRAM utilisée
ssh g01 "cat /sys/class/drm/card*/device/mem_info_vram_used"
ssh g01 "cat /sys/class/drm/card*/device/mem_info_vram_total"
```
