依赖性分析对于OpenACC编译器是强制性的吗



许多OpenACC教程都假设编译器/加速器将通过自动检查依赖关系并确保循环实际上是可并行的来检查正确性。然而,OpenACC规范似乎没有提到任何关于强制性正确性分析的内容。OpenACC编译器是否有义务检查循环是否真的可以并行化,如果不能,就放弃?

当使用"loop"指令的"auto"子句时,编译器需要分析循环,以确定它们是否与数据无关。(参见OpenACC标准的2.9.6节)。

对于"内核"构造中的循环,除非使用"独立"或"seq"子句,否则默认情况下会启用"auto"。

对于"并行"构造中的"循环"指令,默认情况下不会启用"自动",因此装饰的循环被认为是独立的。

相关内容

  • 没有找到相关文章

最新更新