8

我通过 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()
4

2 回答 2

11

将 VS 设置为在抛出异常时中断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 位版本是 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。

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

于 2013-01-15T13:33:13.590 回答
1

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

于 2016-04-19T02:04:00.477 回答