Release Notes

cuStateVec v1.2.0

  • We are on NVIDIA/cuQuantum GitHub Discussions! For any questions regarding (or exciting works built upon) cuQuantum, please feel free to reach out to us on GitHub Discussions.

  • This release introduces support for the Hopper GPU family.

  • Improve performance/functionality:

  • Resolve issues:

  • Other changes:

    • A conda package is released on conda-forge: conda install -c conda-forge custatevec. Users can still obtain both cuStateVec and cuTensorNet with conda install -c conda-forge cuquantum, as before.

    • A pip wheel is released on PyPI: pip install custatevec-cu11. Users can still obtain both cuStateVec and cuTensorNet with pip install cuquantum, as before.

      • Currently, the cuquantum meta-wheel points to the cuquantum-cu11 meta-wheel (which then points to custatevec-cu11 and cutensornet-cu11 wheels). This may change in a future release when a new CUDA version becomes available. Using wheels with the -cuXX suffix is encouraged.

cuStateVec v1.1.0

Compatibility notes:

  • cuStateVec requires CUDA 11.x

Limitation notes:

  • custatevecMultiDeviceSwapIndexBits() could cause segmentation fault in case a device doesn’t have peer-to-peer (P2P) access to another one. When segmentation faults occur during the API call, please check if direct access between any pair of devices is enabled by cudaDeviceEnablePeerAccess.

  • custatevecMultiDeviceSwapIndexBits() could return CUSTATEVEC_STATUS_INVALID_VALUE if a handle created on the current device is not provided. Please refer to custatevecMultiDeviceSwapIndexBits() for the details.

  • CUSTATEVEC_STATUS_INTERNAL_ERROR might be returned if a wrong device pointer is passed to the functions. If a function returns CUSTATEVEC_STATUS_INTERNAL_ERROR, please check if a correct pointer is passed and the size is correctly specified.

cuStateVec v1.0.0

API breaking changes:

Compatibility notes:

  • cuStateVec requires CUDA 11.x

Limitation notes:

  • CUSTATEVEC_STATUS_INTERNAL_ERROR might be returned if a wrong device pointer is passed to the functions. If a function returns CUSTATEVEC_STATUS_INTERNAL_ERROR, please check if a correct pointer is passed and the size is correctly specified.

cuStateVec v0.1.1

  • Support for the NVIDIA cuQuantum Appliance (see here):

    • Extensions for the batch-measure and sampler APIs to accept state vector partitions across multiple GPUs

    • Optimized state vector element swap algorithm for multiple GPUs

    • Note: the multi-GPU features & optimizations are currently available only in the cuQuantum Appliance

cuStateVec v0.1.0

  • Add support for Linux ppc64le

  • Add new APIs:

    • Gate application for generalized permutation matrices

    • Expectation values of Pauli strings

    • Accessor to get/set state vector elements

Compatibility notes:

  • cuStateVec requires CUDA 11.4 or above

  • cuStateVec requires NVIDIA HPC SDK 21.11 or above

Limitation notes:

  • CUSTATEVEC_STATUS_INTERNAL_ERROR might be returned if a wrong device pointer is passed to the functions. If a function returns CUSTATEVEC_STATUS_INTERNAL_ERROR, please check if a correct pointer is passed and the size is correctly specified.

cuStateVec v0.0.1

  • Initial release

  • Support Linux x86_64, Linux Arm64

  • Support Volta and Ampere architectures (compute capability 7.0+)

Compatibility notes:

  • cuStateVec requires CUDA 11.4 or above

  • cuStateVec requires NVIDIA HPC SDK 21.7 or above

Limitation notes:

  • This release is optimized for NVIDIA A100 and V100 GPUs.

  • CUSTATEVEC_STATUS_INTERNAL_ERROR might be returned if a wrong device pointer is passed to the functions. If a function returns CUSTATEVEC_STATUS_INTERNAL_ERROR, please check if a correct pointer is passed and the size is correctly specified.

  • Performance optimization is planned in future releases.