The matrix multiplications take up a sizeable amount of time and could easily be put on cuBLAS or similar. It may also be feasible to do the diagonalisations using a CUDA library, but the fact that Spirit uses the library Spectra may be a problem here.
For the case of eventual sparse matrix optimisations, cuSparse would also be available.
The matrix multiplications take up a sizeable amount of time and could easily be put on cuBLAS or similar. It may also be feasible to do the diagonalisations using a CUDA library, but the fact that Spirit uses the library Spectra may be a problem here.
For the case of eventual sparse matrix optimisations, cuSparse would also be available.