Note we have MatCreateSeqAIJKokkosWithKokkosViews(MPI_Comm, PetscInt, PetscInt, Kokkos::View<PetscInt *> &, Kokkos::View<PetscInt *> &, Kokkos::View<PetscScalar *> &, Mat *);
Yes, I think we could provide MatCreateSeqAIJCUSPARSEWithArrays(MPI_Comm comm, PetscInt m, PetscInt n, PetscInt i[], PetscInt j[], PetscScalar a[], Mat *mat) with i, j, a on device. Note we already have MatCreateMPIAIJWithSeqAIJ(MPI_Comm comm, Mat A, Mat B, const PetscInt garray[], Mat *mat). With that, users are able to create MPIAIJ matrices on device with their own data, if they can manage the complexity. --Junchao Zhang On Tue, Jan 13, 2026 at 4:15 PM Jed Brown <[email protected]> wrote: > Note that petsc4py does have DLPack interfaces for Vec. So if you like > DLPack, you could extend those interfaces. > > Also, MatSetValuesCOO can assemble matrices in which all the data is > provided on the device. If you're generating sparse matrices on device, > that routine is likely to be useful. > > Barry Smith <[email protected]> writes: > > > Alberto, > > > > We don't have such a routine yet, but we should and it would not be > terribly difficult to implement (using pieces of PETSc that already exist > and cut and pasting them into a new function > MatCreateSeqAICUSPARSEWithArrays()). > > > > Barry > > > > > >> On Jan 13, 2026, at 1:44 PM, Alberto Cattaneo via petsc-users < > [email protected]> wrote: > >> > >> Greetings > >> I hope this email reaches you all well. I was wondering whether it was > possible to create PETSc mat objects directly from data that exists on the > GPU in AIJ format without copying? For example, either via DLPack or just > an assurance that the pointer provided to a creation method is in the > needed AIJ format? Ideally, I'd like to be able to build a PETSc > AIJCUSPARSE object out of data created by another program. I know there are > a few builder methods and paradigms, but I'm a bit confused as to which > would be ideal in this circumstance since in some sense the matrix is > already created in memory, just not as a PETSc object. > >> Thank you for your assistance, please let me know if I should provide > more information. > >> Respectfully: > >> Alberto Cattaneo >
