【发布时间】:2018-05-23 23:36:09
【问题描述】:
我编写了一个处理 cuda 加速的 c++ dll,并公开了它的一些功能以在 c# 控制台应用程序中使用。在我的工作电脑上一切正常。但是我在另一台电脑上遇到了问题:
工作电脑:i7 3770; Nvidia GT 710(支持 CUDA); CUDA 工具包:已安装
在这台电脑上可以正常使用
另一台电脑:Xeon Octa-core 2.6GHz; Nvidia Quadro 2000(GPU-Z 程序将其标记为支持 cuda); CUDA 工具包:未安装
应用程序(c# 控制台和 c++ dll)崩溃并出现错误:无法加载 dll!
第二台计算机有什么问题?
主要问题:是否需要安装 CUDA Toolkit 才能运行 cuda 加速应用程序?
如果是,那么在目标计算机上没有安装 CUDA 工具包的情况下,其他应用程序(Photoshop 等)如何做到这一点?
编辑:我发现程序因一个简单的添加函数(来自 DllImport)而崩溃,而不是因为 CUDA 函数。但是在正常工作的计算机上一切正常!
代码文件: dllmain.cpp:https://drive.google.com/open?id=1_lLmSOVB2AIgXOB-svpCJVQeaJlwQjWI
cudamain.cu: https://drive.google.com/open?id=1BkKBEt5Y528phUXNP6lq1UTY7nD8pvxy
Program.cs:https://drive.google.com/open?id=1NNTG4fr73ojvGD8qgJdCL2d0HCq2R16n
【问题讨论】:
-
当您只想运行为 CUDA 编译的程序时,不需要安装工具包。但是,您需要与 NVIDIA 驱动程序捆绑在一起的 CUDA 运行时,并且显然需要 NVIDIA grpahics 卡。像 Photoshop 这样的东西很可能不依赖于 CUDA,而是使用更通用的 OpenCL,它具有更广泛的硬件支持。
-
@HenriMenke 感谢您的意见!但是程序由于一个简单的添加功能而崩溃,并说无法加载 dll。它在我的工作计算机上运行良好。
-
你没有提供任何细节。仅仅说“它崩溃了”是不够的。不要让我们猜测。
-
@DavidHeffernan 当 c# 控制台调用使用 DllImport 声明并且最初在 dllmain.cpp 中的 add 函数时它崩溃了!我的主计算机上没有错误,但程序在其他计算机上崩溃了!
-
不要发布站点链接。在此处发布minimal reproducible example。不要说“它崩溃了”。逐字提供错误消息。