加斯.库达.CUResult.ErrorInvalidImage 错误 in 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 '.Debughistogram256.cu.obj'"得到了这个错误.它找不到我的某些 .cu 文件的对象。

所以我只更改了那些 .cu 文件的"NVCC Compilation Type"设置,以(-m64 -cubin)并通过右键单击这些文件单独编译它们。但是,它没有创建任何.obj或.cubin文件。

然后我尝试从命令行编译它。我复制了 .cu 文件Property Page->Cuda Runtime API->Command Line中的行,即

" "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv4.0binnvcc.exe" -gencode=arch=compute_20,code="sm_20,compute_20" -gencode=arch=compute_20,code="sm_20,compute_20" --machine 32 -ccbin "c:Program FilesMicrosoft Visual Studio 9.0VCbin" -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MT " -I"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv4.0include" -maxrregcount=0 --compile -o "Debug/device.cubin" "device.cu""

device.cu 是我的库达文件。

它创建了.cubin file,但我从 CUDA.NET 那里得到了此错误:"GASS.CUDA.CUResult.ErrorInvalidImage."

你有什么建议吗?

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

2:编译为 32 位

,请确保也为 .net 编译和引用 32 位的 cuda.net。

3:使用托管(代码复合)提供了更好的示例和文档。

最新更新