Being AMD is far more embarrassing, given that they copied CUDA and CUDA libraries but chickened out, making small changes that make writing CUDA/HIP portable code very difficult.
On Jul 31, 2025, at 11:05 AM, Junchao Zhang <[email protected]> wrote:
What would embarrass me more is to copy the same code to MatGetDiagonal_SeqAIJHIPSPARSE.
--Junchao Zhang
On Wed, Jul 30, 2025 at 1:34 PM Barry Smith <[email protected] <mailto:[email protected]>> wrote:
We absolutely should have a MatGetDiagonal_SeqAIJCUSPARSE(). It's somewhat embarrassing that we don't provide this.
I have found some potential code at https://urldefense.us/v3/__https://stackoverflow.com/questions/60311408/how-...
Barry
On Jul 28, 2025, at 11:43 AM, Junchao Zhang <[email protected] <mailto:[email protected]>> wrote:
Yes, MatGetDiagonal_SeqAIJCUSPARSE hasn't been implemented. petsc/cuda and petsc/kokkos backends are separate code. If petsc/kokkos meet your needs, then just use them. For petsc users, we hope it will be just a difference of extra --download-kokkos --download-kokkos-kernels in configuration.
--Junchao Zhang
On Mon, Jul 28, 2025 at 2:51 AM LEDAC Pierre <[email protected] <mailto:[email protected]>> wrote:
Hello all,
We are solving with PETSc a linear system updated every time step (constant stencil but coefficients changing).
The matrix is preallocated once with MatSetPreallocationCOO() then filled each time step with MatSetValuesCOO() and we use device pointers for coo_i, coo_j, and coefficients values.
It is working fine with a GMRES Ksp solver and PC Jacobi but we are surprised to see that every time step, during PCSetUp, MatGetDiagonal_SeqAIJ is called whereas the matrix is on the device. Looking at the API, it seems there is no MatGetDiagonal_SeqAIJCUSPARSE() but a MatGetDiagonal_SeqAIJKOKKOS().
Does it mean we should use Kokkos backend in PETSc to have Jacobi preconditioner built directly on device ? Or I am doing something wrong ?
NB: Gmres is running well on device.
I could use -ksp_reuse_preconditioner to avoid Jacobi being recreated each solve on host but it increases significantly the number of iterations.
Thanks,
<pastedImage.png>
Pierre LEDAC Commissariat à l’énergie atomique et aux énergies alternatives Centre de SACLAY DES/ISAS/DM2S/SGLS/LCAN Bâtiment 451 – point courrier n°41 F-91191 Gif-sur-Yvette +33 1 69 08 04 03 +33 6 83 42 05 79