11
__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 );
}

これがコードです。HANDLE_ERROR not found エラーが発生しています。私はそれを解決する方法を知りません。いくつかのヘッダーファイルを取得しようとしましたが、理解できません...

助けてください!!!

4

2 に答える 2

43

HANDLE_ERROR推測する必要がある場合は、次のようにマクロを定義する本CUDA By Exampleを使用していると思います。

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__ ))

このコードがソースのどこかにあるか、ヘッダーのどこかにあることを確認してください#include

于 2012-11-06T06:05:38.300 に答える