Ceci est une ancienne révision du document !
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 :
# 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
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" " ")
root
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 :
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 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 à partir de l'archive ./cudatoolkit_5.0.35_linux_64_ubuntu11.10.run -prefix=/opt/cuda-5.0.35 -noprompt
# 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
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
Téléchargement des sources sur : http://mathema.tician.de/software/pycuda
apt-get install git libboost-python1.49-dev libboost-thread1.49-dev libboost1.49-all-dev libboost1.49-dev python-setuptools
root
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
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
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 ==========================
cd $PYCUDA/examples python download-examples-from-wiki.py cd wiki-examples find *.py -exec python {} \;
Téléchargement des sources sur : http://mathema.tician.de/software/pyopencl
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
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