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