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版本。