Ceci est une ancienne révision du document !


Installation de Cuda 5.0

Au 24 octobre 2012, le pilote Cuda version 5 ne nécessite plus d'inscription préalable pour être téléchargé.

La grosse modification est que seul une archive est à télécharger pour disposer du pilote de carte, de l'environnement CUDA et du SDK.

Le lien suivant défini les différents paquets à installer :

  • la boîte à outils : la version 5.0 pour 64 bits et 32 bits
    # Dans sa version 64 bits
    wget http://developer.download.nvidia.com/compute/cuda/5_0/rel-update-1/installers/cuda_5.0.35_linux_64_ubuntu11.10-1.run
    # Dans sa version 32 bits
    wget http://developer.download.nvidia.com/compute/cuda/5_0/rel-update-1/installers/cuda_5.0.35_linux_32_ubuntu11.10-1.run

Installation du pilote

Toutes ces commandes sont à effectuer comme root

Pour commencer, installation et configuration minimale :

apt-get install module-assistant
# téléchargement des prototypes du noyau courant si nécessaire
m-a prepare
# pour les noyaux récents (par exemple comme le 2.6.32, il faut blacklister nouveau
echo blacklist nouveau >> /etc/modprobe.d/blacklist.conf
# arret de GDM3 s'il est lancé
/etc/init.d/gdm3 stop
killall -9 gnome-shell
# arret de KDM s'il est lancé
/etc/init.d/kdm stop

La version Wheezy comprend des paquets permettant de bénéficier de Cuda dans sa version 4.2.9 et intègre le pilote 304.48

apt-get purge -y --force-yes $(dpkg -l | grep nvidia | awk '{ print $2 }' | tr "\n" " ")
apt-get purge -y --force-yes $(dpkg -l | grep cuda | awk '{ print $2 }' | tr "\n" " ")

Installation de la boîte à outils

Toutes ces commandes sont à effectuer comme root
Par défaut, tout l'environnement Cuda 5 est adaptée pour le compilateur 4.6. Comme sous Debian Wheezy, le compilateur par défaut est le 4.6, il serait nécessaire de préciser, comme dans les autres applications, les variables CC et CXX pour pointer vers les bons compilateurs ! Sauf que cela ne fonctionne pas…
apt-get --yes --reinstall --force-yes install libxi-dev libxmu-dev freeglut3-dev gcc-4.6 g++-4.6 gfortran-4.6 linux-headers-$(uname -r)

Pour le SDK, toujours aussi simple, mais, pour uniformiser les usages, nous décidons d'installer ces librairies non pas dans usr/local/cuda mais /opt/cuda. De plus, nous désirons conserver l'ancienne version :

Préparation du système

cd /opt
# Suppression du lien
[ -e /opt/cuda ] && rm -r /opt/cuda
# Lancer l'installation
sh /root/cuda_5.0.35_linux_64_ubuntu11.10-1.run -extract=/tmp/cuda
cd /tmp/cuda

Installation du pilote graphique

# Installation du pilote graphique et des librairies systeme
CC=/usr/bin/gcc-4.6 ./devdriver_5.0_linux_64_304.54.run -a -d -s -Z -X -kernel-name=$(uname -r)
# Création du fichier de configuration Xorg
nvidia-xconfig
# Redmarrage du serveur X
/etc/init.d/gdm3 start 

Installation des librairies

# Installation des librairies à partir de l'archive
./cudatoolkit_5.0.35_linux_64_ubuntu11.10.run -prefix=/opt/cuda-5.0.35 -noprompt

Configuration de l'accès aux librairies et binaires

# Renommer le repertoire en le suffixant du numero de version
cd /opt
ln -sf cuda-5.0.35 cuda
# Creer le document contenant les libraires dynamiques de Cuda (la version 64 bits est pointee)
echo -e "/opt/cuda/lib64\n/opt/cuda/lib" > /etc/ld.so.conf.d/cuda.conf
# Mettre a jour la base
ldconfig
# Ajouter le chemin vers les executables de Cuda (notamment nvcc)
sed -e "s/:\/bin/:\/bin:\/opt\/cuda\/bin/" -e "s/:\/usr\/games/:\/usr\/games:\/opt\/cuda\/bin/" -i~ /etc/profile
# Placer un lien sur la librairie cuda installe par le pilote graphique
cd /opt/cuda/lib64
ln -s /usr/lib/libcuda.so libcuda.so

Par défaut, Cuda 5 ne compile QUE avec gcc-4.6. La première solution aurait été de pointer les compilateurs par défaut directement sur

La première méthode, bien crade, consiste à relinker les compilateurs vers la bonne version.

ln -s /usr/bin/gcc-4.6 gcc
ln -s /usr/bin/g++-4.6 g++
ln -s /usr/bin/gfortran-4.6 gfortran

La seconde méthode, plus propre, consiste à préciser à nvcc le compilateur GCC à utiliser

cd /opt/cuda/bin/

ln -s /usr/bin/gcc-4.6 gcc
ln -s /usr/bin/g++-4.6 g++
ln -s /usr/bin/gfortran-4.6 gfortran

echo -e "compiler-bindir = /opt/cuda/bin" >> nvcc.profile 

Installation et compilation des exemples

Toutes ces commandes sont à effectuer comme root
cd /tmp/cuda
sh cuda-samples_5.0.35_linux.run -prefix=/opt/cuda-5.0.35/samples -noprompt

Enfin, la compilation des exemples :

cd /opt/cuda/samples
make

Installation de PyCUDA

Téléchargement des sources sur : http://mathema.tician.de/software/pycuda

Préparation de la compilation

apt-get install git libboost-python1.49-dev libboost-thread1.49-dev libboost1.49-all-dev libboost1.49-dev python-setuptools
Toutes ces commandes sont à effectuer comme root

Téléchargement des sources

Directement en téléchargeant par Git

cd /opt
git clone http://git.tiker.net/trees/pycuda.git
cd pycuda
git submodule init
git submodule update

En récupérant l'archive

cd /root
wget http://pypi.python.org/packages/source/p/pycuda/pycuda-2012.1.tar.gz#md5=b67c4fce6c258834339073f2537fa84f
cd /opt
tar xzf /root/pycuda-2012.1.tar.gz
ln -s pycuda-2012.1 pycuda
chown -R root.root pycuda
cd pycuda

Compilation et installation

export PATH=$PATH:/opt/cuda/bin
export PYCUDA=$PWD

# Configuration
export CUDA_ROOT=/opt/cuda
./configure.py

# Compilation
CC=/usr/bin/gcc-4.6 CXX=/usr/bin/g++-4.6 make

# Installation
make install
# 
python setup.py build
python setup.py install

Exécution des tests d'intégration

cd $PYCUDA/test

Premier exemple : python test_cumath.py donne

============================= test session starts ==============================
platform linux2 -- Python 2.7.3 -- pytest-2.3.1
collected 20 items 

test_cumath.py ....................

========================== 20 passed in 7.66 seconds ===========================

Deuxième exemple : python test_driver.py donne

============================= test session starts ==============================
platform linux2 -- Python 2.7.3 -- pytest-2.3.1
collected 21 items 

test_driver.py .....................

========================== 21 passed in 4.20 seconds ===========================

Troisième exemple : python test_gpuarray.py donne

============================= test session starts ==============================
platform linux2 -- Python 2.7.3 -- pytest-2.3.1
collected 46 items 

test_gpuarray.py ..............................................

========================== 46 passed in 25.04 seconds ==========================

Exécution des exemples

cd $PYCUDA/examples
python download-examples-from-wiki.py
cd wiki-examples
find *.py -exec python {} \;

Installation de PyOpenCL

Téléchargement des sources sur : http://mathema.tician.de/software/pyopencl

Préparation de la compilation

apt-get install libboost-thread-dev

Au 20 juin 2012, la version courante est la 2012.1 :

cd /opt
git clone http://git.tiker.net/trees/pyopencl.git
cd pyopencl
git submodule init
git submodule update
cd /root
wget http://pypi.python.org/packages/source/p/pyopencl/pyopencl-2012.1.tar.gz#md5=e6ae70d89d086af4636e4fbb2c806368
cd /opt
tar xzf /root/pyopencl-2012.1.tar.gz
ln -s pyopencl-2012.1 pyopencl
cd pyopencl

Compilation et installation de PyOpenCL

Avec l'installation des librairies Cuda comme présentée ci-dessus, la compilation se prépare de la façon suivante :

./configure.py --boost-inc-dir=/usr/include --boost-lib-dir=/usr/lib  --boost-python-libname=boost_python-py27 --cl-inc-dir=/opt/cuda/include/ --cl-lib-dir=/usr/lib/ --boost-compiler=/opt/cuda/bin/nvcc --cl-enable-gl --no-cl-enable-device-fission
CC=/usr/bin/gcc-4.6 CXX=/usr/bin/g++-4.6 make
make install
python setup.py build
python setup.py install
developpement/activites/integration/cudafs4wheezy.1386082538.txt.gz · Dernière modification: 2015/01/07 10:04 (modification externe)