Hello,
When I use nvc++ to compile code file with openACC, I got the error information:
#include <opencv2/opencv.hpp>
#include
#include
#include
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include<openacc.h>
using namespace std;
using namespace cv;
int main(){
cv::Mat srcImg=cv::imread("/home/testSpace/images/blue-mountains.jpg");
if(!srcImg.data){
cout<<"The file is not loaded or does not exist"<<endl;
return -1;
}
cout<<"Matrix"<<srcImg.rows<<" "<<srcImg.cols<<endl;
Mat duplicate(srcImg.rows,srcImg.cols, CV_8UC1,Scalar::all(255) );
int i,j=0;
#pragma acc enter data create(srcImg[0:srcImg.rows][0:srcImg.cols])
{
#pragma acc update device(srcImg[:srcImg.rows][:srcImg.cols])
#pragma acc parallel loop
for(i=0;i<srcImg.rows;i++){
#pragma acc loop
for(j=0;j<srcImg.cols;j++){
srcImg.at<uchar>(i,j)=srcImg.at<uchar>(i,j)-1;
}
}
#pragma acc data copyout(srcImg[:srcImg.rows][:srcImg.cols])
}
cout<<(int)srcImg.at<uchar>(23,45)<<endl;
// return 0;
}
main:
40, Generating enter data create(srcImg)
45, Generating update device(srcImg)
Generating NVIDIA GPU code
45, #pragma acc loop gang /* blockIdx.x /
47, #pragma acc loop vector(128) / threadIdx.x */
45, Generating implicit copyin(srcImg.step.p[:1],srcImg) [if not already present]
47, Loop is parallelizable
59, Generating copyout(srcImg) [if not already present]
T1 & cv::Mat::at(int, int):
1, include âopencv.hppâ
52, include âcore.hppâ
59, include âmat.hppâ
3724, include âmat.inl.hppâ
1140, Generating implicit acc routine seq
Generating acc routine seq
Generating NVIDIA GPU code
cvflann::anyimpl::big_any_policy<std::__cxx11::basic_string<char, std::char_traits, std::allocator>>::print(std::basic_ostream<char, std::char_traits>&, void *const *):
1, include âopencv.hppâ
std::basic_ostream<T1, T2> & std::endl<char, std::char_traits>(std::basic_ostream<T1, T2> &):
1, include âopencv.hppâ
52, include âcore.hppâ
My question is 1)why I got error information â Generating copyout(srcImg) [if not already present]', and 2) the result is Matrix810 1440 libgomp: TODO.