N-mal Funktion parallel ausführen
__global__ void add( int *a, int *b, int *c){
. *c = *a + *b;
}
// Funktion add() wird 1-mal ausgeführt
add<<< 1, 1 >>>( dev_a, dev_b, dev_c );
// Funktion add() wird N-mal ausgeführt
add<<< N, 1 >>>( dev_a, dev_b, dev_c );
Die Variablen werden dadurch zu Arrays.
a -> a[N] , b -> b[N], c -> c[N]
Zugreifen auf die parallelen Prozesse
Jeder parallele Prozess läuft im Kernel in einem anderen Block. Jeder Block hat seine Id blockIdx.x .
a[1], b[1], c[1] laufen im Block 1.
c[0] = a[0] + b[0]
__global__ void add( int *a, int *b, int *c ) {
. c[blockIdx.x] = a[blockIdx.x] + b[blockIdx.x];
}
.