应该首选 OpenACC 编译指示或运行时例程
Should OpenACC pragmas or runtime routines be preferred?
OpenACC有一些编译指示和运行时例程,可以用来基本实现相同的事情。
例如,有#pragma acc wait
和acc_wait()
或#pragma acc update [...]
和acc_update_[...]()
。
我开始在C++代码中主要使用运行时例程。
有区别吗?我应该更喜欢一个而不是另一个,还是只是风格和个人喜好的问题?
通常,编译指示是首选的,因为它们将被其他编译器忽略,并且在未启用 OpenACC 的情况下进行编译时。 运行时 API 调用需要由宏(如"#ifdef _OPENACC")保护,以保持可移植性。
但是,如果您不介意添加宏防护或失去便携性,那么这主要是风格问题。 在功能上,它们是等效的。
相关文章:
- CMake-按正确顺序将项目与C运行时对象文件链接
- 我在c++代码中生成了一个运行时#3异常
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 删除指向指针的指针是运行时错误吗
- 如何用参数值调用函数(仅在运行时已知)
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- c++中的指针和运行时错误
- 在运行时处理类型擦除的数据-如何不重新发明轮子
- 有没有一种方法可以测量c++程序的运行时内存使用情况
- 建议在运行时将带有类实例的列表从c++导入qml
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 在同一模拟中使用静脉和静脉_ inet内容时出现运行时错误
- 读取文件时运行时的未知行为
- 函数在Windows或Linux上运行时表现不同
- 在声明中合并两个常量"std::set"(不是在运行时)
- AWS Lambda C++运行时权限被拒绝
- 应该首选 OpenACC 编译指示或运行时例程
- 指示c++应用程序在运行时在./lib子文件夹中查找动态库