Accélération GPU
La vitesse des réponses dépend surtout de l'endroit où tourne le modèle. Sur processeur, la première réponse après une pause prend une à trois minutes. Sur une carte NVIDIA de milieu de gamme, quelques secondes.
Comment le choix se fait
Un seul réglage dans votre .env :
COMPOSE_PROFILES=cpu # ou nvidia, ou amd
Le fichier compose contient trois variantes du conteneur de modèle et en démarre exactement une. Elles partagent le même nom, la même adresse et les mêmes modèles téléchargés : passer de l'une à l'autre ne perd rien et ne retélécharge rien.
COMPOSE_PROFILES n'est pas défini, aucune ne démarre. Le reste de la
pile monte, et toutes les questions échouent. C'est l'erreur d'auto-hébergement
la plus fréquente.L'installation guidée de l'application détecte cela pour vous au premier démarrage. Sinon, choisissez comme ci-dessous.
Détection automatique
$vram = nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits 2>$null
$profile = if ($vram) { "nvidia" } else { "cpu" }
(Get-Content .env) -replace '^COMPOSE_PROFILES=.*$', "COMPOSE_PROFILES=$profile" |
Set-Content -Encoding ascii .env
if ($vram) {
Add-Content -Encoding ascii .env "CHRONICLER_GPU_VRAM_GB=$([math]::Floor($vram / 1024))"
}
L'accélération AMD est réservée à Linux. Cette commande choisit NVIDIA si le pilote est visible, sinon elle choisit le CPU. La seconde clé indique à la console la taille de votre carte : voir plus bas.
curl -L -o detect-hardware.sh \
https://github.com/ChroniclerLM/Releases/releases/latest/download/detect-hardware.sh
chmod +x detect-hardware.sh
./detect-hardware.sh
Il vérifie la plateforme, la capacité réelle des conteneurs à joindre un GPU, et
la mémoire dont Docker dispose, puis écrit COMPOSE_PROFILES dans le .env à
côté, ainsi que CHRONICLER_GPU_VRAM_GB sur une machine NVIDIA. Il ne touche
jamais à votre mot de passe de base, et ne choisit jamais de modèle : cela reste
du ressort de Admin → Modèle.
S'il trouve une carte que vos conteneurs ne peuvent pas joindre, ou Docker
Desktop sur le moteur Hyper-V, il avertit et se rabat sur cpu plutôt que de
s'arrêter. Lisez les avertissements : ils font la différence entre une machine
rapide et une machine lente.
Option utile : --env-file CHEMIN (viser un autre .env).
Le script requiert bash : il tourne sous Linux, et sous Windows depuis Git Bash ou un shell WSL. Si vous ne pouvez pas l'exécuter, réglez la valeur à la main.
NVIDIA
Vérifier que la machine voit la carte
nvidia-smi
nvidia-smi
Aucune sortie signifie un problème de pilote : réglez-le d'abord, rien de ce qui suit n'aidera.
Vérifier que les conteneurs la voient
Le pilote installé sur la machine ne suffit pas ; Docker a besoin du NVIDIA Container Toolkit pour transmettre la carte.
docker run --rm --gpus all ollama/ollama:0.32.4 nvidia-smi
docker run --rm --gpus all ollama/ollama:0.32.4 nvidia-smi
Si votre carte s'affiche, tout est prêt. En cas d'erreur :
Installez le toolkit, déclarez-le auprès de Docker et redémarrez :
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
Instructions : NVIDIA Container Toolkit.
Changer le profil
COMPOSE_PROFILES=nvidia
docker compose up -d
docker compose up -d
AMD
Linux uniquement, au mieux. ROCm atteint la carte via /dev/kfd et /dev/dri,
que Docker Desktop sous Windows ne sait pas transmettre.
ls /dev/kfd /dev/dri
Si les deux existent :
COMPOSE_PROFILES=amd
docker compose up -d
Cette variante télécharge une image différente et plus lourde (le runtime ROCm) : le premier démarrage après le changement est long.
Vérifier que c'est bien utilisé
docker compose ps
docker compose ps
Le conteneur en cours doit être ollama-nvidia ou ollama-amd, pas
ollama-cpu. Posez ensuite une question et observez :
nvidia-smi
docker compose logs chronicler-ollama | Select-Object -Last 30
nvidia-smi
docker compose logs chronicler-ollama | tail -30
Le journal d'Ollama indique sur quel matériel le modèle a été chargé. Le test honnête reste la montre : si une réponse à chaud prend encore une minute, c'est le processeur qui travaille.
Changer plus tard
Modifiez COMPOSE_PROFILES, puis docker compose up -d. Compose remplace le
conteneur de modèle sur place. Les modèles téléchargés sont dans un volume
partagé : rien n'est retéléchargé, rien n'est perdu.
Comment la console découvre votre GPU
Admin → Modèle interroge le matériel depuis l'intérieur du conteneur backend, et ce conteneur n'a délibérément aucun accès à la carte graphique : seul le conteneur Ollama l'obtient. Sans rien de plus, la console déclarerait l'absence de GPU et griserait les modèles de cette catégorie sur toutes les machines, y compris la vôtre.
CHRONICLER_GPU_VRAM_GB dans votre .env comble ce vide. Le script de détection
l'écrit, l'installation guidée de l'application l'écrit, et l'extrait PowerShell
ci-dessus l'écrit aussi. Le backend le lit et dimensionne la liste des modèles
sur la carte que vous possédez réellement.
Select-String "CHRONICLER_GPU_VRAM_GB" .env
grep CHRONICLER_GPU_VRAM_GB .env
0 ? Relancez le script de détection, puis docker compose up -d.
Elle n'est écrite que sur le profil nvidia : sur cpu ou amd, la console a
raison de ne proposer que les modèles compatibles processeur.