graphcore-research / pyscf-ipu

PySCF on IPU
https://github.com/graphcore-research/pyscf-ipu#readme
Apache License 2.0
42 stars 2 forks source link

Initialize `eigh` by previous iteration. #44

Open AlexanderMath opened 1 year ago

AlexanderMath commented 1 year ago

Every iteration of DFT computes an eigendecomposition at (line 49). Since we compute the eigendecomposition at every iteration, we may be able to initialize the eigensolver at iteration i by the eigenvector solution from iteration i-1.

Notes:

  1. The eigensolver is implemented in tesselate.
  2. tesselate has two eigensolvers: the jacobi algorithm and the QR algorithm.
  3. The matrix may change a lot iteration 0 to iteration 1 and less onwards.
awf commented 1 year ago

Looks like we would add a all_AV_cols argument to

def ipu_jacobi_eigh(x: Array, num_iters: int = 1) -> Tuple[Array, Array]: