Bonjour à tous,
lors d'un précédent journal concernant les LLM, poulpatine m'a fait remarquer que je faisais erreur en affirmant que ollama ne fonctionne pas avec les GPU sous linux.
En effet j'avais tort. Enfin, en partie; je m'explique:
- en passant par l'installation standard de ollama, ollama tourne via un service systemd. Dans ce cas, le GPU n'est pas utilisé.
- par contre, en lançant un serveur ollama via une commande ollama serve
, l'inférence utilise parfaitement le GPU.
Est-ce que l'un d'entre vous aurait une idée ?
PS pour la modération: si ce journal va mieux dans le forum n'hésitez pas à le déplacer.
# Goupes utilsateurs
Posté par chimrod (site web personnel) . Évalué à 4.
Vérifie que l'utilisateur avec lequel tourne le service est bien membre des groupes video, render etc
[^] # Re: Goupes utilsateurs
Posté par aboulle . Évalué à 2.
Merci pour cette réponse rapide ; j'ai ajouté le user aux groupes render et video:
sudo usermod -a -G render ollama
, etc.Pas de succès malheureusement.
[^] # Re: Goupes utilsateurs
Posté par gUI (Mastodon) . Évalué à 5. Dernière modification le 16 avril 2024 à 18:02.
Pour rappel, pour que ce soit valide, il faut se déconnecter/reconnecter.
Vérifie simplement que la commande
groups
contient bien les groupes en question.En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Goupes utilsateurs
Posté par aboulle . Évalué à 2.
Après vérification et reboot, ollama est bien dans les groupes en question:
Je vais sans doute lancer le service par un script de démarrage plutôt que par un daemon systemd.
Merci pour votre aide.
[^] # Re: Goupes utilsateurs
Posté par BAud (site web personnel) . Évalué à 3.
un redémarrage de session est suffisant (ok, ça se justifie moins avec les SSD, mais bon)
# variable d'environnement
Posté par Ambroise . Évalué à 3.
Il n'y aurait pas un check si une carte vidéo est présente via la détection d'un serveur d'affichage (sous Xorg, c'était une variable DISPLAY) ?
[^] # Re: variable d'environnement
Posté par aboulle . Évalué à 2.
J'ai 2 GPUs dans ma machine, l'un des deux étant incompatible avec cuda compute > 6. Le serveur démarré à la main via
ollama serve
détecte bien le bon GPU, alors que daemon systemd détecte le vieux GPU et passe en fallback sur CPU.Un
export CUDA_VISIBLE_DEVICES=GPU-<ID DU GPU>
dans .zshrc ne change rien. Argh ![^] # Re: variable d'environnement
Posté par Sacha Trémoureux (site web personnel) . Évalué à 5.
Plutôt dans l’unité systemd la venv non ? systemd ne va pas lire ton zshrc.
[^] # Re: variable d'environnement
Posté par aboulle . Évalué à 4.
Effectivement! Ça fonctionne en ajoutant cette ligne dans la section [Service] du fichier d'unité systemd:
Merci.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.