Hello,
I have an existing OpenACC code that works okay with V100 and A100, It was developed using an older version of HPC SDK. The code is a mix of CUDA, OpenACC and MPI. I am now developing the code on RTX A5000 and I am using HPC SDK 24.9.
The compile process seems okay but when I run the code. I got the following error message:
Accelerator Fatal Error: This file was compiled: -acc=gpu -gpu=cc80 -gpu=cc86
Rebuild this file with -gpu=cc86 to use NVIDIA Tesla GPU 0
Rebuild this file with -gpu=cc86 to use NVIDIA Tesla GPU 1
Rebuild this file with -gpu=cc86 to use NVIDIA Tesla GPU 2
File: /home/gpu/xcode/lib/sys/inc/utils/proto.h
Function: _Z7setvgpuIdEviiiT_PS0_i:163
Line: 168
--------------------------------------------------------------------------
Primary job terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:
Process name: [[32479,1],0]
Exit code: 1
I am compiling the code with the following option:
CCMP=nvc++
PCCMP=mpicxx
COPT=-fast -acc -Minfo=accel -gpu=cc86,nordc,cuda12.6 -Mcuda $(DEFS) -fPIC -Wall
The error points to a function in a header file “proto.h” at line 168. The function is defined as:
template < typename type > void setvgpu( Int ist, Int ien, Int n, type val, type *sdata, Int nq )
{
Int i,iq;
#pragma acc parallel loop gang vector\
present(sdata[0:n*nq]) \
default(none)
for(iq=ist; iq<ien; iq++)
{
for( i=0;i<n;i++ )
{
sdata[ADDR(i,iq,nq)] = val;
}
}
};
What I am really confused is that I am compiling with “-gpu=cc86”, but the error says “Accelerator Fatal Error: This file was compiled: -acc=gpu -gpu=cc80 -gpu=cc86”.
I would be very grateful if anyone could offer some advice.
Many thanks,
Feng