我已经通过NuGet添加了对CUDAfy.NET库的引用。
<package id="CUDAfy.NET" version="1.12.4695.21111" targetFramework="net45" />
当我运行程序时,我点击Win32Exception
:
系统找不到指定的文件
这发生在程序的第一行:
CudafyModule km = CudafyTranslator.Cudafy();
异常对象没有指示他们正在尝试加载哪个文件。
我怎样才能解决这个问题?
修改
在使用.NET 4.0在VS2010中运行Codeplex下载的捆绑示例时,我看到了相同的异常。
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()
答案 0 :(得分:11)
设置VS以中断抛出的异常会在调试器的locals窗格中显示堆栈顶部的ProcessStartInfo
对象。
相关属性是:
FileName = nvcc
Arguments = -m64 -arch=sm_12 "c:\<path>\CUDAFYSOURCETEMP.cu" -o "c:\<path>\CUDAFYSOURCETEMP.ptx" --ptx
this article中的一些信息说明必须安装 CUDA Toolkit 。很公平。
确保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.
完成这些步骤后,我的基本程序成功运行。
答案 1 :(得分:1)
如果您在某个时候安装了CUDA Toolkit v7.5,但也意识到最新版本的CUDAfy支持CUDA 7.0,也可能会发生这种情况。 从控制面板卸载CUDA 7.5时,某些文件/文件夹可能仍然存在。您应该手动删除它们。您可以使用CUDAfyViewer查看正在访问哪个版本的CUDA Toolkit。