CUDA.NET中的GASS.CUDA.CUResult.ErrorInvalidImage错误

时间:2012-08-10 13:40:12

标签: exception cuda.net

我尝试在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."

你有什么建议吗?

1 个答案:

答案 0 :(得分:2)

1:确保您的viedecard支持您指定的gencode-arch和代码。

2:你编译为32位,请确保你正在编译并引用cuda.net for 32 bit for .net。

3:使用managedcuda(codeplex)可以提供更好的样本和文档。