← 回總覽

GPU 隔离技术的分析与改进

📅 2026-04-29 12:00 哔哩哔哩技术 软件编程 2 分鐘 1780 字 評分: 88
GPU 隔离 NVIDIA CUDA BGM 算力隔离
📌 一句话摘要 本文深入分析了 NVIDIA GPU 在 AI 场景下的利用率问题,系统梳理了 MPS、MIG、CUDA 劫持和内核拦截等业界隔离方案,并基于 NVIDIA 开源驱动提出了 B 站自研的 BGM 内核隔离方案,通过修改 TSG 时间片实现算力与显存的精细隔离。 📝 详细摘要 文章首先指出 AI 场景下 GPU 利用率普遍低下的问题,并从空间和时间两个维度阐述了 GPU 算力切分的思路。接着,文章详细介绍了 CUDA 计算软件栈,为理解后续隔离方案奠定基础。在业界方案部分,文章分析了 NVIDIA 官方的 MPS(多进程服务)和 MIG(多实例 GPU)方案,指出其黑盒、静态

📌 一句话摘要

本文深入分析了 NVIDIA GPU 在 AI 场景下的利用率问题,系统梳理了 MPS、MIG、CUDA 劫持和内核拦截等业界隔离方案,并基于 NVIDIA 开源驱动提出了 B 站自研的 BGM 内核隔离方案,通过修改 TSG 时间片实现算力与显存的精细隔离。

📝 详细摘要

文章首先指出 AI 场景下 GPU 利用率普遍低下的问题,并从空间和时间两个维度阐述了 GPU 算力切分的思路。接着,文章详细介绍了 CUDA 计算软件栈,为理解后续隔离方案奠定基础。在业界方案部分,文章分析了 NVIDIA 官方的 MPS(多进程服务)和 MIG(多实例 GPU)方案,指出其黑盒、静态、灵活性差等缺陷;同时介绍了腾讯 GaiaGPU 为代表的 CUDA 劫持方案和百度、阿里等采用的内核拦截方案,并指出劫持方案缺乏反馈机制、内核拦截方案维护成本高的问题。针对这些痛点,文章重点介绍了 B 站自研的 BGM(bilibili GPU Manager)内核隔离方案。该方案利用 NVIDIA 开源驱动,通过内核模块联动 Cgroup 子系统,在驱动层直接修改显存总量信息和 TSG(时间片组)的时间片配置,实现了显存和算力的精细隔离。文章通过 TensorFlow 基准测试验证了该方案的有效性,在 2 Pod 和 4 Pod 混跑场景下,吞吐比与算力配置基本一致。最后,文章指出了当前方案作为时分复用的局限性,并展望了未来在抢占模式和调度策略上的优化方向。

💡 主要观点

- GPU 利用率低下的核心问题在于空间和时间维度的资源浪费。 空间上,单次任务无法占满全部 GPU 核心;时间上,任务切换存在等待开销。隔离技术旨在通过空分(硬件虚拟化)或时分(时间片管理)来提升资源复用率。

NVIDIA 官方方案(MPS/MIG)存在黑盒、静态、灵活性差等缺陷。 MPS 存在故障传播问题,MIG 仅支持高端 GPU 且实例数量有限、资源分配静态。这些方案难以根据业务需求进行灵活适配。
B 站自研的 BGM 内核隔离方案通过修改驱动层参数实现精细隔离。 利用 NVIDIA 开源驱动,BGM 模块在驱动层拦截显存分配和 TSG 时间片设置,通过 Cgroup 接口暴露给用户,实现了比劫持方案更透明、更高效的隔离。
通过调整 TSG 时间片,可以按需分配算力并保障高优任务性能。 为高优任务分配更大的时间片,可减少其被低优任务抢占的频率和等待时间,从而在混部场景下保障高优任务的 QoS。

💬 文章金句

- 在空间维度上切分算力,即空分方案,该方案着眼于在 GPU 资源核心的极致挖掘,通过实现多个任务并行运行,目的是充分利用图 1 中的 idle 部分的算力,提升 GPU 资源的饱和度利用。

  • 在时间维度上切分算力,即时分方案,该方案聚焦于任务的时间管理,通过对时间片的拦截,有效地减少任务切换所需要的等待时间,从而保障业务 Qos 的高标准。
  • 相对于各类劫持,直接在驱动层进行参数和结果的修正,无疑是更加透明和高效的。
  • 通过给高优任务大的时间片,低优任务小的时间片,一方面可以实现让高优任务尽可能在一个时间片完成任务;另一方面,也可以减小高优任务等待切换的时间;这样,可以有效地提升高优任务的性能,并减小受干扰程度。

📊 文章信息

AI 初评:88

来源:哔哩哔哩技术

作者:哔哩哔哩技术

分类:软件编程

语言:中文

阅读时间:27 分钟

字数:6504

标签: GPU 隔离, NVIDIA, CUDA, BGM, 算力隔离

阅读完整文章

查看原文 → 發佈: 2026-04-29 12:00:00 收錄: 2026-04-29 18:00:02

🤖 問 AI

針對這篇文章提問,AI 會根據文章內容回答。按 Ctrl+Enter 送出。