Es ist der erste parallele Code von cuda als Beispiel .
Kann mir jemand den Kernel-Aufruf beschreiben: <<< N , 1 >>>
Dies ist der Code mit den wichtigsten Punkten:
#define N 10
__global__ void add( int *a, int *b, int *c ) {
int tid = blockIdx.x; // this thread handles the data at its thread id
if (tid < N)
c[tid] = a[tid] + b[tid];
}
int main( void ) {
int a[N], b[N], c[N];
int *dev_a, *dev_b, *dev_c;
// allocate the memory on the GPU
// fill the arrays 'a' and 'b' on the CPU
// copy the arrays 'a' and 'b' to the GPU
add<<<N,1>>>( dev_a, dev_b, dev_c );
// copy the array 'c' back from the GPU to the CPU
// display the results
// free the memory allocated on the GPU
return 0;
}
Warum es von <<< N , 1 >>>
dass es bedeutet, dass wir von N Blöcken und 1 Thread in jedem Block verwendet ?? da wir dies schreiben können <<< 1 , N >>>
und verwendet 1 Block und N Threads in diesem Block zur weiteren Optimierung.