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