Différences

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

Lien vers cette vue comparative

developpement:activites:integration:xeonphi4wheezy [2014/04/24 08:23]
equemene [Détection du périphérique]
developpement:activites:integration:xeonphi4wheezy [2015/01/07 10:04]
Ligne 1: Ligne 1:
-====== Installation d'un Xeon Phi sous Debian Wheezy ====== 
- 
-===== Introduction ===== 
- 
-La société Intel a mis à disposition fin 2013 des Intel Xeon Phi de manière à évaluer leurs performances en OpenCL. Les 
- 
-===== Installation ===== 
- 
-==== Détection du périphérique ==== 
- 
- 
-Il est supposé que le système hôte est une Debian Wheezy standard, sur une architecture AMD64. Le socle présenté ici était un Intel Grizzly disposant 7120. De manière à ne pas toucher au matériel embarqué et polluer le disque dur de la machine, l'​équipement démarre par PXE et monte un disque par iSCSI. 
- 
-La Debian Wheezy disposait d'un noyau 3.2 version 54 (maintenant 57). Un ''​lspsi''​ offrait pour ce matériel la sortie suivante : 
-<​code>​08:​00.0 Co-processor:​ Intel Corporation Device 225c (rev 11)</​code>​ 
- 
-Le composant MIC n'est donc pas intégré à la liste de périphériques PCI reconnus. La commande @update-pciids@ permet de mettre cette base à jour. Un nouveau lancement de ''​lspci | grep -i phi''​ offre la sortie suivante : 
-<​code>​08:​00.0 Co-processor:​ Intel Corporation Xeon Phi coprocessor SE10/7120 series (rev 11)</​code>​ 
- 
-==== Création des paquets Intel ==== 
- 
-Les composants fournis par Intel sont présents sur le site Intel MPSS pour Manycore Platform Software Stack 
- 
-Il n'​existe que les paquets pour quelques distributions RedHat ou dérivées : récupération de la dernière version RedHat 
-<​code>​wget http://​registrationcenter.intel.com/​irc_nas/​3778/​mpss-3.1.2-rhel-6.5.tar</​code>​ 
- 
-La documentation [[http://​registrationcenter.intel.com/​irc_nas/​3778/​MPSS_Users_Guide.pdf|MPSS User Guide]] 
-est indispensable pour commencer. 
- 
-==== Préparation du système ==== 
- 
-  * Installation de quoi transformer les paquets RPM en DEB<​code>​apt-get install alien</​code>​ 
-  * Installation de qui construire des paquets Debian :<​code>​apt-get install pbuilder</​code>​ 
-  * Installation de quoi compiler un module noyau : <​code>​apt-get install kernel-package</​code>​ 
- 
-==== Transformation des paquets RPM en DEB ==== 
- 
-<​code>​ 
-tar xvf mpss-3.1.2-rhel-6.5.tar 
-cd mpss-3.1.2 
-ls *.rpm | xargs -I '​{}'​ alien --scripts '​{}'​ 
-</​code>​ 
- 
-La liste des paquets crés est la suivante :<​code>​ 
-glibc2.12.2pkg-libmicaccesssdk0_3.1.2-2_amd64.deb 
-glibc2.12.2pkg-libmicaccesssdk-dev_3.1.2-2_amd64.deb 
-glibc2.12.2pkg-libmicaccesssdk-doc_3.1.2-2_amd64.deb 
-glibc2.12.2pkg-libmicmgmt0_3.1.2-2_amd64.deb 
-glibc2.12.2pkg-libmicmgmt-dev_3.1.2-2_amd64.deb 
-glibc2.12.2pkg-libmicmgmt-doc_3.1.2-2_amd64.deb 
-glibc2.12.2pkg-libodmdebug0_3.1.2-2_amd64.deb 
-glibc2.12.2pkg-libodmdebug-dev_3.1.2-2_amd64.deb 
-glibc2.12.2pkg-libsettings0_3.1.2-2_amd64.deb 
-glibc2.12.2pkg-libsettings-dev_3.1.2-2_amd64.deb 
-intel-composerxe-compat-k1om_3.1.2-2_amd64.deb 
-libscif0_3.1.2-2_amd64.deb 
-libscif-dev_3.1.2-2_amd64.deb 
-libscif-doc_3.1.2-2_amd64.deb 
-mpss-boot-files_3.1.2-2_amd64.deb 
-mpss-coi_3.1.2-2_amd64.deb 
-mpss-coi-dev_3.1.2-2_amd64.deb 
-mpss-coi-doc_3.1.2-2_amd64.deb 
-mpss-daemon_3.1.2-2_amd64.deb 
-mpss-daemon-dev_3.1.2-2_amd64.deb 
-mpss-eclipse-cdt-mpm_3.1.2-2_amd64.deb 
-mpss-flash_3.1.2-2_amd64.deb 
-mpss-license_3.1.2-2_amd64.deb 
-mpss-metadata_3.1.2-2_amd64.deb 
-mpss-metadata-dev_3.1.2-2_amd64.deb 
-mpss-miccheck_3.1.2-1_amd64.deb 
-mpss-miccheck-bin_3.1.2-1_amd64.deb 
-mpss-micmgmt_3.1.2-2_amd64.deb 
-mpss-micmgmt-doc_3.1.2-2_amd64.deb 
-mpss-micmgmt-python_3.1.2-2_amd64.deb 
-mpss-modules-2.6.32-431.el6.x86-64_3.1.2-2_amd64.deb 
-mpss-modules-dev-2.6.32-431.el6.x86-64_3.1.2-2_amd64.deb 
-mpss-modules-headers_3.1.2-2_amd64.deb 
-mpss-modules-headers-dev_3.1.2-2_amd64.deb 
-mpss-mpm_3.1.2-2_amd64.deb 
-mpss-mpm-doc_3.1.2-2_amd64.deb 
-mpss-myo_3.1.2-2_amd64.deb 
-mpss-myo-dev_3.1.2-2_amd64.deb 
-mpss-myo-doc_3.1.2-2_amd64.deb 
-mpss-rasmm-kernel_3.1.2-2_amd64.deb 
-mpss-sciftutorials_3.1.2-2_amd64.deb 
-mpss-sciftutorials-doc_3.1.2-2_amd64.deb 
-mpss-sdk-k1om_3.1.2-2_amd64.deb 
-mpss-sysmgmt-micras_3.1.2-2_amd64.deb 
-mpss-sysmgmt-micsmc-gui_3.1.2-2_amd64.deb 
-mpss-sysmgmt-python_3.1.2-2_amd64.deb 
-</​code>​ 
- 
-==== 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.2 Debian.<​code>​host/​linvnet.c ​ 
-host/​pm_ioctl.c ​ 
-micscif/​micscif_debug.c 
-micscif/​micscif_rb.c ​ 
-vnet/​micveth_dma.c </​code>​ 
- 
-<​code>​ 
-mkdir mpss-modules 
-cd mpss-modules 
-rpm2cpio ../​src/​mpss-modules-3.1.2-1.el6.src.rpm | cpio -idmv 
-tar jxf mpss-modules-3.1.2.tar.bz2 
-wget http://​www.cbp.ens-lyon.fr/​emmanuel.quemener/​software/​XeonPhi/​PatchDebianWheezyMPSS312.patch 
-patch -p 1 -i ./​PatchDebianWheezyMPSS312.patch 
-export INSTALL_MOD_PATH=/​lib/​modules/​$(uname -r)/extra 
-export MIC_CARD_ARCH=k1om 
-make  
-make install 
-depmod -a 
-</​code>​ 
- 
-==== Chargement du module MIC ==== 
- 
-Chargement du module par la commande @modprobe mic@ 
- 
-Dans le ''​dmesg''​ on obtient : 
-<​code>​ 
-[ 5486.230236] vnet: mode: dma, buffers: 62 
-[ 5486.230446] mic 0000:​08:​00.0:​ setting latency timer to 64 
-[ 5486.230662] mic 0000:​08:​00.0:​ irq 145 for MSI/MSI-X 
-[ 5486.230701] mic0: Transition from state ready to resetting 
-[ 5496.148217] sched: RT throttling activated 
-[ 5496.150412] mic_probe 8:0:0 as board #0 
-[ 5496.150545] mic: number of devices detected 1  
-[ 5497.148253] mic0: Resetting (Post Code 12) 
-[ 5497.148272] mic0: Transition from state resetting to ready 
-[ 5497.148320] My Phys addrs: 0x87cba60000 and scif_addr 0x8818b192c0 
-</​code>​ 
- 
-En tapant ''​ip link show''​ on obtient : 
-<​code>​ 
-1: lo: <​LOOPBACK,​UP,​LOWER_UP>​ mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT ​ 
-    link/​loopback 00:​00:​00:​00:​00:​00 brd 00:​00:​00:​00:​00:​00 
-2: eth0: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000 
-    link/ether 00:​1e:​67:​7f:​e4:​eb brd ff:​ff:​ff:​ff:​ff:​ff 
-3: eth1: <​BROADCAST,​MULTICAST>​ mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000 
-    link/ether 00:​1e:​67:​7f:​e4:​ec brd ff:​ff:​ff:​ff:​ff:​ff 
-4: eth2: <​BROADCAST,​MULTICAST>​ mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000 
-    link/ether 00:​1e:​67:​7f:​e4:​ed brd ff:​ff:​ff:​ff:​ff:​ff 
-5: eth3: <​BROADCAST,​MULTICAST>​ mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000 
-    link/ether 00:​1e:​67:​7f:​e4:​ee brd ff:​ff:​ff:​ff:​ff:​ff 
-7: mic0: <​BROADCAST>​ mtu 64512 qdisc noop state DOWN mode DEFAULT qlen 1000 
-    link/ether 4c:​79:​ba:​32:​0f:​71 brd ff:​ff:​ff:​ff:​ff:​ff 
-</​code>​ 
- 
-Copie du paramétrage pour le module MIC chargé au démarrage 
-<​code>​ 
-cp /​root/​mpss-3.1.2/​mpss-modules/​mic.conf /​etc/​modprobe.d 
-update-initramfs -k all -u 
-</​code>​ 
- 
-==== Installation des paquets MPSS ==== 
- 
-Les paquets MPSS d'​Intel ont été transformés avec ''​alien''​ dans ''/​root/​mpss-3.1.2''​ 
- 
-Les paquets mpss-modules sont supprimés. Les autres installés tel que. 
-<​code>​ 
-cd /​root/​mpss-3.1.2 
-rm *mpss-modules*deb 
-ls *-lib*deb | xargs -I '​{}'​ dpkg -i '​{}'​ 
-ls *deb | grep -v '​\-lib'​ | xargs -I '​{}'​ dpkg -i '​{}'​ 
-</​code>​ 
- 
-Par défaut les installations se font dans :<​code>/​opt/​mpss/​3.1.2 
-/​opt/​intel/​mic/​ 
-/etc/mpss 
-/​usr/​lib64</​cdoe>​ 
- 
-Ceci n'est plus le cas dans la Debian Wheezy. 
- 
-Installation d'un ''​LD_LIBRARY_PATH''​ sur ''/​usr/​lib64''​ 
-<​code>​echo /usr/lib64 >> /​etc/​ld.so.conf.d/​mic.conf</​code>​ 
- 
-La commande ''​mpssinfo''​ 
-<​code>​ 
-    MPSS : mpssinfo 
- 
-    MpssInfo Utility Log 
- 
-    Created Thu Feb 13 15:52:59 2014 
- 
-        System Info 
-            HOST OS            : Linux 
-            OS Version ​       : 3.2.0-4-amd64 
-            Driver Version ​       : 3.1.2-1 
-            MPSS Version ​       : NotAvailable 
-            Host Physical Memory ​   : 66010 MB 
- 
-    Device No: 0, Device Name: mic0 
- 
-        Board 
-            Vendor ID          : 0x8086 
-            Device ID          : 0x225c 
-            Subsystem ID          : 0x2500 
-            Coprocessor Stepping ID     : 3 
-            PCIe Width          : x16 
-            PCIe Speed          : 5 GT/s 
-            PCIe Max payload size     : 256 bytes 
-            PCIe Max read req size     : 4096 bytes 
-            Coprocessor Model     : 0x01 
-            Coprocessor Model Ext     : 0x00 
-            Coprocessor Type     : 0x00 
-            Coprocessor Family ​    : 0x0b 
-            Coprocessor Family Ext     : 0x00 
-            Coprocessor Stepping ​     : B1 
-            Board SKU          : B1PRQ-7110 P/X 
- 
-    MICCTRL : micctrl --status 
- 
-    mic0: ready 
-</​code>​ 
- 
-Pour démarrer le système MPSSD, mais il s'​attend à trouver un /​var/​lock/​subsys pour créer un /​var/​lock/​subsys/​mpssd 
-<​code>​ 
-mkdir /​var/​lock/​subsys 
-sed -i "​s/​^exit/​mkdir\ \/​var\/​lock\/​subsys\nexit/​g"​ /​etc/​rc.local 
-</​code>​ 
- 
-Lancement avec la commande suivante : ''​micctrl --initdefaults''​ dont la sortie est la suivante ​ 
-<​code>​ 
-[Warning] mic0: Generating compat network config file.  This will be removed in the 3.2 release 
-[Warning] mic0: User '​root'​ does not have either rsa or dsa keys created 
- 
- ​micctrl --config 
- 
-mic0: 
-============================================================= 
-    Linux Kernel: ​  /​usr/​share/​mpss/​boot/​bzImage-knightscorner 
-    BootOnStart: ​   Enabled 
-    Shutdowntimeout:​ 300 seconds 
- 
-    ExtraCommandLine:​ highres=off 
-    PowerManagment cpufreq_on;​corec6_on;​pc3_on;​pc6_on 
- 
-    UserAuthentication:​ Local 
- 
-    Root Device: ​  ​Dynamic Ram Filesystem /​var/​mpss/​mic0.image.gz from: 
-    Base:      /​usr/​share/​mpss/​boot/​initramfs-knightscorner.cpio.gz 
-    CommonDir: /​var/​mpss/​common.filelist 
-    MicDir: ​   /​var/​mpss/​mic0.filelist 
- 
-    Network: ​      ​Static Pair 
-        Hostname: ​ grizzly-mic0 
-        MIC IP:    172.31.1.1 
-        Host IP:   ​172.31.1.254 
-        Net Bits:  24 
-        NetMask: ​  ​255.255.255.0 
-        MtuSize: ​  64512 
-        MIC MAC:   ​4c:​79:​ba:​32:​0f:​70 
-        Host MAC:  4c:​79:​ba:​32:​0f:​71 
- 
-    Console: ​       hvc0 
-    VerboseLogging:​ Disabled 
-</​code>​ 
- 
-Lancement du démon avec ''​mpssd''​ 
- 
-Connaissance de d'​état de la carte avec ''​micctrl --status''​ 
-<​code>​ 
-mic0: online (mode: linux image: /​usr/​share/​mpss/​boot/​bzImage-knightscorner) 
-</​code>​ 
- 
-Définition de l'​adresse statique de l'​interface mic0 dans ''/​etc/​network/​interfaces''​ 
-<​code>​ 
-auto mic0 
-iface mic0 inet static 
-    address 172.31.1.254 
-    netmask 255.255.255.0 
-    broadcast 172.31.1.255 
-    network 172.31.1.0 
-    post-up /​sbin/​iptables -t nat -A POSTROUTING -s 172.31.1.0/​24 -o eth0 -j MASQUERADE 
-</​code>​ 
- 
-<​code>​ 
-echo mic >> /​etc/​modules 
-update-initramfs -k all -u 
-</​code>​ 
- 
-Chargement de l'​interface réseau avec ''​ifup mic0''​ 
- 
-Connexion sur le xeon-phi avec ''​ssh 172.31.1.1''​ 
- 
-Vérification du nombre de processeurs avec ''​cat /​proc/​cpuinfo | grep ^processor | wc -l''​ lequel donne ''​244''​. 
- 
- 
-===== Historique ===== 
- 
- 
-==== Des débuts difficiles pour une prise en main impossible ==== 
- 
-La société Intel a mis à disposition fin octobre 2013 un Xeon Phi 7120P à disposition de Emmanuel Quémener, du Centre Blaise Pascal. 
- 
-La carte Intel Xeon Phi 7120P se présente sous forme d'une carte PCI Express d'une taille équivalente à celle d'une carte Nvidia GTX Titan ou Nvidia Tesla. Elle nécessite 2 connecteurs 6 broches pour son alimentation,​ deux emplacements PCI, un port PCI-Express 16x et une longueur suffisante. 
- 
-La première étape a été de trouver un socle pour l'​accueillir de manière transitoire et réaliser les premiers tests. ​ 
- 
  
developpement/activites/integration/xeonphi4wheezy.txt · Dernière modification: 2015/01/07 10:04 (modification externe)