CUDA tutorial: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 19: Line 19:
=What is a GPU?=
=What is a GPU?=
A GPU, or graphics processing unit, is a single-chip processor that performs rapid mathematical calculations for the purpose of rendering images.
A GPU, or graphics processing unit, is a single-chip processor that performs rapid mathematical calculations for the purpose of rendering images.
However, in the recent years, such capability has been harnessed more broadly to accelerate computational workloads in cutting-edge scientific research.
In the recent years however, such capability has been harnessed more broadly to accelerate computational workloads in cutting-edge scientific research.


=What is CUDA?= <!--T:23-->
=What is CUDA?= <!--T:23-->
CUDA stands for ''compute unified device architecture''. It is a scalable parallel programming model and software environment for parallel computing which  
CUDA stands for ''compute unified device architecture''. It is a scalable parallel programming model and software environment for parallel computing which provides access to instructions and memory of massively parallel elements in GPUs.
provides access to instructions and memory of massively parallel elements in GPUs.


=CUDA GPU Architecture = <!--T:24-->
=GPU Architecture = <!--T:24-->
There two main components of the GPU:
There two main components of the GPU:
* Global memory
* Global memory
** Similar to CPU memory
** Similar to CPU memory
** Accessible by both CPU and GPU
** Accessible by both CPUs and GPUs
*Streaming multiprocessors (SMs)
*Streaming multiprocessors (SMs)
** Each SM consists or many streaming processors (SPs)
** Each SM consists or many streaming processors (SPs)
**They perform actual computations
**They perform actual computations
**Each SM has its own control init, registers, execution pipelines, etc
**Each SM has its own control unit, registers, execution pipelines, etc.
=CUDA programming model=
 
=Programming model=
Before we start talking about the programming model, let's go over some useful terminology:
Before we start talking about the programming model, let's go over some useful terminology:
*Host – The CPU and its memory (host memory)
*Host – The CPU and its memory (host memory)
rsnt_translations
56,563

edits