4 ms·
"CUDA cores" is a misleading term. When they quote "CUDA cores", they've been counting float32 fma functional units; e.g., Tesla K40 has 192 float32 fma units
by jhj 10y ago
"CUDA cores" is a misleading term.
When they quote "CUDA cores", they've been counting float32 fma functional units; e.g., Tesla K40 has 192 float32 fma units per SM x 15 SMs => 2880 "CUDA cores".
http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#arithmetic-instructions__throughput-native-arithmetic-instructions http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.h...
fp16 and fp64 are likely different functional units with different issue rates, as is the case with old hardware; unless they've managed to share the same hardware (since for P100 the quoted fp64 rate is exactly half the fp32 rate, and the fp16 is exactly double the fp32 rate).
- kartD 10y agoTrue, I forgot NVIDIA (and AMD) play around with the "core" definition
- jhj 10y agoThere's no real analogue to a CPU core (or thread) on a GPU, there are warp schedulers (Nvidia) and functional units with varying throughput rates. The closest analogue to a CPU thread is the GPU warp (Nvidia), which shares a program counter and executes as a 32-wide vector. AMD wavefronts (64-wide) are a little bit different, but not by much. The CUDA "thread" is really an illusion that makes a SIMD lane easier to program to (sometimes...)
- kartD 10y agoI agree, I think an SMX is the closest to a CPU core - it contains dispatch, cache, schedulers etc. CUDA threads are of course have important differences since all threads in a warp move in lockstep. IMO, all of these contrived definitions are just to ease in programmers into the CUDA/OpenCL model or for bragging rights (like how a Jetson has 192 cores!).