« Trace install tas - Ollama » : différence entre les versions
Apparence
Phase 2 : enrichissement documentation |
Mise à jour Ollama AMD+NVIDIA, CLI et supervision |
||
| (Une version intermédiaire par le même utilisateur non affichée) | |||
| Ligne 2 : | Ligne 2 : | ||
== Rôle == | == Rôle == | ||
API locale de modèles LLM | 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 == | == Accès == | ||
=== Instance AMD / ROCm === | |||
* Local : http://10.8.0.1:11434 | * Local : http://10.8.0.1:11434 | ||
* Depuis le terminal local : `OLLAMA_HOST=http://127.0.0.1:11434` | |||
* Public : https://lololand.hopto.org:25434 | * Public : https://lololand.hopto.org:25434 | ||
=== Instance NVIDIA / CUDA === | |||
* Local : http://10.8.0.1:11435 | |||
* Depuis le terminal local : `OLLAMA_HOST=http://127.0.0.1:11435` | |||
* Pas d'exposition publique dédiée documentée à ce stade | |||
== Ports == | == Ports == | ||
11434 | * 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 == | == Exécution / runtime == | ||
Conteneur ollama_roc | === AMD / ROCm === | ||
* Service systemd user : `/home/loic/.config/systemd/user/ollama.service` | |||
* Conteneur : `ollama_roc` | |||
* Image : `docker.io/ollama/ollama:rocm` | |||
* Devices : `/dev/kfd`, `/dev/dri` | |||
=== NVIDIA / CUDA === | |||
* Service systemd user : `/home/loic/.config/systemd/user/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 == | == Chemins de configuration == | ||
* /etc/caddy/Caddyfile | * `/home/loic/.config/systemd/user/ollama.service` | ||
* `/home/loic/.config/systemd/user/ollama-nvidia.service` | |||
* `/etc/caddy/Caddyfile` | |||
* `/home/loic/.bashrc` (alias CLI) | |||
* `/home/loic/upgrade/ollama-dual-gpu-plan.md` | |||
== Volumes / persistance == | == Volumes / persistance == | ||
* | * Stockage modèles partagé entre les deux instances : `/media/loic/nem/ollama` | ||
* Montage conteneur : `/media/loic/nem/ollama -> /root/.ollama` | |||
== Dépendances == | == Dépendances == | ||
* Caddy 25434 -> 11434 | * 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 | * clients comme Open WebUI | ||
== Remarques == | == 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 : | |||
<pre> | |||
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 | |||
</pre> | |||
=== Alias shell === | |||
Alias ajoutés dans `/home/loic/.bashrc` : | |||
<pre> | |||
alias ollama-amd='OLLAMA_HOST=http://127.0.0.1:11434 ollama' | |||
alias ollama-nvidia='OLLAMA_HOST=http://127.0.0.1:11435 ollama' | |||
</pre> | |||
Exemples : | |||
<pre> | |||
ollama-amd list | |||
ollama-amd run qwen3 | |||
ollama-nvidia list | |||
ollama-nvidia run qwen3 | |||
</pre> | |||
== Exemples de tests == | |||
=== Test basique de disponibilité === | |||
<pre> | |||
curl http://127.0.0.1:11434/api/tags | |||
curl http://127.0.0.1:11435/api/tags | |||
</pre> | |||
=== Questions de test === | |||
<pre> | |||
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." | |||
</pre> | |||
<pre> | |||
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." | |||
</pre> | |||
=== 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 === | |||
<pre> | |||
systemctl --user status ollama.service | |||
systemctl --user status ollama-nvidia.service | |||
</pre> | |||
=== Journaux === | |||
<pre> | |||
journalctl --user -u ollama.service -n 100 --no-pager | |||
journalctl --user -u ollama-nvidia.service -n 100 --no-pager | |||
</pre> | |||
=== Vérifier la carte NVIDIA === | |||
<pre> | |||
nvidia-smi | |||
watch -n 1 nvidia-smi | |||
</pre> | |||
=== Vérifier que CDI voit le GPU === | |||
<pre> | |||
nvidia-ctk cdi list | |||
</pre> | |||
=== Conteneurs actifs === | |||
<pre> | |||
podman ps | grep -E 'ollama_roc|ollama_nv' | |||
</pre> | |||
=== Contrôler la réponse API === | |||
<pre> | |||
curl http://127.0.0.1:11434/api/tags | |||
curl http://127.0.0.1:11435/api/tags | |||
</pre> | |||
== Données / emplacements à sauvegarder == | |||
* `/media/loic/nem/ollama` | |||
* `/home/loic/.config/systemd/user/ollama.service` | |||
* `/home/loic/.config/systemd/user/ollama-nvidia.service` | |||
* `/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 : | |||
<pre> | |||
systemctl --user daemon-reload | |||
systemctl --user restart ollama.service | |||
systemctl --user restart ollama-nvidia.service | |||
</pre> | |||
* Vérifier ensuite `curl http://127.0.0.1:11434/api/tags` et `curl http://127.0.0.1:11435/api/tags`. | |||
== Maintenance documentaire == | == Maintenance documentaire == | ||
Lors d'un changement de | 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 == | == Trace documentaire == | ||
Cette page fait partie de [[Trace install tas]]. | Cette page fait partie de [[Trace install tas]]. | ||
Dernière version du 28 mars 2026 à 01:44
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
- Local : http://10.8.0.1:11434
- Depuis le terminal local : `OLLAMA_HOST=http://127.0.0.1:11434`
- Public : https://lololand.hopto.org:25434
Instance NVIDIA / CUDA
- Local : http://10.8.0.1:11435
- Depuis le terminal local : `OLLAMA_HOST=http://127.0.0.1:11435`
- Pas d'exposition publique dédiée documentée à ce stade
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 : `/home/loic/.config/systemd/user/ollama.service`
- Conteneur : `ollama_roc`
- Image : `docker.io/ollama/ollama:rocm`
- Devices : `/dev/kfd`, `/dev/dri`
NVIDIA / CUDA
- Service systemd user : `/home/loic/.config/systemd/user/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/systemd/user/ollama.service`
- `/home/loic/.config/systemd/user/ollama-nvidia.service`
- `/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.service systemctl --user status ollama-nvidia.service
Journaux
journalctl --user -u ollama.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/systemd/user/ollama.service`
- `/home/loic/.config/systemd/user/ollama-nvidia.service`
- `/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.service systemctl --user restart ollama-nvidia.service
- Vérifier ensuite `curl http://127.0.0.1:11434/api/tags` et `curl http://127.0.0.1:11435/api/tags`.
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.