Please enable JavaScript.
Coggle requires JavaScript to display documents.
GPU Programming - Coggle Diagram
GPU Programming
Platforms
-
Open CL
use across devices (GPU's, CPU's, etc)
-
-
Vulkan
-
-
-
-
-
lower overhead
thinner, lower-level abstraction over the GPU hardware
-
-
-
-
-
draw call batching, synchronization handled manually (enabling optimizations)
-
-
-
-
-
-
-
-
Libraries
Numba
-
HOW TO USE
jit decorator tells Numba to compile a function
-
njit ensures no Python interpreter
-
passing target = "cuda" to vectorize or jit runs function on the GPU with no need to manage the thread hierarchy
provides functions to allocate arrays on device to avoid copies. Interoperates with CFFI, ctypes, Cython
-
Speedups depend on compute intensity. Works best on numeric code, large arrays and heavy computations
-
useful for speeding up simulations, numerical algorithms, image processing, linear algebra, etc
-
-
CUDA
-
Kernels use a grid of thread blocks, where each block contains threads that run the same code
-
-
HOW TO USE
-
-
-
Libraries: | cuDNN, cuBLAS provide GPU-accelerated routines for many common operations
-
-
-
-