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édentesRévision précédente
Prochaine révision
Révision précédente
documentation:tools:benchmarksgpu [2015/04/26 18:58] – [Tests de détection matériel et logiciel] cicalugadocumentation:tools:benchmarksgpu [2023/01/12 09:39] (Version actuelle) – supprimée ltaulell
Ligne 1: Ligne 1:
-====== Utilisation des GPUs au PSMN ====== 
  
-{{INLINETOC}} 
- 
-===== Matériel disponible au PSMN ===== 
- 
-Plusieurs cartes GPU NVIDIA sont installées au PSMN : 
-  * [[http://www.nvidia.fr/content/PDF/kepler/Tesla-K20-Passive-BD-06455-001-v07.pdf |Tesla K20]] 
-  * [[http://www.nvidia.fr/object/geforce-gtx-780-fr.html#pdpContent=2 |GeForce GTX780]] 
-  * [[http://www.nvidia.com/docs/IO/43395/tesla-m2090-board-specifications.pdf |Tesla M2090]]  
- 
-Une comparaison des spécifications constructeur est donnée dans le tableau ci-dessous : 
- 
- 
-^  Spécifications techniques  ^  Tesla  K20  ^  GeForce GTX780  ^  Tesla M2090  ^   
-|    |||| 
-|  Performance peak en double précision |  1.17 Tflops  |  0.166 Tflops  |  0.66 Tflops  
-|    |||| 
-|  Performance peak en simple précision |  3.52 Tflops  |  3.97 Tflops  |  1.33 Tflops  
-|    |||| 
-|  Nombre de coeurs |  2496  |  2304  |  512  |  
-|    |||| 
-|  Fréquence coeurs |  0.706 GHz  |  0.863 GHz  |  1.3 GHz  |  
-|    |||| 
-|  Mémoire |  5 GB  |  3 GB  |  6 GB  |  
-|    |||| 
-|  Bande passante max (ECC off)  |  208 GB/s  |  288.4 GB/s  |  177.6 GB/s  | 
-|    |||| 
-|  ECC (Error-correcting code memory)|  oui  |  non  |  oui  |  
-|    |||| 
-|  Consommation max |  225 W  |  250 W    250 W  |  
-===== Logiciel disponible au PSMN =====  
- 
-Le soft nécessaire au fonctionnement de ces cartes est installé avec les paquets Debian. Il s'agit de : 
-  * drivers 
-  * librarie CUDA 
-  * CUDA SDK (optionnel) 
- 
- 
-===== Files d'attente =====  
- 
-Les files d'attente pour l'utilisation des GPUs sont décrites sur la page : [[documentation:clusters:batch|Les files d'attente]] 
- 
-===== Benchmarks ===== 
- 
-Plusieurs tests de fonctionnement et de performance de ces cartes sont présentés :  
- 
-==== Tests de détection matériel et logiciel ==== 
- 
-Avec la commande linux lspci (qui affiche la liste de périphériques PCI, dont les cartes GPU) : 
- 
-<code bash>  
-c82gpgpu34:~> lspci -v | grep -i nvidia 
-05:00.0 3D controller: NVIDIA Corporation GK110GL [Tesla K20m] (rev a1) 
- Subsystem: NVIDIA Corporation Device 1015 
- Kernel driver in use: nvidia 
-83:00.0 3D controller: NVIDIA Corporation GK110GL [Tesla K20m] (rev a1) 
- Subsystem: NVIDIA Corporation Device 1015 
- Kernel driver in use: nvidia 
-</code> 
- 
-Cette commande ne retourne rien si lancée sur les serveurs de compilations (p.ex. e5-2670comp1) puisqu'il n'y a pas de carte GPU installée.  
- 
-La sortie précédente est obtenue sur un noeud de calcul qui dispose de cartes GPU (dans cet exemple il s'agit du noeud c82gpgpu34 qui dispose de 2 cartes Tesla K20). 
- 
-La commande linux lsmod affiche l'état et la liste de modules chargés du noyau Linux : 
- 
-<code bash>  
-c82gpgpu34:~> lsmod | grep nvidia 
-nvidia_uvm             33340  
-nvidia              10492298  1 nvidia_uvm 
-i2c_core               23876  4 i2c_algo_bit,igb,i2c_i801,nvidia 
-</code> 
- 
-Pour afficher la version du driver CUDA installé : 
-<code bash>  
-c82gpgpu34:~> cat /proc/driver/nvidia/version 
-NVRM version: NVIDIA UNIX x86_64 Kernel Module  340.65  Tue Dec  2 09:50:34 PST 2014 
-GCC version:  gcc version 4.6.3 (Debian 4.6.3-14)  
-</code> 
- 
-Pour afficher la version du CUDA Toolkit installé : 
-<code bash>  
-c82gpgpu34:~> nvcc -V  
-nvcc: NVIDIA (R) Cuda compiler driver 
-Copyright (c) 2005-2013 NVIDIA Corporation 
-Built on Wed_Jul_17_18:36:13_PDT_2013 
-Cuda compilation tools, release 5.5, V5.5.0 
-</code> 
- 
-nvcc est le compilateur fourni dans le driver pour compiler des programmes CUDA (il appelle le compilateur gcc pour compiler le code C)  
- 
- 
-**Uns autre possibilité** (hors commandes Linux) pour détecter la présence et le type de GPUS NVIDIA est de faire appel au programme deviceQuery dont le source .cpp est contenu dans la suite NVIDIA_GPU_Computing_SDK (devenue NVIDIA_CUDA-x.y_Samples dans les versions x.y récentes). Après compilation, ce programme détecte les périphériques "CUDA-capable" du système. Ci-après le output de cette exécution sur un noueud avec des GPUs NVIDIA K20 : 
- 
-<code bash>  
-c82gpgpu34:~> cd NVIDIA_GPU_Computing_SDK 
-c82gpgpu34:~/NVIDIA_GPU_Computing_SDK~> ./C/bin/linux/release/deviceQuery 
- 
-./C/bin/linux/release/deviceQuery Starting... 
- 
- CUDA Device Query (Runtime API) version (CUDART static linking) 
- 
-Found 2 CUDA Capable device(s) 
- 
-Device 0: "Tesla K20m" 
-  CUDA Driver Version / Runtime Version          6.5 / 5.5 
-  CUDA Capability Major/Minor version number:    3.5 
-  Total amount of global memory:                 4800 MBytes (5032706048 bytes) 
-MapSMtoCores SM 3.5 is undefined (please update to the latest SDK)! 
-MapSMtoCores SM 3.5 is undefined (please update to the latest SDK)! 
-  (13) Multiprocessors x (-1) CUDA Cores/MP:     -13 CUDA Cores 
-  GPU Clock Speed:                               0.71 GHz 
-  Memory Clock rate:                             2600.00 Mhz 
-  Memory Bus Width:                              320-bit 
-  L2 Cache Size:                                 1310720 bytes 
-  Max Texture Dimension Size (x,y,z)             1D=(65536), 2D=(65536,65536), 3D=(4096,4096,4096) 
-  Max Layered Texture Size (dim) x layers        1D=(16384) x 2048, 2D=(16384,16384) x 2048 
-  Total amount of constant memory:               65536 bytes 
-  Total amount of shared memory per block:       49152 bytes 
-  Total number of registers available per block: 65536 
-  Warp size:                                     32 
-  Maximum number of threads per block:           1024 
-  Maximum sizes of each dimension of a block:    1024 x 1024 x 64 
-  Maximum sizes of each dimension of a grid:     2147483647 x 65535 x 65535 
-  Maximum memory pitch:                          2147483647 bytes 
-  Texture alignment:                             512 bytes 
-  Concurrent copy and execution:                 Yes with 2 copy engine(s) 
-  Run time limit on kernels:                     No 
-  Integrated GPU sharing Host Memory:            No 
-  Support host page-locked memory mapping:       Yes 
-  Concurrent kernel execution:                   Yes 
-  Alignment requirement for Surfaces:            Yes 
-  Device has ECC support enabled:                Yes 
-  Device is using TCC driver mode:               No 
-  Device supports Unified Addressing (UVA):      Yes 
-  Device PCI Bus ID / PCI location ID:           5 / 0 
-  Compute Mode: 
-     < Exclusive Process (many threads in one process is able to use ::cudaSetDevice() with this device) > 
- 
-Device 1: "Tesla K20m" 
-  CUDA Driver Version / Runtime Version          6.5 / 5.5 
-  CUDA Capability Major/Minor version number:    3.5 
-  Total amount of global memory:                 4800 MBytes (5032706048 bytes) 
-MapSMtoCores SM 3.5 is undefined (please update to the latest SDK)! 
-MapSMtoCores SM 3.5 is undefined (please update to the latest SDK)! 
-  (13) Multiprocessors x (-1) CUDA Cores/MP:     -13 CUDA Cores 
-  GPU Clock Speed:                               0.71 GHz 
-  Memory Clock rate:                             2600.00 Mhz 
-  Memory Bus Width:                              320-bit 
-  L2 Cache Size:                                 1310720 bytes 
-  Max Texture Dimension Size (x,y,z)             1D=(65536), 2D=(65536,65536), 3D=(4096,4096,4096) 
-  Max Layered Texture Size (dim) x layers        1D=(16384) x 2048, 2D=(16384,16384) x 2048 
-  Total amount of constant memory:               65536 bytes 
-  Total amount of shared memory per block:       49152 bytes 
-  Total number of registers available per block: 65536 
-  Warp size:                                     32 
-  Maximum number of threads per block:           1024 
-  Maximum sizes of each dimension of a block:    1024 x 1024 x 64 
-  Maximum sizes of each dimension of a grid:     2147483647 x 65535 x 65535 
-  Maximum memory pitch:                          2147483647 bytes 
-  Texture alignment:                             512 bytes 
-  Concurrent copy and execution:                 Yes with 2 copy engine(s) 
-  Run time limit on kernels:                     No 
-  Integrated GPU sharing Host Memory:            No 
-  Support host page-locked memory mapping:       Yes 
-  Concurrent kernel execution:                   Yes 
-  Alignment requirement for Surfaces:            Yes 
-  Device has ECC support enabled:                Yes 
-  Device is using TCC driver mode:               No 
-  Device supports Unified Addressing (UVA):      Yes 
-  Device PCI Bus ID / PCI location ID:           131 / 0 
-  Compute Mode: 
-     < Exclusive Process (many threads in one process is able to use ::cudaSetDevice() with this device) > 
- 
-deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 5.5, NumDevs = 2, Device = Tesla K20m, Device = Tesla K20m 
- 
-</code> 
- 
-==== Tests de la bande passante ==== 
- 
-==== Tests de performance des bibliothèques d'algèbre linéaire ==== 
-==== Tests de performance de la composante FFT de Cuda ==== 
-==== Tests de performance des codes "maison" portés sur GPUs ==== 
- des codes "maison" portés sur GPUs ([[http://www.cbp.ens-lyon.fr/doku.php?id=developpement:productions:logiciels:anisotropicblur|Anisotropic Blur]] ) 
documentation/tools/benchmarksgpu.1430074721.txt.gz · Dernière modification : 2020/08/25 15:58 (modification externe)