Skip to content

Commit db47013

Browse files
committed
Merge branch 'release-v24.08' into 'main'
Release v24.08 See merge request cuda-hpc-libraries/cuquantum-sdk/cuquantum-public!28
2 parents 788c048 + af5ac75 commit db47013

94 files changed

Lines changed: 4466 additions & 373 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

python/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Please visit the [NVIDIA cuQuantum Python documentation](https://docs.nvidia.com/cuda/cuquantum/latest/python).
66

77
For instructions on installing *cuQuantum Python*, refer to our
8-
[getting started section](../getting_started/getting_started.rst)
8+
[getting started section](../getting-started/index.rst)
99

1010
## Building and installing cuQuantum Python from source
1111

@@ -15,8 +15,8 @@ The build-time dependencies of the cuQuantum Python package include:
1515

1616
* CUDA Toolkit 11.x or 12.x
1717
* cuStateVec 1.4.0+
18-
* cuTensorNet 2.4.0+
19-
* Python 3.9+
18+
* cuTensorNet 2.5.0+
19+
* Python 3.10+
2020
* Cython >=0.29.22,<3
2121
* pip 21.3.1+
2222
* [packaging](https://packaging.pypa.io/en/latest/)
@@ -57,8 +57,8 @@ Runtime dependencies of the cuQuantum Python package include:
5757
* Driver: Linux (450.80.02+ for CUDA 11, 525.60.13+ for CUDA 12)
5858
* CUDA Toolkit 11.x or 12.x
5959
* cuStateVec 1.4.0+
60-
* cuTensorNet 2.4.0+
61-
* Python 3.9+
60+
* cuTensorNet 2.5.0+
61+
* Python 3.10+
6262
* NumPy v1.21+
6363
* CuPy v13.0.0+ (see [installation guide](https://docs.cupy.dev/en/stable/install.html))
6464
* PyTorch v1.10+ (optional, see [installation guide](https://pytorch.org/get-started/locally/))
@@ -96,4 +96,4 @@ variable `CUDA_PATH` is not set.
9696

9797
## Citing cuQuantum
9898

99-
Pleae click this Zenodo badge to see the citation format: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6385574.svg)](https://doi.org/10.5281/zenodo.6385574)
99+
Please click this Zenodo badge to see the citation format: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6385574.svg)](https://doi.org/10.5281/zenodo.6385574)

python/builder/pep517.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def get_requires_for_build_wheel(config_settings=None):
3131
# 22.3 by setuptools, so we must follow the same practice in the constraints;
3232
# also, we don't need the patch number here
3333
cuqnt_require = [f'custatevec-cu{utils.cuda_major_ver}~=1.6', # ">=1.6.0,<2"
34-
f'cutensornet-cu{utils.cuda_major_ver}~=2.4', # ">=2.4.0,<3"
34+
f'cutensornet-cu{utils.cuda_major_ver}~=2.5', # ">=2.5.0,<3"
3535
]
3636

3737
return _build_meta.get_requires_for_build_wheel(config_settings) + cuqnt_require

python/cuquantum/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
from cuquantum import custatevec
66
from cuquantum import cutensornet
77
from cuquantum.cutensornet import (
8-
contract, contract_path, einsum, einsum_path, tensor, tensor_qualifiers_dtype, Network, BaseCUDAMemoryManager, MemoryPointer,
9-
NetworkOptions, OptimizerInfo, OptimizerOptions, PathFinderOptions, ReconfigOptions, SlicerOptions, CircuitToEinsum)
8+
contract, contract_path, einsum, einsum_path, tensor, tensor_qualifiers_dtype, BaseCUDAMemoryManager, CircuitToEinsum, MemoryPointer,
9+
Network, NetworkOptions, OptimizerInfo, OptimizerOptions, PathFinderOptions,
10+
ReconfigOptions, SlicerOptions)
1011
from cuquantum._utils import ComputeType, cudaDataType, libraryPropertyType
1112
from cuquantum._version import __version__
1213

python/cuquantum/_utils.pyx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ class ComputeType(IntEnum):
111111
COMPUTE_32I = 1 << 9
112112
COMPUTE_16BF = 1 << 10
113113
COMPUTE_TF32 = 1 << 12
114+
COMPUTE_3XTF32 = 1 << 13
114115

115116

116117
# TODO: use those exposed by CUDA Python instead, but before removing these

python/cuquantum/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
# Note: cuQuantum Python follows the cuQuantum SDK version, which is now
66
# switched to YY.MM and is different from individual libraries' (semantic)
77
# versioning scheme.
8-
__version__ = '24.03.0'
8+
__version__ = '24.08.0'

python/cuquantum/custatevec/_internal/custatevec.pxd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ cdef custatevecStatus_t _custatevecAbs2SumArrayBatched(custatevecHandle_t handle
7979
cdef custatevecStatus_t _custatevecCollapseByBitStringBatchedGetWorkspaceSize(custatevecHandle_t handle, const uint32_t nSVs, const custatevecIndex_t* bitStrings, const double* norms, size_t* extraWorkspaceSizeInBytes) except* nogil
8080
cdef custatevecStatus_t _custatevecCollapseByBitStringBatched(custatevecHandle_t handle, void* batchedSv, cudaDataType_t svDataType, const uint32_t nIndexBits, const uint32_t nSVs, const custatevecIndex_t svStride, const custatevecIndex_t* bitStrings, const int32_t* bitOrdering, const uint32_t bitStringLen, const double* norms, void* extraWorkspace, size_t extraWorkspaceSizeInBytes) except* nogil
8181
cdef custatevecStatus_t _custatevecMeasureBatched(custatevecHandle_t handle, void* batchedSv, cudaDataType_t svDataType, const uint32_t nIndexBits, const uint32_t nSVs, const custatevecIndex_t svStride, custatevecIndex_t* bitStrings, const int32_t* bitOrdering, const uint32_t bitStringLen, const double* randnums, custatevecCollapseOp_t collapse) except* nogil
82-
cdef custatevecStatus_t _custatevecComputeExpectationBatchedGetWorkspaceSize(custatevecHandle_t handle, cudaDataType_t svDataType, const uint32_t nIndexBits, const uint32_t nSVs, const custatevecIndex_t svStride, const void* matrices, cudaDataType_t matrixDataType, custatevecMatrixLayout_t layout, const uint32_t nMatrices, const uint32_t nBasisBits, custatevecComputeType_t computeType, size_t* extraWorkspaceSizeInBytes) except* nogil
83-
cdef custatevecStatus_t _custatevecComputeExpectationBatched(custatevecHandle_t handle, const void* batchedSv, cudaDataType_t svDataType, const uint32_t nIndexBits, const uint32_t nSVs, custatevecIndex_t svStride, double2* expectationValues, const void* matrices, cudaDataType_t matrixDataType, custatevecMatrixLayout_t layout, const uint32_t nMatrices, const int32_t* basisBits, const uint32_t nBasisBits, custatevecComputeType_t computeType, void* extraWorkspace, size_t extraWorkspaceSizeInBytes) except* nogil
8482
cdef custatevecStatus_t _custatevecSubSVMigratorCreate(custatevecHandle_t handle, custatevecSubSVMigratorDescriptor_t* migrator, void* deviceSlots, cudaDataType_t svDataType, int nDeviceSlots, int nLocalIndexBits) except* nogil
8583
cdef custatevecStatus_t _custatevecSubSVMigratorDestroy(custatevecHandle_t handle, custatevecSubSVMigratorDescriptor_t migrator) except* nogil
8684
cdef custatevecStatus_t _custatevecSubSVMigratorMigrate(custatevecHandle_t handle, custatevecSubSVMigratorDescriptor_t migrator, int deviceSlotIndex, const void* srcSubSV, void* dstSubSV, custatevecIndex_t begin, custatevecIndex_t end) except* nogil
85+
cdef custatevecStatus_t _custatevecComputeExpectationBatchedGetWorkspaceSize(custatevecHandle_t handle, cudaDataType_t svDataType, const uint32_t nIndexBits, const uint32_t nSVs, const custatevecIndex_t svStride, const void* matrices, cudaDataType_t matrixDataType, custatevecMatrixLayout_t layout, const uint32_t nMatrices, const uint32_t nBasisBits, custatevecComputeType_t computeType, size_t* extraWorkspaceSizeInBytes) except* nogil
86+
cdef custatevecStatus_t _custatevecComputeExpectationBatched(custatevecHandle_t handle, const void* batchedSv, cudaDataType_t svDataType, const uint32_t nIndexBits, const uint32_t nSVs, custatevecIndex_t svStride, double2* expectationValues, const void* matrices, cudaDataType_t matrixDataType, custatevecMatrixLayout_t layout, const uint32_t nMatrices, const int32_t* basisBits, const uint32_t nBasisBits, custatevecComputeType_t computeType, void* extraWorkspace, size_t extraWorkspaceSizeInBytes) except* nogil

python/cuquantum/custatevec/_internal/custatevec_linux.pyx

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,11 @@ cdef void* __custatevecAbs2SumArrayBatched = NULL
102102
cdef void* __custatevecCollapseByBitStringBatchedGetWorkspaceSize = NULL
103103
cdef void* __custatevecCollapseByBitStringBatched = NULL
104104
cdef void* __custatevecMeasureBatched = NULL
105-
cdef void* __custatevecComputeExpectationBatchedGetWorkspaceSize = NULL
106-
cdef void* __custatevecComputeExpectationBatched = NULL
107105
cdef void* __custatevecSubSVMigratorCreate = NULL
108106
cdef void* __custatevecSubSVMigratorDestroy = NULL
109107
cdef void* __custatevecSubSVMigratorMigrate = NULL
108+
cdef void* __custatevecComputeExpectationBatchedGetWorkspaceSize = NULL
109+
cdef void* __custatevecComputeExpectationBatched = NULL
110110

111111

112112
cdef void* load_library() except* nogil:
@@ -602,20 +602,6 @@ cdef int _check_or_init_custatevec() except -1 nogil:
602602
handle = load_library()
603603
__custatevecMeasureBatched = dlsym(handle, 'custatevecMeasureBatched')
604604

605-
global __custatevecComputeExpectationBatchedGetWorkspaceSize
606-
__custatevecComputeExpectationBatchedGetWorkspaceSize = dlsym(RTLD_DEFAULT, 'custatevecComputeExpectationBatchedGetWorkspaceSize')
607-
if __custatevecComputeExpectationBatchedGetWorkspaceSize == NULL:
608-
if handle == NULL:
609-
handle = load_library()
610-
__custatevecComputeExpectationBatchedGetWorkspaceSize = dlsym(handle, 'custatevecComputeExpectationBatchedGetWorkspaceSize')
611-
612-
global __custatevecComputeExpectationBatched
613-
__custatevecComputeExpectationBatched = dlsym(RTLD_DEFAULT, 'custatevecComputeExpectationBatched')
614-
if __custatevecComputeExpectationBatched == NULL:
615-
if handle == NULL:
616-
handle = load_library()
617-
__custatevecComputeExpectationBatched = dlsym(handle, 'custatevecComputeExpectationBatched')
618-
619605
global __custatevecSubSVMigratorCreate
620606
__custatevecSubSVMigratorCreate = dlsym(RTLD_DEFAULT, 'custatevecSubSVMigratorCreate')
621607
if __custatevecSubSVMigratorCreate == NULL:
@@ -636,6 +622,20 @@ cdef int _check_or_init_custatevec() except -1 nogil:
636622
if handle == NULL:
637623
handle = load_library()
638624
__custatevecSubSVMigratorMigrate = dlsym(handle, 'custatevecSubSVMigratorMigrate')
625+
626+
global __custatevecComputeExpectationBatchedGetWorkspaceSize
627+
__custatevecComputeExpectationBatchedGetWorkspaceSize = dlsym(RTLD_DEFAULT, 'custatevecComputeExpectationBatchedGetWorkspaceSize')
628+
if __custatevecComputeExpectationBatchedGetWorkspaceSize == NULL:
629+
if handle == NULL:
630+
handle = load_library()
631+
__custatevecComputeExpectationBatchedGetWorkspaceSize = dlsym(handle, 'custatevecComputeExpectationBatchedGetWorkspaceSize')
632+
633+
global __custatevecComputeExpectationBatched
634+
__custatevecComputeExpectationBatched = dlsym(RTLD_DEFAULT, 'custatevecComputeExpectationBatched')
635+
if __custatevecComputeExpectationBatched == NULL:
636+
if handle == NULL:
637+
handle = load_library()
638+
__custatevecComputeExpectationBatched = dlsym(handle, 'custatevecComputeExpectationBatched')
639639

640640
__py_custatevec_init = True
641641
return 0
@@ -849,12 +849,6 @@ cpdef dict _inspect_function_pointers():
849849
global __custatevecMeasureBatched
850850
data["__custatevecMeasureBatched"] = <intptr_t>__custatevecMeasureBatched
851851

852-
global __custatevecComputeExpectationBatchedGetWorkspaceSize
853-
data["__custatevecComputeExpectationBatchedGetWorkspaceSize"] = <intptr_t>__custatevecComputeExpectationBatchedGetWorkspaceSize
854-
855-
global __custatevecComputeExpectationBatched
856-
data["__custatevecComputeExpectationBatched"] = <intptr_t>__custatevecComputeExpectationBatched
857-
858852
global __custatevecSubSVMigratorCreate
859853
data["__custatevecSubSVMigratorCreate"] = <intptr_t>__custatevecSubSVMigratorCreate
860854

@@ -863,6 +857,12 @@ cpdef dict _inspect_function_pointers():
863857

864858
global __custatevecSubSVMigratorMigrate
865859
data["__custatevecSubSVMigratorMigrate"] = <intptr_t>__custatevecSubSVMigratorMigrate
860+
861+
global __custatevecComputeExpectationBatchedGetWorkspaceSize
862+
data["__custatevecComputeExpectationBatchedGetWorkspaceSize"] = <intptr_t>__custatevecComputeExpectationBatchedGetWorkspaceSize
863+
864+
global __custatevecComputeExpectationBatched
865+
data["__custatevecComputeExpectationBatched"] = <intptr_t>__custatevecComputeExpectationBatched
866866

867867
return data
868868

@@ -1551,26 +1551,6 @@ cdef custatevecStatus_t _custatevecMeasureBatched(custatevecHandle_t handle, voi
15511551
handle, batchedSv, svDataType, nIndexBits, nSVs, svStride, bitStrings, bitOrdering, bitStringLen, randnums, collapse)
15521552

15531553

1554-
cdef custatevecStatus_t _custatevecComputeExpectationBatchedGetWorkspaceSize(custatevecHandle_t handle, cudaDataType_t svDataType, const uint32_t nIndexBits, const uint32_t nSVs, const custatevecIndex_t svStride, const void* matrices, cudaDataType_t matrixDataType, custatevecMatrixLayout_t layout, const uint32_t nMatrices, const uint32_t nBasisBits, custatevecComputeType_t computeType, size_t* extraWorkspaceSizeInBytes) except* nogil:
1555-
global __custatevecComputeExpectationBatchedGetWorkspaceSize
1556-
_check_or_init_custatevec()
1557-
if __custatevecComputeExpectationBatchedGetWorkspaceSize == NULL:
1558-
with gil:
1559-
raise FunctionNotFoundError("function custatevecComputeExpectationBatchedGetWorkspaceSize is not found")
1560-
return (<custatevecStatus_t (*)(custatevecHandle_t, cudaDataType_t, const uint32_t, const uint32_t, const custatevecIndex_t, const void*, cudaDataType_t, custatevecMatrixLayout_t, const uint32_t, const uint32_t, custatevecComputeType_t, size_t*) nogil>__custatevecComputeExpectationBatchedGetWorkspaceSize)(
1561-
handle, svDataType, nIndexBits, nSVs, svStride, matrices, matrixDataType, layout, nMatrices, nBasisBits, computeType, extraWorkspaceSizeInBytes)
1562-
1563-
1564-
cdef custatevecStatus_t _custatevecComputeExpectationBatched(custatevecHandle_t handle, const void* batchedSv, cudaDataType_t svDataType, const uint32_t nIndexBits, const uint32_t nSVs, custatevecIndex_t svStride, double2* expectationValues, const void* matrices, cudaDataType_t matrixDataType, custatevecMatrixLayout_t layout, const uint32_t nMatrices, const int32_t* basisBits, const uint32_t nBasisBits, custatevecComputeType_t computeType, void* extraWorkspace, size_t extraWorkspaceSizeInBytes) except* nogil:
1565-
global __custatevecComputeExpectationBatched
1566-
_check_or_init_custatevec()
1567-
if __custatevecComputeExpectationBatched == NULL:
1568-
with gil:
1569-
raise FunctionNotFoundError("function custatevecComputeExpectationBatched is not found")
1570-
return (<custatevecStatus_t (*)(custatevecHandle_t, const void*, cudaDataType_t, const uint32_t, const uint32_t, custatevecIndex_t, double2*, const void*, cudaDataType_t, custatevecMatrixLayout_t, const uint32_t, const int32_t*, const uint32_t, custatevecComputeType_t, void*, size_t) nogil>__custatevecComputeExpectationBatched)(
1571-
handle, batchedSv, svDataType, nIndexBits, nSVs, svStride, expectationValues, matrices, matrixDataType, layout, nMatrices, basisBits, nBasisBits, computeType, extraWorkspace, extraWorkspaceSizeInBytes)
1572-
1573-
15741554
cdef custatevecStatus_t _custatevecSubSVMigratorCreate(custatevecHandle_t handle, custatevecSubSVMigratorDescriptor_t* migrator, void* deviceSlots, cudaDataType_t svDataType, int nDeviceSlots, int nLocalIndexBits) except* nogil:
15751555
global __custatevecSubSVMigratorCreate
15761556
_check_or_init_custatevec()
@@ -1599,3 +1579,23 @@ cdef custatevecStatus_t _custatevecSubSVMigratorMigrate(custatevecHandle_t handl
15991579
raise FunctionNotFoundError("function custatevecSubSVMigratorMigrate is not found")
16001580
return (<custatevecStatus_t (*)(custatevecHandle_t, custatevecSubSVMigratorDescriptor_t, int, const void*, void*, custatevecIndex_t, custatevecIndex_t) nogil>__custatevecSubSVMigratorMigrate)(
16011581
handle, migrator, deviceSlotIndex, srcSubSV, dstSubSV, begin, end)
1582+
1583+
1584+
cdef custatevecStatus_t _custatevecComputeExpectationBatchedGetWorkspaceSize(custatevecHandle_t handle, cudaDataType_t svDataType, const uint32_t nIndexBits, const uint32_t nSVs, const custatevecIndex_t svStride, const void* matrices, cudaDataType_t matrixDataType, custatevecMatrixLayout_t layout, const uint32_t nMatrices, const uint32_t nBasisBits, custatevecComputeType_t computeType, size_t* extraWorkspaceSizeInBytes) except* nogil:
1585+
global __custatevecComputeExpectationBatchedGetWorkspaceSize
1586+
_check_or_init_custatevec()
1587+
if __custatevecComputeExpectationBatchedGetWorkspaceSize == NULL:
1588+
with gil:
1589+
raise FunctionNotFoundError("function custatevecComputeExpectationBatchedGetWorkspaceSize is not found")
1590+
return (<custatevecStatus_t (*)(custatevecHandle_t, cudaDataType_t, const uint32_t, const uint32_t, const custatevecIndex_t, const void*, cudaDataType_t, custatevecMatrixLayout_t, const uint32_t, const uint32_t, custatevecComputeType_t, size_t*) nogil>__custatevecComputeExpectationBatchedGetWorkspaceSize)(
1591+
handle, svDataType, nIndexBits, nSVs, svStride, matrices, matrixDataType, layout, nMatrices, nBasisBits, computeType, extraWorkspaceSizeInBytes)
1592+
1593+
1594+
cdef custatevecStatus_t _custatevecComputeExpectationBatched(custatevecHandle_t handle, const void* batchedSv, cudaDataType_t svDataType, const uint32_t nIndexBits, const uint32_t nSVs, custatevecIndex_t svStride, double2* expectationValues, const void* matrices, cudaDataType_t matrixDataType, custatevecMatrixLayout_t layout, const uint32_t nMatrices, const int32_t* basisBits, const uint32_t nBasisBits, custatevecComputeType_t computeType, void* extraWorkspace, size_t extraWorkspaceSizeInBytes) except* nogil:
1595+
global __custatevecComputeExpectationBatched
1596+
_check_or_init_custatevec()
1597+
if __custatevecComputeExpectationBatched == NULL:
1598+
with gil:
1599+
raise FunctionNotFoundError("function custatevecComputeExpectationBatched is not found")
1600+
return (<custatevecStatus_t (*)(custatevecHandle_t, const void*, cudaDataType_t, const uint32_t, const uint32_t, custatevecIndex_t, double2*, const void*, cudaDataType_t, custatevecMatrixLayout_t, const uint32_t, const int32_t*, const uint32_t, custatevecComputeType_t, void*, size_t) nogil>__custatevecComputeExpectationBatched)(
1601+
handle, batchedSv, svDataType, nIndexBits, nSVs, svStride, expectationValues, matrices, matrixDataType, layout, nMatrices, basisBits, nBasisBits, computeType, extraWorkspace, extraWorkspaceSizeInBytes)

python/cuquantum/custatevec/custatevec.pxd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ cpdef abs2sum_array_batched(intptr_t handle, intptr_t batched_sv, int sv_data_ty
112112
cpdef size_t collapse_by_bit_string_batched_get_workspace_size(intptr_t handle, uint32_t n_svs, bit_strings, norms) except? 0
113113
cpdef collapse_by_bit_string_batched(intptr_t handle, intptr_t batched_sv, int sv_data_type, uint32_t n_index_bits, uint32_t n_svs, int64_t sv_stride, bit_strings, bit_ordering, uint32_t bit_string_len, norms, intptr_t extra_workspace, size_t extra_workspace_size_in_bytes)
114114
cpdef measure_batched(intptr_t handle, intptr_t batched_sv, int sv_data_type, uint32_t n_index_bits, uint32_t n_svs, int64_t sv_stride, intptr_t bit_strings, bit_ordering, uint32_t bit_string_len, randnums, int collapse)
115-
cpdef size_t compute_expectation_batched_get_workspace_size(intptr_t handle, int sv_data_type, uint32_t n_index_bits, uint32_t n_svs, int64_t sv_stride, intptr_t matrices, int matrix_data_type, int layout, uint32_t n_matrices, uint32_t n_basis_bits, int compute_type) except? 0
116-
cpdef compute_expectation_batched(intptr_t handle, intptr_t batched_sv, int sv_data_type, uint32_t n_index_bits, uint32_t n_svs, int64_t sv_stride, intptr_t expectation_values, intptr_t matrices, int matrix_data_type, int layout, uint32_t n_matrices, basis_bits, uint32_t n_basis_bits, int compute_type, intptr_t extra_workspace, size_t extra_workspace_size_in_bytes)
117115
cpdef intptr_t sub_sv_migrator_create(intptr_t handle, intptr_t device_slots, int sv_data_type, int n_device_slots, int n_local_index_bits) except? 0
118116
cpdef sub_sv_migrator_destroy(intptr_t handle, intptr_t migrator)
119117
cpdef sub_sv_migrator_migrate(intptr_t handle, intptr_t migrator, int device_slot_ind_ex, intptr_t src_sub_sv, intptr_t dst_sub_sv, int64_t begin, int64_t end)
118+
cpdef size_t compute_expectation_batched_get_workspace_size(intptr_t handle, int sv_data_type, uint32_t n_index_bits, uint32_t n_svs, int64_t sv_stride, intptr_t matrices, int matrix_data_type, int layout, uint32_t n_matrices, uint32_t n_basis_bits, int compute_type) except? 0
119+
cpdef compute_expectation_batched(intptr_t handle, intptr_t batched_sv, int sv_data_type, uint32_t n_index_bits, uint32_t n_svs, int64_t sv_stride, intptr_t expectation_values, intptr_t matrices, int matrix_data_type, int layout, uint32_t n_matrices, basis_bits, uint32_t n_basis_bits, int compute_type, intptr_t extra_workspace, size_t extra_workspace_size_in_bytes)

0 commit comments

Comments
 (0)