PetscOffloadMask#

indicates which memory (CPU, GPU, or none) contains valid data

Synopsis#

#include <petscdevicetypes.h> 
typedef enum {
  PETSC_OFFLOAD_UNALLOCATED          = 0x0,
  PETSC_OFFLOAD_CPU                  = 0x1,
  PETSC_OFFLOAD_GPU                  = 0x2,
  PETSC_OFFLOAD_BOTH                 = 0x3,
  PETSC_OFFLOAD_VECKOKKOS_DEPRECATED = 0x100,
  PETSC_OFFLOAD_KOKKOS               = 0x100
} PetscOffloadMask;
PETSC_OFFLOAD_UNALLOCATED - no memory contains valid matrix entries; NEVER used for vectors
PETSC_OFFLOAD_GPU         - GPU has valid vector/matrix entries
PETSC_OFFLOAD_CPU         - CPU has valid vector/matrix entries
PETSC_OFFLOAD_BOTH        - Both GPU and CPU have valid vector/matrix entries and they match
PETSC_OFFLOAD_KOKKOS      - Reserved for Kokkos matrix and vector. It means the offload is managed by Kokkos, thus this flag itself cannot tell you where the valid data is.

Developer Notes#

This enum uses a function (PetscOffloadMaskToString()) to convert to string representation so cannot be used in PetscOptionsEnum().

See Also#

PetscOffloadMaskToString(), PetscOffloadMaskToMemType(), PetscOffloadMaskToDeviceCopyMode()

Level#

developer

Location#

include/petscdevicetypes.h


Edit on GitLab

Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages