Accueil Calcul partagé Crunch Nvidia sans interface graphique
Crunch Nvidia sans interface graphique
BOINC - Calcul partagé
Écrit par Elgrande71   
Jeudi, 28 Juin 2012 14:47

Il est tout à fait possible de faire calculer votre ou vos cartes graphiques Nvidia sur un système GNU/Linux sans avoir besoin de lancer une interface graphique.

Cela vous permet notamment de faire des économies de mémoire vidéo.

Afin d'arriver à ce résultat, il faut procéder de la manière suivante.

Il faut commencer par installer

Ubuntu 12.04 Alternate 64 bits

A l'affichage du menu de démarrage, il faut

appuyer sur la touche F4 pour choisir :

Installer un système en ligne de commande

Au cours de l'installation, il vous faut faire quelques choix mais rien de bien sorcier.

Après la fin de l'installation et un redémarrage, il faut vous logguer sur votre compte utilisateur puis suivre plusieurs étapes :

 

1 - Installation du serveur OpenSSH (optionnel)

sudo apt-get install openssh-server

 

2 - Installation du pilote Nvidia (par les dépôts)

sudo apt-get install nvidia-current

 

3 - Installation des dépendances du package boinc-client

sudo apt-get install libcurl3 libgl1-mesa-glx libpython2.7 libqt4-network libqt4-opengl libqtcore4 libqtgui4 libsdl1.2debian libglapi-mesa libx11-xcb1 libxcb-glx0 libqt4-dbus libaudio2 libmng1 libqt4-declarative libasound2 libcaca0 libpulse0 liblcms1 libasyncns0 libjson0 libsndfile1 libqt4-xml libqt4-script libqt4-sql libqt4-xmlpatterns libflac8 libogg0 libvorbis0a libvorbisenc2

 

4 - Installation du client BOINC via un dépôt tiers

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:costamagnagianfranco/boinc

sudo apt-get update

sudo apt-get install boinc-client

 

5 - Modification du fichier /etc/init.d/boinc-client

Il faut maintenant télécharger le fichier boinc-client modifié afin de permettre une bonne initialisation du/des GPUs NVidia présent(s) sur votre PC

Script boinc-client modifié

Décompressez le contenu de l'archive et le copier dans le répertoire /etc/init.d/

gunzip boinc-client.init.d_7.0.31.gz

sudo cp boinc-client.init.d_7.0.31 /etc/init.d/boinc-client

 

6 - Redémarrage du client BOINC

Il n'y a plus qu'à redémarrer le client BOINC et laisser calculer votre/vos GPUs.

sudo /etc/init.d/boinc-client restart

 

7 - Message d'avertissement concernant l'utilisation du module nvidia avec le framebuffer de type vesafb

kernel: NVRM: loading NVIDIA UNIX x86_64 Kernel Module 295.59 Wed Jun 6 21:19:40 PDT 2012

kernel: NVRM: Your system is not currently configured to drive a VGA console

kernel: NVRM: on the primary VGA device. The NVIDIA Linux graphics driver

kernel: NVRM: requires the use of a text-mode VGA console. Use of other console

kernel: NVRM: drivers including, but not limited to, vesafb, may result in

kernel: NVRM: corruption and stability problems, and is not supported.

 

Afin d'éviter d'éventuelles erreurs de calcul dûes à ce message (notamment sur des projets comme Einstein@Home et Seti@Home), il faut mettre les mains dans le cambouis.

Personnellement, je procède de la manière suivante :

 

 a - Blacklister le module vesafb

Dans un terminal, éditer le fichier blacklist.conf comme ceci

sudo nano /etc/modprobe.d/blacklist.conf

rajouter en fin de fichier la ligne suivante

blacklist vesafb

enfin après avoir sauvegardé la modification, il faut exécuter la ligne suivante

sudo update-initramfs -u

 

 b - Changer les paramètres donnés au noyau (kernel) au démarrage du système

Il faut modifier la ligne GRUB_CMDLINE_LINUX_DEFAULT du fichier /etc/default/grub.

Voici la mienne actuellement :

GRUB_CMDLINE_LINUX_DEFAULT="vga=normal nomodeset"

Après avoir sauvegarder la modification, il faut exécuter la ligne de commande suivante

sudo update-grub

Il n'y a plus qu'à redémarrer votre ordinateur et vérifier que ce message d'avertissement soit parti.

 

Explications supplémentaires

La ligne de commande clé pour l'initialisation d'un GPU Nvidia est la suivante :

nvidia-smi -q

Sans cette dernière, les fichiers nvidia0 et nvidiactl normalement présents dans le répertoire /dev au lancement du serveur graphique Xorg ne seront pas créés.

La ligne suivante

export SWAN_SYNC=0

est là afin d'accélérer les calculs d'unités de l'application cliente CUDA 3.1 du projet GPUGrid.

 

Bon crunch à tous

Mise à jour le Samedi, 01 Septembre 2012 10:11