CUDA Visual Studio 2010 Express构建错误 [英] CUDA Visual Studio 2010 Express build error

查看:392
本文介绍了CUDA Visual Studio 2010 Express构建错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在Windows上使用Visual Studio 2010 Express在64位Windows 7上开始CUDA编程。我花了一段时间设置环境,我只是写了我的第一个程序,helloWorld.cu:)



目前我正在使用以下程序:

  #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 \\\
,c);
cudaFree(dev_c);

return 0;
}

这里是使用Windows7.1SDK平台工具集的输出:

  1> C:\Users\User\documents\visual studio 2010\Projects\CudaTest2\CudaTest2>C:\Program Files \ NVIDIA GPU计算工具包\CUDA\v5.0\bin \\\
vcc.exe-gencode = arch = compute_10,code = \sm_10,compute_10\--use-local-env --cl-version -ccbinC:\Program Files(x86)\ Microsoft Visual Studio 10.0 \VC\bin\x86_amd64-IC:\Program文件\ NVIDIA GPU计算工具包\CUDA \v5.0 \include-IC:\Program文件\ NVIDIA GPU计算工具包\CUDA \v5.0 \include-G --keep-dirx64 \Debug-maxrregcount = 0 --machine 64 --compile -g -Xcompiler/ EHsc / W1 / nologo / O2 / Zi / MD-ox64\Debug\hello.cu.objC:\Users\User\documents\visual studio 2010\Projects\CudaTest2\ CudaTest2 \hello.cu
1> nvcc:致命错误:'-ccbin':期望一个数字
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\\ \\ v4.0 \BuildCustomizations \CUDA 5.0.targets(592,9):错误MSB3721:命令C:\Program Files \NVIDIA GPU计算工具包\CUDA\v5.0\bin\\ \\ nvcc.exe-gencode = arch = compute_10,code = \sm_10,compute_10\--use-local-env --cl-version -ccbinC:\Program Files(x86)\Microsoft Visual Studio 10.0 \VC\bin \x86_amd64-IC:\Program Files \ NVIDIA GPU计算工具包\CUDA \v5.0 \include-IC:\Program Files \\ \\ NVIDIA GPU计算工具包\CUDA \v5.0 \include-G --keep-dirx64 \Debug-maxrregcount = 0 --machine 64 --compile -g -Xcompiler/ EHsc / W1 / nologo / O2 / Zi / MD-ox64\Debug\hello.cu.objC:\Users\User\documents\visual studio 2010\Projects\CudaTest2\CudaTest2 \hello.cu退出,代码为-1。然而,对于v100平台工具集,我得到这个错误:








b $ b

  C:\Users\User\documents\visual studio 2010\Projects\CudaTest2\ CudaTest2>C:\Program Files \ NVIDIA GPU计算工具包\CUDA\v5.0\bin\\\
vcc.exe-gencode = arch = compute_10,code = \sm_10,compute_10 \--use-local-env --cl-版本2010 -ccbinC:\Program文件(x86)\Microsoft Visual Studio 10.0 \VC\bin \x86_amd64-IC:\Program文件\ NVIDIA GPU计算工具包\CUDA \\ v5.0 \include-IC:\Program Files \ NVIDIA GPU计算工具包\CUDA \v5.0 \include-G --keep-dirx64 \Debug-maxrregcount = 0 --machine 64 --compile -g -Xcompiler/ EHsc / W1 / nologo / O2 / Zi / MD-ox64\Debug\hello.cu.objC:\Users\User \documents\visual studio 2010 \Projects\CudaTest2\CudaTest2\hello.cu
1> C:\Program文件(x86)\ Microsoft Visual Studio 9.0 \VC\include \ math.h(455):错误:dllexport / dllimport需要外部链接
1> C:/ Users / User / documents / visual studio 2010 / Projects / CudaTest2 / CudaTest2 / hello.cu :identifierHANDLE_ERROR未定义
1> c:\program files\ nvidia gpu计算工具包\cuda\v5.0\include \math_functions.h(2900):error:function 引用但未定义
1> C:\Program文件(x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 5.0.targets(592,9):错误MSB3721:命令C:\Program Files \ NVIDIA GPU计算工具包\CUDA\v5.0\bin\\\
vcc.exe-gencode = arch = compute_10,code = \sm_10,compute_10 \--use-local-env --cl-version 2010 -ccbinC:\Program Files(x86)\Microsoft Visual Studio 10.0 \VC\bin\x86_amd64-IC: \\ Program Files \ NVIDIA GPU计算工具包\CUDA \v5.0 \include-IC:\Program Files \ NVIDIA GPU计算工具包\CUDA \v5.0 \include-G --keep-dirx64 \Debug-maxrregcount = 0 --machine 64 --compile -g -Xcompiler/ EHsc / W1 / nologo / O2 / Zi / MD-ox64\Debug\hello .cu.objC:\Users\User\documents\visual studio 2010\Projects\CudaTest2\CudaTest2\hello.cu退出与代码2.
=== ======= Build:0 succeeded,1 failed,0 up-to-date,0 skipped ==========

任何人都能指向正确的方向吗?我已经阅读几乎所有关于相关问题的帖子,安装和卸载工具几次,仍然无法得到正确的构建。

解决方案

以下适用于我。编辑文件* C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 5.0.prop * s。搜索PlatformToolset并为Windows7.1SDK添加一个条目。将值设置为2010.

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


I am trying to get started with CUDA programming on Windows using Visual Studio 2010 Express on a 64 bit Windows 7. It took me a while setting up the environment, and I just wrote my first program, helloWorld.cu :)

Currently I am working with the following program:

#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;
}

And here is the output of build with Windows7.1SDK platform toolset:

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.

However, with v100 platform toolset I am getting this 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 ==========

Could anyone point me in right direction? I have been reading almost all posts about related issues, installed and uninstalled tools couple of times and still can't get a proper build.

解决方案

The following worked for me. Edit the file *C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 5.0.prop*s. Search for PlatformToolset and add an entry for Windows7.1SDK. Set the value to 2010.

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

这篇关于CUDA Visual Studio 2010 Express构建错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆