KokkosKernels: Make sure sparse mat-vec instantiations use same OFFSET_TYPE that Tpetra does
Created by: mhoemmen
@trilinos/tpetra KokkosKernels does explicit instantiations (not through the ETI system -- it's a different approach that works whether or not ETI is enabled) for the sparse matrix-vector multiply kernels that Tpetra and downstream packages use. The instantiations specify the offset type (type of the ptr
array in the CSR ptr
, ind
, val
triple) explicitly as size_t
for all device types, including for CUDA. However, with CUDA, Kokkos may use a different size_type than size_t
-- in particular, it may use a 32-bit integer (such as int
). This means that the instantiations are getting built, but not getting used!
Fixing this may not actually fix #226 (closed), but certainly goes along with its spirit.