Skip to content

Enable GS runs for spinors on GPUs

Sebastian Ohlmann requested to merge fix_subspace_diagonalization_gpu into develop

Description

Fix subspace diagonalization and orthogonalization for spinors on GPUs. The main changes are enabling get_points and set_points functions to deal with spinor wave functions and the corresponding memory layout. Moreover, st%d%dim needed to be inserted in some places. Also, some blas functions needed offsets for GPU runs.

I have enabled now some spinor tests to also run on GPUs. I have changed the Poisson solver to fft for the finite systems, so I might need to recenter the tests a bit; but from what I tested so far, the difference between GPU and CPU is very small for the same Poisson solver.

In this MR, I also fix a bug for systems with one complex states, for which the scalapack pzheev call returns wrong results; in this case we just set the eigenvalue and eigenvector ourselves because it is trivial.

Closes #547 (closed).

News snippet

Enable GS runs for spinors on GPUs.

Checklist

  • I have checked that my code follows the Octopus coding standards
  • I have added tests for all the new features added in this request.
Edited by Sebastian Ohlmann

Merge request reports