Ceci est une ancienne révision du document !
Plusieurs cartes GPU NVIDIA sont installées au PSMN :
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 |
Le soft nécessaire au fonctionnement de ces cartes est installé avec les paquets Debian. Il s'agit de :
Les files d'attente pour l'utilisation des GPUs sont décrites sur la page : Les files d'attente
Plusieurs tests de fonctionnement et de performance de ces cartes sont présentés :
Avec la commande linux lspci (qui affiche la liste de périphériques PCI, dont les cartes GPU) :
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
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 :
c82gpgpu34:~> lsmod | grep nvidia nvidia_uvm 33340 0 nvidia 10492298 1 nvidia_uvm i2c_core 23876 4 i2c_algo_bit,igb,i2c_i801,nvidia
Pour afficher la version du driver CUDA installé :
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)
Pour afficher la version du CUDA Toolkit installé :
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
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 :
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
des codes “maison” portés sur GPUs (Anisotropic Blur )