#include petscsys.h typedef enum { PETSC_MEMTYPE_HOST = 0, PETSC_MEMTYPE_DEVICE = 0x01, PETSC_MEMTYPE_CUDA = 0x01, PETSC_MEMTYPE_NVSHMEM = 0x11, PETSC_MEMTYPE_HIP = 0x03, PETSC_MEMTYPE_SYCL = 0x05, } PetscMemType;
z = 0 - Host memory
z = 1 - Device memory
yyy = 000 - CUDA-related memory
yyy = 001 - HIP-related memory
yyy = 010 - SYCL-related memory
xxxxyyy1 = 0000,0001 - CUDA memory
xxxxyyy1 = 0001,0001 - CUDA NVSHMEM memory
xxxxyyy1 = 0000,0011 - HIP memory
xxxxyyy1 = 0000,0101 - SYCL memory
Other types of memory, e.g., CUDA managed memory, can be added when needed.