在 Linux 内核邮件列表(LKML)的历史中,很少有一场讨论能像 2021 年关于 dma_buf_pin 的争论那样,集结了 NVIDIA、AMD、Intel、Mellanox 以及 DRM 子系统的所有顶级维护者。

这场对话不仅决定了 EFA 网卡与 Habanalabs AI 加速器如何通信,更定义了高性能计算(HPC)与通用操作系统(General Purpose OS)在 AI 时代的权力边界。


一、 背景:EFA 与 Habanalabs 的“握手”难题

故事始于 Amazon EFA 网卡的工程师 Gal Pressman 提交的一个补丁。他希望通过 dma-buf 框架,让网卡直接访问 Habanalabs AI 加速器的显存(P2P DMA)。

矛盾点在于:

  • RDMA 网卡:要求内存物理地址固定(Pinned),否则数据传输中内存一旦挪窝,硬件就会崩盘。

  • 通用 GPU 驱动(如 AMD/Intel):要求内存可移动(Evictable),以便进行显存碎片整理或处理多个应用的显示需求。


二、 核心博弈:四方势力的哲学碰撞

1. 稳健派:Christian König (AMD) & Dave Airlie (DRM 掌门人)

核心观点:Pin 是“毒药”,安全性与隔离性高于一切。

Christian 和 Dave 极力反对在 API 层面允许无限制的 dma_buf_pin。他们的理由是:

  • 系统稳定性:一旦内存被 Pin 住,内核就失去了调度的灵活性。如果一个恶意进程锁死了所有显存,整个 GPU 甚至操作系统都会因为 -ENOMEM(内存不足)而崩溃。

  • 反“企业思维”:Dave 辛辣地讽刺道:“不考虑多用户并发是典型的‘企业思维’。”内核必须保护普通桌面用户,不能为了 AI 服务器的性能就毁掉系统的通用性。

2. 性能派:John Hubbard (NVIDIA)

核心观点:性能是第一生产力,API 不应预设限制。

John 代表 NVIDIA 捍卫了高性能路径:

  • 搬运代价:如果为了安全强制将 Pin 住的显存搬到系统内存,P2P 的带宽优势将荡然无存。

  • 中立性:他要求 dma_buf_pin API 保持中立。驱动可以决定是否搬运,但 API 不能强制要求搬运。

3. 实用主义:Jason Gunthorpe (RDMA/VFIO 维护者)

核心观点:机制与策略分离,GPU 并不特殊。

Jason 提出了一个降维打击的逻辑:

  • 现成工具:内核早就有 ulimit(用户限额)来管理内存锁定。既然能管好系统内存,为什么管不好显存?

  • 打脸 ODP:他指出 ODP(按需分页)虽然优雅,但性能损耗大、硬件支持少,在可预见的未来,Pin 依然是高性能计算的刚需。

4. 极致狂热派:Oded Gabbay (Habanalabs/Intel AI)

核心观点:AI 芯片不是 GPU,它是性能怪兽。

Oded 的发言揭示了 AI 训练的冷酷现实:

  • 单用户独占:在 128 颗 AI 芯片组成的集群里,不存在“多用户竞争”。芯片存在的唯一目的就是锁死所有 HBM(显存)跑任务。

  • 拒绝限制:他认为在 AI 领域,任何限制内存锁定的“旋钮(Knob)”都是对性能的阻碍。


三、 技术定论:三权分立的 P2P 架构

经过多轮火星四溅的辩论,社区最终达成了一套“求同存异”的方案,这成为了今天 Linux 处理异构计算的基石:

1. 驱动自治原则

内核不再强制规定 pin 操作必须搬运内存。

  • 计算卡(如 Gaudi/NVIDIA 计算模式):可以在显存内原地锁定,支持最高速的 P2P。

  • 通用 GPU(如 AMD APU):可以继续执行“Pin 就搬家”的策略,确保显示输出的稳定性。

2. 管理权下放

引入或复用 ulimitcgroups

  • 内核提供机制(Mechanism):允许 Pin。

  • 管理员决定策略(Policy):通过配额限制谁能 Pin、能 Pin 多少。

3. ODP 是未来,Pin 是现实

社区承认 ODP 是解决内存动态移动的最优雅方案(长远目标),但在硬件普及和性能优化完成前,dma_buf_pin 将作为高性能 P2P 的标准路径被长期支持。


四、 总结:对我们的启示

这场讨论向我们展示了 Linux 内核是如何在极致性能硬件局限架构纯粹性之间走钢丝的:

  • 没有 Jason 的坚持,高性能 P2P 可能会因为过于死板的 API 语义而胎死腹中。

  • 没有 Christian 的挑战,Linux 可能会因为过度放权给硬件驱动而变得脆弱不堪。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐