CUDA Programming/Terminology: Difference between revisions

From CS486wiki
Jump to navigationJump to search
Content deleted Content added
Myuksek1 (talk | contribs)
Created page with "Here are the list of various terms that are specific to GPU Parallel Computing field: = Terms = == Kernel == === CUDA Definition === A kernel is a function that, when called, i..."   (change visibility)
 
Myuksek1 (talk | contribs)
No edit summary   (change visibility)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[CUDA_Programming|← Back to project main page]]

Here are the list of various terms that are specific to GPU Parallel Computing field:
Here are the list of various terms that are specific to GPU Parallel Computing field:


= Terms =
= Kernel =
== CUDA Definition ==

A kernel is a function that, when called, is executed N times in parallel by N different CUDA threads, as opposed to only once like regular C functions.
== Kernel ==
=== CUDA Definition ===
== OpenCL Definition ==
A kernel is a function that, when called, is executed N times in parallel by N different CUDA threads, as opposed to only once like regular C functions.[1]
=== OpenCL Definition ===
A kernel is a function declared in a program and executed on an OpenCL device.[2]
A kernel is a function declared in a program and executed on an OpenCL device.[2]


<i>See also:</i> [[#Kernel_Object|Kernel Object]] definition
<i>See also:</i> [[#Kernel_Object|Kernel Object]] definition


== Kernel Object ==
= Kernel Object =
=== OpenCL Definition ===
== OpenCL Definition ==
A kernel object encapsulates a specific [[#Kernel|kernel]] function declared in a program and the argument values to be used when executing this function. [2]
A kernel object encapsulates a specific [[#Kernel|kernel]] function declared in a program and the argument values to be used when executing this function.

= Compute Capability =
== CUDA Definition ==
It is defined by a major and a minor revision number. Devices with the same major revision number are of the same core architecture. The minor revision number corresponds to an incremental improvement to the core architecture, possibly including new features.

= SIMT =
== CUDA Definition ==
SIMT (Single-Instruction, Multiple-Thread) is an architecture that manages the execution of multiple [[#Thread|threads]] concurrently.

<i>See also:</i> [[#Warp|Warp]]

= Thread =
== CUDA Definition ==
CUDA thread defines a ready-for-execution/running instance of a [[#Kernel|kernel]]. Each thread has its own instruction address counter and register state. Each thread can be identified by a combination of its three-dimensional thread index and three-dimensional thread-block index.

<i>See also:</i> [[#SIMT|SIMT]]

= Thread Block =
== CUDA Definition ==
Each [[#Thread_Grid|thread grid]] is divided into thread blocks. Furthermore, when blocks are given to a multiprocessor, each thread block is divided into [[#Warp|warps]]. The way a block is partitioned into warps is always the same; each warp contains threads of consecutive, increasing thread IDs with the first warp containing thread 0.

<i>See also:</i> [[#SIMT|SIMT]]

= Thread Grid =
== CUDA Definition ==
[[#Thread|Threads]] are partitioned into grids with each grid containing a certain number of [[#Thread_Block|thread blocks]]. Grids can be one-dimensional or two-dimensional.

<i>See also:</i> [[#SIMT|SIMT]], [[#Thread|Thread]], [[#Warp|Warp]]

= Warp =
== CUDA Definition ==
A warp defines a group of 32 parallel threads. Individual [[#Thread|threads]] composing a warp start together at the same program address.


<i>See also:</i> [[#SIMT|SIMT]]
= References =
[1] NVIDIA CUDA Computing Guide Version 3.1
[2] The OpenCL Specification, Version 1.1, Revision 36

Latest revision as of 04:40, 21 May 2011

← Back to project main page

Here are the list of various terms that are specific to GPU Parallel Computing field:

Kernel

CUDA Definition

A kernel is a function that, when called, is executed N times in parallel by N different CUDA threads, as opposed to only once like regular C functions.

OpenCL Definition

A kernel is a function declared in a program and executed on an OpenCL device.[2]

See also: Kernel Object definition

Kernel Object

OpenCL Definition

A kernel object encapsulates a specific kernel function declared in a program and the argument values to be used when executing this function.

Compute Capability

CUDA Definition

It is defined by a major and a minor revision number. Devices with the same major revision number are of the same core architecture. The minor revision number corresponds to an incremental improvement to the core architecture, possibly including new features.

SIMT

CUDA Definition

SIMT (Single-Instruction, Multiple-Thread) is an architecture that manages the execution of multiple threads concurrently.

See also: Warp

Thread

CUDA Definition

CUDA thread defines a ready-for-execution/running instance of a kernel. Each thread has its own instruction address counter and register state. Each thread can be identified by a combination of its three-dimensional thread index and three-dimensional thread-block index.

See also: SIMT

Thread Block

CUDA Definition

Each thread grid is divided into thread blocks. Furthermore, when blocks are given to a multiprocessor, each thread block is divided into warps. The way a block is partitioned into warps is always the same; each warp contains threads of consecutive, increasing thread IDs with the first warp containing thread 0.

See also: SIMT

Thread Grid

CUDA Definition

Threads are partitioned into grids with each grid containing a certain number of thread blocks. Grids can be one-dimensional or two-dimensional.

See also: SIMT, Thread, Warp

Warp

CUDA Definition

A warp defines a group of 32 parallel threads. Individual threads composing a warp start together at the same program address.

See also: SIMT