Ground-state calculations on a GPU is an experimental feature at the moment:
it has only been implemented in the new GPAW
only parallelization over k-points
See gpaw/test/gpu/test_pw.py for an example.
The gpaw.gpu module¶
cupyis not available)
cupyxis not available)
- gpaw.gpu.is_hip = False¶
True if we are using HIP
- gpaw.gpu.as_xp(array, xp)[source]¶
Transfer array to CPU or GPU (if not already there).
Fake cupy library¶
The implementation uses cupy. In the code, we don’t do
import cupy as cp.
Instead we use
from gpaw.gpu import cupy as cp. This allows us to use a
cupy implementation so that we can run GPAW’s
cupy code without
having a physical GPU. To enable the fake
cupy module, do:
GPAW_CPUPY=1 python ...
This allows users without a GPU to find out if their code interferes with the GPU implementation, simply by running the tests.
CuPy enabled container objects¶
The following objects:
can have their data (
.data attribute) stored in a
array instead of, as normal, a
numpy.ndarray array. In additions,
these objects now have an
xp attribute that can be
object can do its operations on the GPU.
Use a GPU-aware MPI implementation and set the
GPAW_GPU when compiling
Add support for passing
cupy.ndarrayobjects to MPI