Python 对象和常量

对象

tensor_qualifiers_dtype

NumPy dtype 对象,表示 cutensornetTensorQualifiers_t 结构体。

contraction_path_dtype

NumPy dtype 对象,表示 cutensornetContractionPath_t 结构体。

slice_info_pair_dtype

NumPy dtype 对象,表示 cutensornetSliceInfoPair_t 结构体。

slicing_config_dtype

NumPy dtype 对象,表示 cutensornetSlicingConfig_t 结构体。

枚举

Status(value)

参见 cutensornetStatus_t

NetworkAttribute(value)

参见 cutensornetNetworkAttributes_t

ContractionAutotunePreferenceAttribute(value)

参见 cutensornetContractionAutotunePreferenceAttributes_t

ContractionOptimizerConfigAttribute(value)

参见 cutensornetContractionOptimizerConfigAttributes_t

ContractionOptimizerInfoAttribute(value)

参见 cutensornetContractionOptimizerInfoAttributes_t

GraphAlgo(value)

参见 cutensornetGraphAlgo_t

MemoryModel(value)

参见 cutensornetMemoryModel_t

OptimizerCost(value)

参见 cutensornetOptimizerCost_t

SmartOption(value)

参见 cutensornetSmartOption_t

WorksizePref(value)

参见 cutensornetWorksizePref_t

Memspace(value)

参见 cutensornetMemspace_t

WorkspaceKind(value)

参见 cutensornetWorkspaceKind_t

TensorSVDConfigAttribute(value)

参见 cutensornetTensorSVDConfigAttributes_t

TensorSVDInfoAttribute(value)

参见 cutensornetTensorSVDInfoAttributes_t

TensorSVDNormalization(value)

参见 cutensornetTensorSVDNormalization_t

TensorSVDPartition(value)

参见 cutensornetTensorSVDPartition_t

TensorSVDAlgo(value)

参见 cutensornetTensorSVDAlgo_t

GateSplitAlgo(value)

参见 cutensornetGateSplitAlgo_t

StatePurity(value)

参见 cutensornetStatePurity_t

BoundaryCondition(value)

参见 cutensornetBoundaryCondition_t

StateAttribute(value)

参见 cutensornetStateAttributes_t

StateMPOApplication(value)

参见 cutensornetStateMPOApplication_t

MarginalAttribute(value)

参见 cutensornetMarginalAttributes_t

SamplerAttribute(value)

参见 cutensornetSamplerAttributes_t

AccessorAttribute(value)

参见 cutensornetAccessorAttributes_t

ExpectationAttribute(value)

参见 cutensornetExpectationAttributes_t

Python 函数

句柄管理 API

create()

初始化 cuTensorNet 库。

destroy(intptr_t handle)

销毁 cuTensorNet 库句柄。

网络描述符 API

create_network_descriptor(intptr_t handle, ...)

初始化一个 cutensornetNetworkDescriptor_t,描述张量之间的连接性(即网络拓扑)。

destroy_network_descriptor(intptr_t desc)

释放与网络描述符关联的所有内存。

get_output_tensor_descriptor(...)

创建一个 cutensornetTensorDescriptor_t,表示网络的输出张量。

network_get_attribute(intptr_t handle, ...)

获取 network_descriptor 的属性。

network_set_attribute(intptr_t handle, ...)

设置 network_descriptor 的属性。

get_network_attribute_dtype(int attr)

获取对应 NetworkAttribute 属性的 Python 数据类型。

张量描述符 API

create_tensor_descriptor(intptr_t handle, ...)

初始化一个 cutensornetTensorDescriptor_t,描述张量的信息。

destroy_tensor_descriptor(intptr_t desc_tensor)

释放与张量描述符关联的所有内存。

get_tensor_details(intptr_t handle, ...)

获取张量的元数据。

张量缩并优化器 API

create_contraction_optimizer_info(...)

optimizerInfo 分配资源。

create_contraction_optimizer_info_from_packed_data(...)

从提供的缓冲区创建 optimizerInfo 对象。

update_contraction_optimizer_info_from_packed_data(...)

从提供的缓冲区更新提供的 optimizer_info 对象。

destroy_contraction_optimizer_info(...)

释放与 optimizer_info 关联的所有内存。

get_contraction_optimizer_info_attribute_dtype(...)

获取对应 ContractionOptimizerInfoAttribute 属性的 Python 数据类型。

contraction_optimizer_info_get_attribute(...)

获取 optimizer_info 的属性。

contraction_optimizer_info_set_attribute(...)

设置 optimizer_info 的属性。

contraction_optimizer_info_get_packed_size(...)

获取 optimizer_info 对象的打包大小。

contraction_optimizer_info_pack_data(...)

optimizer_info 对象打包到提供的缓冲区中。

create_contraction_optimizer_config(...)

为张量缩并顺序求解器设置所需的超优化参数(参见 contraction_optimize())。

destroy_contraction_optimizer_config(...)

释放与 optimizer_config 关联的所有内存。

get_contraction_optimizer_config_attribute_dtype(...)

获取对应 ContractionOptimizerConfigAttribute 属性的 Python 数据类型。

contraction_optimizer_config_get_attribute(...)

获取 optimizer_config 的属性。

contraction_optimizer_config_set_attribute(...)

设置 optimizer_config 的属性。

contraction_optimize(intptr_t handle, ...)

计算“优化”的张量缩并顺序以及切片信息(有关更多信息,请参见概述部分),以便在遵守用户提供的内存约束的同时,最大限度地缩短总求解时间。

张量缩并计划 API

create_contraction_plan(intptr_t handle, ...)

初始化一个 cutensornetContractionPlan_t

destroy_contraction_plan(intptr_t plan)

释放 plan 拥有的所有资源。

create_contraction_autotune_preference(...)

为张量缩并计划设置所需的自动调优参数。

destroy_contraction_autotune_preference(...)

释放与 autotune_preference 关联的所有内存。

get_contraction_autotune_preference_attribute_dtype(...)

获取对应 ContractionAutotunePreferenceAttribute 属性的 Python 数据类型。

contraction_autotune_preference_get_attribute(...)

获取 autotune_preference 的属性。

contraction_autotune_preference_set_attribute(...)

设置 autotune_preference 的属性。

contraction_autotune(intptr_t handle, ...)

自动调优张量缩并计划,为每个成对张量缩并找到最佳的 cutensorContractionPlan_t

工作区管理 API

create_workspace_descriptor(intptr_t handle)

创建一个工作区描述符,其中包含有关用户提供的内存缓冲区的信息。

destroy_workspace_descriptor(intptr_t desc)

释放工作区描述符。

workspace_compute_contraction_sizes(...)

计算使用提供的张量缩并路径缩并输入张量网络所需的工作区大小。

workspace_compute_qr_sizes(intptr_t handle, ...)

计算执行张量 QR 分解操作所需的工作区大小。

workspace_compute_svd_sizes(intptr_t handle, ...)

计算执行张量 SVD 分解操作所需的工作区大小。

workspace_compute_gate_split_sizes(...)

计算执行门操作拆分所需的工作区大小。

workspace_get_memory_size(intptr_t handle, ...)

检索给定工作区偏好、内存空间、工作区类型所需的工作区大小。

workspace_set_memory(intptr_t handle, ...)

设置用户提供的工作区的内存地址和工作区大小。

workspace_get_memory(intptr_t handle, ...)

检索工作区描述符中托管的工作区的内存地址和工作区大小。

workspace_purge_cache(intptr_t handle, ...)

清除指定内存空间中的缓存数据。

内存管理 API

set_device_mem_handler(intptr_t handle, handler)

为 cuTensorNet 设置设备内存处理程序。

get_device_mem_handler(intptr_t handle)

获取 cuTensorNet 的设备内存处理程序。

网络张量缩并 API

contract_slices(intptr_t handle, ...)

执行张量网络的实际张量缩并。

梯度计算 API

compute_gradients_backward(intptr_t handle, ...)

计算网络关于...的梯度。

切片组 API

create_slice_group_from_id_range(...)

从范围创建一个 cutensornetSliceGroup_t 对象,该范围生成一个切片 ID 序列,从指定的起始值(包含)到指定的停止值(不包含),步长为指定的值。

create_slice_group_from_ids(intptr_t handle, ...)

从切片 ID 序列创建一个切片组。

destroy_slice_group(intptr_t slice_group)

释放与 cutensornetSliceGroup_t 对象关联的资源,并将其值设置为 null。

近似张量网络执行 API

tensor_qr(intptr_t handle, ...)

执行张量的 QR 分解。

tensor_svd(intptr_t handle, ...)

执行张量的 SVD 分解。

gate_split(intptr_t handle, ...)

执行门操作拆分。

张量 SVD 配置 API

create_tensor_svd_config(intptr_t handle)

设置奇异值分解和截断的选项。

destroy_tensor_svd_config(intptr_t svd_config)

释放与张量 SVD 配置关联的所有内存。

get_tensor_svd_config_attribute_dtype(int attr)

获取对应 TensorSVDConfigAttribute 属性的 Python 数据类型。

tensor_svd_config_get_attribute(...)

获取 svd_config 的属性。

tensor_svd_config_set_attribute(...)

设置 svd_config 的属性。

tensor_svd_algo_params_get_dtype(int svd_algo)

获取对应张量 SVD 参数属性的 Python 数据类型。

张量 SVD 信息 API

create_tensor_svd_info(intptr_t handle)

设置奇异值分解的信息。

destroy_tensor_svd_info(intptr_t svd_info)

释放与 TensorSVDInfo 对象关联的所有内存。

get_tensor_svd_info_attribute_dtype(int attr)

获取对应 TensorSVDInfoAttribute 属性的 Python 数据类型。

tensor_svd_info_get_attribute(...)

获取 svd_info 的属性。

tensor_svd_algo_status_get_dtype(int svd_algo)

获取对应张量 SVD 状态属性的 Python 数据类型。

分布式并行化 API

distributed_reset_configuration(...)

重置分布式 MPI 并行化配置。

distributed_get_num_ranks(intptr_t handle)

查询当前分布式 MPI 配置中的 MPI 进程数。

distributed_get_proc_rank(intptr_t handle)

查询当前 MPI 进程在当前分布式 MPI 配置中的 rank。

distributed_synchronize(intptr_t handle)

全局同步当前分布式 MPI 配置中的所有 MPI 进程,确保所有先前的 cutensornet API 调用已在所有 MPI 进程中完成。

get_mpi_comm_pointer(comm)

简单的助手函数,用于获取 MPI_Comm 句柄的地址和大小。

高级张量网络 API

create_state(intptr_t handle, int purity, ...)

创建一个空张量网络状态,其形状由主要张量模式的数量及其范围定义。

destroy_state(intptr_t tensor_network_state)

释放张量网络状态拥有的所有资源。

state_apply_tensor(intptr_t handle, ...)

已弃用:将张量算符应用于张量网络状态。

state_apply_tensor_operator(intptr_t handle, ...)

将张量算符应用于张量网络状态。

state_apply_controlled_tensor_operator(...)

将受控张量算符应用于张量网络状态。

state_apply_unitary_channel(intptr_t handle, ...)

将由一个或多个酉张量算符组成的张量通道应用于张量网络状态。

state_apply_network_operator(...)

将张量网络算符应用于张量网络状态。

state_update_tensor(intptr_t handle, ...)

注册先前应用于张量网络状态的指定张量算符元素的外部更新。

state_update_tensor_operator(...)

注册先前应用于张量网络状态的指定张量算符元素的外部更新。

get_state_attribute_dtype(int attr)

获取对应 StateAttribute 属性的 Python 数据类型。

state_configure(intptr_t handle, ...)

配置完整张量网络状态的计算,可以是精确形式或因子化形式。

state_prepare(intptr_t handle, ...)

准备完整张量网络状态的计算,可以是精确形式或因子化形式。

state_get_info(intptr_t handle, ...)

检索与完整张量网络状态计算相关的属性,可以是精确形式或因子化形式。

state_compute(intptr_t handle, ...)

计算张量网络状态表示。

state_initialize_mps(intptr_t handle, ...)

对具有给定形状和数据的初始张量网络状态施加用户定义的 MPS(矩阵乘积态)因子分解。

state_finalize_mps(intptr_t handle, ...)

对具有给定形状的最终张量网络状态施加用户定义的 MPS(矩阵乘积态)因子分解。

state_capture_mps(intptr_t handle, ...)

将张量网络状态重置为先前通过 cutensornetStateCompute 计算的 MPS 状态。

get_output_state_details(intptr_t handle, ...)

获取输出状态张量的元数据。

create_marginal(intptr_t handle, ...)

为给定的张量网络状态创建指定边缘张量的表示。

destroy_marginal(...)

销毁张量网络状态边缘张量。

get_marginal_attribute_dtype(int attr)

获取对应 MarginalAttribute 属性的 Python 数据类型。

marginal_configure(intptr_t handle, ...)

配置请求的张量网络状态边缘张量的计算。

marginal_prepare(intptr_t handle, ...)

准备请求的张量网络状态边缘张量的计算。

marginal_get_info(intptr_t handle, ...)

检索与请求的张量网络状态边缘张量计算相关的属性。

marginal_compute(intptr_t handle, ...)

计算请求的张量网络状态边缘张量。

create_sampler(intptr_t handle, ...)

创建张量网络状态采样器。

destroy_sampler(intptr_t tensor_network_sampler)

销毁张量网络状态采样器。

get_sampler_attribute_dtype(int attr)

获取对应 SamplerAttribute 属性的 Python 数据类型。

sampler_configure(intptr_t handle, ...)

配置张量网络状态采样器。

sampler_prepare(intptr_t handle, ...)

准备张量网络状态采样器。

sampler_get_info(intptr_t handle, ...)

检索与张量网络状态采样相关的属性。

sampler_sample(intptr_t handle, ...)

执行张量网络状态的采样,即生成请求数量的样本。

create_accessor(intptr_t handle, ...)

创建张量网络状态振幅访问器。

destroy_accessor(...)

销毁张量网络状态振幅访问器。

get_accessor_attribute_dtype(int attr)

获取对应 AccessorAttribute 属性的 Python 数据类型。

accessor_configure(intptr_t handle, ...)

配置请求的张量网络状态振幅张量的计算。

accessor_prepare(intptr_t handle, ...)

准备请求的张量网络状态振幅张量的计算。

accessor_get_info(intptr_t handle, ...)

检索与请求的张量网络状态振幅张量计算相关的属性。

accessor_compute(intptr_t handle, ...)

计算张量网络状态的振幅。

create_expectation(intptr_t handle, ...)

创建张量网络状态期望值的表示。

destroy_expectation(...)

销毁张量网络状态期望值表示。

get_expectation_attribute_dtype(int attr)

获取对应 ExpectationAttribute 属性的 Python 数据类型。

expectation_configure(intptr_t handle, ...)

配置请求的张量网络状态期望值的计算。

expectation_prepare(intptr_t handle, ...)

准备计算所请求的张量网络状态期望值。

expectation_get_info(intptr_t handle, ...)

检索与所请求的张量网络状态期望值计算相关的属性。

expectation_compute(intptr_t handle, ...)

计算给定张量网络算符在给定张量网络状态上的(未归一化的)期望值。

张量网络算符 API

create_network_operator(intptr_t handle, ...)

创建给定形状的未初始化张量网络算符,该形状由状态模式的数量及其范围定义。

network_operator_append_product(...)

将张量积算符组件附加到张量网络算符。

network_operator_append_mpo(intptr_t handle, ...)

将矩阵乘积算符 (MPO) 组件附加到张量网络算符。

destroy_network_operator(...)

释放张量网络算符拥有的所有资源。

错误管理 API

get_error_string(int error)

返回错误代码的描述字符串。

日志记录器 API

logger_set_callback_data(callback, *args, ...)

设置日志记录器回调以及参数。

logger_open_file(log_file)

此函数在给定路径中打开一个日志记录输出文件。

logger_set_level(int32_t level)

此函数设置日志记录级别的数值。

logger_set_mask(int32_t mask)

此函数设置日志掩码的数值。

logger_force_disable()

此函数禁用整个运行过程的日志记录。

logger_set_file(intptr_t file)

此函数设置日志记录输出文件。

版本控制 API

get_version()

返回 cuTensorNet 库的版本号。

get_cudart_version()

返回 cuTensorNet 编译时所用的 CUDA 运行库的版本号。