Journal ollama et le GPU

Posté par  . Licence CC By‑SA.
5
16
avr.
2024

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  (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  . É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  (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  . Évalué à 2.

          Après vérification et reboot, ollama est bien dans les groupes en question:

          > grep -w ollama /etc/group
          video:x:44:ollama
          render:x:110:ollama

          Je vais sans doute lancer le service par un script de démarrage plutôt que par un daemon systemd.

          Merci pour votre aide.

  • # variable d'environnement

    Posté par  . É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  . É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 !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.