Files
Folzo d1e12cff60 Initial commit: Documentation Effi v1.0
- Structure complète du projet
- Docker compose de production
- Documentation organisée par thèmes
- Guides d'installation et configuration
- Section dépannage détaillée
- Journal historique
2026-04-04 08:45:59 +02:00

4.3 KiB

🎮 Dépannage GPU AMD ROCm

Erreurs courantes

hipErrorInvalidDeviceFunction

Symptôme :

RuntimeError: parallel_for failed: hipErrorInvalidDeviceFunction: invalid device function

Cause : Le build ROCm a été compilé pour une mauvaise architecture GPU.

Solution :

  1. Vérifier l'architecture de votre GPU :
rocminfo | grep gfx
# ou
docker run --device /dev/kfd --device /dev/dri \
  -e HSA_OVERRIDE_GFX_VERSION=11.0.0 rocm/dev-ubuntu-24.04:6.3.4-complete \
  /opt/rocm-6.3.4/bin/rocminfo | grep -E "gfx|Name"
  1. Modifier le Dockerfile pour votre architecture :
cd ~/speaches/src
sed -i 's/gfx1101/gfx1100/g' Dockerfile.rocm-ct2
  1. Rebuilder l'image :
docker build -f Dockerfile.rocm-ct2 -t speaches:rocm-ct2 .

Architectures courantes :

  • RX 7800 XT / 7900 XTX : gfx1100
  • RX 7700 XT : gfx1101
  • RX 6000 series : gfx1030

float16 not supported on CPU backend

Symptôme :

ValueError: float16 not supported on CPU backend

Cause : Whisper essaie d'utiliser float16 sur CPU (mode fallback).

Solution : Changer le compute type :

environment:
  - WHISPER__COMPUTE_TYPE=int8  # ou float32

Conv1D on GPU currently requires the cuDNN library

Symptôme :

RuntimeError: Conv1D on GPU currently requires the cuDNN library which is not integrated in this build

Cause : CTranslate2 ROCm compilé sans support MIOpen (équivalent cuDNN).

Solution : Ajouter MIOpen dans le Dockerfile :

# Dans Dockerfile.rocm-ct2
RUN cmake ... \
  -DWITH_CUDNN=ON \
  -DCUDnn_LIBRARY=/opt/rocm-6.3.4/lib/libMIOpen.so

Unable to find group render

Symptôme :

Unable to find group render: no matching entries in group file

Cause : Les noms de groupes ne sont pas reconnus dans le conteneur.

Solution : Utiliser les GID numériques :

group_add:
  - "44"   # GID video
  - "991"  # GID render

Trouver les GID :

cat /etc/group | grep -E "video|render"

ROCm non détecté

Symptôme : rocm-smi ne trouve pas de GPU

Diagnostic :

# Vérifier que le kernel voit le GPU
lspci | grep -i vga

# Vérifier les modules kernel
lsmod | grep amdgpu

# Vérifier les devices
ls -la /dev/kfd /dev/dri

Solutions :

  1. Installer ROCm :
# Sur Fedora/Bazzite
sudo dnf install -y rocm-dev rocm-smi

# Sur Ubuntu
sudo apt install -y rocm-dev
  1. Ajouter l'utilisateur au groupe video :
sudo usermod -aG video $USER
sudo usermod -aG render $USER
# Déconnexion/reconnexion nécessaire
  1. Vérifier les permissions :
ls -la /dev/kfd
# Doit être accessible au groupe video

Faible performance GPU

Symptôme : La transcription prend toujours 10s+ malgré ROCm

Diagnostic :

# Vérifier l'utilisation GPU
rocm-smi

# Voir si ROCm est vraiment utilisé
docker logs speaches-stt | grep -i "rocm\|cuda\|gpu"

# Vérifier les variables d'environnement
docker inspect speaches-stt | grep -i env

Causes possibles :

  1. Mode CPU activé malgré ROCm
  2. Conflit avec Ollama qui utilise tout le GPU
  3. Modèle trop gros

Solutions :

# Forcer le device GPU
environment:
  - WHISPER__DEVICE=cuda  # ou auto
  
# Réduire la charge GPU d'Ollama
# Dans Ollama, utiliser moins de couches GPU

Build CTranslate2 ROCm complet

Procédure détaillée

# 1. Cloner le repo speaches
cd ~
git clone https://github.com/speaches-ai/speaches.git
cd speaches/src

# 2. Vérifier l'architecture GPU
rocminfo | grep gfx

# 3. Modifier le Dockerfile pour votre architecture
# Remplacer gfx1101 par votre architecture (ex: gfx1100)
sed -i 's/gfx1101/gfx1100/g' Dockerfile.rocm-ct2

# 4. Vérifier que MIOpen est activé
grep -i miopen Dockerfile.rocm-ct2
# Devrait contenir : -DWITH_CUDNN=ON

# 5. Build (prend 30-60 min)
docker build -f Dockerfile.rocm-ct2 -t speaches:rocm-ct2 .

# 6. Tester
docker run --rm --device /dev/kfd --device /dev/dri \
  -e HSA_OVERRIDE_GFX_VERSION=11.0.0 \
  speaches:rocm-ct2 \
  python3 -c "import torch; print(torch.cuda.is_available())"

Ressources