OpenACC具有一些实用程序和运行时例程,可用于基本实现同一目的。
例如,存在#pragma acc wait
和acc_wait()
或#pragma acc update [...]
和acc_update_[...]()
。
我开始在我的C++代码中主要使用运行时例程。
有区别吗?我应该优先选择另一个,还是仅仅是风格和个人喜好?
最佳答案
通常,首选使用pragma,因为其他编译器会在不启用OpenACC的情况下将其忽略。运行时API调用需要由一个宏来保护,例如“#ifdef _OPENACC”,以保持可移植性。
但是,如果您不介意添加宏保护程序或失去可移植性,则主要是样式问题。在功能上,它们是等效的。
关于c++ - 应该首选OpenACC编译指示还是运行时例程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54258683/