CUDAfy.NET给出Win32Exception:系统找不到指定的文件

我通过NuGet添加了对CUDAfy.NET库的引用。

 

当我运行我的程序时,我遇到了Win32Exception

该系统找不到指定的文件

这发生在程序的第一个实际行上:

 CudafyModule km = CudafyTranslator.Cudafy(); 

exception对象没有指示他们正在尝试加载哪个文件。

我怎样才能解决这个问题?

编辑

在使用.NET 4.0在VS2010中运行Codeplex下载的捆绑示例时,我看到了同样的exception。

Strack trace是:

 at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) at Cudafy.CudafyModule.Compile(eGPUCompiler mode, Boolean deleteGeneratedCode) at Cudafy.Translator.CudafyTranslator.Cudafy(ePlatform platform, eArchitecture arch, Version cudaVersion, Boolean compile, Type[] types) at Cudafy.Translator.CudafyTranslator.Cudafy(ePlatform platform, eArchitecture arch, Type[] types) at Cudafy.Translator.CudafyTranslator.Cudafy() 

设置VS以中断抛出的exception会在调试器的locals窗格中显示堆栈顶部的ProcessStartInfo对象。

相关的属性是:

 FileName = nvcc Arguments = -m64 -arch=sm_12 "c:\\CUDAFYSOURCETEMP.cu" -o "c:\\CUDAFYSOURCETEMP.ptx" --ptx 

本文中的一些信息解释了必须安装CUDA工具包 。 很公平。

确保C ++编译器(cl.exe)位于搜索路径上。 这个NVCC的设置实际上是整个过程中最艰难的阶段,所以请坚持下去。 阅读您仔细阅读的任何错误 – 很可能与未找到cl.exe或没有32位或64位CUDA工具包有关。

该文章讨论了工具包的第4版,但是现在可以使用版本5并且自CUDAfy v1.1起支持。

从https://developer.nvidia.com/cuda-downloads下载

请注意,64位版本的CUDA Toolkit 5.0下载量为942 MB。 如果你安装了所有东西,你需要额外的2815 MB。 仅工具包需要928 MB。

编辑安装CUDA Toolkit 5.0后,程序在同一源代码行中出现CudafyCompileException失败:

编译错误:nvcc:致命错误:在PATH中找不到编译器’cl.exe’

搜索我的系统驱动器:

 C:\>dir /s cl.exe 

这显示了VS 10.0和11.0的许多不同版本的编译器/链接器。 显然只支持cl.exe版本9和10,所以我选择了VS10.0 amd64版本,我在PATH环境变量中包含以下内容:

C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ bin \ amd64

您的路径可能会有所不同,具体取决于您的CPU。 我建议运行搜索以查看您的选项。

请注意,如果已经打开了PATH环境变量,则必须重新启动VS.

完成这些步骤后,我的基本程序成功运行。

如果您在某些时候安装了CUDA Toolkit v7.5,但也意识到最新版本的CUDAfy支持CUDA 7.0,也可能会发生这种情况。 从控制面板卸载CUDA 7.5时,某些文件/文件夹可能仍然存在。 您应该手动删除它们。 您可以使用CUDAfyViewer查看正在访问的CUDA Toolkit版本。