当前位置: 首页 > news >正文

字节跳动GPU Scale-up互联技术白皮书

在人工智能与机器学习技术爆发式发展的浪潮中,AI模型的规模与复杂度呈指数级增长,推动GPU集群向更大规模、更高性能的方向演进。AI训练和推理任务对数据处理能力的需求不断突破极限,不仅要求GPU集群能够处理海量数据、训练更深层次的神经网络,还需在降低任务执行延迟与提升系统整体效率之间实现平衡。这一背景下,GPU集群的Scale-up网络架构成为关键瓶颈——如何在机架级乃至多机架级规模下,实现GPU之间低延迟、高带宽的数据互联,成为业界亟待解决的核心挑战。  

以太网技术凭借其标准化生态、持续迭代的高速链路(如单芯片带宽每18个月翻倍的摩尔定律)以及大规模部署的成本优势,成为构建下一代AI集群互联架构的理想基石。当前,行业组织正基于以太网探索AI集群专用的Scale-up网络技术,试图通过协议优化与硬件创新,突破传统互联方案在语义支持、传输效率与可扩展性上的局限。  

字节跳动深耕AI基础设施领域,针对GPU架构特性与AI应用场景需求,推出自研的EthLink以太网互联方案。该方案基于以太网技术栈,创新性地融合Load/Store与RDMA语义,实现了对小块控制数据与大块模型数据的差异化高效传输,同时通过协议栈优化、网络拓扑设计与可靠性机制,构建了低延迟、高带宽且可扩展的GPU集群互联架构。本文将系统解析GPU架构与互联需求,阐述下一代Scale-up网络的设计逻辑,并详细介绍EthLink方案的技术细节,为AI集群的网络架构演进提供实践参考与技术洞察。

图片

今年4月29日,字节跳动对外发布了《字节跳动 GPU Scale-up 互联技术白皮书》,针对GPU架构和GPU互联的基础原理总结得非常好,这里节选部分内容推荐给各位读者。可以直接点击文章底部“阅读原文”获取完整版本。

图片

1. GPU基础架构

目前主流的 GPU 架构都支持 Load-Store 语义,如下图所示,GPU 的计算引擎从寄存器中读写数据并完成数据的处理,LSU(Load-Store Unit)通过 Load/Store 指令在寄存器和 Device Memory 之间,以及 Device Memory 和外部 Memory 之间完成数据传输。

图片

基于上述架构模型的 GPU,计算引擎主要负责数据的处理,LSU 负责数据的传输,如下图所示,两个模块可以并行工作形成流水线,数据传输主要依靠 Load 和 Store 语义完成。

图片

实际的 GPU 架构要比上述的 GPU 架构模型更加复杂,GPGPU(General Purpose GPU)架构通常如下图所示,Device Memory 包括 L1/L2 Cache 和 Shared Memory,Shared Memory 和 L1 Cache 位于 Streaming Multiprocessor(SM)内部,不能在 SM 之间进行共享。L2 Cache 位于 SM 外部,可以被所有 SM 共享。GPU 外部 Memory 为 Global Memory,可以 被所有的 SM 访问,也可以被 CPU 或者其他 GPU 访问。

图片

在上述 GPU 的架构中,GPU 主要通过 LSU 完成数据的传输,如下图所示。计 算引擎通过寄存器进行数据的访问,IO 时延为 ns 级。LSU 通过 Load/Store 操作实现 Shared Memory 与寄存器之间,以及 Shared Memory 与/L1/L2 Cache 之间的数据传输,IO 时延为 10ns 级,IO Size 通常为寄存器级(32/64 bit)。当出现 Cache Miss 时,LSU 需要进行 Global Memory 和Shared Memory 之间的数据传输,IO 时延为 100ns 级,IO Size 为 Cache Line Size(64/128/256 Byte)。

图片

在 AI 应用场景中,计算引擎需要处理大量的数据信息,LSU 可以实现数据的 高效传输,但是 LSU 每次传输的数据块比较小,在传输大块数据时,需要 LSU 下发多个 Load/Store 指令来完成数据的搬运。Load/Store 指令的内存地址或 者寄存器地址信息,需要计算引擎提前生成并发给 LSU,Load/Store 指令的 地址信息处理会消耗计算引擎的算力资源。因此通过 LSU 来完成大块数据的传 输,会伴随计算引擎的部分算力资源的消耗。

为了优化 GPU 数据传输方案,降低计算引擎用于数据传输的算力资源,新型 号的 GPU 在片内增加了类似于 DMA 引擎的传输模块,如 NVIDIA 从Hopper 系列的 GPU 开始,在 SM 内增加了 Tensor Memory Accelerator (TMA),专门用于 Global Memory 到 Shared Memory 之间的数据传输, 如下图所示。

http://www.xdnf.cn/news/642655.html

相关文章:

  • 使用CRTP实现单例
  • [yolov11改进系列]基于yolov11引入双层路由注意力机制Biformer解决小目标遮挡等问题python源码+训练源码
  • 优秀技术文档的构建与优化之道
  • Typescript学习教程,从入门到精通,TypeScript 进阶语法知识点及案例代码详解(13)
  • QStandardItemModel的函数和信号介绍
  • Java单例模式:懒汉模式详解
  • MyBatis-Plus一站式增强组件MyBatis-Plus-kit:打造更优雅的通用CRUD解决方案
  • 15 dart类(get,set,静态,继承,抽象,接口,混入)
  • AUTOSAR图解==>AUTOSAR_SRS_Libraries
  • java数组,ArrayList,LinkedList
  • win主机,Ubuntu,IMX6ULL开发板网络通讯
  • 神经网络学习-Day35
  • 麒麟V10 SP1 2303使用记录(一)安装google浏览器
  • 提高:RMQ问题:【例 3】与众不同
  • 固态硬盘颗粒类型、选型与应用场景深度解析
  • 基于PySide6与pycatia的CATIA几何阵列生成器开发实践
  • 5.25 note
  • uni-app学习笔记十二-vue3中创建组件
  • ISO 20000体系:需求管理与容量管理含义与解释
  • 以下是修改Java版《我的世界》字体的分步指南(DeepSeek)
  • uni-app学习笔记十一--vu3 watch和watchEffect侦听
  • IntelliJ IDEA 中配置 Gradle 的分发方式distribution
  • jvm垃圾回收
  • github项目:llm-guard
  • 函数[x]和{x}在数论中的应用
  • 李沐《动手学深度学习》| 4.4 模型的选择、过拟合和欠拟合.md
  • STL的map和set(关联式容器深度解析)
  • 2025第三届黄河流域网络安全技能挑战赛--Crypto--WriteUp
  • 网络原理入门详解:从零理解互联网如何工作
  • Modbus协议原理