Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
developpement:activites:integration:xeonphi4jessie [2014/11/18 21:22]
equemene [Installation des paquets]
developpement:activites:integration:xeonphi4jessie [2015/01/07 10:04] (Version actuelle)
Ligne 3: Ligne 3:
 ===== Introduction ===== ===== Introduction =====
  
 +Les accélérateurs Xeon Phi disposant d'une soixantaine constituent un intermédiaire entre les processeurs standards disposant de l'​ordre de la dizaine de coeurs (AMD ou Intel) et les circuits graphiques de GPU ou GPGPU disposant de plusieurs milliers d'ALU pour les traitements.
  
 +Voici comment installer et faire fonctionner un Xeon Phi sur la distribution Debian Jessie, notamment en OpenCL.
 ===== Installation ===== ===== Installation =====
  
Ligne 99: Ligne 100:
 ==== Compilation du module noyau ==== ==== Compilation du module noyau ====
  
-Il n'est pas possible de directement créer le module MIC sans modifier le code source. En effet, ​les fichiers suivants doivent ​être modifiés ​pour compiler sur un noyau 3.Debian.<​code>​host/​linvnet.c  +Il n'est pas possible de directement créer le module MIC sans modifier le code source. ​Heureusement, ​En effet, ​le fichier ''​host/​linux.c''​ doit être modifié ​pour compiler sur un noyau 3.16 Debian.
-host/​pm_ioctl.c  +
-micscif/​micscif_debug.c +
-micscif/​micscif_rb.c  +
-vnet/​micveth_dma.c </​code>​+
  
 Voici les opérations nécessaires poir compiler le module associé au noyau : Voici les opérations nécessaires poir compiler le module associé au noyau :
Ligne 111: Ligne 108:
 rpm2cpio ../​src/​mpss-modules-3.4.1-1.src.rpm | cpio -idm rpm2cpio ../​src/​mpss-modules-3.4.1-1.src.rpm | cpio -idm
 tar jxf mpss-modules-3.4.1.tar.bz2 ​ tar jxf mpss-modules-3.4.1.tar.bz2 ​
-wget http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​software/​XeonPhi/​PatchDebianWheezyMPSS312.patch +wget http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​software/​XeonPhi/​PatchDebianJessieMPSS341.patch 
-patch -p 1 -i ./PatchDebianWheezyMPSS312.patch+patch host/​linux.c ../PatchDebianJessieMPSS341.patch
 export INSTALL_MOD_PATH=/​lib/​modules/​$(uname -r)/extra export INSTALL_MOD_PATH=/​lib/​modules/​$(uname -r)/extra
 export MIC_CARD_ARCH=k1om export MIC_CARD_ARCH=k1om
Ligne 425: Ligne 422:
  
 <​code>​ <​code>​
-python-pyopencl python-pyopencl-doc+apt-get install ​python-pyopencl python-pyopencl-doc
 </​code>​ </​code>​
  
Ligne 431: Ligne 428:
  
 <​code>​ <​code>​
- ​python /​usr/​share/​doc/​python-pyopencl-doc/​examples/​benchmark-all.py + ​python /​usr/​share/​doc/​python-pyopencl-doc/​examples/​benchmark.py ​
 </​code>​ </​code>​
  
Ligne 448: Ligne 445:
 ('​Device compute units:',​ 32) ('​Device compute units:',​ 32)
 Execution time of test: 0.00112901 s Execution time of test: 0.00112901 s
-Results OK 
-root@grizzly:​~#​ ^C 
-root@grizzly:​~#​ python /​usr/​share/​doc/​python-pyopencl-doc/​examples/​benchmark-all.py ​ 
-('​Execution time of test without OpenCL: ', 7.43899393081665,​ '​s'​) 
-=============================================================== 
-('​Platform name:',​ 'AMD Accelerated Parallel Processing'​) 
-('​Platform profile:',​ '​FULL_PROFILE'​) 
-('​Platform vendor:',​ '​Advanced Micro Devices, Inc.') 
-('​Platform version:',​ '​OpenCL 1.2 AMD-APP (938.2)'​) 
---------------------------------------------------------------- 
-('​Device name:',​ '​Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz'​) 
-('​Device type:',​ '​CPU'​) 
-('​Device memory: ', 64463, '​MB'​) 
-('​Device max clock speed:',​ 1200, '​MHz'​) 
-('​Device compute units:',​ 32) 
-Execution time of test: 0.000632971 s 
 Results OK Results OK
 </​code>​ </​code>​
Ligne 469: Ligne 450:
 Intel publie ses [[http://​software.intel.com/​en-us/​vcsource/​tools/​opencl-sdk-xe|versions de OpenCL]]. Intel publie ses [[http://​software.intel.com/​en-us/​vcsource/​tools/​opencl-sdk-xe|versions de OpenCL]].
  
-La dernière version est la 3.2.1.16712 
  
 ==== Récupération de la dernière version : ==== ==== Récupération de la dernière version : ====
Ligne 484: Ligne 464:
 ==== Conversion des RPM en DEB ==== ==== Conversion des RPM en DEB ====
  
 +La conversion peut se réaliser "​brutalement"​ avec un ''​alien'',​ mais les paquets ne sont pas très propres...
 +
 +Installation des outils pour la conversion des paquets :
 <​code>​ <​code>​
-ls *.rpm | xargs -I '​{}'​ alien --scripts '​{}'​+apt-get install builder alien 
 +</​code>​ 
 + 
 +Pour les paquets corrects : 
 +<​code>​ 
 +ls opencl-*pset*.rpm opencl-*mic*.rpm | xargs -I '​{}'​ alien --scripts '​{}'​ 
 +</​code>​ 
 + 
 +Pour les paquets à modifier : 
 +<​code>​ 
 +ls opencl-*base-4*.rpm opencl-*cpu*.rpm | xargs -I '​{}'​ alien -g --scripts '​{}'​ 
 +# On degage la possibilite de mettre la libOpenCL de Intel a la place de la standard 
 +sed -i "​s/​update\-alternatives/​exit\nupdate\-alternatives/​g"​ opencl-1.2-base-4.5.0.8/​debian/​postinst 
 +# On rentre dans l'​archive 
 +cd opencl-1.2-base-4.5.0.8 
 +# On build le paquet 
 +debuild 
 +cd .. 
 +# On remplace la priorite du update-alternatives sur l'​installation de l'ICD Intel 
 +sed -i "​s/​\-2147489047/​65536/​g"​ opencl-1.2-intel-cpu-4.5.0.8/​debian/​postinst 
 +# On rentre dans l'​archive 
 +cd opencl-1.2-intel-cpu-4.5.0.8 
 +# on build le paquet 
 +debuild 
 +cd ..
 </​code>​ </​code>​
  
 +Les paquets générés sont les suivants :
 <​code>​ <​code>​
 opencl-1.2-base_4.5.0.8-2_amd64.deb opencl-1.2-base_4.5.0.8-2_amd64.deb
Ligne 502: Ligne 510:
 </​code>​ </​code>​
  
-<​code>​ +Vérification des périphériques OpenCL détectés :
-sed -i "​s/​\-2147489047/​65536/​g"​ /​var/​lib/​dpkg/​infoopencl-1.2-base.postinst +
-sed -i "​s/​\-2147489047/​65536/​g"​ /​var/​lib/​dpkg/​infoopencl-1.2-intel-cpu.postinst +
-apt-get -f install +
-</​code>​ +
- +
- +
 <​code>​ <​code>​
 clinfo | grep "​Device Type" ​ clinfo | grep "​Device Type" ​
 </​code>​ </​code>​
- 
-Plus besoin d'​établir les liens pour l'ICD. 
  
 3 composants sont détectés : 3 composants sont détectés :
Ligne 580: Ligne 579:
 Preferred work group size multiple: 128 Preferred work group size multiple: 128
 Execution time of test: 0.0179208 s Execution time of test: 0.0179208 s
-Results OK 
-=============================================================== 
-Platform name: NVIDIA CUDA 
-Platform profile: FULL_PROFILE 
-Platform vendor: NVIDIA Corporation 
-Platform version: OpenCL 1.1 CUDA 6.5.18 
---------------------------------------------------------------- 
-Device name: Tesla K40m 
-Device type: GPU 
-Device memory: ​ 11519 MB 
-Device max clock speed: 745 MHz 
-Device compute units: 15 
-Device max work group size: 1024 
-Device max work item sizes: [1024, 1024, 64] 
-Data points: 8388608 
-Workers: 256 
-Preferred work group size multiple: 32 
-Execution time of test: 0.000614816 s 
 Results OK Results OK
 </​code>​ </​code>​
developpement/activites/integration/xeonphi4jessie.1416342155.txt.gz · Dernière modification: 2015/01/07 10:04 (modification externe)