首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从代码的主机部分获得GPU的当前计算能力?

如何从代码的主机部分获得GPU的当前计算能力?
EN

Stack Overflow用户
提问于 2017-11-21 11:34:03
回答 1查看 306关注 0票数 2

我试着使用__CUDA_ARCH__,但我在某个地方读到,这只适用于代码的设备部分。之后,我在github:链接上看到了下面的代码

有什么更好的方法来实现这一点吗?

我之所以问这个问题,是因为我想确定(在主机代码上) GPU是否支持统一内存,在这种情况下,会发生cudaMallocManaged或cudaMallocs && cudaMemcpys。

我想要做的事情的例子:

代码语言:javascript
运行
复制
int main() {
  // IF CUDA >= 6.0 && COMPUTE CAPABILITY >= 3.0
      // USE cudaMallocManaged
  // ELSE
      // USE cudaMallocs && cudaMemcpys
  // END IF
  return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-21 13:50:31

这里似乎涉及两个问题:

  1. 如何在编译时查询正在为特定代码编译的CUDA运行时API版本,以便确定是否可以安全地使用某些只在较新的运行时API版本中出现的运行时API元素(例如与托管内存相关联的元素)? 这里已经讨论过一种方法。作为这一特定案例的浓缩版,您可以这样做: #包括 . //测试6.或更高版本#如果CUDART_VERSION >= 6000 //安全使用,例如cudaMallocManaged()此处#cudaMallocManaged //例如不要在这里使用托管内存API #endif
  2. 如何确定是否可以在运行时使用托管内存? 正如注释中已经提到的,如果您已经确定正在编译的CUDA版本是CUDA6.0或更高版本(例如,参见上文),那么您应该在尝试使用cudaMallocManaged之前测试对托管内存的支持。deviceQuery code示例代码指示运行时测试功能的通用方法(例如使用cudaGetDeviceProperties,测试managedMemSupported属性)。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47412128

复制
相关文章

相似问题

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