Intégration de MAGMA sur Debian Wheezy

La librairie 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 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 2014/01/16 10:26

developpement/activites/integration/magma4wheezy.txt · Dernière modification: 2015/01/07 10:04 (modification externe)