GPU

The GPU module provides matrix-free matrix-vector (matvec) product and reduced density matrices (RDMs) compute capabilities for Chemistry Hamiltonians on Nvidia GPUs. Coupled with the bundled distributed PRIMME eigensolver, it can diagonalize molecular Hamiltonians on one node or multiple nodes with one MPI rank per GPU. It requires a build with the GPU module enabled; see the GPU installation guide.

Hamiltonians on tensor-product subspaces

For subspaces built as fq.Subspace([alpha_strs, beta_strs]).

GPUHamiltonian(hsub[, gpu_ids, ...])

GPU-accelerated real type-2 Hamiltonian for tensor-product subspace (non-MPI).

DistributedMPIGPUHamiltonian(hsub[, layout])

Wrapper for distributed GPU-backed real type-2 Hamiltonian implementations.

TileGPUResidentHamiltonian(hsub, alpha_strs, ...)

GPU-backed real type-2 Hamiltonian for distributed matrix-free matvecs.

Hamiltonians on full-length determinant (full-strs) lists

For subspaces given as a list of full determinants.

FullStrsGPUHamiltonian(operator, keys, *[, ...])

GPU-backed real type-2 Hamiltonian on an explicit set of full determinants.

Distributed eigensolver

distributed_primme_eigsh(H, k[, tol, ...])

Compute eigenpairs of a distributed real Hermitian operator with PRIMME.

Configuration

GPU settings are read from FQ_* environment variables.

GpuConfig(settings)

Stores user-supplied GPU settings.

Logging and profiling

configure_gpu_logging([mode, stream, rank, ...])

Configure GPU log output and return the installed stream handler.