Ci-dessous, les différences entre deux révisions de la page.
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 19:59] equemene [Compilation du module noyau] |
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.2 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 122: | Ligne 119: | ||
==== Chargement du module MIC ==== | ==== Chargement du module MIC ==== | ||
+ | |||
+ | Il y a de fortes chances pour que le module ''mic_host'' aie été chargé. Il faut donc le décharger et définir une exclusion<code>rmmod mic_host | ||
+ | echo blacklist mic_host > /etc/modprobe.d/mic.conf | ||
+ | </code> | ||
Chargement du module par la commande ''modprobe mic'' | Chargement du module par la commande ''modprobe mic'' | ||
Ligne 155: | Ligne 156: | ||
Copie du paramétrage pour le module MIC chargé au démarrage | Copie du paramétrage pour le module MIC chargé au démarrage | ||
<code> | <code> | ||
- | cp /root/XeonPhi/mpss-3.4.1/mpss-modules/mic.conf /etc/modprobe.d | + | cat /root/XeonPhi/mpss-3.4.1/mpss-modules/mic.conf >> /etc/modprobe.d/mic.conf |
+ | echo mic >> /etc/modules | ||
+ | </code> | ||
+ | |||
+ | Création du ''initrd'' | ||
+ | <code> | ||
update-initramfs -k all -u | update-initramfs -k all -u | ||
</code> | </code> | ||
+ | Sachant que j'utilise plutôt dracut pour la création de mes ''initrd''<code>dpkg-reconfigure dracut</code> | ||
==== Installation des paquets MPSS ==== | ==== Installation des paquets MPSS ==== | ||
- | Les paquets MPSS d'Intel ont été transformés avec ''alien'' dans ''/root/mpss-3.1.2'' | + | Les paquets MPSS d'Intel ont été transformés avec ''alien'' dans ''/root/XeonPhi/mpss-3.4.1'' |
Les paquets mpss-modules sont supprimés. Les autres installés tel que. | Les paquets mpss-modules sont supprimés. Les autres installés tel que. | ||
<code> | <code> | ||
- | cd /root/mpss-3.1.2 | + | cd /root/XeonPhi/mpss-3.4.1 |
rm *mpss-modules*deb | rm *mpss-modules*deb | ||
ls *-lib*deb | xargs -I '{}' dpkg -i '{}' | ls *-lib*deb | xargs -I '{}' dpkg -i '{}' | ||
Ligne 171: | Ligne 178: | ||
</code> | </code> | ||
- | Par défaut les installations se font dans :<code>/opt/mpss/3.1.2 | + | Par défaut les installations se font dans :<code>/opt/mpss/3.4.1 |
- | /opt/intel/mic/ | + | /opt/intel/mic |
/etc/mpss | /etc/mpss | ||
- | /usr/lib64</code> | + | /usr/lib64 |
+ | /usr/linux-k1om-4.7 | ||
+ | </code> | ||
- | Ceci n'est plus le cas dans la Debian Wheezy. Il est donc nécessaire de rajouter (salement) un chemin allant chercher les librairies dans ''/usr/lib64''. | + | Ceci n'est plus le cas dans la Debian Jessie. Il est donc nécessaire de rajouter (salement) un chemin allant chercher les librairies dans ''/usr/lib64''. |
Installation d'un ''LD_LIBRARY_PATH'' sur ''/usr/lib64'' : | Installation d'un ''LD_LIBRARY_PATH'' sur ''/usr/lib64'' : | ||
<code>echo /usr/lib64 >> /etc/ld.so.conf.d/mic.conf</code> | <code>echo /usr/lib64 >> /etc/ld.so.conf.d/mic.conf</code> | ||
+ | |||
+ | <code>ldconfig</code> | ||
La commande ''mpssinfo'' | La commande ''mpssinfo'' | ||
<code> | <code> | ||
- | MPSS : mpssinfo | + | MpssInfo Utility Log |
+ | Created Tue Nov 18 20:10:00 2014 | ||
- | MpssInfo Utility Log | ||
- | Created Thu Feb 13 15:52:59 2014 | + | System Info |
+ | HOST OS : Linux | ||
+ | OS Version : 3.16.0-4-amd64 | ||
+ | Driver Version : 3.4.1-1 | ||
+ | MPSS Version : NotAvailable | ||
+ | Host Physical Memory : 529403 MB | ||
- | System Info | + | Device No: 0, Device Name: mic0 |
- | 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 | |
- | Board | + | Device ID : 0x225c |
- | Vendor ID : 0x8086 | + | Subsystem ID : 0x7d99 |
- | Device ID : 0x225c | + | Coprocessor Stepping ID : 2 |
- | Subsystem ID : 0x2500 | + | PCIe Width : x16 |
- | Coprocessor Stepping ID : 3 | + | PCIe Speed : 5 GT/s |
- | PCIe Width : x16 | + | PCIe Max payload size : 256 bytes |
- | PCIe Speed : 5 GT/s | + | PCIe Max read req size : 512 bytes |
- | PCIe Max payload size : 256 bytes | + | Coprocessor Model : 0x01 |
- | PCIe Max read req size : 4096 bytes | + | Coprocessor Model Ext : 0x00 |
- | Coprocessor Model : 0x01 | + | Coprocessor Type : 0x00 |
- | Coprocessor Model Ext : 0x00 | + | Coprocessor Family : 0x0b |
- | Coprocessor Type : 0x00 | + | Coprocessor Family Ext : 0x00 |
- | Coprocessor Family : 0x0b | + | Coprocessor Stepping : C0 |
- | Coprocessor Family Ext : 0x00 | + | Board SKU : C0QS-7120 P/A/X/D |
- | Coprocessor Stepping : B1 | + | |
- | Board SKU : B1PRQ-7110 P/X | + | |
- | + | ||
- | MICCTRL : micctrl --status | + | |
- | + | ||
- | mic0: ready | + | |
</code> | </code> | ||
Ligne 228: | Ligne 233: | ||
Lancement avec la commande suivante : ''micctrl \-\-initdefaults'' dont la sortie est la suivante | Lancement avec la commande suivante : ''micctrl \-\-initdefaults'' dont la sortie est la suivante | ||
<code> | <code> | ||
- | [Warning] mic0: Generating compat network config file. This will be removed in the 3.2 release | + | [Warning] mic0: Generating compatibility network config file /opt/intel/mic/filesystem/mic0/etc/sysconfig/network/ifcfg-mic0 for IDB. |
- | [Warning] mic0: User 'root' does not have either rsa or dsa keys created | + | [Warning] This may be problematic at best and will be removed in a future release, Check with the IDB release. |
+ | </code> | ||
- | micctrl --config | + | <code>micctrl --config</code> |
+ | <code> | ||
mic0: | mic0: | ||
============================================================= | ============================================================= | ||
+ | Config Version: 1.1 | ||
+ | |||
Linux Kernel: /usr/share/mpss/boot/bzImage-knightscorner | Linux Kernel: /usr/share/mpss/boot/bzImage-knightscorner | ||
+ | Map File: /usr/share/mpss/boot/System.map-knightscorner | ||
BootOnStart: Enabled | BootOnStart: Enabled | ||
Shutdowntimeout: 300 seconds | Shutdowntimeout: 300 seconds | ||
ExtraCommandLine: highres=off | ExtraCommandLine: highres=off | ||
- | PowerManagment cpufreq_on;corec6_on;pc3_on;pc6_on | + | PowerManagment: cpufreq_on;corec6_on;pc3_on;pc6_on |
- | + | ||
- | UserAuthentication: Local | + | |
Root Device: Dynamic Ram Filesystem /var/mpss/mic0.image.gz from: | Root Device: Dynamic Ram Filesystem /var/mpss/mic0.image.gz from: | ||
- | Base: /usr/share/mpss/boot/initramfs-knightscorner.cpio.gz | + | Base: CPIO /usr/share/mpss/boot/initramfs-knightscorner.cpio.gz |
- | CommonDir: /var/mpss/common.filelist | + | CommonDir: Directory /var/mpss/common |
- | MicDir: /var/mpss/mic0.filelist | + | Micdir: Directory /var/mpss/mic0 |
Network: Static Pair | Network: Static Pair | ||
- | Hostname: grizzly-mic0 | + | Hostname: r720-mic0.cluster.zone. |
MIC IP: 172.31.1.1 | MIC IP: 172.31.1.1 | ||
Host IP: 172.31.1.254 | Host IP: 172.31.1.254 | ||
Ligne 256: | Ligne 264: | ||
NetMask: 255.255.255.0 | NetMask: 255.255.255.0 | ||
MtuSize: 64512 | MtuSize: 64512 | ||
- | MIC MAC: 4c:79:ba:32:0f:70 | + | MIC MAC: 4c:79:ba:1a:1e:78 |
- | Host MAC: 4c:79:ba:32:0f:71 | + | Host MAC: 4c:79:ba:1a:1e:79 |
+ | |||
+ | LDAP: Disabled | ||
+ | NIS: Disabled | ||
+ | |||
+ | Cgroup: | ||
+ | Memory: Disabled | ||
Console: hvc0 | Console: hvc0 | ||
VerboseLogging: Disabled | VerboseLogging: Disabled | ||
+ | CrashDump: /var/crash/mic 16GB | ||
</code> | </code> | ||
Ligne 266: | Ligne 281: | ||
Connaissance de d'état de la carte avec ''micctrl --status'' | Connaissance de d'état de la carte avec ''micctrl --status'' | ||
+ | |||
+ | Au début, j'ai : | ||
+ | <code> | ||
+ | mic0: booting (mode: linux image: /usr/share/mpss/boot/bzImage-knightscorner) | ||
+ | </code> | ||
+ | |||
+ | Après quelques secondes : | ||
<code> | <code> | ||
mic0: online (mode: linux image: /usr/share/mpss/boot/bzImage-knightscorner) | mic0: online (mode: linux image: /usr/share/mpss/boot/bzImage-knightscorner) | ||
</code> | </code> | ||
- | Définition de l'adresse statique de l'interface mic0 dans ''/etc/network/interfaces'' | + | Définition de l'adresse statique de l'interface mic0 dans ''/etc/network/interfaces''. De la configuration suivante :<code> |
+ | # mic0 BEGIN | ||
+ | auto mic0 | ||
+ | iface mic0 inet static | ||
+ | address 172.31.1.254 | ||
+ | netmask 255.255.255.0 | ||
+ | # mic0 END | ||
+ | </code> | ||
+ | |||
+ | Je préfère passer à une configuration plus étoffée : | ||
<code> | <code> | ||
auto mic0 | auto mic0 | ||
Ligne 297: | Ligne 328: | ||
<code> | <code> | ||
- | apt-get install amd-clinfo amd-libopencl1 amd-opencl-icd | + | apt-get install amd-clinfo amd-opencl-icd ocl-icd-libopencl1 ocl-icd-dev |
</code> | </code> | ||
Ligne 391: | Ligne 422: | ||
<code> | <code> | ||
- | python-pyopencl python-pyopencl-doc | + | apt-get install python-pyopencl python-pyopencl-doc |
</code> | </code> | ||
Ligne 397: | 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 414: | 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 435: | 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 : ==== | ||
- | <code> | + | Il n'est pas possible de disposer directement de la dernière version OpenCL par un simple |
- | cd /root | + | |
- | wget http://registrationcenter.intel.com/irc_nas/3809/intel_sdk_for_ocl_applications_xe_2013_r3_sdk_3.2.1.16712_x64.tgz | + | |
- | tar xzf intel_sdk_for_ocl_applications_xe_2013_r3_sdk_3.2.1.16712_x64.tgz | + | <code> |
- | cd /root/intel_sdk_for_ocl_applications_xe_2013_r3_sdk_3.2.1.16712_x64 | + | cd /root/XeonPhi |
+ | wget http://registrationcenter.intel.com/irc_nas/4181/opencl_runtime_14.2_x64_4.5.0.8.tgz | ||
+ | tar xzf opencl_runtime_14.2_x64_4.5.0.8.tgz | ||
+ | cd pset_opencl_runtime_14.1_x64_4.5.0.8/rpm | ||
</code> | </code> | ||
==== 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> | </code> | ||
+ | Pour les paquets corrects : | ||
<code> | <code> | ||
- | opencl-1.2-base_3.2.1.16712-2_amd64.deb generated | + | ls opencl-*pset*.rpm opencl-*mic*.rpm | xargs -I '{}' alien --scripts '{}' |
- | opencl-1.2-devel_3.2.1.16712-2_amd64.deb generated | + | |
- | opencl-1.2-intel-cpu_3.2.1.16712-2_amd64.deb generated | + | |
- | opencl-1.2-intel-devel_3.2.1.16712-2_amd64.deb generated | + | |
</code> | </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> | ||
+ | |||
+ | Les paquets générés sont les suivants : | ||
+ | <code> | ||
+ | opencl-1.2-base_4.5.0.8-2_amd64.deb | ||
+ | opencl-1.2-base-pset_4.5.0.8-2_all.deb | ||
+ | opencl-1.2-intel-cpu_4.5.0.8-2_amd64.deb | ||
+ | opencl-1.2-intel-mic_4.5.0.8-2_amd64.deb | ||
+ | </code> | ||
+ | |||
==== Installation des paquets ==== | ==== Installation des paquets ==== | ||
Ligne 466: | Ligne 510: | ||
</code> | </code> | ||
- | Un lien est réalisé entre ''/opt/intel/opencl-1.2-3.2.1.16712'' et '/etc/alternatives/opencl-intel-runtime' | + | Vérification des périphériques OpenCL détectés : |
<code> | <code> | ||
- | echo /etc/alternatives/opencl-intel-runtime/lib64 >> /etc/ld.so.conf.d/mic.conf | ||
- | echo /etc/alternatives/opencl-intel-runtime/libmic >> /etc/ld.so.conf.d/mic.conf | ||
- | ldconfig | ||
- | |||
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 486: | Ligne 523: | ||
Lancement du test Python OpenCL 'python /usr/share/doc/python-pyopencl-doc/examples/benchmark-all.py' :<code> | Lancement du test Python OpenCL 'python /usr/share/doc/python-pyopencl-doc/examples/benchmark-all.py' :<code> | ||
- | ('Execution time of test without OpenCL: ', 7.768199920654297, 's') | + | Execution time of test without OpenCL: 0.0567140579224 s |
=============================================================== | =============================================================== | ||
- | ('Platform name:', 'AMD Accelerated Parallel Processing') | + | Platform name: AMD Accelerated Parallel Processing |
- | ('Platform profile:', 'FULL_PROFILE') | + | Platform profile: FULL_PROFILE |
- | ('Platform vendor:', 'Advanced Micro Devices, Inc.') | + | Platform vendor: Advanced Micro Devices, Inc. |
- | ('Platform version:', 'OpenCL 1.2 AMD-APP (938.2)') | + | Platform version: OpenCL 1.2 AMD-APP (1526.3) |
--------------------------------------------------------------- | --------------------------------------------------------------- | ||
- | ('Device name:', 'Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz') | + | Device name: Intel(R) Xeon(R) CPU E5-2637 v2 @ 3.50GHz |
- | ('Device type:', 'CPU') | + | Device type: CPU |
- | ('Device memory: ', 64463, 'MB') | + | Device memory: 516995 MB |
- | ('Device max clock speed:', 1200, 'MHz') | + | Device max clock speed: 1333 MHz |
- | ('Device compute units:', 32) | + | Device compute units: 16 |
- | Execution time of test: 0.000990689 s | + | Device max work group size: 1024 |
+ | Device max work item sizes: [1024, 1024, 1024] | ||
+ | Data points: 8388608 | ||
+ | Workers: 256 | ||
+ | Preferred work group size multiple: 1 | ||
+ | Execution time of test: 0.00852657 s | ||
Results OK | Results OK | ||
=============================================================== | =============================================================== | ||
- | ('Platform name:', 'Intel(R) OpenCL') | + | Platform name: Intel(R) OpenCL |
- | ('Platform profile:', 'FULL_PROFILE') | + | Platform profile: FULL_PROFILE |
- | ('Platform vendor:', 'Intel(R) Corporation') | + | Platform vendor: Intel(R) Corporation |
- | ('Platform version:', 'OpenCL 1.2 LINUX') | + | Platform version: OpenCL 1.2 LINUX |
--------------------------------------------------------------- | --------------------------------------------------------------- | ||
- | ('Device name:', ' Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz') | + | Device name: Intel(R) Xeon(R) CPU E5-2637 v2 @ 3.50GHz |
- | ('Device type:', 'CPU') | + | Device type: CPU |
- | ('Device memory: ', 64463, 'MB') | + | Device memory: 516995 MB |
- | ('Device max clock speed:', 2700, 'MHz') | + | Device max clock speed: 3500 MHz |
- | ('Device compute units:', 32) | + | Device compute units: 16 |
- | /usr/lib/python2.7/dist-packages/pyopencl/__init__.py:36: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more. | + | Device max work group size: 8192 |
+ | Device max work item sizes: [8192, 8192, 8192] | ||
+ | /usr/lib/python2.7/dist-packages/pyopencl/__init__.py:61: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more. | ||
"to see more.", CompilerWarning) | "to see more.", CompilerWarning) | ||
- | Execution time of test: 0.00065297 s | + | Data points: 8388608 |
+ | Workers: 256 | ||
+ | Preferred work group size multiple: 128 | ||
+ | Execution time of test: 0.00322651 s | ||
Results OK | Results OK | ||
=============================================================== | =============================================================== | ||
- | ('Platform name:', 'Intel(R) OpenCL') | + | Platform name: Intel(R) OpenCL |
- | ('Platform profile:', 'FULL_PROFILE') | + | Platform profile: FULL_PROFILE |
- | ('Platform vendor:', 'Intel(R) Corporation') | + | Platform vendor: Intel(R) Corporation |
- | ('Platform version:', 'OpenCL 1.2 LINUX') | + | Platform version: OpenCL 1.2 LINUX |
--------------------------------------------------------------- | --------------------------------------------------------------- | ||
- | ('Device name:', 'Intel(R) Many Integrated Core Acceleration Card') | + | Device name: Intel(R) Many Integrated Core Acceleration Card |
- | ('Device type:', 'ACCELERATOR') | + | Device type: ACCELERATOR |
- | ('Device memory: ', 5772, 'MB') | + | Device memory: 11634 MB |
- | ('Device max clock speed:', 1100, 'MHz') | + | Device max clock speed: 1333 MHz |
- | ('Device compute units:', 240) | + | Device compute units: 240 |
- | Execution time of test: 0.00400693 s | + | Device max work group size: 8192 |
+ | Device max work item sizes: [8192, 8192, 8192] | ||
+ | Data points: 8388608 | ||
+ | Workers: 256 | ||
+ | Preferred work group size multiple: 128 | ||
+ | Execution time of test: 0.0179208 s | ||
Results OK | Results OK | ||
</code> | </code> |