我尝试在Visual Stuio C#中使用CUDA.NET开发表单应用程序。但是我需要创建cubin文件,这是我的问题:
我尝试使用Visual Studio创建cubin文件。我将项目Properties->Configuration Properties->Cuda Runtime API->GPU->NVCC Compilation Type
中的设置更改为"Generate 64 bit .cubin file (-m64 -cubin)" from "Generate hybrid object file (--compile / -c)".
但是我收到了这个错误"fatal error LNK1181: cannot open input file '.\Debug\histogram256.cu.obj'"
。它找不到我的.cu文件的对象。
所以我只将那些.cu文件'"NVCC Compilation Type"
设置更改为(-m64 -cubin)
,并通过右键单击这些文件来单独编译它们。但是它没有创建任何.obj或.cubin文件。
然后我尝试从命令行编译它。我复制了.cu文件的Property Page->Cuda Runtime API->Command Line
中的行
" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" -gencode=arch=compute_20,code=\"sm_20,compute_20\" --machine 32 -ccbin "c:\Program Files\Microsoft Visual Studio 9.0\VC\bin" -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MT " -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -maxrregcount=0 --compile -o "Debug/device.cubin" "device.cu""
device.cu是我的cuda文件。
它创建了.cubin file
,但我从CUDA.NET得到了这个错误:"GASS.CUDA.CUResult.ErrorInvalidImage."
你有什么建议吗?
答案 0 :(得分:2)
1:确保您的viedecard支持您指定的gencode-arch和代码。
2:你编译为32位,请确保你正在编译并引用cuda.net for 32 bit for .net。
3:使用managedcuda(codeplex)可以提供更好的样本和文档。