测试集
Einsum Benchmark 的数据组成,以及收缩序优化、切片和数值执行测试的用途。
本页目录
数据组成
ArcTN 使用公开的 Einsum Benchmark 进行测试。数据集包含 168 个实例、7 个类别:图模型、张量网络语言模型、模型计数、量子计算、随机问题、结构化问题和加权模型计数。
| 测试集合 | 实例数 | 范围 |
|---|---|---|
| Einsum Benchmark 全集 | 168 | 不同应用中的张量网络收缩问题 |
| 量子计算子集(QC32) | 32 | 全集中属于量子计算类别的实例 |
QC32 的 32 指实例数,不是量子比特数。每个完整实例提供 einsum 表达式、数值张量和参考路径等数据,字段见官方说明。从表达式和数组形状可得到 ArcTN 使用的 inputs、output、size_dict,见张量网络输入。
数据可从 Zenodo 下载,也可通过 einsum_benchmark Python 包读取,方法见官方入门文档。
测试用途
| 测试 | 测试内容 |
|---|---|
| 收缩序优化 | 根据网络结构搜索路径,记录搜索时间和路径指标 |
| 切片 | 在给定中间张量大小上限下,检查切片结果,记录切片数和总计算量 |
| 数值执行 | 加载输入数组,沿收缩路径完成计算,记录执行时间、内存使用并核对结果 |
收缩序优化只需要网络结构;数值执行还需要与之对应的数组。也可以连续完成优化、切片和执行,测试张量网络收缩的总耗时。
测试条件
- 记录数据版本、实例名称和使用的子集。
- 搜索测试记录参数和线程数;执行测试另行记录数据类型、执行后端与硬件,并明确计时包含哪些阶段。
target_size限制单片中间张量的元素数,不是进程的实际内存上限。
指标定义见路径指标,计时方法见计时与 CPU 使用量。