Ceci est une ancienne révision du document !


Utilisation des librairies Stream SDK ATI sur une Debian Squeeze

Mise à jour le 14 août 2012 : passage en SDK 2.7 et pilote AMD 12.6

Installation du SDK 2.7

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 12.6 pour 32 et 64 bits
    wget http://www2.ati.com/drivers/legacy/12-6/amd-driver-installer-12.6-legacy-x86.x86_64.zip
    unzip amd-driver-installer-12.6-legacy-x86.x86_64.zip
  • la boîte à outils : la version 2.7 pour 32 bits et 64 bits
    # version 32 bits
    wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.7-lnx32.tgz
    # version 64 bits
    wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.7-lnx64.tgz
  • La version future de OpenCL 1.2 OpenCL 1.2
    http://developer.amd.com/Downloads/OpenCL1.2-Static-Cplus-preview-drivers-Linux.tgz

Installation du pilote

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 radeon
echo blacklist radeon >> /etc/modprobe.d/blacklist
# arret de GDM3 s'il est lancé
/etc/init.d/gdm3 stop

Le redémarrage semble nécessaire pour que le pilote radeon ne soit pas chargé.

Puis, même lancement de la désinstallation du pilote, version 32 ou 64 bits :

sh ./amd-driver-installer-12.6-legacy-x86.x86_64.run --uninstall

.

Ensuite, même lancement de l'installation du pilote, version 32 ou 64 bits :

sh ./amd-driver-installer-12.6-legacy-x86.x86_64.run --force

.

Enfin, pour avoir une configuration correcte :

aticonfig --initial

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) :

# Renommage d'un /opt/AMDAPP précédent
[ -d /opt/AMDAPP ] && mv /opt/AMDAPP /opt/AMDAPP.old
mkdir /tmp/AMDSDK-2.7
cd /tmp/AMDSDK-2.7
# En 32 bits, décompresser l'archive
tar xzf /root/AMD-APP-SDK-v2.7-lnx32.tgz
# En 64 bits, décompresser l'archive
tar xzf /root/AMD-APP-SDK-v2.7-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.7
ln -s AMDAPP-2.7 AMDAPP

Installation de librairies scientifiques

Téléchargement des sources et des exemples

cd /root
wget http://developer.amd.com/Downloads/clAmdBlas1.7.257.tar.gz
wget http://developer.amd.com/Downloads/clAmdFft-1.4.182-Linux.tar.gz
wget http://developer.amd.com/Downloads/LUDOpenCLBLAS-Linux.zip
wget http://developer.amd.com/Downloads/ObjectDetection-Linux.zip

Installation des librairies

mkdir /tmp/CLAMD
cd /tmp/CLAMD
tar xzf /root/clAmdBlas1.7.257.tar.gz
sh install-clAmdBlas1.7.257.sh
# L'installation se realise par defaut dans /opt/clAmdBlas-1.7.257
tar xzf /root/clAmdFft-1.4.182-Linux.tar.gz
sh install-clAmdFft-1.4.182.sh
# L'installation se realise par defaut dans /opt/clAmdFft-1.4.182
cd /opt
ln -s clAmdBlas-1.7.257 clAmdBlas
ln -s clAmdFft-1.4.182 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

Compilation des exemples du SDK

Ensuite, la compilation des exemples : ceux de CAL ont disparus, il reste ceux d'OpenCL :

apt-get -y install libxi-dev libxmu-dev libglut3-dev
cd /opt/AMDAPP/samples
make

Exécution des exemples du SDK

Enfin, l'exécution des exemples OpenCL :

# 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 {} \;

Compilation des exemples des librairies ClBlas et ClFft

apt-get install cmake
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

Exécution des exemples des librairies ClBlas et ClFft



Installation de PyOpenCL

Téléchargement des sources sur : http://mathema.tician.de/software/pyopencl

Préparation de la compilation

apt-get -y install libboost-thread-dev python-setuptools
cd /opt
git clone http://git.tiker.net/trees/pyopencl.git
cd pyopencl
git submodule init
git submodule update

Compilation et installation de PyOpenCL

Il est supposé que le dossier d'installation du SDK ATI se trouve dans /opt/AMDAPP :

./configure.py --boost-inc-dir=/usr/include --boost-lib-dir=/usr/lib --boost-python-libname=boost_python-mt-py26 --cl-inc-dir=/opt/AMDAPP/include/ --cl-lib-dir=/usr/lib/OpenCL/vendors/ --boost-compiler=/usr/bin/gcc-4.4 --no-cl-enable-device-fission --no-use-shipped-boost --cl-enable-gl
make
make install
python setup.py build
python setup.py install

Exécution des exemples

cd examples
python benchmark-all.py 
developpement/activites/integration/stream4squeeze.1363965826.txt.gz · Dernière modification: 2015/01/07 10:04 (modification externe)