我编写了一个简单的应用程序,检查NVIDIA CUDA是否在计算机上可用。如果找到了一个具有数据自动化能力的设备,它就会显示为真。
我将应用程序发送到第二台PC上,应用程序没有运行--一个对话框显示没有找到cudart.dll。我想检查一下数据自动化系统是否存在,它要求数据自动化系统这样做:)
我使用的是CUDA5.0,VS2012,VC++11,Windows 7。
我可以以一种方式编译应用程序,即所有的数据自动化系统库都在可执行文件中?
所以情况是:
true
(GPU与数据自动化系统)发布于 2013-04-07 09:04:13
作为开场白,我认为编辑的顺序和步骤数是不正确的。它应该是:
如果步骤1失败,您就没有必要的运行时支持,无法使用CUDA。如果2失败,系统中没有兼容的驱动程序和GPU,不能使用CUDA。如果他们都通过了,你就可以走了。
在步骤1中,您希望在Linux上使用类似dlopen
的内容,并处理返回状态。在Windows上,您可能希望使用DLL延迟加载机制 (抱歉,不是Windows程序员,不能告诉您更多)。
在这两种情况下,如果库加载,则通过适当的主机OS获取cudaGetDeviceCount
的地址并调用它。这将告诉您是否存在可以枚举的兼容GPU。在你找到一个明显可用的GPU之后,你会做什么取决于你自己。我将检查计算状态,并尝试在其上建立上下文。这将确保存在一个功能齐全的运行时/驱动程序组合,并且一切正常。
发布于 2015-03-22 07:03:52
链接到堆栈溢出上的另一篇文章:检测-nvidia-gpus无库达 --这显示了检查库达api是否可用和可访问的整个序列。
发布于 2013-04-07 08:36:42
我认为,仅仅使用软件就没有可靠的方法来确保GPU是否具有Cuda功能,特别是如果我们认为Cuda是一种基于驱动程序的技术,而对于操作系统Cuda来说,如果驱动程序说Cuda不存在,那么Cuda就不存在了。
我认为最好的方法是旧的时尚方式,考虑检查这个简单网页,你会得到一个更可靠的答案。
https://stackoverflow.com/questions/15860390
复制相似问题