Aller au contenu

Trace install tas - Ollama

De Loic Wiki
Version datée du 14 août 2026 à 00:48 par Daneel (discussion | contributions) (Documentation mise à jour Ollama ROCm et client)

Trace install tas - Ollama

Rôle

API locale de modèles LLM avec deux instances distinctes :

  • une instance AMD/ROCm sur la Radeon RX 7900
  • une instance NVIDIA/CUDA sur la GeForce RTX 3070

Accès

Instance AMD / ROCm

Instance NVIDIA / CUDA

Ports

  • 11434/tcp : serveur Ollama AMD / ROCm
  • 11435/tcp : serveur Ollama NVIDIA / CUDA
  • 25434/tcp : proxy public Caddy vers l'instance AMD/ROCm, protégé par basicauth

Exécution / runtime

AMD / ROCm

  • Service systemd user généré : `ollama-rocm.service`
  • Conteneur : `ollama_roc`
  • Image : `docker.io/ollama/ollama:rocm`
  • Devices : `/dev/kfd`, `/dev/dri`

NVIDIA / CUDA

  • Service systemd user généré : `ollama-nvidia.service`
  • Conteneur : `ollama_nv`
  • Image : `docker.io/ollama/ollama:latest`
  • Intégration GPU : Podman + NVIDIA Container Toolkit + CDI
  • Device CDI utilisé : `nvidia.com/gpu=all`

Chemins de configuration

  • `/home/loic/.config/containers/systemd/ollama-rocm.container`
  • `/home/loic/.config/containers/systemd/ollama-nvidia.container`
  • `/etc/caddy/Caddyfile`
  • `/home/loic/.bashrc` (alias CLI)
  • `/home/loic/upgrade/ollama-dual-gpu-plan.md`

Volumes / persistance

  • Stockage modèles partagé entre les deux instances : `/media/loic/nem/ollama`
  • Montage conteneur : `/media/loic/nem/ollama -> /root/.ollama`

Dépendances

  • Caddy 25434 -> 11434 avec basicauth pour l'instance AMD/ROCm
  • NVIDIA driver 580 open pour la RTX 3070
  • NVIDIA Container Toolkit
  • CDI NVIDIA généré dans `/var/run/cdi/nvidia.yaml`
  • clients comme Open WebUI

Remarques

  • L'instance NVIDIA n'a fonctionné correctement qu'après mise en place de NVIDIA Container Toolkit et CDI.
  • Le stockage de modèles est partagé entre les deux serveurs pour éviter les doublons disque.
  • Par prudence, éviter les `ollama pull` simultanés sur les deux instances.
  • Faire préférentiellement les opérations d'écriture (`pull`, `rm`, création de modèles) sur une seule instance à la fois.
  • Le proxy public documenté actuellement cible uniquement l'instance AMD/ROCm.

Utilisation CLI

Sélection explicite du serveur

Pour cibler un serveur particulier depuis le terminal local, utiliser `OLLAMA_HOST`.

Exemples :

OLLAMA_HOST=http://127.0.0.1:11434 ollama list
OLLAMA_HOST=http://127.0.0.1:11434 ollama run qwen3

OLLAMA_HOST=http://127.0.0.1:11435 ollama list
OLLAMA_HOST=http://127.0.0.1:11435 ollama run qwen3

Alias shell

Alias ajoutés dans `/home/loic/.bashrc` :

alias ollama-amd='OLLAMA_HOST=http://127.0.0.1:11434 ollama'
alias ollama-nvidia='OLLAMA_HOST=http://127.0.0.1:11435 ollama'

Exemples :

ollama-amd list
ollama-amd run qwen3

ollama-nvidia list
ollama-nvidia run qwen3

Exemples de tests

Test basique de disponibilité

curl http://127.0.0.1:11434/api/tags
curl http://127.0.0.1:11435/api/tags

Questions de test

OLLAMA_HOST=http://127.0.0.1:11434 ollama run qwen3 "Donne-moi un résumé en 3 phrases de la différence entre ROCm et CUDA."
OLLAMA_HOST=http://127.0.0.1:11435 ollama run qwen3 "Donne-moi un résumé en 3 phrases de la différence entre ROCm et CUDA."
OLLAMA_HOST=http://127.0.0.1:11434 ollama run qwen3 "Écris un haïku sur les GPU."
OLLAMA_HOST=http://127.0.0.1:11435 ollama run qwen3 "Écris un haïku sur les GPU."

Vérifier le GPU utilisé côté NVIDIA

Les logs de `ollama-nvidia.service` doivent montrer une détection CUDA du type :

  • `library=CUDA`
  • `description="NVIDIA GeForce RTX 3070"`

Supervision / diagnostic

État des services

systemctl --user status ollama-rocm.service
systemctl --user status ollama-nvidia.service

Journaux

journalctl --user -u ollama-rocm.service -n 100 --no-pager
journalctl --user -u ollama-nvidia.service -n 100 --no-pager

Vérifier la carte NVIDIA

nvidia-smi
watch -n 1 nvidia-smi

Vérifier que CDI voit le GPU

nvidia-ctk cdi list

Conteneurs actifs

podman ps | grep -E 'ollama_roc|ollama_nv'

Contrôler la réponse API

curl http://127.0.0.1:11434/api/tags
curl http://127.0.0.1:11435/api/tags

Données / emplacements à sauvegarder

  • `/media/loic/nem/ollama`
  • `/home/loic/.config/containers/systemd/ollama-rocm.container`
  • `/home/loic/.config/containers/systemd/ollama-nvidia.container`
  • `/etc/caddy/Caddyfile`
  • `/home/loic/.bashrc`

Sauvegarde

  • Sauvegarder le répertoire de modèles partagé `/media/loic/nem/ollama`.
  • Sauvegarder les deux services systemd user Ollama.
  • Sauvegarder la configuration Caddy liée à `25434`.

Restauration

  • Restaurer `/media/loic/nem/ollama`.
  • Restaurer les fichiers systemd user `ollama.service` et `ollama-nvidia.service`.
  • Recharger systemd user puis relancer les services :
systemctl --user daemon-reload
systemctl --user restart ollama-rocm.service
systemctl --user restart ollama-nvidia.service


Procédure de mise à jour — ROCm et client CLI

La procédure ci-dessous met à jour uniquement l’instance AMD/ROCm. Elle ne redémarre pas ollama-nvidia.service et ne modifie pas les modèles.

Mise à jour du conteneur ROCm

# Sauvegarder la définition Quadlet avant modification éventuelle
STAMP=$(date +%Y%m%d-%H%M%S)
mkdir -p /home/loic/backups/ollama
cp -p /home/loic/.config/containers/systemd/ollama-rocm.container \
  /home/loic/backups/ollama/ollama-rocm.container.before-update-${STAMP}.bak

# Télécharger l’image flottante ROCm puis recréer le conteneur
podman pull docker.io/ollama/ollama:rocm
systemctl --user daemon-reload
systemctl --user restart ollama-rocm.service

# Contrôler le service et la version API
systemctl --user is-active ollama-rocm.service
podman ps --filter name=ollama_roc
curl -fsS http://127.0.0.1:11434/api/version
curl -fsS http://127.0.0.1:11434/api/tags

Le 14 août 2026, cette procédure a fait passer l’API ROCm de 0.32.0 à 0.32.9. Le journal confirme la détection ROCm de la Radeon RX 7900 XTX.

Mise à jour du client CLI utilisateur

Le binaire système /usr/bin/ollama était une installation root en version client 0.30.7. Comme l’accès sudo n’était pas disponible, le client officiel a été installé dans /home/loic/.local/bin, qui est prioritaire dans le PATH.

# Télécharger l’archive officielle Linux AMD64
TMP=$(mktemp -d)
trap 'rm -rf "$TMP"' EXIT
curl -fsSL https://ollama.com/download/ollama-linux-amd64.tar.zst \
  -o "$TMP/ollama.tar.zst"
zstd -d "$TMP/ollama.tar.zst" -o "$TMP/ollama.tar"
tar -xf "$TMP/ollama.tar" -C "$TMP"

# Installer le client pour l’utilisateur courant
mkdir -p /home/loic/.local/bin
install -m 0755 "$TMP/bin/ollama" /home/loic/.local/bin/ollama
hash -r

# Vérifier la résolution et la version
command -v ollama
ollama --version

# Tester le client contre l’instance AMD
OLLAMA_HOST=http://127.0.0.1:11434 ollama list

Résultat vérifié : /home/loic/.local/bin/ollama, client version 0.32.9, aligné avec l’API ROCm.

Pour remplacer également le binaire système, après validation et avec un compte root :

sudo cp -p /usr/bin/ollama /home/loic/backups/ollama/ollama-client.system.before-update-$(date +%Y%m%d-%H%M%S).bin
sudo install -o root -g root -m 0755 /home/loic/.local/bin/ollama /usr/bin/ollama
/usr/bin/ollama --version

Retour arrière

# Revenir à l’image actuellement utilisée avant le pull : utiliser son digest
podman image ls --digests docker.io/ollama/ollama

# Restaurer le Quadlet si nécessaire, puis relancer
systemctl --user daemon-reload
systemctl --user restart ollama-rocm.service

# Désactiver le client utilisateur pour revenir au client système
mv /home/loic/.local/bin/ollama /home/loic/.local/bin/ollama.disabled
hash -r
/usr/bin/ollama --version

Maintenance documentaire

Lors d'un changement de port, de proxy public, de stockage des modèles, de pilote GPU, de toolkit NVIDIA, d'alias shell ou d'architecture AMD/NVIDIA, mettre à jour cette page et la page centrale Trace install tas.

Trace documentaire

Cette page fait partie de Trace install tas.\n\n== État Quadlet confirmé — 2026-07-25 ==

Les deux instances Ollama sont définies par Quadlet :

  • ROCm : ollama-rocm.service, conteneur ollama_roc, port 11434, image docker.io/ollama/ollama:rocm, API vérifiée en version 0.32.9 le 14 août 2026
  • NVIDIA : ollama-nvidia.service, conteneur ollama_nv, port 11435, image docker.io/ollama/ollama:latest
  • Fichiers : /home/loic/.config/containers/systemd/ollama-rocm.container et ollama-nvidia.container
  • Modèles partagés : /media/loic/nem/ollama

L’API ROCm répond en version 0.32.9 après mise à jour du conteneur le 14 août 2026. Le tag :rocm est flottant ; pour figer une version, comparer son digest à un tag versionné tel que :0.32.3-rocm puis modifier le Quadlet.

L'instance NVIDIA reste dépendante de la cohérence entre le pilote noyau, les bibliothèques NVIDIA, le toolkit et le CDI.