Kernel
A CUDA driver api-ban a kerneleket általában külön fileban írjuk, és külön kezeljük. a következő példaprogramunkban a vektor összeadást nézzük meg egy új környezetben.
Az alábbi kód a 08_1b_matSumKernel.cu file teljes tartalma.
A kód csak egy kernelt tartalmaz. A CPU futó keret ebben az esetben teljesen külön lesz.
// Vector addition (device code)
#include "08_1c_matSumKernel.cuh"
__global__ void matSum(int *a, int *b, int *c)
{
int tid = blockIdx.x;
if (tid < N)
c[tid] = a[tid] + b[tid];
}
A kernelt nem kell sokat nagyarázni, vektorok elemenkénti összeadását oldja meg.