Installation de Micmac avec support CUDA sous Archlinux

L'installation de Micmac sous Archlinux n'est pas des plus simples. Alors lorsqu'on veut ajouter le support CUDA, là ça se corse !

Voici donc un petit billet qui résume l'installation de Micmac sou sArchlinux avec le support CUDA

Auparavant il convient de tester l'installation de CUDA.
En ce moment nous sommes avec gcc6 et il y a beaucoup de problèmes sur les compilations notamment pour le CUDA https://wiki.archlinux.org/index.php/GPGPU#CUDA

Donc à la date où j'écris, pour avoir un cuda opérationnel, il faut installer une version de gcc antérieure. Il est possible de le faire avec le dépôt AUR (Archlinux User Repository). Il existe d'ailleurs un package Micmac mais qui n'est pas fonctionnel, il repose sur une ancienne version et ne supporte pas le CUDA

Exemple chez moi j'ai installé gcc5 :
yaourt -S gcc5
puis il faut faire un lien symbolique pour que ce soit pris en compte par CUDA (bien entendu, il faudra installer cuda avant avec pacman -S cuda):

sudo  ln -s /usr/bin/gcc-5 /opt/cuda/bin/gcc
sudo  ln -s /usr/bin/g++-5 /opt/cuda/bin/g++

Ensuite on va pouvoir tester CUDA mais avant il faut définir quelques variables environnement :

export PATH=$PATH:/opt/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/lib:/opt/cuda/lib64
echo 'export PATH=$PATH:/opt/cuda/bin' >> ~/.bash_profile
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/lib:/opt/cuda/lib64' >> ~/.bash_profile

Voilà, nous pouvons à présent tester CUDA, on se déplace dans le répertoitre cuda et on change les droits des samples pour pouvoir les compiler sans utiliser les droits root :

cd /opt/cuda/
sudo chown $USER -R samples/

Compilation des modules cuda (le j8 est le nombre de cores que j'ai sur ma machine) :
cd /opt/cuda/samples
make -j8
Test du module bandwidth :
cd /opt/cuda/samples/bin/x86_64/linux/release
./bandwidthTest

Voilà un résultat valide : le PASS à la fin

$ ./bandwidthTest
[CUDA Bandwidth Test] - Starting...
Running on...

 Device 0: GeForce GTX 780 Ti
 Quick Mode

 Host to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)    Bandwidth(MB/s)
   33554432            12246.7

 Device to Host Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)    Bandwidth(MB/s)
   33554432            12354.1

 Device to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)    Bandwidth(MB/s)
   33554432            259513.2

Result = PASS

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.



Si tout est ok, on peut poursuivre pour l'installation de Micmac
Récupération de Micmac :
mkdir -p /opt/micmac
sudo chown $USER /opt/micmac
cd /opt/micmac
 Configuration :
cmake -DCMAKE_C_COMPILER=/usr/bin/gcc-5 \
      -DCMAKE_CXX_COMPILER=/usr/bin/g++-5 \
      -DWITH_QT4=1 \
      -DCUDA_ENABLED=ON \
      -DWITH_OPEN_MP=OFF \
      -DCUDA_SDK_ROOT_DIR=/opt/cuda/samples/common/ \
      -DCUDA_CPP11THREAD_NOBOOSTTHREAD=ON ../
puis

make -j8
make install

Les exécutables sont dans  /opt/micmac/bin/ et les libs rattachées dans /opt/micmac/lib/
Pour les prendre en compte dans les variables environnement sans avoir à saisir le chemin complet :

export PATH=$PATH:/opt/micmac/bin
echo 'export PATH=$PATH:/opt/micmac/bin' >> ~/.bash_profile

L'installation de Micmac est à présent terminée, je vous laisse le tuto du foss4g-fr auquel j'étais présent pour commencer sous Micmac
http://jmfriedt.free.fr/foss4g_2016/

Commentaires

Posts les plus consultés de ce blog

Disposer du support de l'ECW sous Ubuntu

Install GDAL ECW Support in Archlinux / Manjaro

L'ECW sous MacOSX : comment le rendre fonctionnel