====== Utilisation des librairies Stream sur une Debian Wheezy ======
Attention ! Le pilote 14.1 de AMD/ATI ne fonctionne pas sur les cartes AMD V5900
===== Rétroportage de Stream sous Wheezy =====
La Debian Wheezy ne dispose que de la version 12.6 pour le pilote AMD/ATU et OpenCL et du pilote 304.88. Ces versions peuvent rapidement sembler insuffisantes pour ceux qui désirent utiliser les dernières fonctionnalités de OpenCL ou simplement utiliser les dernières cartes video AMD/ATI efficacement.
Voici la méthode permettant d'installer à partir d'un rétro-portage les paquets AMD/ATI ainsi que tout l'environnement associé.
Pour une compilation dans SIDUS, ne pas oublier de monter le ''/proc''
==== Purge des paquets AMD/ATI originels ====
dpkg -l | egrep "(clinfo|amd-opencl|amd-libopencl|fglrx)" | awk '{ print $2 }' | xargs -I '{}' apt-get -y purge '{}'
dpkg -l | grep opencl | grep -v openclip | awk '{ print $2 }' | xargs -I '{}' apt-get -y purge '{}'
==== Préparation du système ====
Il est nécessaire d'insérer les sources des paquets sid et expérimentaux pour disposer de la dernière version de FGLRX packagée comprenant tout l'environnement.
apt-get install -y pbuilder pciutils
[ $(grep sid /etc/apt/sources.list | wc -l) -gt 0 ] && echo "Already present" || echo "deb-src http://ftp.fr.debian.org/debian/ sid main contrib non-free" >> /etc/apt/sources.list
[ $(grep experimental /etc/apt/sources.list | wc -l) -gt 0 ] && echo "Already present" || echo "deb-src http://ftp.fr.debian.org/debian/ experimental main contrib non-free" >> /etc/apt/sources.list
aptitude update
==== Rétroportage des composants Système ====
mkdir -p /root/stream/debian
cd /root/stream
apt-get source glx-alternatives
apt-get build-dep glx-alternatives
cd glx-alternatives-*
debuild
cd ..
ls -1 *.deb
mv *.deb debian
Les paquets créés sont les suivants :
glx-alternative-fglrx_0.4.1_amd64.deb
glx-alternative-mesa_0.4.1_amd64.deb
glx-alternative-nvidia_0.4.1_amd64.deb
glx-diversions_0.4.1_amd64.deb
==== Rétroportage des composants FGLRX ====
cd /root/stream
apt-get source fglrx-driver
apt-get install ocl-icd-libopencl1 opencl-headers
apt-get -y build-dep fglrx-driver clinfo
cd /root/stream/fglrx-driver-*/
debuild
cd ..
ls -1 *.deb
mv *.deb debian
Les paquets créés sont les suivants :
amd-clinfo_14.6~betav1.0-1_amd64.deb
amd-libopencl1_14.6~betav1.0-1_amd64.deb
amd-opencl-dev_14.6~betav1.0-1_amd64.deb
amd-opencl-icd_14.6~betav1.0-1_amd64.deb
fglrx-atieventsd_14.6~betav1.0-1_amd64.deb
fglrx-control_14.6~betav1.0-1_amd64.deb
fglrx-driver_14.6~betav1.0-1_amd64.deb
fglrx-modules-dkms_14.6~betav1.0-1_amd64.deb
fglrx-source_14.6~betav1.0-1_amd64.deb
libfglrx_14.6~betav1.0-1_amd64.deb
libfglrx-amdxvba1_14.6~betav1.0-1_amd64.deb
libgl1-fglrx-glx_14.6~betav1.0-1_amd64.deb
libxvbaw-dev_14.6~betav1.0-1_amd64.deb
==== Installation des composants FGLRX ====
cd /root/stream/debian
dpkg -i glx-diversions_*_amd64.deb glx-alternative-mesa_*_amd64.deb
dpkg -i glx-alternative-fglrx_*_amd64.deb
dpkg -i libfglrx_*_amd64.deb
dpkg -i libgl1-fglrx-glx_*_amd64.deb
apt-get install xserver-xorg-core libaudit0 libxkbfile1 x11-xkb-utils xfonts-base xserver-common
dpkg -i fglrx-modules-dkms_*_amd64.deb
dpkg -i fglrx-driver_*_amd64.deb
dpkg -i libfglrx-amdxvba1_*_amd64.deb
dpkg -i libxvbaw-dev_*_amd64.deb
dpkg -i fglrx-atieventsd_*_amd64.deb
dpkg -i fglrx-control_*_amd64.deb
==== Installation des composants Cuda & OpenCL ====
cd /root/stream/debian
dpkg -i amd-clinfo_14.1~beta1.3-1_amd64.deb
dpkg -i amd-opencl-icd_14.1~beta1.3-1_amd64.deb
==== Rétroportage du composant Python PyOpenCL ====
La dépendance sur une version plus récente de PyTools impose le rétroportage de cette dernière.
cd /root/stream
apt-get source python-pytools
apt-get -y build-dep python-pytools
cd /root/stream/pytools-*/
debuild
cd ..
ls -1 *.deb
mv *.deb debian
python3-pytools_2013.5.7-1_all.deb
python-pytools_2013.5.7-1_all.deb
cd /root/stream/debian
dpkg -i python3-pytools_*.deb python-pytools_*.deb
cd /root/stream/
apt-get source pyopencl
apt-get -y build-dep pyopencl
cd /root/stream/pyopencl-*/
debuild
cd ..
ls -1 *.deb
mv *.deb debian
Les paquets créés sont les suivants :
python3-pyopencl_2013.2-1_amd64.deb
python3-pyopencl-dbg_2013.2-1_amd64.deb
python-pyopencl_2013.2-1_amd64.deb
python-pyopencl-dbg_2013.2-1_amd64.deb
python-pyopencl-doc_2013.2-1_all.deb
==== Installation des composants Python ====
cd /root/stream/debian
# Les paquets suivants issus de AMD sont necessaires pour le premier et bien utile pour le second
dpkg -i python-pyopencl_*.deb python3-pyopencl_*.deb python-pyopencl-doc_*.deb
==== Exécution des exemples ====
cd /usr/share/doc/python-pyopencl-doc/examples
python benchmark.py
Sur une carte HD5850 (et un Dell Precision 5600):
Execution time of test without OpenCL: 0.105705976486 s
===============================================================
Platform name: AMD Accelerated Parallel Processing
Platform profile: FULL_PROFILE
Platform vendor: Advanced Micro Devices, Inc.
Platform version: OpenCL 1.2 AMD-APP (1411.4)
---------------------------------------------------------------
Device name: Cypress
Device type: GPU
Device memory: 512 MB
Device max clock speed: 725 MHz
Device compute units: 18
Device max work group size: 256
Device max work item sizes: [256, 256, 256]
Data points: 8388608
Workers: 256
Preferred work group size multiple: 64
Execution time of test: 0.0196992 s
Results OK
===============================================================
Platform name: AMD Accelerated Parallel Processing
Platform profile: FULL_PROFILE
Platform vendor: Advanced Micro Devices, Inc.
Platform version: OpenCL 1.2 AMD-APP (1411.4)
---------------------------------------------------------------
Device name: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz
Device type: CPU
Device memory: 32201 MB
Device max clock speed: 2001 MHz
Device compute units: 12
Device max work group size: 1024
Device max work item sizes: [1024, 1024, 1024]
Data points: 8388608
Workers: 256
Preferred work group size multiple: 1
Execution time of test: 0.0133983 s
Results OK
Vous aurez noter que l'installation préalable d'un SDK AMD a permis de disposer d'un support OpenCL sur le processeur.
====== Installation de PyFFT ======
[[http://packages.python.org/pyfft/|PyFFT]] permet l'exploitation de PyCUDA et PyOpenCL pour effectuer tranquillement ses FFT directement à partir de ses scripts Python.
Pour son installation, suivre la page : http://www.cbp.ens-lyon.fr/emmanuel.quemener/dokuwiki/doku.php?id=pyfft4squeeze
--- //[[emmanuel.quemener@ens-lyon.fr|Emmanuel Quemener]] 2014/02/24 14:29//