Release Notes

cuDensityMat v0.3.0

New features:

  • Support extreme eigen-spectrum computation for arbitrary non-batched Hermitian operators.

  • Support integration with JAX XLA jitting and vector-jacobian product (VJP).

Bugs fixed:

  • Fixed a functional bug for certain mixed quantum state calculations in multi-node multi-GPU execution with more than 4 processes where cudensitymatOperatorPrepareAction() may have run indefinitely.

  • Fixed a functional bug in the multi-GPU multi-node expectation value computation that may have run into CUDENSITYMAT_INTERNAL_ERROR for some workspace buffer sizes.

  • Fixed the internal check for the number of parallel processes to be a power of two.

Compatibility notes:

  • cuDensityMat requires cuTENSOR-2.3.1 or above.

  • cuDensityMat requires cuTensorNet-2.9.0 or above.

cuDensityMat v0.2.0

New features:

  • Support vector-jacobian product (VJP) computation (backward differentiation) for non-batched single-GPU execution with dense operators only (dense elementary tensor operators and dense matrix operators).

  • Support new backward-differentiation gradient callbacks for VJP computation.

  • Support single-mode multidiagonal elementary tensor operators with an arbitrary mode extent and up to 256 non-zero diagonals.

  • Support Volta, Turing, Ampere, Ada, Hopper, and Blackwell NVIDIA GPU architectures (compute capability 7.0+)

Compatibility notes:

  • cuDensityMat requires cuTENSOR 2.2.0 or above

  • cuDensityMat now requires cuTensorNet 2.8.0 or above

  • Removed cudensitymatOperatorTermAppendGeneralProduct C API function

Known issues:

  • The multi-GPU multi-node expectation value computation may run into CUDENSITYMAT_INTERNAL_ERROR for some workspace buffer sizes. The workaround is to set the workspace buffer size to exactly match the value returned by the PrepareExpection call, or use the maximum of the workspace buffer sizes across all MPI ranks for each rank.

Bugs fixed:

  • Fixed multidiagonal elementary tensor operators of mode dimension 2 causing illegal memory access.

cuDensityMat v0.1.0

  • Support full matrix operators (operator matrices defined in the full composite space)

  • Support batched operators (both elementary tensor operators and full matrix operators)

  • Support both CPU-side and GPU-side tensor/scalar callbacks

  • Support Volta, Turing, Ampere, Ada, Hopper, and Blackwell NVIDIA GPU architectures (compute capability 7.0+)

Compatibility notes:

  • cuDensityMat requires CUDA 12 or above

  • cuDensityMat requires cuTENSOR 2.2.0 or above

  • cuDensityMat supports NVIDIA HPC SDK 21.7 or above

  • Tensor and scalar callback function signatures have changed to support operator batching

Known issues:

  • Activating cuDensityMat logging by setting environment variable CUDENSITYMAT_LOG_LEVEL while using GPU-side tensor/scalar callbacks will result in a crash

  • Multidiagonal elementary operators of mode dimension 2 can cause an illegal memory access. As a workaround, please use dense elementary operators for any elementary operator with mode dimension 2 instead. Multidiagonal elementary operators for mode dimensions larger than 2 are not affected by this issue.

cuDensityMat v0.0.5

  • Initial release

  • Single-GPU and multi-GPU/multi-node capabilities (requires MPI)

  • Support Linux x86_64 and Linux Arm64 targets

  • Support Volta, Turing, Ampere, Ada and Hopper NVIDIA GPU architectures (compute capability 7.0+)

Compatibility notes:

  • cuDensityMat requires CUDA 11.4 or above

  • cuDensityMat requires cuTENSOR 2.0.2 or above

  • cuDensityMat supports NVIDIA HPC SDK 21.7 or above