cuquantum.NetworkOptions

class cuquantum.NetworkOptions(compute_type: Optional[int] = None, device_id: Optional[int] = None, handle: Optional[int] = None, logger: Optional[logging.Logger] = None, memory_limit: Optional[Union[int, str]] = '80%', blocking: Literal[True, 'auto'] = True, allocator: Optional[cuquantum.cutensornet.memory.BaseCUDAMemoryManager] = None)[源代码]

用于为 cuquantum.Network 对象提供选项的数据类。

compute_type

CUDA 计算类型。如果未指定,将选择合适的计算类型。

类型

cuquantum.ComputeType

device_id

CUDA 设备序号(如果张量网络驻留在 CPU 上则使用)。如果未指定,将使用设备 0。

类型

Optional[int]

handle

cuTensorNet 库句柄。如果未提供句柄,将创建一个句柄。

类型

Optional[int]

logger

Python Logger 对象。如果未提供 logger 对象,将使用根 logger。

类型

logging.Logger

memory_limit

cuTensorNet 可用的最大内存。可以指定为值(带有可选后缀,如 K[iB]、M[iB]、G[iB])或百分比。默认值为设备内存的 80%。

类型

Optional[Union[int, str]]

blocking

一个标志,用于指定执行函数和方法的行为,例如 Network.autotune()Network.contract()。当 blockingTrue 时,这些方法在操作完成之前不会返回。当 blocking 为 "auto" 时,当输入张量在 GPU 上时,这些方法会立即返回。当输入张量在 CPU 上时,执行方法始终会阻塞。默认值为 True

类型

Literal[True, ‘auto’]

allocator

一个支持 BaseCUDAMemoryManager 协议的对象,用于绘制设备内存。如果未提供分配器,将使用来自库包的内存分配器(对于 PyTorch 操作数,使用 torch.cuda.caching_allocator_alloc(),否则使用 cupy.cuda.alloc())。

类型

Optional[cuquantum.cutensornet.memory.BaseCUDAMemoryManager]