Certains d'émission Atomique à ajouter dans CUDA noyau de l'opération

Je vais avoir un problème avec mon noyau.cu classe

Appel nvcc -v kernel.cu -o kernel.o j'obtiens cette erreur:

kernel.cu(17): error: identifier "atomicAdd" is undefined

Mon code:

#include "dot.h"
#include <cuda.h>
#include "device_functions.h" //might call atomicAdd

__global__ void dot (int *a, int *b, int *c){
    __shared__ int temp[THREADS_PER_BLOCK];
    int index = threadIdx.x + blockIdx.x * blockDim.x;
    temp[threadIdx.x] = a[index] * b[index];

    __syncthreads();

    if( 0 == threadIdx.x ){
        int sum = 0;
        for( int i = 0; i<THREADS_PER_BLOCK; i++)
            sum += temp[i];
        atomicAdd(c, sum);
    }
}

Certains le suggèrent?

OriginalL'auteur Custodio | 2011-05-13