【问题标题】:CUDAfy.NET giving Win32Exception: The system cannot find the file specifiedCUDAfy.NET 给出 Win32Exception:系统找不到指定的文件
【发布时间】:2023-04-02 12:50:01
【问题描述】:

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

<package id="CUDAfy.NET" version="1.12.4695.21111" targetFramework="net45" />

当我运行我的程序时,我点击了Win32Exception

系统找不到指定的文件

这发生在程序的第一行:

CudafyModule km = CudafyTranslator.Cudafy();

异常对象没有表明他们正在尝试加载什么文件。

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

编辑

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

轨迹是:

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

【问题讨论】:

    标签: c# .net cudafy.net


    【解决方案1】:

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

    EDIT 安装 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 后重新启动它。

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

    【讨论】:

    • 晚上好,我遇到了同样的问题,但我不能 100% 确定您所说的“我在我的 PATH 环境变量中包含以下内容:”是什么意思,请您对此进行扩展?路径环境变量在哪里,是VS中的设置吗? +1 顺便说一句:)。
    • @HansRudel,PATH 环境变量是一个系统范围的设置,它告诉您的计算机在哪里查找没有明确路径的请求程序。或许this question 会为您提供更多信息。
    • 非常感谢您的链接,现在更有意义了。在我发现这个问题之前,我已经在 SO 上发布了一个问题,有人填补了空白,所以我今天早上开始工作了。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-10-07
      • 1970-01-01
      • 2016-08-19
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      • 1970-01-01
      相关资源
      最近更新 更多