[nvc++][C++17] Regression between SDK 23.5 and 23.9

Hi,

I have a compiler crash with nvc++ compiler and C++17. It works with NVHPC<=23.5. I have seen this issue on 23.9 and 24.5 SDK at least: here is the code (I suspect the template):

template <typename _TYPE_>
TRUSTArray<_TYPE_>& TRUSTArray<_TYPE_>::operator/= (const _TYPE_ dy)
{
  if (std::is_same<_TYPE_,int>::value) throw;
  const _TYPE_ i_dy = 1 / dy;
  _TYPE_ * data = span_.data();
  bool kernelOnDevice = checkDataOnDevice();
  start_gpu_timer();
  #pragma omp target teams distribute parallel for if (kernelOnDevice)
  for(int i=0; i < size_array(); i++) data[i] *= i_dy;
  if (timer) end_gpu_timer(kernelOnDevice, "TRUSTArray<_TYPE_>::operator/= (const _TYPE_ dy)");
  return *this;
}

If I comment the pragma, it is OK. If I build my code with -std=c++14, it is OK. but we need -std=c++17 now and so we are stuck to SDK 23.5.

Thanks for your help,

Pierre

The output of the crash:

/export/home/catA/pl254994/trust/nvhpc/lib/src/LIBMPI/mpich/bin/mpicxx  -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Statistiques_temps -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/ICoCo -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Solveurs -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Framework -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Champs_dis -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/MEDimpl -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Geometrie -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Geometrie/Interpolation_IBM -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Geometrie/Decoupeur -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Postraitement -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math/Matrices -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math/SolvSys -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Schemas_Temps -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Operateurs -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Utilitaires -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Cond_Lim -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/VF/Geometrie -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/VF/Champs -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Champs -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Champs/Champs_Don -I/export/home/catA/pl254994/trust/nvhpc/src/MAIN -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBMED/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBCGNS/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBMEDCOUPLING/linux_opt/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBMPI/mpich/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBAMGX/AmgXWrapper/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBAMGX/AmgX/include -isystem /usr/local/cuda-11.6/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBPETSC/petsc/linux_opt/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBROCALUTION/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBLATAFILTER/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBICOCOAPI/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBOSQP/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBVC/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBKOKKOS/linux_opt/include -isystem /export/home/catA/pl254994/trust/nvhpc/include/EOS -isystem /export/home/catA/pl254994/trust/nvhpc/include/CoolProp -DNDEBUG -mavx2 -mp -target=gpu -gpu=cc86 -cuda -O3 -fPIC -Ktrap=fp -Kieee -noswitcherror -std=c++17 -Wno-long-long -Wall -Wshadow -Wextra -Wno-unused-parameter -Werror --display_error_number --diag_suppress1 --diag_suppress185 -Wunused-variable     -D_COMPILE_AVEC_PGCC -DTRUST_USE_CUDA -DPETSC_SKIP_COMPLEX -DMPI_ -Dlinux  -MD -MT Kernel/Math/CMakeFiles/obj_Kernel_Math.dir/TRUSTArray.cpp.o -MF CMakeFiles/obj_Kernel_Math.dir/TRUSTArray.cpp.o.d -o CMakeFiles/obj_Kernel_Math.dir/TRUSTArray.cpp.o -c /export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math/TRUSTArray.cpp -v
mpicxx for MPICH version 3.2
Export PGI_CURR_CUDA_HOME=/export/home/catA/pl254994/trust/nvhpc/env_src/gpu/install/nvhpc-24.5/Linux_x86_64/24.5/cuda/12.4
Export NVHPC_CURRENT_CUDA_HOME=/export/home/catA/pl254994/trust/nvhpc/env_src/gpu/install/nvhpc-24.5/Linux_x86_64/24.5/cuda/12.4
Export NVHPC_CURRENT_CUDA_VERSION=12.4.127
Export NVCOMPILER=/export/home/catA/pl254994/trust/nvhpc/env_src/gpu/install/nvhpc-24.5/Linux_x86_64/24.5
Export PGI=/export/home/catA/pl254994/trust/nvhpc/env_src/gpu/install/nvhpc-24.5
Create file CMakeFiles/obj_Kernel_Math.dir/TRUSTArray.cpp.o.d

/export/home/catA/pl254994/trust/nvhpc/env_src/gpu/install/nvhpc-24.5/Linux_x86_64/24.5/compilers/bin/tools/nvcpfe -- --llalign -D__GNUC__=10 -D__GNUC_MINOR__=4 -D__GNUC_PATCHLEVEL__=0 -D__unix -D__unix__ -D__linux -D__linux__ -D__NO_MATH_INLINES -D__LP64__ -D__x86_64 -D__x86_64__ -D__LONG_MAX__=9223372036854775807L '-D__SIZE_TYPE__=unsigned long int' '-D__PTRDIFF_TYPE__=long int' -D__amd64 -D__amd64__ -D__k8 -D__k8__ -D__MMX__ -D__SSE_MATH__ -D__MMX_WITH_SSE__ -D__SSE__ -D__SSE2__ -D__SSE2_MATH__ -D__SSE3__ -D__SSSE3__ -D__SSE4_1__ -D__SSE4_2__ -D__ABM__ -D__ADX__ -D__AES__ -D__AVX__ -D__AVX2__ -D__AVXVNNI__ -D__BMI__ -D__BMI2__ -D__CLFLUSHOPT__ -D__CLWB__ -D__CX16__ -D__F16C__ -D__FMA__ -D__FSGSBASE__ -D__FXSR__ -D__GFNI__ -D__HRESET__ -D__KL__ -D__LZCNT__ -D__MOVBE__ -D__MOVDIR64B__ -D__MOVDIRI__ -D__PCLMUL__ -D__PCONFIG__ -D__PKU__ -D__POPCNT__ -D__PRFCHW__ -D__PTWRITE__ -D__RDPID__ -D__RDRND__ -D__RDSEED__ -D__LAHF_SAHF__ -D__SERIALIZE__ -D__SHA__ -D__SHSTK__ -D__VAES__ -D__VPCLMULQDQ__ -D__WAITPKG__ -D__WIDEKL__ -D__XSAVE__ -D__XSAVEC__ -D__XSAVEOPT__ -D__XSAVES__ -D__PGI -D__NVCOMPILER -D_GNU_SOURCE -D_PGCG_SOURCE --c++17 -I- -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Statistiques_temps -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/ICoCo -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Solveurs -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Framework -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Champs_dis -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/MEDimpl -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Geometrie -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Geometrie/Interpolation_IBM -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Geometrie/Decoupeur -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Postraitement -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math/Matrices -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math/SolvSys -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Schemas_Temps -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Operateurs -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Utilitaires -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Cond_Lim -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/VF/Geometrie -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/VF/Champs -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Champs -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Champs/Champs_Don -I/export/home/catA/pl254994/trust/nvhpc/src/MAIN -I/export/home/catA/pl254994/trust/nvhpc/lib/src/LIBMPI/mpich/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBMED/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBCGNS/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBMEDCOUPLING/linux_opt/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBMPI/mpich/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBAMGX/AmgXWrapper/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBAMGX/AmgX/include --sys_include /usr/local/cuda-11.6/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBPETSC/petsc/linux_opt/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBROCALUTION/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBLATAFILTER/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBICOCOAPI/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBOSQP/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBVC/include --sys_include /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBKOKKOS/linux_opt/include --sys_include /export/home/catA/pl254994/trust/nvhpc/include/EOS --sys_include /export/home/catA/pl254994/trust/nvhpc/include/CoolProp --sys_include /export/home/catA/pl254994/trust/nvhpc/env_src/gpu/install/nvhpc-24.5/Linux_x86_64/24.5/compilers/include --sys_include /export/home/catA/pl254994/trust/nvhpc/env_src/gpu/install/nvhpc-24.5/Linux_x86_64/24.5/compilers/include-stdpar --sys_include /export/home/catA/pl254994/trust/nvhpc/env_src/gpu/install/nvhpc-24.5/Linux_x86_64/24.5/compilers/include-stdexec --sys_include /export/home/catA/pl254994/trust/nvhpc/env_src/gpu/install/nvhpc-24.5/Linux_x86_64/24.5/cuda/12.4/include --sys_include /export/home/catA/pl254994/spack/opt/spack/linux-fedora36-skylake/gcc-12.0.1/gcc-10.4.0-et2m6qhfw7xuwffajcitnjvduq2bv3f2/lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../../../include/c++/10.4.0 --sys_include /export/home/catA/pl254994/spack/opt/spack/linux-fedora36-skylake/gcc-12.0.1/gcc-10.4.0-et2m6qhfw7xuwffajcitnjvduq2bv3f2/lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../../../include/c++/10.4.0/x86_64-pc-linux-gnu --sys_include /export/home/catA/pl254994/spack/opt/spack/linux-fedora36-skylake/gcc-12.0.1/gcc-10.4.0-et2m6qhfw7xuwffajcitnjvduq2bv3f2/lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../../../include/c++/10.4.0/backward --sys_include /export/home/catA/pl254994/spack/opt/spack/linux-fedora36-skylake/gcc-12.0.1/gcc-10.4.0-et2m6qhfw7xuwffajcitnjvduq2bv3f2/lib/gcc/x86_64-pc-linux-gnu/10.4.0/include --sys_include /usr/local/include --sys_include /export/home/catA/pl254994/spack/opt/spack/linux-fedora36-skylake/gcc-12.0.1/gcc-10.4.0-et2m6qhfw7xuwffajcitnjvduq2bv3f2/include --sys_include /export/home/catA/pl254994/spack/opt/spack/linux-fedora36-skylake/gcc-12.0.1/gcc-10.4.0-et2m6qhfw7xuwffajcitnjvduq2bv3f2/lib/gcc/x86_64-pc-linux-gnu/10.4.0/include-fixed --sys_include /usr/include -D__PGLLVM__ -D__NVCOMPILER_LLVM__ -D__extension__= -D_OPENMP=202011 -DCUDA_VERSION=12040 -DPGI_TESLA_TARGET -D__PIC__ -D_PGI_HX -D__PGI_CUDA_ARCH__=860 -D__NVCOMPILER_CUDA_ARCH__=860 -D_CUDA -DCUDA_VERSION=12040 -D__PIC__ -DNDEBUG -D_COMPILE_AVEC_PGCC -DTRUST_USE_CUDA -DPETSC_SKIP_COMPLEX -DMPI_ -Dlinux --preinclude _cplus_preinclude.h --preinclude_macros _cplus_macros.h --gnu_version=100400 -D__pgnu_vsn=100400 --no_fixed_bp --target_gpu --mp -D_OPENMP=202011 --cuda -D__CUDACC__ -D_NVHPC_CUDA_CPP -D__NV_NO_HOST_COMPILER_CHECK --preinclude _cuda_preinclude.h --cudacap=86 --diag_suppress 450 --diag_warning 1349 --diag_suppress 827 --display_error_number --diag_suppress 1 --diag_suppress 185 --diag_warning 177 --diag_all_error --dependencies_target_to_stdout Kernel/Math/CMakeFiles/obj_Kernel_Math.dir/TRUSTArray.cpp.o -D_NVHPC_RDC --dependencies_to_file CMakeFiles/obj_Kernel_Math.dir/TRUSTArray.cpp.o.d -q -o /dev/shm/nvc++_5Xlj6MCSETLX.il /export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math/TRUSTArray.cpp -- /export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math/TRUSTArray.cpp -opt 3 -x 119 0xa10000 -x 122 0x40 -x 123 0x1000 -x 127 4 -x 127 17 -x 19 0x400000 -x 28 0x40000 -x 120 0x10000000 -x 70 0x8000 -x 122 1 -x 125 0x20000 -quad -vect 56 -y 34 16 -x 37 0x480000 -x 34 0x8 -x 32 26214400 -y 19 8 -y 35 0 -x 42 0x30 -x 39 0x40 -x 199 10 -x 39 0x80 -x 59 4 -x 6 0x100 -y 129 2 -x 129 0x8000 -tp alderlake -x 120 0x1000 -astype 0 -x 121 1 -ieee 1 -fn /export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math/TRUSTArray.cpp -il /dev/shm/nvc++_5Xlj6MCSETLX.il -x 117 0x200 -x 123 0x80000000 -x 123 4 -x 119 0x20 -def __pgnu_vsn=100400 -x 70 0x40000000 -x 183 4 -x 121 0x800 -x 6 0x20000 -autoinl 10 -x 168 400 -x 174 128000 -x 14 0x200000 -x 14 0x400000 -autoinl 10 -x 168 400 -x 174 128000 -x 14 0x200000 -x 14 0x400000 -x 249 170 -x 176 0x100 -cudacap 86 -cudaver 12040 -x 120 0x200000 -x 70 0x40000000 -x 8 0x40000000 -x 164 0x800000 -x 71 0x2000 -x 71 0x4000 -x 34 0x40000000 -x 120 0x1000000 -x 73 0x04 -x 231 0x800 -x 68 0x1 -x 39 4 -x 56 0x10 -x 26 0x10 -x 26 1 -x 56 0x4000 -accel tesla -accel tesla -x 197 0 -x 175 0 -x 203 0 -x 204 0 -x 227 0xFFFF -x 180 0x4000400 -x 121 0xc00 -x 186 0x80 -x 163 0x1 -x 186 0x80000 -cudaver 12040 -x 194 0x40000 -x 176 0x100 -cudacap 86 -cudaroot /export/home/catA/pl254994/trust/nvhpc/env_src/gpu/install/nvhpc-24.5/Linux_x86_64/24.5/cuda/12.4 -x 176 0x100 -cudacap 86 -x 180 0x4000400 -x 121 0xc00 -x 189 0x8000 -y 163 0xc0000000 -x 189 0x10 -y 189 0x4000000 -cudaroot /export/home/catA/pl254994/trust/nvhpc/env_src/gpu/install/nvhpc-24.5/Linux_x86_64/24.5/cuda/12.4 -x 187 0x40000 -x 187 0x8000000 -x 60 512 -x 176 0x100 -cudacap 86 -cudaver 12040 -x 9 1 -x 42 0x14200000 -x 136 0x11 -x 62 8 -mp -x 69 0x200 -x 69 0x400 -x 69 2 -x 137 1 -x 129 2 -y 129 0x8000 -quad -x 119 0x10000000 -x 129 0x40000000 -x 56 0x2 -x 9 1 -x 42 0x14200000 -x 136 0x11 -x 62 8 -x 24 1 -x 24 0x80000000 -x 42 0x400000 -y 129 4 -x 129 0x400 -x 28 0x08 -gnuvsn 100400 -x 69 0x200 -x 123 0x400 -x 180 0x4000000 -x 194 0x20000000 -x 251 0x2 -x 233 0x1 -x 205 2 -x 233 0x100 -x 233 0x400 -x 137 1 -x 137 0x200000 -cmdline '+nvc++ /export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math/TRUSTArray.cpp -noswitcherror -fPIC -mavx2 -mavx -mp -target=gpu -gpu=cc86 -cuda -O3 -Mvect=simd -Mflushz -Mcache_align -Mrecip-div -Mfactorize -Mno-signed-zeros -Minline_cpu_f -fPIC -Ktrap=fp -Kieee -noswitcherror -std=c++17 -Wno-long-long -Wall -Wshadow -Wextra -Wno-unused-parameter --display_error_number --diag_suppress1 --diag_suppress185 -Wunused-variable -Werror -v -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Statistiques_temps -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/ICoCo -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Solveurs -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Framework -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Champs_dis -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/MEDimpl -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Geometrie -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Geometrie/Interpolation_IBM -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Geometrie/Decoupeur -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Postraitement -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math/Matrices -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Math/SolvSys -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Schemas_Temps -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Operateurs -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Utilitaires -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Cond_Lim -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/VF/Geometrie -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/VF/Champs -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Champs -I/export/home/catA/pl254994/trust/nvhpc/src/Kernel/Champs/Champs_Don -I/export/home/catA/pl254994/trust/nvhpc/src/MAIN -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBMED/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBCGNS/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBMEDCOUPLING/linux_opt/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBMPI/mpich/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBAMGX/AmgXWrapper/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBAMGX/AmgX/include -isystem /usr/local/cuda-11.6/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBPETSC/petsc/linux_opt/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBROCALUTION/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBLATAFILTER/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBICOCOAPI/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBOSQP/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBVC/include -isystem /export/home/catA/pl254994/trust/nvhpc/lib/src/LIBKOKKOS/linux_opt/include -isystem /export/home/catA/pl254994/trust/nvhpc/include/EOS -isystem /export/home/catA/pl254994/trust/nvhpc/include/CoolProp -DNDEBUG -D_COMPILE_AVEC_PGCC -DTRUST_USE_CUDA -DPETSC_SKIP_COMPLEX -DMPI_ -Dlinux -I/export/home/catA/pl254994/trust/nvhpc/lib/src/LIBMPI/mpich/include -c -MD -MT Kernel/Math/CMakeFiles/obj_Kernel_Math.dir/TRUSTArray.cpp.o -MF CMakeFiles/obj_Kernel_Math.dir/TRUSTArray.cpp.o.d -o CMakeFiles/obj_Kernel_Math.dir/TRUSTArray.cpp.o' -asm /dev/shm/nvc++E5XljApnUr3xd.ll
nvc++-Fatal-/export/home/catA/pl254994/trust/nvhpc/env_src/gpu/install/nvhpc-24.5/Linux_x86_64/24.5/compilers/bin/tools/nvcpfe TERMINATED by signal 11

Thanks Pierre, though can you please provide a minimal reproducing example? Unfortunately I’m unable to compile the code due to the missing definitions.

-Mat

Hello Mat,

Thanks for your quick reply. When trying to write a smaller reproducer, I find a turnaround which fixed our issue.

template <typename _TYPE_>
TRUSTArray<_TYPE_>& TRUSTArray<_TYPE_>::operator/= (const _TYPE_ dy)
{
  if (std::is_same<_TYPE_,int>::value) throw;
  const _TYPE_ i_dy = 1 / dy;
  _TYPE_ * data = span_.data();
  bool kernelOnDevice = checkDataOnDevice();
  start_gpu_timer();
  int size = size_array();
  #pragma omp target teams distribute parallel for if (kernelOnDevice)
  for(int i=0; i < size; i++) data[i] *= i_dy;
  //for(int i=0; i < size_array(); i++) data[i] *= i_dy;
  if (timer) end_gpu_timer(kernelOnDevice, "TRUSTArray<_TYPE_>::operator/= (const _TYPE_ dy)");
  return *this;
}

Here is the size_array() method:

template <typename _TYPE_>
inline int TRUSTArray<_TYPE_>::size_array() const
{
  return (int)span_.size();
}

Seems a recent SDK compiler with -std=c++17 doesn’t like inlining it.

Thanks again for your answer and sorry to not provide you a standalone reproducer.

Pierre

No worries, though if you do get a chance, it would be great to have a reproducer so I can report it to engineering.