* [[developpement:activites:integration:|Intégration]]
====== Intégration de MAGMA sur Debian Wheezy ======
La librairie [[http://icl.cs.utk.edu/magma/software/index.html|MAGMA]] permet l'exploitation de cartes accélératrices (GPU à base de Nvidia Cuda, Xeon Phi et AMD/ATI) pour réaliser les opérations essentielles proposées dans les librairies Lapack.
Aucune version n'est pour l'instant disponible dans la Debian Wheezy, aucune non plus dans la Sid et dans les archives expérimentales. Aucun ITP non plus n'a été déposé pour cette librairie.
===== Compilation de l'application =====
==== Installation des prérequis ====
apt-get -y install libatlas3-base libatlas-base-dev libatlas-dev
apt-get -y install libcublas*
==== Définition des variables d'environnement ====
# Declaration des variables
export ATLASDIR=/usr/lib/atlas-base
export LAPACKDIR=/usr/lib/atlas-base/atlas
Pour les librairies CUDA, c'est un peu plus compliqué : les paquets Debian Experimental
ln -s /usr/share/doc/nvidia-cuda-doc/examples /usr/lib/nvidia-cuda-toolkit/src
export CUDADIR=/usr/lib/nvidia-cuda-toolkit
==== Prérequis pour une compilation SIDUS ====
Dans un environnement [[developpement:productions:sidus|SIDUS]] (en ''chroot'' sur un dossier particulier), il est nécessaire de monter le ''/proc'' pour compiler la librairie
mount -t proc none /proc
==== Récupération des sources ====
cd /root
wget http://icl.cs.utk.edu/projectsfiles/magma/downloads/magma-1.4.1.tar.gz
==== Expansion de l'archive ====
cd /opt
tar xzf /root/magma-1.4.1.tar.gz
cd /opt/magma-1.4.1
==== Modification du Makefile ====
cp make.inc.atlas make.inc
sed -i "s/\ \-lifcore//g" make.inc
sed -i "s/\-O3/\-fPIC \-O3/g" make.inc
sed -i "s/\-fopenmp/\-fPIC \-fopenmp/g" make.inc
sed -i "s/NVOPTS\ \ \ \ \=\ \-fPIC/NVOPTS\ \ \ \ \=\ /g" make.inc
sed -i "s/\-fno-strict-aliasing/-fPIC/g" make.inc
sed -i "s/\-L\$(ATLASDIR)\/lib/\-L\$(ATLASDIR)/g" make.inc
==== Compilation ====
make
make shared
==== Installation ====
cd /opt
[ -h /opt/magma ] && rm /opt/magma
ln -s magma-1.4.1 magma
echo /opt/magma/lib >> /etc/ld.so.conf.d/magma.conf
ldconfig
==== Démontage du /proc pour le SIDUS ====
umount /proc
==== Exécution des tests ====
Compilation des tests
cd /opt/magma/testing
make
Exécution des tests
cd /opt/magma/testing
find . -name "testing*" -executable -print | sort | while read PRG; do $PRG; done
--- //[[emmanuel.quemener@ens-lyon.fr|Emmanuel Quemener]] 2014/01/16 10:26//