首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >程序检查数据自动化系统的存在需要数据自动化系统?

程序检查数据自动化系统的存在需要数据自动化系统?
EN

Stack Overflow用户
提问于 2013-04-07 08:27:05
回答 6查看 7.9K关注 0票数 3

我编写了一个简单的应用程序,检查NVIDIA CUDA是否在计算机上可用。如果找到了一个具有数据自动化能力的设备,它就会显示为真。

我将应用程序发送到第二台PC上,应用程序没有运行--一个对话框显示没有找到cudart.dll。我想检查一下数据自动化系统是否存在,它要求数据自动化系统这样做:)

我使用的是CUDA5.0,VS2012,VC++11,Windows 7。

我可以以一种方式编译应用程序,即所有的数据自动化系统库都在可执行文件中?

所以情况是:

  1. 我的应用程序被编译并发送到计算机。
  2. 计算机can:
    1. 运行windows,linux (我的应用程序与系统兼容)
    2. 有或没有gpu
    3. 有没有nvidia gpu?
    4. 是否安装了数据自动化系统

  1. 只有当2.3和2.4为正数时,我的应用程序才会返回true (GPU与数据自动化系统)
EN

回答 6

Stack Overflow用户

发布于 2013-04-07 09:04:13

作为开场白,我认为编辑的顺序和步骤数是不正确的。它应该是:

  1. 程序启动并尝试加载运行时API库。
  2. 如果存在运行时库,请尝试使用它枚举设备。

如果步骤1失败,您就没有必要的运行时支持,无法使用CUDA。如果2失败,系统中没有兼容的驱动程序和GPU,不能使用CUDA。如果他们都通过了,你就可以走了。

在步骤1中,您希望在Linux上使用类似dlopen的内容,并处理返回状态。在Windows上,您可能希望使用DLL延迟加载机制 (抱歉,不是Windows程序员,不能告诉您更多)。

在这两种情况下,如果库加载,则通过适当的主机OS获取cudaGetDeviceCount的地址并调用它。这将告诉您是否存在可以枚举的兼容GPU。在你找到一个明显可用的GPU之后,你会做什么取决于你自己。我将检查计算状态,并尝试在其上建立上下文。这将确保存在一个功能齐全的运行时/驱动程序组合,并且一切正常。

票数 6
EN

Stack Overflow用户

发布于 2015-03-22 07:03:52

链接到堆栈溢出上的另一篇文章:检测-nvidia-gpus无库达 --这显示了检查库达api是否可用和可访问的整个序列。

票数 2
EN

Stack Overflow用户

发布于 2013-04-07 08:36:42

我认为,仅仅使用软件就没有可靠的方法来确保GPU是否具有Cuda功能,特别是如果我们认为Cuda是一种基于驱动程序的技术,而对于操作系统Cuda来说,如果驱动程序说Cuda不存在,那么Cuda就不存在了。

我认为最好的方法是旧的时尚方式,考虑检查这个简单网页,你会得到一个更可靠的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15860390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档