找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2431

积分

0

好友

327

主题
发表于 4 小时前 | 查看: 4| 回复: 0

复古科技风格 GPU 科普插画

提到 GPU 深度学习加速,就绕不开 cuBLAS——NVIDIA 最重要的基础数学库,而其中的 GEMM(通用矩阵乘法)更是 AI 训练、推理的核心操作。很多人不知道,cuBLAS 内置了 5000 个 GEMM 核芯,还搭载了一套专属推荐系统,能在运行时自动选出最优核芯。这套选择逻辑,正是 NVIDIA GPU 性能强悍的关键秘密,也是众多开发者在云栈社区讨论高性能计算时的热点话题。

GPU Roofline性能分析散点图

一、核芯选择的难题:组合爆炸式的配置空间

cuBLAS 要面对的核心问题,是组合爆炸。光看 cuBLASLt 的定义就足够惊人:

  • 635 种分块(tile)尺寸
  • 38 种流水线阶段配置
  • 52 种集群形状
  • 4 种归约方案

在此基础上,还要叠加数据类型(从 FP4 到 FP64 全覆盖)、矩阵存储布局(NN/NT/TN/TT 四种组合)、融合后处理操作(偏置加法、ReLU、GELU 等)。把这些参数自由组合后,单种 GPU 架构下,合法的核芯配置就达到数百万种。手动为每一种计算场景挑选最优核芯,根本不现实。

二、NVIDIA 的解法:训练专属推荐系统

面对海量配置,NVIDIA 没有采用穷举,而是打造了机器学习推荐模型:

  • 采集不同精度、矩阵形状、存储布局、后处理方式下的核芯运行耗时数据;
  • 训练模型,建立「计算场景特征→最优核芯」的映射关系;
  • 运行时输入矩阵尺寸、流多处理器数量、共享内存、计算强度等参数,微秒级完成核芯调度。

这套系统效果十分出色:在全场景下,推荐结果能达到理论峰值算力的 93%(几何平均),兼顾了速度与性能。

三、93% 的短板:长尾场景下的性能损耗

93% 的性能表现看似优秀,却在长尾特殊场景中暴露问题。vLLM 团队测试发现:在 H100 显卡上执行 272×4096 × 4096×14336 的 BF16 矩阵乘法时,cuBLAS 默认推荐的核芯,比最优方案慢了 43%。

解决方案是切换到 cuBLASLt:它不再只返回 1 个最优推荐,而是提供多达 100 个排序候选。同时 cuBLAS 与 cuBLASLt 的核芯库有重叠但不完全一致,最终 cuBLASLt 选出的最优核芯,比 cuBLAS 默认选择快了 26%,完美弥补了性能缺口。

四、底层支撑:nvMatmulHeuristics 解析模型

无论是 cuBLAS 还是 cuBLASLt,底层都依赖 nvMatmulHeuristics——NVIDIA 去年开源的核心工具,部分替代了机器学习方案,采用解析式性能模型:

  • 预测 L2 缓存命中率
  • 分析内存带宽
  • 估算能耗

无需机器学习训练,纯理论建模即可完成筛选。实测效果惊人:

Llama 3 405B 模型场景:从数千候选中筛选 16 个,150 分钟达到 96% 峰值算力(穷举需 700 + 分钟);

B200 显卡 + DeepSeek-R1 场景:直接逼近 99% 峰值算力。

五、核心结论:矩阵乘法没有唯一最优解

NVIDIA cuBLAS 预装了训练好的启发式推荐算法,但矩阵乘法的世界里,不存在唯一的“最佳答案”。谁能在运行时精准、快速地选出最快核芯,谁就能掌控所有 AI 框架的默认性能上限。这也是为什么如今大模型推理框架,都在持续优化 GEMM 核芯调度策略——哪怕提升几个百分点,都能直接转化为实实在在的速度优势。理解这套底层机制,对于使用 C++ 进行高性能计算编程的开发者而言至关重要。

更多冷知识




上一篇:理想汽车2026年财报解析:为何李想暂放高速增长“执念”,转向务实战略?
下一篇:工资倒挂引争议?离职后被高薪召回背后的职场真相
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-15 21:50 , Processed in 0.685459 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表