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 Prochaine révision Les deux révisions suivantes | ||
developpement:activites:integration:xeonphi4jessie [2014/11/18 19:59] equemene [Compilation du module noyau] |
developpement:activites:integration:xeonphi4jessie [2014/11/21 15:15] equemene [Installation des paquets] |
||
---|---|---|---|
Ligne 99: | Ligne 99: | ||
==== 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 107: | ||
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 118: | ||
==== 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 155: | ||
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 177: | ||
</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 232: | ||
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 263: | ||
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 280: | ||
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 327: | ||
<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 421: | ||
<code> | <code> | ||
- | python-pyopencl python-pyopencl-doc | + | apt-get install python-pyopencl python-pyopencl-doc |
</code> | </code> | ||
Ligne 397: | Ligne 427: | ||
<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 444: | ||
('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 449: | ||
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 : ==== | ||
+ | |||
+ | Il n'est pas possible de disposer directement de la dernière version OpenCL par un simple | ||
<code> | <code> | ||
- | cd /root | + | cd /root/XeonPhi |
- | wget http://registrationcenter.intel.com/irc_nas/3809/intel_sdk_for_ocl_applications_xe_2013_r3_sdk_3.2.1.16712_x64.tgz | + | 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 | |
- | tar xzf intel_sdk_for_ocl_applications_xe_2013_r3_sdk_3.2.1.16712_x64.tgz | + | cd pset_opencl_runtime_14.1_x64_4.5.0.8/rpm |
- | cd /root/intel_sdk_for_ocl_applications_xe_2013_r3_sdk_3.2.1.16712_x64 | + | |
</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 509: | ||
</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 522: | ||
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> |