Python 对象和常量

对象

SVSwapParameters()

一个包装类,用于保存一组数据传输参数。

sv_swap_parameters_dtype

NumPy dtype 对象,表示 custatevecSVSwapParameters_t 结构。

Python 函数

库管理

句柄管理 API

创建()

此函数初始化 cuStateVec 库并在 cuStateVec 上下文中创建一个句柄。

destroy(intptr_t handle)

此函数释放 cuStateVec 库使用的资源。

get_default_workspace_size(intptr_t handle)

此函数返回 cuStateVec 库定义的默认工作区大小。

set_workspace(intptr_t handle, ...)

此函数设置 cuStateVec 库使用的工作区。

CUDA Stream 管理 API

set_stream(intptr_t handle, intptr_t stream_id)

此函数设置 cuStateVec 库用于执行其例程的流。

get_stream(intptr_t handle)

此函数获取 cuStateVec 库流,该流用于执行来自 cuStateVec 库函数的所有调用。

Logger 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()

实验性功能:此函数禁用整个运行过程的日志记录。

内存管理 API

set_device_mem_handler(intptr_t handle, handler)

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

get_device_mem_handler(intptr_t handle)

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

版本控制 API

get_property(int type)

此函数返回 cuStateVec 库的版本信息。

get_version()

此函数返回 cuStateVec 库的版本信息。

状态向量初始化

initialize_state_vector(intptr_t handle, ...)

将状态向量初始化为某种形式。

门应用

通用矩阵

apply_matrix_get_workspace_size(...)

此函数获取 apply_matrix() 所需的工作区大小。

apply_matrix(intptr_t handle, intptr_t sv, ...)

应用门矩阵。

apply_matrix_batched_get_workspace_size(...)

此函数获取 apply_matrix_batched() 所需的工作区大小。

apply_matrix_batched(intptr_t handle, ...)

此函数将一个门矩阵应用于一组批量状态向量中的每一个。

泡利矩阵

apply_pauli_rotation(intptr_t handle, ...)

应用多量子比特泡利算符的指数。

广义置换矩阵

apply_generalized_permutation_matrix_get_workspace_size(...)

获取 apply_generalized_permutation_matrix() 所需的额外工作区大小。

apply_generalized_permutation_matrix(...)

应用广义置换矩阵。

测量

Z 基上的测量

abs2sum_on_z_basis(intptr_t handle, ...)

计算给定 Z 乘积基上的平方绝对值之和。

collapse_on_z_basis(intptr_t handle, ...)

在给定 Z 乘积基上坍缩状态向量。

measure_on_z_basis(intptr_t handle, ...)

在给定 Z 乘积基上进行测量。

量子比特测量

abs2sum_array(intptr_t handle, intptr_t sv, ...)

计算给定索引位集的 abs2sum 数组。

collapse_by_bit_string(intptr_t handle, ...)

将状态向量坍缩到给定比特字符串指定的状态。

batch_measure(intptr_t handle, intptr_t sv, ...)

批量单量子比特测量。

abs2sum_array_batched(intptr_t handle, ...)

计算给定索引位集的批量 abs2sum 数组。

collapse_by_bit_string_batched_get_workspace_size(...)

此函数获取 collapse_by_bit_string_batched() 所需的工作区大小。

collapse_by_bit_string_batched(...)

将批量状态向量坍缩到给定比特字符串指定的状态。

measure_batched(intptr_t handle, ...)

批量状态向量的单量子比特测量。

batch_measure_with_offset(intptr_t handle, ...)

部分向量的批量单量子比特测量。

期望

通过矩阵计算期望

compute_expectation_get_workspace_size(...)

此函数获取 compute_expectation() 所需的工作区大小。

compute_expectation(intptr_t handle, ...)

计算矩阵可观测量的期望值。

compute_expectation_batched_get_workspace_size(...)

此函数获取 compute_expectation_batched() 所需的工作区大小。

compute_expectation_batched(intptr_t handle, ...)

计算每个批量状态向量的矩阵可观测量期望值。

Pauli 基上的期望值

compute_expectations_on_pauli_basis(...)

计算一批(多量子比特)Pauli 算符的期望值。

采样

sampler_create(intptr_t handle, intptr_t sv, ...)

创建采样器描述符。

sampler_destroy(intptr_t sampler)

此函数释放采样器使用的资源。

sampler_preprocess(intptr_t handle, ...)

预处理状态向量,为采样做准备。

sampler_sample(intptr_t handle, ...)

从状态向量中采样比特串。

sampler_get_squared_norm(intptr_t handle, ...)

获取状态向量的平方范数。

sampler_apply_sub_sv_offset(intptr_t handle, ...)

将部分范数和范数应用于状态向量到采样描述符。

访问器

accessor_create(intptr_t handle, ...)

创建访问器以在状态向量和外部缓冲区之间复制元素。

accessor_create_view(intptr_t handle, ...)

为常量状态向量创建访问器。

accessor_destroy(intptr_t accessor)

此函数释放访问器使用的资源。

accessor_set_extra_workspace(...)

设置访问器的外部工作区。

accessor_get(intptr_t handle, ...)

将状态向量元素复制到外部缓冲区。

accessor_set(intptr_t handle, ...)

从外部缓冲区设置状态向量元素。

单进程量子比特重排序

swap_index_bits(intptr_t handle, ...)

在设备上交换索引位并重新排序状态向量元素。

multi_device_swap_index_bits(handles, ...)

在多个设备上交换索引位并重新排序状态向量元素。

多进程量子比特重排序

communicator_create(intptr_t handle, ...)

创建通信器。

communicator_destroy(intptr_t handle, ...)

此函数释放通信器。

dist_index_bit_swap_scheduler_create(...)

创建分布式索引位交换调度器。

dist_index_bit_swap_scheduler_destroy(...)

此函数释放分布式索引位交换调度器。

dist_index_bit_swap_scheduler_set_index_bit_swaps(...)

调度要跨进程交换的索引位。

dist_index_bit_swap_scheduler_get_parameters(...)

从调度器获取数据传输参数。

sv_swap_worker_create(intptr_t handle, ...)

创建状态向量交换工作器。

sv_swap_worker_destroy(intptr_t handle, ...)

此函数释放状态向量交换工作器。

sv_swap_worker_set_extra_workspace(...)

设置额外工作区。

sv_swap_worker_set_transfer_workspace(...)

设置传输工作区。

sv_swap_worker_set_sub_svs_p2p(...)

设置可通过 GPUDirect P2P 访问的子状态向量指针。

sv_swap_worker_set_parameters(...)

为分布式子状态向量交换工作器设置数据传输参数。

sv_swap_worker_execute(intptr_t handle, ...)

执行数据传输。

子状态向量迁移

sub_sv_migrator_create(intptr_t handle, ...)

创建子状态向量迁移器描述符。

sub_sv_migrator_destroy(intptr_t handle, ...)

销毁子状态向量迁移器描述符。

sub_sv_migrator_migrate(intptr_t handle, ...)

子状态向量迁移。

测试门矩阵类型

test_matrix_type_get_workspace_size(...)

获取 test_matrix_type() 的额外工作区大小。

test_matrix_type(intptr_t handle, ...)

测试给定矩阵与厄米(或酉)矩阵的偏差。