首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenACC:设备类型

OpenACC:设备类型
EN

Stack Overflow用户
提问于 2020-10-07 09:23:58
回答 1查看 421关注 0票数 0

我看到许多函数,如acc_get_num_devices(),需要输入设备类型。我使用了返回devtype=2的int devtype=2。

(在文档化中: acc_get_num_devices( devicetype )返回指定类型的设备数量)

这2意味着什么?有哪些设备类型?设备类型是整数吗?

(在我看来很荒谬,我在文档中找不到这些信息)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-07 15:17:48

有关使用规格说明的一般说明,请参阅device_type的2.4节。还请参阅附录A(不是规范的一部分),以了解您可能会遇到的典型设备类型的建议。

device_type用于指定特定的加速器类型,它是实现定义的。因此,可供选择的特定类型将由您正在使用的OpenACC感知编译器定义。

使用PGI编译器实现,device_type的选择应该与-ta=...编译器开关可用的选项相对应。

device_type子句在OpenACC指令上的一种典型用法是(进一步)为特定设备类型对该指令的行为进行条件化。例如,特定的优化(例如选择要使用的向量长度)可以以在特定的device_type上运行为条件。

这里是一个特定的(过时的)示例。根据实际运行的设备类型,device_type用于并行化某个特定循环,或者按顺序运行它。我说它过时了,因为我不认为-ta=radeon是最新版本的PGI OpenACC编译器的受支持配置(在17.x之后)。您可以看到device_type这个博客这个博客中使用的另一个例子。

我相信在C/C++中,数据类型是枚举类型,而在Fortran中,数据类型可能是整数。当然,在C/C++中,枚举可能有一个基本的整数关联。与其担心特定实现中特定整数值的含义,不如使用枚举/定义来引用这些值。

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

https://stackoverflow.com/questions/64241060

复制
相关文章

相似问题

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