Hi, Qiyue,
  I don't have the exact compilers as yours (cuda-12.3 + gcc-13.2.1).  I tried petsc-3.21.5 with cuda-12.6 +  gcc-13.3.0 and it compiled fine.
  Since it was an internal compiler error, it seems the only option is to change compilers.

  Thanks.
--Junchao Zhang


On Fri, Sep 20, 2024 at 2:22 PM Qiyue Lu <qiyuelu1@gmail.com> wrote:
Sure, here it is. Thanks.

On Fri, Sep 20, 2024 at 2:07 PM Junchao Zhang <junchao.zhang@gmail.com> wrote:
Could you send the configure.log file?
--Junchao Zhang


On Fri, Sep 20, 2024 at 1:33 PM Qiyue Lu <qiyuelu1@gmail.com> wrote:
Thanks for your response. 
Here is my module loaded:
Currently Loaded Modules:
  1) craype-arm-grace     4) perftools-base/24.03.0                 7) craype/2.7.31      10) cray-libsci/24.03.0     13) default
  2) libfabric/1.15.2.0   5) xpmem/2.8.4-1.0_7.1__ga37cbd9.shasta   8) cray-dsmml/0.3.0   11) PrgEnv-gnu/8.5.0
  3) craype-network-ofi   6) gcc-native/13.2                        9) cray-mpich/8.1.29  12) cudatoolkit/23.11_12.3

And here is the configuration option now:
--with-cc=cc --with-cxx=CC --with-fc=ftn --download-f2cblaslapack=1 --with-cuda=1

That error is still there.

Best,
Qiyue Lu

On Fri, Sep 20, 2024 at 11:58 AM Junchao Zhang <junchao.zhang@gmail.com> wrote:
/u/qiyuelu1/petsc/src/vec/vec/impls/seq/cupm/cuda/../vecseqcupm_impl.hpp:1313:150: internal compiler error: in maybe_undo_parenthesized_ref, at cp/semantics.c:1740

Did you use nvidia compilers, e.g. nvc, nvc++?  If yes, you may want to change to other compilers by loading other cray PrgEnvs

--Junchao Zhang


On Fri, Sep 20, 2024 at 11:42 AM Qiyue Lu <qiyuelu1@gmail.com> wrote:
Hello,
I am trying to build the PETSc version 3.21.5 (the latest, cloned from git) version on a Grace Hopper node with this configuration options:
--with-cc=cc --with-cxx=CC --with-fc=ftn --download-f2cblaslapack=1 --with-cudac=nvcc --with-cuda=1 --with-threadsafety=1
with module cudatoolkit/23.11_12.3.

And I got this error:
===============
/u/qiyuelu1/petsc/src/vec/vec/impls/seq/cupm/cuda/../vecseqcupm_impl.hpp: In instantiation of ‘Petsc::vec::cupm::impl::VecSeq_CUPM<<anonymous> >::SetAsync(Vec, PetscScalar, PetscDeviceContext)::<lambda()> [with Petsc::device::cupm::DeviceType T = (Petsc::device::cupm::DeviceType)0]’:
/u/qiyuelu1/petsc/src/vec/vec/impls/seq/cupm/cuda/../vecseqcupm_impl.hpp:1313:157:   required from ‘struct Petsc::vec::cupm::impl::VecSeq_CUPM<<anonymous> >::SetAsync(Vec, PetscScalar, PetscDeviceContext) [with Petsc::device::cupm::DeviceType T = (Petsc::device::cupm::DeviceType)0; PetscErrorCode = int; Vec = _p_Vec*; PetscScalar = double; PetscDeviceContext = _p_PetscDeviceContext*]::<lambda()>’
/u/qiyuelu1/petsc/src/vec/vec/impls/seq/cupm/cuda/../vecseqcupm_impl.hpp:1313:167:   required from ‘static PetscErrorCode Petsc::vec::cupm::impl::VecSeq_CUPM<<anonymous> >::SetAsync(Vec, PetscScalar, PetscDeviceContext) [with Petsc::device::cupm::DeviceType T = (Petsc::device::cupm::DeviceType)0; PetscErrorCode = int; Vec = _p_Vec*; PetscScalar = double; PetscDeviceContext = _p_PetscDeviceContext*]’
/u/qiyuelu1/petsc/src/vec/vec/impls/seq/cupm/cuda/vecseqcupm.cu:7:40:   required from here
/u/qiyuelu1/petsc/src/vec/vec/impls/seq/cupm/cuda/../vecseqcupm_impl.hpp:1313:150: internal compiler error: in maybe_undo_parenthesized_ref, at cp/semantics.c:1740
       PetscCallThrust(THRUST_CALL(thrust::fill, stream, dptr, dptr + n, alpha));
           
===============

Could you please show some hints on this issue?

Thanks,
Qiyue Lu