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
