cuDensityMat:用于模拟量子动力学计算的高性能库¶
欢迎使用 cuDensityMat 库文档!
NVIDIA cuDensityMat 是一个用于加速模拟量子动力学求解器的高性能库,是 NVIDIA cuQuantum SDK 的一个组件。cuDensityMat 的功能在 概述 中进行了描述,安装和使用指南请参考 快速入门。
主要特性
提供用于以下操作的 API:
在任意张量积空间(量子自由度的任意数量和维度)中定义任意的、可能是批处理的纯/混合量子态
以基本张量算符的张量积之和的形式定义任意量子多体算符和超算符,其中每个基本张量算符作用于一个或多个特定的量子自由度(基本张量算符以及标量系数可能是时间相关的)
计算多体算符/超算符对量子态的作用
组合和计算所需量子动力学主方程 (ODE) 的 r.h.s.
计算量子态的属性,例如期望值
支持
支持的 GPU 架构:
Volta
、Turing
、Ampere
、Ada
、Hopper
支持的操作系统:
Linux
支持的 CPU 架构:
x86_64
、ARM64
先决条件
需要以下 CUDA 工具包之一以及兼容的驱动程序
CUDA 工具包
最低要求的 Linux 驱动程序版本
>= 450.80.02
>= 525.60.13
有关详细信息,请参阅 CUDA 工具包发行说明。
已知问题和限制
cudensitymatOperatorTermAppendGeneralProduct()
C API 函数接受参数operatorModeStrides
,该参数可能不用于传递与默认广义列优先存储布局不同的步幅(您可以简单地为每个基本张量算符步幅传递 NULL)。张量回调功能目前需要在连续的算符作用
compute
调用之间进行 CUDA 流同步。目前,稀疏 DIA 存储(仅存储非零对角线)仅支持中心三对角基本张量算符,每个算符作用于单个量子自由度。这些矩阵在主对角线 (0) 和/或相邻的下方/上方对角线 (\(-/+1\)) 上具有非零元素。
目前,稀疏三对角基本张量算符矩阵的维度可能不超过 256。
虽然
cudensitymatComputeType_t
在某些 API 中作为参数公开,但目前实际的计算类型仅从数据类型推断。当 GPU 数量超过特定于案例的限制时,某些量子态和量子多体算符的组合不受支持。通常,在定义量子态时添加或增加批量维度将进一步推动 GPU 限制。所有情况都在单个 GPU 上得到支持。
多 GPU 上尚不支持混合量子态的迹计算。
多 GPU 上尚不支持混合量子态的期望值计算。
并行运行中的并行进程数(等效于 GPU 数量)必须是 2 的幂,每个并行进程一个 GPU。