Cesena Security Network and Application
1. Storia
2. Architettura
3. Codice
4. Gestione e ottimizzazione
5. Unified Memory
API Grafiche
Brook
CUDA
Memoria Globale
Streaming Multiprocessors
Memorie
To Host
C C++ Fortran Python Matlab Java
Sintassi
__global__: kernel GPU lanciato dalla CPU
__device__: può essere invocato dalla GPU
__host__: può essere invocato dal CPU.
nome_kernel <<<DimGriglia, DimBlocco>>> (arg1 [, arg2]);
cudaMalloc((void**) &add, size_t size)
cudaMemcpy(void* dst, void* src, size_t size, enum cudaMemcpyKind type)
NVCC
- 2 Multiprocessori X 48 CUDA Core/MP = 96 CUDA Core;
- Frequenza di clock = 1550 Mhz;
- Numero massimo di thread per multiprocessore = 1536;
- Numero massimo di warp per multiprocessore = 1536/32 = 48;
- Numero massimo di thread per blocco = 1024;
- Dimensione massima per blocco = 1024 x 1024 x 64;
- Dimensione massima per griglia = 65535 x 65535 x 65535;
Occypancy VS Coalescence
| 6 warp | 8 warp | 12 warp | 16 warp | 24 warp
Thread | 192 | 256 | 384 | 512 | 768
cudaMallocManaged(&data, N);