Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

developpement:activites:integration:stream4wheezy [2013/03/22 16:24]
sbarends créée
developpement:activites:integration:stream4wheezy [2015/01/07 10:04]
Ligne 1: Ligne 1:
-====== Stream SDK ATI sur une Debian Wheezy ====== 
  
-===== Pourquoi cette page ? ===== 
- 
-La distribution Wheezy intègre dans son archive //​non-free//​ les pilotes propriétaires et les librairies permettant d'​exploiter les cartes graphiques pour le calcul scientifique,​ mais seulement pour sa version 12.6 : les cartes graphiques récentes ne sont pas supportées. 
- 
-Rappelons que l'API ATI.AMD dispose d'un avantage sur son concurrent Nvidia : l'​intégration d'une librairie OpenCL permettant aussi bien d'​utiliser son processeur généraliste que son processeur graphique. 
- 
-===== Installation du SDK 2.8 ===== 
- 
-Contrairement à Nvidia, ATI utilise son pilote standard pour sa couche GPU. 
- 
-Le lien suivant défini les différents paquets à installer : 
-  * le pilote : la version 13.1 pour [[http://​www2.ati.com/​drivers/​linux/​amd-driver-installer-catalyst-13.1-linux-x86.x86_64.zip|32 ou 64 bits]] 
-  * le pilote : la version 13.2 pour [[http://​www2.ati.com/​drivers/​beta/​amd-driver-installer-catalyst-13.2-beta7-linux-x86.x86_64.zip|32 ou 64 bits]] 
-<​code>​ 
-# Pour le pilote "​stable"​ 
-wget http://​www2.ati.com/​drivers/​linux/​amd-driver-installer-catalyst-13.1-linux-x86.x86_64.zip 
-# Pour le pilote "​beta"​ : indispensable pour la HD 7340 à disposition 
-wget http://​www2.ati.com/​drivers/​beta/​amd-driver-installer-catalyst-13.2-beta7-linux-x86.x86_64.zip 
-</​code>​ 
-  * la boîte à outils : la version 2.8 pour [[http://​developer.amd.com/​wordpress/​media/​files/​AMD-APP-SDK-v2.8-lnx32.tgz|32 bits]] et [[http://​developer.amd.com/​wordpress/​media/​files/​AMD-APP-SDK-v2.8-lnx64.tgz|64 bits]]. Pas de ''​wget''​ possible puisqu'​une validation est indispensable ! 
-  * La version future de OpenCL 1.2 [[http://​developer.amd.com/​Downloads/​OpenCL1.2-Static-Cplus-preview-drivers-Linux.tgz|OpenCL 1.2]] <​code>​ 
-http://​developer.amd.com/​Downloads/​OpenCL1.2-Static-Cplus-preview-drivers-Linux.tgz 
-</​code>​ 
- 
-==== Installation du pilote ==== 
- 
-Pour commencer, plus grand chose sinon que le pilote AMD/ATI utilise ''​dkms''​ et plus ''​module-assistant''​ :<​code>​apt-get install dkms 
-# arret de GDM s'il est lancé 
-/​etc/​init.d/​gdm stop 
-</​code>​ 
- 
-<note important>​Le paquet ''​scidavis''​ installe ses plugins dans ''/​usr/​lib64''​ ce qui ''​casse''​ le script d'​installation des composants en les plaçant dans ''/​usr/​lib64''​ au lieu de ''/​usr/​lib/​x86_64-linux-gnu''​.</​note>​ 
- 
-Le redémarrage semble nécessaire pour que le pilote ''​radeon''​ ne soit pas chargé. 
- 
-Puis, même lancement de l'​installation du pilote, version 32 ou 64 bits :<​code>​ 
-unzip amd-driver-installer-catalyst-13.1-linux-x86.x86_64.zip 
-CC=/​usr/​bin/​gcc-4.6 amd-driver-installer-catalyst-13.1-linux-x86.x86_64.run --force</​code>​ 
- 
-Au 1er mars 2013, le composant graphique intégré à l'AMD E2-1800 est un HD7340 : le pilote 13.1 ne fonctionne pas. Il faut donc passer sur le pilote beta, le 13.2-beta7 à cette date :<​code>​ 
-unzip amd-driver-installer-catalyst-13.2-beta7-linux-x86.x86_64.zip 
-CC=/​usr/​bin/​gcc-4.6 amd-driver-installer-catalyst-13.2-beta7-linux-x86.x86_64.run --force</​code>​ 
- 
-==== Installation de la boîte à outils ==== 
- 
-Pour le SDK, toujours aussi simple, par une simple décompression de l'​archive à l'​endroit idoine, soit ''/​opt''​ (il est supposé que l'​archive se trouve dans ''/​root''​) : <​code>​ 
-# Renommage d'un /opt/AMDAPP précédent 
-[ -d /opt/AMDAPP ] && mv /opt/AMDAPP /​opt/​AMDAPP.old 
-mkdir /​tmp/​AMDSDK-2.8 
-cd /​tmp/​AMDSDK-2.8 
-# En 32 bits, décompresser l'​archive 
-tar xzf /​root/​AMD-APP-SDK-v2.8-lnx32.tgz 
-# En 64 bits, décompresser l'​archive 
-tar xzf /​root/​AMD-APP-SDK-v2.8-lnx64.tgz 
-# Lancer le script d'​installation 
-./​Install-AMD-APP.sh 
-# Etablir un lien pour pointer de manière générique les pilotes 
-cd /opt 
-mv AMDAPP AMDAPP-2.8 
-ln -s AMDAPP-2.8 AMDAPP 
-# Generation du ld 
-ldconfig 
-</​code>​ 
- 
-===== Installation de librairies scientifiques ===== 
- 
-==== Téléchargement des sources et des exemples ==== 
- 
-Les éléments :  
-  * http://​developer.amd.com/​wordpress/​media/​files/​clAmdBlas1.8.291.tar.gz 
-  * http://​developer.amd.com/​wordpress/​media/​files/​LUDOpenCLBLAS-Linux.zip 
-  * http://​developer.amd.com/​wordpress/​media/​files/​clAmdBlasREADME1.txt 
- 
-  * http://​developer.amd.com/​wordpress/​media/​files/​clAmdFft1.8.291.tar.gz 
-  * http://​developer.amd.com/​wordpress/​media/​files/​clAmdFftREADME1.txt 
-  * http://​developer.amd.com/​wordpress/​media/​files/​ObjectDetection-Linux.zip 
- 
-==== Installation des librairies BLAS et FFT ==== 
- 
-<​code>​ 
-mkdir /tmp/CLAMD 
-cd /tmp/CLAMD 
-tar xzf /​root/​clAmdBlas1.8.291.tar.gz 
-./​install-clAmdBlas-1.8.291.sh 
-# Taper accept pour accepter les conditions d'​utilisation 
-# Taper <​entree>​ pour valider l'​installation par défaut dans /​opt/​clAmdBlas-1.8.291 
-tar xzf /​root/​clAmdFft1.8.291.tar.gz 
-./​install-clAmdFft-1.8.291.sh 
-# Taper accept pour accepter les conditions d'​utilisation 
-# Taper <​entree>​ pour valider l'​installation par défaut dans /​opt/​clAmdFft-1.8.291 
-cd /opt 
-ln -s clAmdBlas-1.8.291 clAmdBlas 
-ln -s clAmdFft-1.8.291 clAmdFft 
-# 
-chown -R root.root /​opt/​clAmdBlas /​opt/​clAmdFft 
-# Pour une architecture 64 bits 
-echo -e "/​opt/​clAmdBlas/​lib64\n/​opt/​clAmdFft/​lib64"​ > /​etc/​ld.so.conf.d/​clAmd.conf 
-# Pour une architecture 32 bits 
-echo -e "/​opt/​clAmdBlas/​lib32\n/​opt/​clAmdFft/​lib32"​ >> /​etc/​ld.so.conf.d/​clAmd.conf 
-# 
-ldconfig 
-</​code>​ 
- 
-==== Installation des librairies aparapi ==== 
- 
-<​code>​ 
-cd /opt 
-mkdir aparapi 
-cd /​opt/​aparapi 
-wget http://​aparapi.googlecode.com/​files/​Aparapi_2013_01_23_linux_x86_64.zip 
-unzip Aparapi_2013_01_23_linux_x86_64.zip 
-</​code>​ 
- 
-==== Compilation des exemples du SDK ==== 
- 
-Ensuite, la compilation des exemples : ceux de CAL ont disparus, il reste ceux d'​OpenCL :<​code>​ 
-apt-get -y install libxi-dev libxmu-dev freeglut3-dev 
-# Cet export de variable est indispensable pour la compilation correcte des exemples parapi 
-export LIBAPARAPI=/​opt/​aparapi/​ 
-cd /​opt/​AMDAPP/​samples 
-make 
-</​code>​ 
- 
-==== Exécution des exemples du SDK ==== 
- 
-Enfin, l'​exécution des exemples OpenCL :<​code>​ 
-# pour une architecture 64 bits 
-cd /​opt/​AMDAPP/​samples/​opencl/​bin/​x86_64 
-# pour une architecture 32 bits 
-cd /​opt/​AMDAPP/​samples/​opencl/​bin/​x86 
-# lancer tous les exemples 
-find . -executable ! -iname "​*.cl"​ -exec {} \; 
-</​code>​ 
- 
-==== Compilation des exemples des librairies ClBlas et ClFft ==== 
- 
-<​code>​ 
-apt-get install cmake 
-export AMDAPPSDKROOT=/​opt/​AMDAPP 
-cd /​opt/​clAmdBlas/​samples 
-cmake . 
-make 
-cd /​opt/​clAmdFft/​samples 
-# Ces gros nuls n'ont pas verifie leur CMake : il plante ! 
-sed -i "​s/​\.\.\/​\.\.\/​\.\.\\//​common//​g"​ CMakeLists.txt 
-# (le cmake pointe pour quelques sources au mauvais endroit !) 
-cmake . 
-make 
-</​code>​ 
- 
-==== Exécution des exemples des librairies ClBlas et ClFft ==== 
- 
-<​code>​ 
- 
-</​code>​ 
-===== Installation de PyOpenCL ​ ===== 
- 
-Téléchargement des sources sur : http://​mathema.tician.de/​software/​pyopencl 
- 
-==== Préparation de la compilation ==== 
- 
-<​code>​apt-get -y install libboost-thread-dev python-setuptools 
-</​code>​ 
- 
-<​code>​cd /opt 
-git clone http://​git.tiker.net/​trees/​pyopencl.git 
-cd pyopencl 
-git submodule init 
-git submodule update 
-</​code>​ 
- 
-==== Compilation et installation de PyOpenCL ==== 
- 
-Il est supposé que le dossier d'​installation du SDK ATI se trouve dans ''/​opt/​AMDAPP''​ :  
-<​code>​./​configure.py --boost-inc-dir=/​usr/​include --boost-lib-dir=/​usr/​lib ​ --boost-python-libname=boost_python-py27 --cl-inc-dir=/​opt/​AMDAPP/​include --cl-lib-dir=/​opt/​AMDAPP/​lib/​x86_64 --boost-compiler=/​usr/​bin/​g++-4.7 
-CC=/​usr/​bin/​gcc-4.7 CXX=/​usr/​bin/​g++-4.7 make 
-make install 
-python setup.py build 
-python setup.py install 
-</​code>​ 
- 
-==== Exécution des exemples ==== 
- 
-Pour l'​exemple standard, très intéressant parce que permettant de visualiser autant processeur graphique que générique : 
-<​code>​ 
-cd examples 
-python benchmark-all.py ​ 
-</​code>​ 
- 
-Sur un ASUS X55U avec un processeur AMD E2-1800 équipée d'une carte Radeon HD 7340 :<​code>​ 
-Execution time of test without OpenCL: ​ 0.287725925446 s 
-=============================================================== 
-Platform name: AMD Accelerated Parallel Processing 
-Platform profile: FULL_PROFILE 
-Platform vendor: Advanced Micro Devices, Inc. 
-Platform version: OpenCL 1.2 AMD-APP (1113.2) 
---------------------------------------------------------------- 
-Device name: Loveland 
-Device type: GPU 
-Device memory: ​ 192 MB 
-Device max clock speed: 523 MHz 
-Device compute units: 2 
-Device max work group size: 256 
-Device max work item sizes: [256, 256, 256] 
-Data points: 8388608 
-Workers: 256 
-Preferred work group size multiple: 32 
-Execution time of test: 0.022523 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 (1113.2) 
---------------------------------------------------------------- 
-Device name: AMD E2-1800 APU with Radeon(tm) HD Graphics 
-Device type: CPU 
-Device memory: ​ 3547 MB 
-Device max clock speed: 850 MHz 
-Device compute units: 2 
-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.0759986 s 
-Results OK 
-</​code>​ 
- 
-===== Précautions d'​usage ===== 
- 
-Pour une utilisation du GPU à distance, il est nécessaire de procéder à quelques modifications de son système, sans quoi, l'​usage du GPU n'est pas possible 
- 
-==== Modification du GDM3 ==== 
- 
-A la fin de ''/​etc/​gdm3/​Init/​Default'',​ avant le ''​exit 0'',​ rajouter les deux lignes suivantes :<​code>​ 
-xhost + 
-chmod uog+rw /​dev/​dri/​card* 
-</​code>​ 
- 
-Les talibans de la sécurité me diront que c'est permettre à quiconque d'​afficher ce qu'il veut sur l'​écran,​ malheureusement il n'y a pas le choix ! 
- 
-==== Connexion sans redirection X11 ==== 
- 
-De plus, lors d'une connexion distante, demander à ce que le X11 ne soit pas rediriger avec l'​option ''​-x''​ associée au SSH. 
- 
- --- //​[[emmanuel.quemener@ens-lyon.fr|Emmanuel Quemener]] 2013/03/21 10:25// 
developpement/activites/integration/stream4wheezy.txt · Dernière modification: 2015/01/07 10:04 (modification externe)