【发布时间】:2018-09-23 04:20:41
【问题描述】:
我想将此循环与 OpenACC 中的 "min" 函数并行,但这是不可能的。编译器编译后显示如下信息:
121行属于for(k=j+1;k
PGCC-S-0155-加速器区域无效:不允许分支进出区域 (LATSONEopenacc.cpp: 121)
主要:
121、Invalid Accelerator Region:不允许分支进出区域
常量 T1 & std::min(常量 T1 &, 常量 T1 &):
1、包含“iostream”
39、包含“ostream”
38、包含“ios”
40、包含“char_traits.h”
39、包含“stl_algobase.h”
194、生成隐式acc例程seq
生成 acc 例程 seq
生成 Tesla 代码
PGCC/x86 Linux 17.10-0:编译完成但出现严重错误
//code in c++
#pragma acc parallel loop reduction(min:mini)
for(k=j+1;k<=bi;k++){
resultt=( ((auxx[i][k]-auxx[i][j])*(auxx[i][k]-auxx[i][j]))+((auxy[i][k]-auxy[i][j])*(auxy[i][k]-auxy[i][j])));
mini=std::min(resultt,mini);
}
为了编译,我使用的是命令:
pgc++ -acc -ta=nvidia,time -Minfo=accel LATSONEopenacc.cpp -o output
谢谢
【问题讨论】: