2012-11-06 14 views
9
__global__ void add(int a, int b, int *c) { 
    *c = a + b; 
} 
int main(void) { 
int c; 
int *dev_c; 
HANDLE_ERROR(cudaMalloc((void**)&dev_c, sizeof(int))); 
add<<<1,1>>>(2, 7, dev_c); 
HANDLE_ERROR(cudaMemcpy(&c, dev_c, sizeof(int), cudaMemcpyDeviceToHost)); 
printf("2 + 7 = %d\n", c); 
cudaFree(dev_c); 
} 

To jest kod. HANDLE_ERROR nie znaleziono błędu jest generowany. Nie wiem jak to rozwiązać. Próbowałem pobrać kilka plików nagłówkowych, ale nie mogę tego rozgryźć ...HANDLE_ERROR nie znaleziono błędu w Cuda

Każda pomoc proszę !!!

Odpowiedz

36

Gdybym miał zgadywać, powiedziałbym, że używasz książkę CUDA w przykładach, który określa HANDLE_ERROR makro następująco:

static void HandleError(cudaError_t err, 
         const char *file, 
         int line) { 
    if (err != cudaSuccess) { 
     printf("%s in %s at line %d\n", cudaGetErrorString(err), 
       file, line); 
     exit(EXIT_FAILURE); 
    } 
} 
#define HANDLE_ERROR(err) (HandleError(err, __FILE__, __LINE__)) 

Upewnij się, że kod ten pojawia się gdzieś w źródle, lub gdzieś w nagłówku, #include.

+1

Czytam tę samą książkę. Czy autor wskazał, gdzie szukać kodu biblioteki? – frankliuao

-1

Możesz pobrać kod źródłowy do książki here.

Kod źródłowy zawiera także pliki nagłówkowe (w wspólnym folderze), gdzie brakuje makra są zdefiniowane i który cudzysłowów książka w kodach źródłowych jak (na przykład)

#include "../common/book.h" 

Jeśli linki stać się niedostępnym, przeszukać tytuł książki na stronie Nvidia Developer lub na stronie CUDA, znajdziesz bezpośredni link do strony książki, gdzie można znaleźć kod źródłowy.

Powiązane problemy