Installation du client GPU2 Linux avec Wine
Table des matières
Introduction
GPU2, le client pour cartes graphiques, est pour le moment réservé à Windows. En effet, il n'existe pas de version native pour Linux, qui lui est roi pour le pliage sur CPU avec le redoutable core SMP A2.
Vous avez une machine sous Linux, avec une carte Nvidia ? Vous pouvez profiter du client GPU sous Linux, en plus du client CPU, comme pour Windows.
Comment ? C'est ce que nous allons voir, mais avant quelques précisions.
La distribution utilisée est la 9.04 "Jaunty Jacklope", la dernière version d'ubuntu 9.10 "Karmic Koala" utilise des pilotes plus récents et le Wrapper CUDA, qui réalise les conversion entre le core Windows et les pilotes CUDA Linux, ne fonctionne pas avec.
En attendant une mise a jour du Wrapper, il est conseillé de rester sur la 9.04.
Principe de fonctionnement et outils
Avant de se lancer dans toutes manipulations, il est important de comprendre comment cela fonctionne.
Le pliage sous Linux est un bidouillage, il fonctionne uniquement pour les cartes Nvidia, CUDA étant compatible Linux et n’est pas supporté officiellement par Stanford.
Comment cela se passe-t-il ?
En fait nous allons utiliser Wine, un programme permettant de faire tourner sous Linux des programmes issus du monde Windows, pour faire tourner le client GPU 6.23 pour Windows XP.
Wine accèdera aux ressources graphiquex, CUDA et cartes via un Wrapper qui fera le lien entre eux, ce qui permet au client Windows de plier sous Linux.
Si vous avez tout suivi, il nous faudra donc, le pilotes Nvidia, intégré à la distribution, CUDA, un Wrapper, Wine et enfin le client
Assez de théorie passons à la pratique.
Mode d'emploi
Installation des composants
Activations des Pilotes
Votre matériel est automatiquement reconnu par Linux et il sait de quel pilotes vous avez besoin, il suffit juste de lui demander de les activer, car ils ne le sont pas par défaut.
Cliquez sur Système -> Administration -> Pilotes de périphériques.
Cliquez sur Activer, rentrez votre mot de passe et rebootez la machine.
Installation de WINE
C'est lui qui va nous permettre de faire tourner le client GPU, il simule tout simplement le fonctionnement et les principaux fichiers de Windows, ce n'est pas un émulateur, ni un Windows virtualisé.
Ouvrez un terminal et tapez :
Code :
sudo apt-get install wine
Entrez votre mot de passe.
Tapez o puis sur entrée pour valider l'installation.
Wine est installé.
Installation de CUDA
CUDA est l'application qui permet d’exécuter des programmes sur le GPU et ainsi de le faire plier.
Dans un premier temps nous allons récupérer l'application. Ouvrez un terminal et tapez :
Code :
wget http://developer.download.nvidia.com/compute/cuda/2_0/linux/toolkit/NVIDIA_CUDA_Toolkit_2.0_ubuntu7.10_x86.run
Vous devriez avoir quelque chose comme cela :
Avant d'installer CUDA à proprement parler, il faut installer quelques composants supplémentaire a Linux.
Tapez donc :
Code :
sudo apt-get install build-essential linux-headers-`uname -r`
Comme tout à l'heure, faites o puis entrée.
Vous devriez avoir ceci :
Nous allons maintenant installer CUDA.
Toujours dans un terminal, tapez :
Code :
sudo sh NVIDIA_CUDA_Toolkit_2.0_ubuntu7.10_x86.run
A un moment vous devriez voir ceci à l'écran :
Code :
Enter install path (default /usr/local/cuda, '/cuda' will be appended):
Appuyez sur entrée, et voilà CUDA est installé.
Configuration
Création de la structure de WINE
Pour que Wine puisse utiliser les librairies de CUDA, il faut créer une structure qui les intègre à Wine.
Ouvrez un terminal et tapez :
Code :
sudo sh -c "echo '/usr/local/cuda/lib' > /etc/ld.so.conf.d/cuda.conf"
sudo ldconfig
Ensuite, pour que Wine s’initialise et créée les dossiers nécessaires à son fonctionnement, tapez :
Code :
wine notepad
Le bloc note s'ouvre, fermez-le.
Voilà Wine peut se servir des librairies de CUDA, mais ne peut communiquer avec CUDA car c'est la version Linux de CUDA que nous utilisons et non celle de Windows.
Et si vous avez bien suivi, Wine permet de faire tourner les programmes normalement prévus pour Windows, il ne peut donc pas se servir de la version de Linux.
Pour cela nous allons avoir besoin d'un Wrapper qui fasse le lien entre Wine et CUDA.
Installation du Wrapper.
Téléchargez le Wrapper, en ouvrant un terminal puis en tapant.
Code :
wget http://www.gpu2.twomurs.com/wrapper2ndgen/2.1/cudart.dll.so -O ~/.wine/drive_c/windows/system32/cudart.dll
Créons maintenant les liens pour faire communiquer Wine et CUDA.
Code :
ln -s ~/.wine/drive_c/windows/system32/cudart.dll ~/.wine/drive_c/windows/system32/nvcuda.dll
Testons le Wrapper, pour vérifier qu'il est bien lié :
Code :
ldd ~/.wine/drive_c/windows/system32/cudart.dll
Vous devriez avoir quelque chose comme ceci qui s'affiche dans le terminal :
Code :
linux-gate.so.1 => (0xf7fcb000)
libcudart.so.2 => /usr/local/cuda/lib/libcudart.so.2 (0xf7f63000)
libwine.so.1 => /usr/lib32/libwine.so.1 (0xf7e2c000)
libm.so.6 => /lib32/libm.so.6 (0xf7e05000)
libc.so.6 => /lib32/libc.so.6 (0xf7ca7000)
libdl.so.2 => /lib32/libdl.so.2 (0xf7ca3000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf7c8a000)
librt.so.1 => /lib32/librt.so.1 (0xf7c81000)
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf7b93000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7b83000)
/lib/ld-linux.so.2 (0xf7fcc000)
Si une erreur apparaît, retournez à l'étape précédente et refaite les liens.
Script d'initialisation de CUDA
Pour que CUDA se lance, nous allons avoir besoin d'un script.
Ouvrez un terminal et tapez, cette commande qui ouvre nano, un éditeur de texte et crée un fichier nommé "cudainit".
Code :
nano -w cudainit
Vous devriez avoir ceci :
Voici le script, copiez le et collez le dans le terminal.
Code :
#!/bin/bash
PATH=$PATH:/usr/local/cuda/bin
modprobe nvidia
if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found.
N3D=`/usr/bin/lspci | grep -i NVIDIA | grep "3D controller" | wc -l`
NVGA=`/usr/bin/lspci | grep -i NVIDIA | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i;
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi
Faites CTRL+X pour enregistrer, puis O et enfin entrée pour quitter et enregistrer.
Un script c'est beau, mais s'il n'est pas exécutable ça ne sert à rien.
Pour rendre le script exécutable, toujours dans un terminal, tapez :
Code :
sudo chmod u+x cudainit
Avec les droits root, exécutez le script pour initialiser CUDA.
Code :
sudo ./cudainit
Nombre de carte
Cette commande permet de savoir combien de cartes sont installées dans votre ordinateur
Code :
ls /dev/nv*
Si vous avez une seule carte vidéo vous devriez voir ça :
Ça fait beaucoup de manipulations, mais nous ne sommes plus très loin puisqu'il ne nous reste que le client à installer. Aller hop, c'est parti.
Installation du client
Téléchargement du client
Avant toutes choses, il faut commencer par télécharger le client.
Ouvrez donc un terminal et tapez :
Code :
wget http://www.stanford.edu/group/pandegroup/folding/release/Folding@home-Win32-GPU_XP-623.zip
Ubuntu ne disposant pas de quoi décompresser les fichiers .zip, installez UnZip :
Code :
sudo apt-get install unzip
Nous avons led clients et de quoi le décompresser, il ne nous reste qu'à créer un dossier pour le stocker.
Le dossier crée pour l'exemple est fahgpu2, mais vous pouvez très bien changer le nom, il vous suffira de remplacer, partout ou il y aura, fahgpu2 par votre dossier.
Code :
mkdir ~/fahgpu2
Décompressez l'archive dans ce dossier.
Code :
unzip Folding@home-Win32-GPU_XP-623.zip -d fahgpu2
Lancement du client et configuration
Placez-vous dans le dossier fahgpu2 :
Code :
cd ~/fahgpu2
Et lancez le client :
Code :
nice wine Folding@home-Win32-GPU.exe -verbosity 9 -forcegpu nvidia_g80
Si tout c'est bien passez vous devriez voir ceci :
La configuration est la même que pour les autres clients, à une différence près, en effet si vous faites tourner un client SMP a côté, à la ligne :
Code :
Core Priority (idle/low) [idle]?
Mettez low, pour ne pas trop impacter le client CPU.
Relancer le client
Vous avez arrêté le client proprement avec CTRL+C et vous ne savez pas comment le relancer ?
Comme pour le premier lancement, placez-vous dans le dossier et lancez-le avec Wine.
Code :
cd ~/fahgpu2
nice wine Folding@home-Win32-GPU.exe -verbosity 9 -forcegpu nvidia_g80
Pour vous éviter de tout retaper, il y a une astuce, utiliser les flèches haut et bas pour faire défiler les commandes précédemment tapées, même quand vous avez arrêté la machine ça fonctionne, ou créer un Script pour automatiser le lancement du client.
Conclusion et remerciement
Voilà vous pliez avec un GPU sous Linux !
Je tiens a remercier Adanorm2000 pour les étapes à réaliser et Hyperlife du forum officiel, qui a réalisé le premier tutorial (en anglais), dont celui-ci est inspiré.
Cette page a été vue 1176 fois











Outils
Contribuer







