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()

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

将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。