IntroductionGraphics Processing UnitParallel by DesignSpeed Benefits


Figure 1

Screenshot of the YoutTube video showing a GPU

Using your GPU with CuPyIntroduction to CuPyConvolution in PythonConvolution on the CPU Using SciPyConvolution on the GPU Using CuPyMeasuring performanceValidationA shortcut: performing NumPy routines on the GPUA real world example: image processing for radio astronomySource measurements


Figure 1

Deltas array
Deltas array

Figure 2

Example of animated convolution
Example of animated convolution

Figure 3

Data flow of a map operation
Data flow of a map operation

Figure 4

Data flow of a stencil operation
Data flow of a stencil operation

Figure 5

Two-dimensional Gaussian
Two-dimensional Gaussian

Figure 6

Regular grid of Gaussians
Regular grid of Gaussians

Figure 7

CPU and GPU are two separate entities, each with its own memory
CPU and GPU are two separate entities, each with its own memory

Figure 8

Image of the Galactic Center
Image of the Galactic Center

Accelerate your Python code with NumbaUsing Numba to execute Python code on the GPU


A Better Look at the GPUThe GPU, a High Level View at the HardwareHow Programs are ExecutedDifferent MemoriesAdditional Material


Figure 1

The connection between CPU and GPU
The connection between CPU and GPU

Figure 2

Screenshot of the YouTube video showing a slide

Your First GPU KernelSumming Two Vectors in PythonSumming Two Vectors in CUDARunning Code on the GPU with CuPyUnderstanding the CUDA CodeComputing Hierarchy in CUDAVectors of Arbitrary Size


Registers, Global, and Local MemoryRegistersGlobal MemoryLocal Memory


Shared Memory and SynchronizationShared MemoryThread Synchronization


Constant MemoryConstant Memory


Concurrent access to the GPUConcurrently execute two kernels on the same GPUStream synchronizationMeasure execution time using streams and events