0

我目前正在编写一份关于编译器级别自动并行化技术状态的报告。关于 OpenACC 标准,有几种编译器可用,例如 PGI 编译器、CAPS 或 CRAY 编译器。但是,我想知道 CAPS 编译器是否有特定的限制,OpenACC 标准中没有记录这些限制?我知道,2.0a 可能存在限制,因为该标准尚未完全实施,但我应该注意哪些陷阱?

4

1 回答 1

1

当人们依赖自动并行化时,OpenACC-2.0 最常见的问题是标量是隐式复制(在内核中)或firstprivate(在并行部分中)。这意味着除非编译器能够私有化这些标量,否则包含此类标量的循环的自动并行化(如果写入它们)可能会失败(即,不会将循环“提升”为并行执行)。目前,CAPS 编译器并没有积极地将标量私有化,因此自动并行化可能不会像您期望的那样工作。这是否回答你的问题?

于 2014-02-19T10:09:30.780 回答