Table of Contents
Fetching ...

GPU-Accelerated Selected Basis Diagonalization with Thrust for SQD-based Algorithms

Jun Doi, Tomonori Shirakawa, Yukio Kawashima, Seiji Yunoki, Hiroshi Horii

TL;DR

This paper tackles the classical diagonalization bottleneck in SQD by delivering a GPU-native SBD backend built on the Thrust library. By flattening data structures, reworking excitation generation, and using determinant caching, the approach unlocks substantial thread-level parallelism for both half-bitstring and full-bitstring representations. Empirical results on GPU-dense systems show 35–39× per-node speedups over CPU runs and end-to-end reductions in SQD iteration time, enabling chemically meaningful scales within available memory. The work demonstrates a portable, high-performance foundation for accelerating SQD-based quantum–classical workflows on modern heterogeneous HPC platforms.

Abstract

Selected Basis Diagonalization (SBD) plays a central role in Sample-based Quantum Diagonalization (SQD), where iterative diagonalization of the Hamiltonian in selected configuration subspaces forms the dominant classical workload. We present a GPU-accelerated implementation of SBD using the Thrust library. By restructuring key components -- including configuration processing, excitation generation, and matrix-vector operations -- around fine-grained data-parallel primitives and flattened GPU-friendly data layouts, the proposed approach efficiently exploits modern GPU architectures. In our experiments, the Thrust-based SBD achieves up to $\sim$40$\times$ speedup over CPU execution and substantially reduces the total runtime of SQD iterations. These results demonstrate that GPU-native parallel primitives provide a simple, portable, and high-performance foundation for accelerating SQD-based quantum-classical workflows.

GPU-Accelerated Selected Basis Diagonalization with Thrust for SQD-based Algorithms

TL;DR

This paper tackles the classical diagonalization bottleneck in SQD by delivering a GPU-native SBD backend built on the Thrust library. By flattening data structures, reworking excitation generation, and using determinant caching, the approach unlocks substantial thread-level parallelism for both half-bitstring and full-bitstring representations. Empirical results on GPU-dense systems show 35–39× per-node speedups over CPU runs and end-to-end reductions in SQD iteration time, enabling chemically meaningful scales within available memory. The work demonstrates a portable, high-performance foundation for accelerating SQD-based quantum–classical workflows on modern heterogeneous HPC platforms.

Abstract

Selected Basis Diagonalization (SBD) plays a central role in Sample-based Quantum Diagonalization (SQD), where iterative diagonalization of the Hamiltonian in selected configuration subspaces forms the dominant classical workload. We present a GPU-accelerated implementation of SBD using the Thrust library. By restructuring key components -- including configuration processing, excitation generation, and matrix-vector operations -- around fine-grained data-parallel primitives and flattened GPU-friendly data layouts, the proposed approach efficiently exploits modern GPU architectures. In our experiments, the Thrust-based SBD achieves up to 40 speedup over CPU execution and substantially reduces the total runtime of SQD iterations. These results demonstrate that GPU-native parallel primitives provide a simple, portable, and high-performance foundation for accelerating SQD-based quantum-classical workflows.
Paper Structure (19 sections, 6 equations, 4 figures, 1 table)

This paper contains 19 sections, 6 equations, 4 figures, 1 table.

Figures (4)

  • Figure 1: Data managements for Thrust based diagonalization. The MultDataThrust is the GPU data storage accessed from CPU side, and the raw pointers for each vector is extracted in the GPU kernel classes (shown in green boxes)
  • Figure 2: Core kernel classes for mult function. The MultKernelBase class is the base class with common functions used for every task types. The raw data is extracted at the construction from the MultDataThrust class.
  • Figure 3: Overlapping data exchange between processes and task calculations by using double buffering technique. One of the two vectors is referred by tasks and also sent to another process while receiving data from another process in another vector.
  • Figure 4: Elapsed time comparison of mult function with Grace CPU and H200 GPU on Miyabi-G cluster.