vscode visual tag studio ortografico orthography corrector code visual-studio-2010 cuda windows-7-x64 gpu-programming

visual-studio-2010 - tag - visual studio code path intellisense



Error de compilaciĆ³n de CUDA Visual Studio 2010 Express (3)

Estoy tratando de comenzar con la programación de CUDA en Windows usando Visual Studio 2010 Express en un Windows 7 de 64 bits. Me tomó un tiempo configurar el entorno, y acabo de escribir mi primer programa, helloWorld.cu :)

Actualmente estoy trabajando con el siguiente programa:

#include <stdio.h> __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 ); return 0; }

Y aquí está el resultado de compilar con el conjunto de herramientas de la plataforma Windows7.1SDK:

1> C:/Users/User/documents/visual studio 2010/Projects/CudaTest2/CudaTest2>"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/bin/nvcc.exe" -gencode=arch=compute_10,code=/"sm_10,compute_10/" --use-local-env --cl-version -ccbin "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/x86_amd64" -I"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include" -I"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include" -G --keep-dir "x64/Debug" -maxrregcount=0 --machine 64 --compile -g -Xcompiler "/EHsc /W1 /nologo /O2 /Zi /MD " -o "x64/Debug/hello.cu.obj" "C:/Users/User/documents/visual studio 2010/Projects/CudaTest2/CudaTest2/hello.cu" 1>nvcc : fatal error : ''-ccbin'': expected a number 1>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/BuildCustomizations/CUDA 5.0.targets(592,9): error MSB3721: The command ""C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/bin/nvcc.exe" -gencode=arch=compute_10,code=/"sm_10,compute_10/" --use-local-env --cl-version -ccbin "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/x86_amd64" -I"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include" -I"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include" -G --keep-dir "x64/Debug" -maxrregcount=0 --machine 64 --compile -g -Xcompiler "/EHsc /W1 /nologo /O2 /Zi /MD " -o "x64/Debug/hello.cu.obj" "C:/Users/User/documents/visual studio 2010/Projects/CudaTest2/CudaTest2/hello.cu"" exited with code -1.

Sin embargo, con el conjunto de herramientas de la plataforma v100 obtengo este error:

C:/Users/User/documents/visual studio 2010/Projects/CudaTest2/CudaTest2>"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/bin/nvcc.exe" -gencode=arch=compute_10,code=/"sm_10,compute_10/" --use-local-env --cl-version 2010 -ccbin "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/x86_amd64" -I"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include" -I"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include" -G --keep-dir "x64/Debug" -maxrregcount=0 --machine 64 --compile -g -Xcompiler "/EHsc /W1 /nologo /O2 /Zi /MD " -o "x64/Debug/hello.cu.obj" "C:/Users/User/documents/visual studio 2010/Projects/CudaTest2/CudaTest2/hello.cu" 1>C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/include/math.h(455): error : dllexport/dllimport requires external linkage 1>C:/Users/User/documents/visual studio 2010/Projects/CudaTest2/CudaTest2/hello.cu(12): error : identifier "HANDLE_ERROR" is undefined 1>c:/program files/nvidia gpu computing toolkit/cuda/v5.0/include/math_functions.h(2900): error : function "hypotf" was referenced but not defined 1>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/BuildCustomizations/CUDA 5.0.targets(592,9): error MSB3721: The command ""C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/bin/nvcc.exe" -gencode=arch=compute_10,code=/"sm_10,compute_10/" --use-local-env --cl-version 2010 -ccbin "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/x86_amd64" -I"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include" -I"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include" -G --keep-dir "x64/Debug" -maxrregcount=0 --machine 64 --compile -g -Xcompiler "/EHsc /W1 /nologo /O2 /Zi /MD " -o "x64/Debug/hello.cu.obj" "C:/Users/User/documents/visual studio 2010/Projects/CudaTest2/CudaTest2/hello.cu"" exited with code 2. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

¿Podría alguien señalarme en la dirección correcta? He estado leyendo casi todas las publicaciones sobre problemas relacionados, he instalado y desinstalado algunas herramientas y todavía no puedo obtener una compilación adecuada.


Esto es porque Visual Studio no tiene el privilegio de acceder a la carpeta Temp .

navegue a C: / Users / userName / AppData / Local / Temp y cambie las reglas de seguridad de acceso del usuario actual (en este caso es userName) a control total


La respuesta es doble. El error de compilación HANDLE_ERROR que obtiene con la plataforma v100 está relacionado con la función HANDLE_ERROR que se define en los encabezados adicionales del libro "Cuda By Example". Reconozco el ejemplo, por lo que supongo que ese es el código que intenta compilar . No ha incluido este archivo porque no figura en la lista de códigos del libro ... un pequeño descuido del autor (es), imho.

Puede descargar los ejemplos de código y el encabezado adicional "book.h" que necesita de la página del libro: https://developer.nvidia.com/content/cuda-example-introduction-general-purpose-gpu-programming-0

Como referencia, este es el código HANDLE_ERROR de book.h:

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


Lo siguiente funcionó para mí. Edite el archivo * C: / Archivos de programa (x86) / MSBuild / Microsoft.Cpp / v4.0 / BuildCustomizations / CUDA 5.0.prop * s. Busque PlatformToolset y agregue una entrada para Windows7.1SDK. Establezca el valor en 2010.

<CudaClVersion Condition="''$(PlatformToolset)'' == ''Windows7.1SDK''">2010</CudaClVersion>