====== 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//