0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NVIDIA cuTensorNet为张量网络计算提供方案

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-04-08 14:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

量子计算渴望在更快的时间内为目前无法用经典计算解决的问题提供更强大的计算能力。 NVIDIA 最近发布了 cuQuantum SDK ,这是一个用于加速量子信息科学发展的高性能库。 cuQuantum 最近被用于 打破在 DGX SuperPOD 上运行 MaxCut 量子算法模拟的世界纪录 ,比以前的工作多了 8 倍的量子位。

cuQuantum 的初始目标应用程序是 量子电路模拟, 的加速,它由两个主要库组成:

cuStateVec :加速状态向量模拟。

cuTensorNet :加速张量网络模拟。

在本文中,我们将对这两个库进行概述,并对 cuTensorNet 进行更详细的讨论。

为什么要使用 cuStateVec ?

cuQuantum SDK 中的 cuStateVec 库通过针对模拟器中出现的大多数用例优化 GPU 内核,为基于状态向量的模拟提供了高性能解决方案。虽然状态向量法非常适合运行深度量子电路,但即使在当今最大的超级计算机上,也不可能对具有大量量子比特的量子电路进行模拟,这些量子比特呈指数增长。

为什么要使用 cuTensorNet ?

作为替代方案,张量网络方法是一种将 N 量子位的量子态表示为一系列张量收缩的技术。这使得量子电路模拟器能够通过交换算法与计算所需的空间来处理具有许多量子位的电路。根据电路拓扑和深度的不同,这也可能会变得非常昂贵。然后,主要的挑战是有效地计算这些张量收缩。

量子计算渴望在更快的时间内为目前无法用经典计算解决的问题提供更强大的计算能力。 NVIDIA 最近发布了 cuQuantum SDK ,这是一个用于加速量子信息科学发展的高性能库。 cuQuantum 最近被用于 打破在 DGX SuperPOD 上运行 MaxCut 量子算法模拟的世界纪录 ,比以前的工作多了 8 倍的量子位。

cuQuantum 的初始目标应用程序是 量子电路模拟, 的加速,它由两个主要库组成:

cuStateVec :加速状态向量模拟。

cuTensorNet :加速张量网络模拟。

在本文中,我们将对这两个库进行概述,并对 cuTensorNet 进行更详细的讨论。

为什么要使用 cuStateVec ?

cuQuantum SDK 中的 cuStateVec 库通过针对模拟器中出现的大多数用例优化 GPU 内核,为基于状态向量的模拟提供了高性能解决方案。虽然状态向量法非常适合运行深度量子电路,但即使在当今最大的超级计算机上,也不可能对具有大量量子比特的量子电路进行模拟,这些量子比特呈指数增长。

为什么要使用 cuTensorNet ?

作为替代方案,张量网络方法是一种将 N 量子位的量子态表示为一系列张量收缩的技术。这使得量子电路模拟器能够通过交换算法与计算所需的空间来处理具有许多量子位的电路。根据电路拓扑和深度的不同,这也可能会变得非常昂贵。然后,主要的挑战是有效地计算这些张量收缩。

cuQuantum SDK 中的 cuTensorNet 库为这些类型的张量网络计算提供了高性能解决方案。

cuTensorNet 库提供 C 和 Python API ,以提供对高性能张量网络计算的访问,从而加速量子电路模拟。这些 API 非常灵活,使您能够控制、探索和研究实现的每一种算法技术。

cuTensorNet 算法描述

在本节中,我们将讨论 cuTensorNet 中使用的不同算法和技术。它包括两个主要组件: pathfinder 和 execution 。

pathfinder 在短时间内提供了一条成本最低的最佳收缩路径,执行步骤使用高效内核在 GPU 上计算该路径。这两个组件相互独立,可以与提供类似功能的任何其他外部库进行互操作。

探路者

在高层, cuTensorNet 采用的方法是围绕基于图形分区的探路者进行超优化。有关更多信息,请参阅 超优化张量网络收缩 。

探路者的作用是找到一条收缩路径,使收缩张量网络的成本最小化。为了加快这一步,我们开发了许多算法改进和优化,而且这一步还会更快。

寻找最优收缩路径在很大程度上取决于网络的大小。网络越大,寻找最优收缩路径所需的技术和计算量就越大。

cuTensorNet pathfinder 由三个算法模块组成。

Simplification :对张量网络进行预处理以找到所有明显的直接收缩集的技术。它将它们从网络中移除,并用其最终张量替换每个集合。其结果是更小的网络,更容易在以下模块中处理。

Path computation :探路者组件的核心。它基于一个图分区步骤,然后是使用重新配置调整和切片技术的第二个步骤。递归地调用图分区来分割网络并形成收缩路径(例如,成对收缩树)。

Hyper-optimizer: 路径计算模块上的一个循环,在每次迭代中形成一条收缩路径。对于每次迭代,超级优化器都会为路径计算创建不同的参数配置,同时跟踪找到的最佳路径。您可以随意更改或修复这些配置参数。所有配置参数都可以通过cutensornetContractionOptimizerConfigSetAttribute设置。有关更多信息,请参阅 cuTensorNet documentation 。

从第一步生成的路径可能不接近最优,因此通常会执行重构调整。重构在整体收缩树中选择几个小的子树,并试图提高它们的收缩成本,如果可能的话,降低总体成本。

路径计算模块的另一个特点是切片技术。切片的主要目标是将网络收缩过程放入可用的设备内存中。切片通过排除某些张量模式并显式展开它们的范围来实现这一点。这将生成许多类似的收缩树,或 slices ,其中每一个对应于排除模式之一。

收缩路径或树不会改变。在这种情况下,只有一些模式被排除在外,每个切片的计算独立于其他模式。因此,切片可以被认为是为不同设备创建独立工作的最佳技术之一。

实践经验表明,找到最佳收缩路径对这里使用的每种技术的配置参数的选择都很敏感。为了提高找到最佳收缩路径的概率,我们将该模块封装在一个超级优化器中。

寻路性能

在考虑探路者的性能时,有两个相关的指标:找到的路径的质量和找到该路径所需的时间。前者如图 3 所示,以失败导致的收缩成本来衡量。用于基准测试的电路是谷歌量子人工智能 2019 年量子优势论文 的随机量子电路,深度为 12 、 14 和 20 。

与 opt_einsum 库相比, cuTensorNet 在寻找最佳路径方面表现良好,在这些电路方面略优于 Cotengra 。

cuTensorNet 也能快速找到高质量的路径。对于不同深度的悬铃木量子电路问题,图 4 绘制了 cuTensorNet 与科滕格拉相比的收缩所需时间。对于网络中有 3000 多个张量的最复杂问题, cuTensorNet 仍能在 40 秒内找到最佳路径。

处决

执行组件依赖 cuTENSOR 库作为后端,以便在 GPU 上高效执行。它包括以下几个阶段:

Planning :执行组件的决策引擎。它分析收缩路径,决定使用最小工作空间在 GPU 上执行它的最佳方式。它还决定了每个成对收缩使用的最佳内核。

Computation :此阶段使用 cuTENSOR 库计算所有成对收缩。

Autotuning :(可选)基于不同启发式的不同内核尝试成对收缩,并选择最佳内核。

执行性能

图 5 测量了 cuTensorNet 与 CuPy 在几个不同电路中收缩执行的加速比。根据赛道的不同, cuTensorNet 提供了约 8-20 倍的收缩执行加速。

cuTensorNet 示例

cuTensorNet 提供了 C 和 Python API ,允许您高效地计算张量网络收缩,而无需任何关于如何找到最佳收缩路径或如何在 GPU 上执行收缩的专业知识。

高级 Python API

cuTensorNet 提供高级 Python API ,可与 NumPy 和 PyTorch 张量互操作。例如,张量网络的einsum表达式可以在对contract的单个函数调用中使用。 cuTensorNet 执行所有必需的步骤,结果返回约定的网络。

import cupy as cp
import cuquantum # Compute D_{m,x,n,y} = A_{m,h,k,n} B_{u,k,h} C_{x,u,y} # Create an array of extents (shapes) for each tensor extentA = (96, 64, 64, 96) extentB = (96, 64, 64) extentC = (64, 96, 64) extentD = (96, 64, 96, 64) # Generate input tensor data directly on GPU A_d = cp.random.random(extentA, dtype=cp.float32) B_d = cp.random.random(extentB, dtype=cp.float32) C_d = cp.random.random(extentC, dtype=cp.float32) # Set the pathfinder options options = cuquantum.OptimizerOptions() options.slicing.disable_slicing = 1 # disable slicing options.samples = 100 # number of hyper-optimizer samples # Run the contraction on a CUDA stream stream = cp.cuda.Stream() D_d, info = cuquantum.contract( 'mhkn,ukh,xuy->mxny', A_d, B_d, C_d, optimize=options, stream=stream, return_info=True) stream.synchronize() # Check the optimizer info print(f"{info[1].opt_cost/1e9} GFLOPS") 

从这个代码示例中,您可以看到所有 cuTensorNet 操作都封装在一个contract API 中。本例的输出为 14.495514624 GFLOPS :基于路径查找器找到的收缩路径估计的浮点操作数。要手动执行相同的步骤,还可以使用 cuQuantum.Network object 。

低级 API

如前所述, C 和 Python API 是以一种直观的表达方式设计的。您可以调用 pathfinder 函数以获得优化的路径,然后调用以使用该路径在 GPU 上执行收缩。

对于高级用户, cuTensorNet library API 旨在授予访问该领域研究可用的所有算法选项的权限。例如,您可以控制 pathfinder 可以尝试找到最佳收缩路径的 hyper optimizer 样本数。

有几十个参数可以修改或控制。这些都可以通过 helper 函数访问,并允许简单功能 API 保持不变。你也可以提供自己的路径。有关较低级别选项的更多信息以及如何使用它们的示例,请参阅 cuquantum.Network 。

总结

NVIDIA CuQuin SDK 的 CursSnReNET 库旨在加速 GPU 上的张量网络计算。在这篇文章中,我们展示了最先进的张量网络库对关键量子算法的加速。

在改进 cuTensorNet 并通过新的算法改进和多节点、多 GPU 执行来扩展它方面有着广泛的发展。

cuTensorNet 图书馆的目标是为量子计算领域的突破性发展提供一个有用的工具。有没有关于如何改进 cuQuantum 库的反馈和建议?

关于作者

Azzam Haidar 是 NVIDIA 开发 HPC 和量子计算软件的高级工程师。 2008 年,他在图卢兹国立理工学院和法国 CERFACS 实验室获得计算机科学和应用数学博士学位。在加入 Nvidia 之前,他是诺克斯维尔田纳西大学创新计算实验室的研究主任。

Leo Fang 是NVIDIA 的高级工程师,专注于 HPC 、量子计算和 Python 软件。 2017 年,他在杜克大学获得物理学博士学位。在加入 NVIDIA 之前,他是布鲁克海文国家实验室计算科学倡议的助理计算科学家。他也是许多开源项目的定期贡献者,包括 CuPy 、 mpi4py 、 conda forge 和 Python 数据 API 标准联盟。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    5687

    浏览量

    110117
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5271

    浏览量

    136069
  • API
    API
    +关注

    关注

    2

    文章

    2476

    浏览量

    67022
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVIDIA加速计算平台助力从地球到太空的AI应用

    NVIDIA 今日宣布,其最新一代加速计算平台正在开启太空创新的新时代,将为轨道数据中心 (ODC)、地理空间信息收集以及自主太空运行提供 AI 算力。
    的头像 发表于 03-18 14:44 530次阅读

    NVIDIA DGX SuperPODRubin平台横向扩展提供蓝图

    NVIDIA DGX Rubin 系统整合了 NVIDIA计算网络和软件领域的最新突破,将推理 token 成本降至 NVIDIA B
    的头像 发表于 01-14 09:14 845次阅读

    超擎数智您深度解析NVIDIA Quantum-X800 InfiniBand平台

    NVIDIA
    专精特新
    发布于 :2026年01月08日 19:47:03

    NVIDIA Omniverse基于Container的部署推流方案

    为了让客户能够高效安装和部署 NVIDIA Omniverse 及 NVIDIA Isaac 平台,NVIDIA 现已推出简单便捷的容器化部署方案,以支持在数据中心的服务器中实现流式仿
    的头像 发表于 12-17 10:17 951次阅读
    <b class='flag-5'>NVIDIA</b> Omniverse基于Container的部署推流<b class='flag-5'>方案</b>

    NVIDIA 收购开源工作负载管理提供商 SchedMD

    NVIDIA 将持续提供 SchedMD 的厂商中立的开源 Slurm 软件,确保其在高性能计算(HPC)和 AI 领域的广泛可用性。 NVIDIA 宣布收购 SchedMD,该公司是
    的头像 发表于 12-16 18:24 1475次阅读

    NVIDIA在ISC 2025分享最新超级计算进展

    NVIDIA DGX Spark 到 NVIDIA BlueField-4 DPU,新一代网络和量子技术实现了飞跃。在 SC25 上展示的加速系统突显了全球超级计算和 AI 的进展
    的头像 发表于 11-25 10:59 1100次阅读
    <b class='flag-5'>NVIDIA</b>在ISC 2025分享最新超级<b class='flag-5'>计算</b>进展

    HighPoint与 ICY DOCK 达成合作,专业计算提供高速灵活的 NVMe 存储扩展解决方案

    HighPoint与ICYDOCK达成合作,专业计算提供高速灵活的NVMe存储扩展解决方案加利福尼亚州弗里蒙特与加利福尼亚州工业市—[2025年9月]—PCIe连接与NVMe存储扩展
    的头像 发表于 11-21 16:05 2277次阅读
    HighPoint与 ICY DOCK 达成合作,<b class='flag-5'>为</b>专业<b class='flag-5'>计算</b><b class='flag-5'>提供</b>高速灵活的 NVMe 存储扩展解决<b class='flag-5'>方案</b>

    NVIDIA Spectrum-X 以太网交换机助力 Meta 和 Oracle 加速网络性能

    超大规模企业广泛采用 NVIDIA 网络解决方案,驱动十亿瓦级(Giga-Scale)高性能 AI 数据中心 Meta 推出基于 NVIDIA Spectrum 以太网的交换机,用于
    的头像 发表于 10-14 10:26 2082次阅读
    <b class='flag-5'>NVIDIA</b> Spectrum-X 以太网交换机助力 Meta 和 Oracle 加速<b class='flag-5'>网络</b>性能

    NVIDIA AI网络闪耀2025云栖大会

    2025 云栖大会于 9 月 24 日至 9 月 26 日举办,NVIDIA 作为大会巅峰合作伙伴参与 2025 云栖大会。本文将带您回顾 NVIDIA AI 网络在本届云栖大会上的精彩内容。
    的头像 发表于 10-13 11:19 1390次阅读

    NVIDIA DGX Spark桌面AI计算机开启预订

    DGX Spark 现已开启预订!丽台科技作为 NVIDIA 授权分销商,提供从产品到服务的一站式解决方案,助力轻松部署桌面 AI 计算机。
    的头像 发表于 09-23 17:20 1542次阅读
    <b class='flag-5'>NVIDIA</b> DGX Spark桌面AI<b class='flag-5'>计算</b>机开启预订

    NVIDIA通过全新 Omniverse库、Cosmos物理AI模型及AI计算基础设施,机器人领域开启新篇章

    NVIDIA 通过全新 Omniverse 库、Cosmos 物理 AI 模型及 AI 计算基础设施,机器人领域开启新篇章   · 全新 NVIDIA Omniverse NuRec
    的头像 发表于 08-12 11:29 2002次阅读
    <b class='flag-5'>NVIDIA</b>通过全新 Omniverse库、Cosmos物理AI模型及AI<b class='flag-5'>计算</b>基础设施,<b class='flag-5'>为</b>机器人领域开启新篇章

    NVIDIA Jetson AGX Thor开发者套件概述

    NVIDIA Jetson AGX Thor 开发者套件提供出色的性能和可扩展性。它由 NVIDIA Blackwell GPU和128 GB 显存
    的头像 发表于 08-11 15:03 2082次阅读

    Ansys使用NVIDIA技术优化CFD仿真解决方案

    领先的解决方案提供商正在使用 OpenUSD、RTX 和 NVIDIA Blackwell 实现实时物理数字孪生。
    的头像 发表于 08-05 16:08 1681次阅读

    借助NVIDIA技术加速半导体芯片制造

    NVIDIA Blackwell GPU、NVIDIA Grace CPU、高速 NVIDIA NVLink 网络架构和交换机,以及诸如 NVIDI
    的头像 发表于 05-27 13:59 1274次阅读

    NVIDIA将为每家AI工厂提供网络安全

    NVIDIA DOCA Argus 框架可检测 AI 工作负载中的威胁并对之做出响应,同时与企业安全系统无缝集成,从而提供实时洞察。
    的头像 发表于 05-07 15:11 1130次阅读
    <b class='flag-5'>NVIDIA</b>将为每家AI工厂<b class='flag-5'>提供</b><b class='flag-5'>网络</b>安全