A CUDA® egy párhuzamos számítási platform, és programozási modell, amelyet az NVIDIA® talált fel. A grafikus feldolgozó egység (GPU) erejének kihasználásával drámai módon megnöveljük a rendszer számítási teljesítménynét, amit akár C-fordítóhoz vagy kutatáshoz is használhatunk. (Kapcsolódó cikk: CUDA módok, illesztés) A CUDA eszközkészlet telepítése blackPanther OS -re egyszerű:
Rendszerkövetelmény
A CUDA használatához a rendszeren a következő telepítésre van szükség:
- CUDA-képes GPU + megfelelő meghajtó (Nvida esetén az x11-driver-video-nvidia)
- Támatott verziójú GCC fordító
- NVIDIA CUDA eszközkészlet
A CUDA 11.0 verziótól kezdve a minimálisan ajánlott GCC fordító legalább GCC 5.x verzió (blackPanther OS v18.1SE vagy újabb)…
Csomaglista a tárolóban:
- nvidia-cuda-toolkit : NVIDIA CUDA runtime libraries
- nvidia-cuda-toolkit-devel : NVIDIA CUDA Toolkit development files
- nvidia-current-cuda-opencl : CUDA and OpenCL libraries for NVIDIA proprietary driver
- nvidia-cuda-toolkit-samples : NVIDIA CUDA Toolkit samples
- nvidia-cuda-toolkit-samples-bins : NVIDIA CUDA Toolkit samples binaries
— Grafikus kiegészítők — - nvidia-visual-profiler : NVIDIA Visual Profiler
- nvidia-nsight : NVIDIA Nsight IDE
0 1 2 3 4 5 6 7 | nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2020 NVIDIA Corporation Built on Mon_Nov_30_19:08:53_PST_2020 Cuda compilation tools, release 11.2, V11.2.67 Build cuda_11.2.r11.2/compiler.29373293_0 |
Az NVIDIA az user-space háttérprogramot biztosít a Linux alapú rendszereken, hogy biztosítsa az illesztőprogram megfelelő állapotát a CUDA feladatok futtatása során. A “daemon” megközelítés elegánsabb és robusztusabb megoldást kínál, további részletek itt találhatóak.
Az NVIDIA Persistence Daemon root felhasználóként elindítható a következő paranccsal:
0 1 2 | nvidia-persistented --verbose |
vagy megadhatjuk neki azt is, hogy melyik felhasználó jogaival fusson
0 1 2 | nvidia-persistented --user felhasználónév |
NVIDIA SMI -t használhatjuk a persistence mód beállításaihoz, használhatjuk a ‘–help’ kapcsolót is. Például a persistence mód kikapcsolásához az összes GPU-n, egyszerűen futtassuk újra root jogokkal ezt a parancsot:
0 1 2 | # nvidia-smi -pm 0 |
A CUDA működését a deviceQuery
eszközzel tudod ellenőrizni, az alábbi módon, felhasználói jogokkal is:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | /usr/share/nvidia-cuda-toolkit/extras/demo_suite/deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "GeForce GT 750M" CUDA Driver Version / Runtime Version 11.2 / 11.2 CUDA Capability Major/Minor version number: 3.0 Total amount of global memory: 2002 MBytes (2099511296 bytes) ( 2) Multiprocessors, (192) CUDA Cores/MP: 384 CUDA Cores GPU Max Clock rate: 967 MHz (0.97 GHz) Memory Clock rate: 2005 Mhz Memory Bus Width: 128-bit L2 Cache Size: 262144 bytes Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096) Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers 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 multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 1 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled Device supports Unified Addressing (UVA): Yes Device supports Compute Preemption: No Supports Cooperative Kernel Launch: No Supports MultiDevice Co-op Kernel Launch: No Device PCI Domain ID / Bus ID / location ID: 0 / 4 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 11.2, CUDA Runtime Version = 11.2, NumDevs = 1, Device0 = GeForce GT 750M Result = PASS |
Kérd le a CUDA verziót a CUDA kódból
Amikor saját kódot írunk, gyakran kell valahogy ellenőrizheti a CUDA verziót, beleértve a képességeket is egy API hívással: cudaDriverGetVersion()
Az API hívás a CUDA verziót az aktív illesztőprogramról kapja:
A cudaDriverGetVersion () használatának teljes példáját itt találja:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <cuda.h> #include <stdio.h> int main (int argc, char ** argv) { int driver_version = 0, futásidejű_version = 0; cudaDriverGetVersion (& driver_version); cudaRuntimeGetVersion (& runtime_version); printf ("Illesztőprogram verziója:% d \ n" "Futásidejű verzió:% d \ n", meghajtó_verzió, futásidejű_változat); visszatér 0; } |
A kernelhez telepített és aktív CUDA illesztőprogram-verzió azonosítása
A kernel segítségével CUDA verzióellenőrzés is futtathatunk:
0 1 2 3 4 | cat /proc/driver/nvidia/version NVRM version: NVIDIA UNIX x86_64 Kernel Module 460.27.04 Fri Dec 11 23:35:05 UTC 2020 GCC version: gcc version 10.2.0 (blackPanther 10.2.0-2bP) |
További Cuda információk
- Cuda módok: nvcc
- nvptx-none
Hozzászólások lezárva