From b59e0312955f10a31b8ecdf273b9e20ffbcfc2a2 Mon Sep 17 00:00:00 2001 From: Ssyleric <47066760+Ssyleric@users.noreply.github.com> Date: Sat, 29 Nov 2025 14:34:17 +0100 Subject: [PATCH] Update README.md --- README.md | 211 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 210 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ddcb766..c6f0db7 100644 --- a/README.md +++ b/README.md @@ -1 +1,210 @@ -# ComfyUI-GPU-AMD \ No newline at end of file +# 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.