Release Notes#

cuPauliProp v0.2.0#

New features:

  • Added amplitude damping channel support via cupaulipropPrepareAmplitudeDampingChannelApplication and cupaulipropExecuteAmplitudeDampingChannelApplication

Compatibility notes:

  • cupauliprop{Prepare,Execute}CanonicalSort has been renamed to cupauliprop{Prepare,Execute}Sort.

  • Boolean isSorted/makeSorted parameters have been replaced with cupaulipropSortOrder_t enum:

    • CUPAULIPROP_SORT_ORDER_NONE: no sorting (equivalent to makeSorted=false)

    • CUPAULIPROP_SORT_ORDER_INTERNAL: the library may choose any sort order

    • CUPAULIPROP_SORT_ORDER_LITTLE_ENDIAN_BITWISE: little-endian bitwise sort (equivalent to makeSorted=true in previous release)

    Affected functions include cupaulipropCreatePauliExpansion, cupaulipropPauliExpansionView{Prepare,Compute}OperatorApplication, cupaulipropPauliExpansionView{Prepare,Execute}Sort, and cupaulipropPauliExpansionView{Prepare,Execute}Deduplication.

  • The cupaulipropContextSetStream function has been removed. A cudaStream_t stream parameter has been added to the following API functions:

    • cupaulipropPauliExpansionViewComputeOperatorApplication

    • cupaulipropPauliExpansionViewExecuteSort

    • cupaulipropPauliExpansionViewExecuteDeduplication

    • cupaulipropPauliExpansionViewExecuteTruncation

    • cupaulipropPauliExpansionViewComputeTraceWithZeroState

    • cupaulipropPauliExpansionViewComputeTraceWithExpansionView

    • cupaulipropPauliExpansionPopulateFromView

  • The PauliKind enum values have been reordered from I=0, X=1, Z=2, Y=3 to I=0, X=1, Y=2, Z=3. The meaning of CUPAULIPROP_SORT_ORDER_LITTLE_ENDIAN_BITWISE for PauliExpansion is not affected by this change. Sorting is based on the (X, Z) bit representation, not enum values.

  • The CliffordGateKind enum values have been reordered to align with PauliKind:

    Old

    New

    CUPAULIPROP_CLIFFORD_GATE_Z = 2

    CUPAULIPROP_CLIFFORD_GATE_Y = 2

    CUPAULIPROP_CLIFFORD_GATE_Y = 3

    CUPAULIPROP_CLIFFORD_GATE_Z = 3

    CUPAULIPROP_CLIFFORD_GATE_CZ = 8

    CUPAULIPROP_CLIFFORD_GATE_CY = 8

    CUPAULIPROP_CLIFFORD_GATE_CY = 9

    CUPAULIPROP_CLIFFORD_GATE_CZ = 9

    CUPAULIPROP_CLIFFORD_GATE_SQRTZ = 13

    CUPAULIPROP_CLIFFORD_GATE_SQRTY = 13

    CUPAULIPROP_CLIFFORD_GATE_SQRTY = 14

    CUPAULIPROP_CLIFFORD_GATE_SQRTZ = 14

cuPauliProp v0.1.0#

  • Initial release of cuPauliProp. We do not yet guarantee API or ABI stability between minor version updates.

  • Single-GPU capabilities only

  • Support Linux x86_64 and Linux Arm64 targets

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

Compatibility notes:

  • cuPauliProp requires CUDA 12 or above

Known issues:

  • The docstring for PauliNoiseChannel incorrectly documents the noise probability ordering as I=0, X=1, Z=2, Y=3, but the actual ordering follows I=0, X=1, Y=2, Z=3.