OpenACC具有一些实用程序和运行时例程,可用于基本实现同一目的。

例如,存在#pragma acc waitacc_wait()#pragma acc update [...]acc_update_[...]()

我开始在我的C++代码中主要使用运行时例程。

有区别吗?我应该优先选择另一个,还是仅仅是风格和个人喜好?

最佳答案

通常,首选使用pragma,因为其他编译器会在不启用OpenACC的情况下将其忽略。运行时API调用需要由一个宏来保护,例如“#ifdef _OPENACC”,以保持可移植性。

但是,如果您不介意添加宏保护程序或失去可移植性,则主要是样式问题。在功能上,它们是等效的。

关于c++ - 应该首选OpenACC编译指示还是运行时例程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54258683/

10-10 12:36