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é.
/proc
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 '{}'
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
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
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
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
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
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
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
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.
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 2014/02/24 14:29