In SplinesLinearProblem2x2Blocks::solve(), two gemm operations are performed, involving bottom-left and top-right corners. Those are stored as dense matrix (2D Kokkos::View). However, the bottom-left corner contains a very small number of non-zeros (here 6 for a 4x96 block):
while the top-right corner has the following structure (once factorized as Q^-1*gamma):
Of course, dense storages for those blocks and dense gemm usage are suboptimal. We could consider improving this using conversion to sparse format (removing zeros) during factorization and using some spmv.
In
SplinesLinearProblem2x2Blocks::solve()
, twogemm
operations are performed, involving bottom-left and top-right corners. Those are stored as dense matrix (2D Kokkos::View). However, the bottom-left corner contains a very small number of non-zeros (here 6 for a4x96
block):while the top-right corner has the following structure (once factorized as
Q^-1*gamma
):Of course, dense storages for those blocks and dense gemm usage are suboptimal. We could consider improving this using conversion to sparse format (removing zeros) during factorization and using some
spmv
.@yasahi-hpc