【发布时间】:2021-04-09 19:42:51
【问题描述】:
我在一些使用 OpenACC 指令的 C++ 代码上使用pgc++ 编译器,我想知道是否有一个编译器选项可以禁用在编译代码时执行的隐式编译指示生成,如果用户忽略了所需的编译指示.例如,当使用-Minfo=accel 标志编译我自己的代码时,我看到出现以下消息:
Generating implicit copy(beam_endpoint_grid_idx,beam_endpoint_world_frame[:]) [if not already present]
Generating implicit copyin(R[:][:]) [if not already present]
Generating implicit copyin(this[:],particle_position_world_frame[:]) [if not already present]
而我想要做的是阻止pgc++ 编译器生成这些隐含的copy()、copyin() 等编译指示,而是抛出错误。有这样的选择吗?
在pgc++ man page 中进行搜索,唯一在其名称或描述中包含单词implicit 的选项是,
--implicit_include (default) --no_implicit_include
--implicit_typename (default) --no_implicit_typename
--using_std (default) --no_using_std
但不幸的是,这些并没有禁用隐式 pragma 生成。
【问题讨论】:
标签: c++ compiler-errors gpu openacc pgi