CUDAfy.NET给出Win32Exception:系统找不到指定的文件
本文关键字:文件 找不到 系统 NET 给出 Win32Exception CUDAfy | 更新日期: 2023-09-27 17:53:44
我通过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轨迹为:
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设置为在抛出异常时中断,会在调试器的locals窗格中显示堆栈顶部的ProcessStartInfo
对象。
相关属性为:
FileName = nvcc
Arguments = -m64 -arch=sm_12 "c:'<path>'CUDAFYSOURCETEMP.cu" -o "c:'<path>'CUDAFYSOURCETEMP.ptx" --ptx
本文中的一些信息解释了必须安装CUDA Toolkit。很公平。
请确保C++编译器(cl.exe(位于搜索路径上。NVCC的这个设置实际上是整个过程中最艰难的阶段,所以请坚持下去。仔细阅读您收到的任何错误-很可能是因为找不到cl.exe或没有32位或64位CUDA工具包。
这篇文章讨论了该工具包的第4版,但第5版现在可用,并且自CUDAfy v1.1以来一直受支持。
下载自https://developer.nvidia.com/cuda-downloads
请注意,CUDA Toolkit 5.0的64位版本是942MB的下载。如果你安装了所有东西,你将需要额外的2815MB。仅工具包就需要928 MB。
EDIT安装CUDA Toolkit 5.0后,程序失败,在同一源行出现CudafyCompileException
:
编译错误:nvcc:致命错误:在PATH 中找不到编译器"cl.exe">
正在搜索我的系统驱动器:
C:'>dir /s cl.exe
这显示了VS10.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。