211 lines
5.5 KiB
Markdown
211 lines
5.5 KiB
Markdown
# README – GPU AMD (VAAPI) pour LXC ComfyUI (CT 21608188)
|
||
|
||
## 1. Contexte & objectif
|
||
|
||
Ce document décrit **comment exposer le GPU AMD Radeon RX 6700 XT** du serveur Proxmox VE vers le conteneur **ComfyUI LXC** (CT **21608188**, Debian 13), et comment **vérifier le bon fonctionnement de l’accélération matérielle vidéo (VAAPI)** à l’intérieur du conteneur.
|
||
|
||
> ⚠️ Important :
|
||
>
|
||
> - Ce README couvre l’exposition du GPU et les tests **VAAPI (décodage/encodage vidéo)**.
|
||
> - L’accélération **Stable Diffusion / IA de ComfyUI** côté AMD nécessite en plus une stack **ROCm + PyTorch ROCm**, non couverte ici.
|
||
|
||
---
|
||
|
||
## 2. Prérequis
|
||
|
||
- Hôte Proxmox VE 8 avec noyau :
|
||
|
||
```bash
|
||
uname -a
|
||
# Linux pve 6.8.12-16-pve ...
|
||
```
|
||
|
||
- GPU AMD visible sur l’hôte :
|
||
|
||
```bash
|
||
lspci -nnk -s 23:00.0
|
||
# 23:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. ...
|
||
# Kernel driver in use: amdgpu
|
||
|
||
ls -l /dev/kfd /dev/dri
|
||
# /dev/kfd
|
||
# /dev/dri/card0
|
||
# /dev/dri/renderD128
|
||
```
|
||
|
||
- LXC ComfyUI créé via **community-scripts** :
|
||
- ID : **21608188**
|
||
- Hostname : `comfyui`
|
||
- OS : Debian 13 (trixie)
|
||
|
||
---
|
||
|
||
## 3. ETAPE 1 – Configuration du conteneur LXC ComfyUI
|
||
|
||
Éditer la configuration du CT côté **PVE**.
|
||
|
||
```bash
|
||
pct stop 21608188
|
||
|
||
nano /etc/pve/lxc/21608188.conf
|
||
```
|
||
|
||
Configuration **finale** utilisée (adapter uniquement cores/mémoire si besoin) :
|
||
|
||
```ini
|
||
arch: amd64
|
||
cmode: shell
|
||
cores: 4
|
||
features: keyctl=1,nesting=1
|
||
hostname: comfyui
|
||
memory: 32768
|
||
nameserver: 192.168.1.3
|
||
net0: name=eth0,bridge=vmbr0,gw=192.168.1.1,hwaddr=BC:24:11:40:40:37,ip=192.168.1.216/24,type=veth
|
||
onboot: 1
|
||
ostype: debian
|
||
rootfs: vm-docker:vm-21608188-disk-0,size=100G
|
||
searchdomain: z-server.me
|
||
startup: order=15
|
||
swap: 512
|
||
tags: ai;community-script
|
||
unprivileged: 1
|
||
|
||
# Exposition GPU AMD dans le CT
|
||
dev0: /dev/kfd,gid=993,uid=0
|
||
dev1: /dev/dri/renderD128,gid=44
|
||
```
|
||
|
||
Puis redémarrer le conteneur :
|
||
|
||
```bash
|
||
pct start 21608188
|
||
pct console 21608188
|
||
# login : root
|
||
```
|
||
|
||
---
|
||
|
||
## 4. ETAPE 2 – Vérifier le GPU dans le CT ComfyUI
|
||
|
||
Dans le conteneur :
|
||
|
||
```bash
|
||
ls -l /dev/kfd /dev/dri/renderD128
|
||
grep -w 'video\|render' /etc/group
|
||
```
|
||
|
||
Exemple attendu :
|
||
|
||
```text
|
||
crw-rw---- 1 root video 226, 128 ... /dev/dri/renderD128
|
||
crw-rw---- 1 root kvm 234, 0 ... /dev/kfd
|
||
|
||
video:x:44:root
|
||
render:x:992:root
|
||
```
|
||
|
||
👉 Ça confirme :
|
||
|
||
- que les deux devices sont bien **mappés** dans le CT,
|
||
- que l’utilisateur **root** peut les utiliser.
|
||
|
||
---
|
||
|
||
## 5. ETAPE 3 – Installer la stack VAAPI / Vulkan / FFmpeg dans le CT
|
||
|
||
Toujours dans le conteneur ComfyUI :
|
||
|
||
```bash
|
||
apt update
|
||
apt install -y vainfo mesa-va-drivers mesa-vulkan-drivers ffmpeg
|
||
```
|
||
|
||
---
|
||
|
||
## 6. ETAPE 4 – Test VAAPI avec `vainfo`
|
||
|
||
Dans le CT :
|
||
|
||
```bash
|
||
export LIBVA_DRIVER_NAME=radeonsi
|
||
|
||
vainfo --display drm --device /dev/dri/renderD128 | egrep 'Driver version|VAProfile'
|
||
```
|
||
|
||
Sortie attendue (exemple réel) :
|
||
|
||
```text
|
||
libva info: VA-API version 1.22.0
|
||
libva info: User environment variable requested driver 'radeonsi'
|
||
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
|
||
libva info: Found init function __vaDriverInit_1_22
|
||
libva info: va_openDriver() returns 0
|
||
vainfo: Driver version: Mesa Gallium driver 25.0.7-2 for AMD Radeon RX 6700 XT ...
|
||
vainfo: Supported profile and entrypoints
|
||
VAProfileH264High : VAEntrypointVLD
|
||
VAProfileHEVCMain : VAEntrypointVLD
|
||
VAProfileVP9Profile0 : VAEntrypointVLD
|
||
VAProfileAV1Profile0 : VAEntrypointVLD
|
||
...
|
||
```
|
||
|
||
👉 Si tu vois bien :
|
||
|
||
- la **RX 6700 XT** dans la ligne *Driver version*,
|
||
- la liste des **VAProfile***,
|
||
|
||
alors **VAAPI est opérationnel dans le LXC ComfyUI**.
|
||
|
||
---
|
||
|
||
## 7. ETAPE 5 – Test d’encodage matériel avec FFmpeg (h264_vaapi)
|
||
|
||
Toujours dans le CT :
|
||
|
||
```bash
|
||
ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -filter_hw_device va -f lavfi -i testsrc2=size=1920x1080:rate=30 -t 5 -vf 'format=nv12,hwupload' -c:v h264_vaapi -f null -
|
||
```
|
||
|
||
Points clés dans la sortie :
|
||
|
||
```text
|
||
[AVHWDeviceContext] Initialised VAAPI connection ...
|
||
[AVHWDeviceContext] VAAPI driver: Mesa Gallium driver ... for AMD Radeon RX 6700 XT ...
|
||
[h264_vaapi] Using VAAPI profile VAProfileH264High ...
|
||
[h264_vaapi] Using VAAPI entrypoint VAEntrypointEncSlice ...
|
||
frame=150 fps=... Lsize=N/A time=00:00:04.96 ...
|
||
video:7100KiB ...
|
||
```
|
||
|
||
👉 Si tu obtiens ces lignes avec 150 frames encodées et **aucune erreur**, l’encodage **H.264 via VAAPI** dans le LXC ComfyUI est **validé**.
|
||
|
||
---
|
||
|
||
## 8. Intégration avec ComfyUI (principes)
|
||
|
||
ComfyUI lui-même (pour Stable Diffusion) ne s’appuie pas sur VAAPI mais sur :
|
||
|
||
- CUDA (NVIDIA) ou
|
||
- ROCm / HIP (AMD) + PyTorch ROCm.
|
||
|
||
Ce README garantit que :
|
||
|
||
- le **GPU AMD est bien exposé** au conteneur ComfyUI,
|
||
- la **stack vidéo** (VAAPI / Mesa / FFmpeg) fonctionne.
|
||
|
||
Pour exploiter le GPU dans ComfyUI pour l’IA (diffusion, etc.), il faudra :
|
||
|
||
1. Installer une stack **ROCm** compatible Debian 13 / RDNA2.
|
||
2. Installer un **PyTorch ROCm** compatible avec cette version de ROCm.
|
||
3. Configurer ComfyUI pour utiliser ce backend (généralement via `torch.device("cuda")` / `"hip"` côté scripts).
|
||
|
||
---
|
||
|
||
## 9. Résumé rapide
|
||
|
||
- ✅ `/dev/kfd` & `/dev/dri/renderD128` mappés dans `21608188`
|
||
- ✅ `vainfo` voit la **RX 6700 XT** et les profils H264/HEVC/AV1
|
||
- ✅ `ffmpeg` encode en **h264_vaapi** depuis `testsrc2` sans erreur
|
||
|
||
Tu as donc un **LXC ComfyUI avec GPU AMD exposé et VAAPI fonctionnel**, prêt pour les prochains tests (ROCm / IA) ou pour traiter de la vidéo dans des workflows ComfyUI adaptés.
|