0

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

你有什么建议吗?

4

1 回答 1

2

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

2:您为 32 位编译,请确保您正在为 .net 编译和引用 32 位的 cuda.net。

3:使用 managedcuda (codeplex) 提供了更好的示例和文档。

于 2012-11-09T13:05:19.057 回答