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

CUDA性能指标

带宽

CUDA C++ Best Practices Guide Ch9:性能指标

理论带宽(Theoretical Bandwidth)

文档用 Tesla V100 举例,公式是:

理论带宽= 内存时钟频率(Hz) × 总线位宽(bytes) × 2(双倍速率)

V100:0.877×10⁹ × (4096/8) × 2 ÷ 10⁹ = 898 GB/s

这是硬件物理上限,你的 kernel 永远无法超过这个值。

有效带宽(Effective Bandwidth)

有效带宽= (读字节数 Br + 写字节数 Bw) ÷ 10⁹ ÷ 时间(s)

内存利用率= 有效带宽 / 理论带宽

这个比值是衡量内存优化效果最直接的数字。比值低,说明内存访问模式有问题。

矩阵乘法有效带宽计算公式

对于矩阵运算C=A×BC = A \times BC=A×B(其中A∈RM×KA \in \mathbb{R}^{M \times K}ARM×K,B∈RK×NB \in \mathbb{R}^{K \times N}BRK×N),其有效带宽计算如下:

1. 核心公式

BWeffective=(M×K+K×N+M×N)×sizeof(type)109×Time(s)BW_{effective} = \frac{(M \times K + K \times N + M \times N) \times \text{sizeof(type)}}{10^9 \times \text{Time}(s)}BWeffective=109×Time(s)(M×K+K×N+M×N)×sizeof(type)

2. 参数说明
符号含义备注
M,K,NM, K, NM,K,N矩阵维度AAAM×KM \times KM×K,BBBK×NK \times NK×N,CCCM×NM \times NM×N
sizeof(type)\text{sizeof(type)}sizeof(type)数据类型大小float为 4 字节,half/FP16为 2 字节
Time\text{Time}Time算子执行耗时单位:秒 (s)
10910^9109单位转换系数将 Byte/s 转换为 GB/s

3. 计算示例 (2048×20482048 \times 20482048×2048, Float32)

假设M=K=N=2048M=K=N=2048M=K=N=2048,数据类型为float32(4 bytes),实测耗时1ms1\text{ms}1ms(0.001s0.001\text{s}0.001s):

  • 读取 A + B:2048×2048×4×2=33,554,4322048 \times 2048 \times 4 \times 2 = 33,554,4322048×2048×4×2=33,554,432Bytes
  • 写入 C:2048×2048×4=16,777,2162048 \times 2048 \times 4 = 16,777,2162048×2048×4=16,777,216Bytes
  • 总访存量:50,331,64850,331,64850,331,648Bytes (≈50.3\approx 50.350.3MB)

代入公式:
BWeffective=50,331,648109×0.001=50.33 GB/sBW_{effective} = \frac{50,331,648}{10^9 \times 0.001} = 50.33 \text{ GB/s}BWeffective=109×0.00150,331,648=50.33GB/s


注意
矩阵乘法的理论计算强度极高(O(N)O(N)O(N)级别),因此其性能通常受限于GFLOPS(计算受限),而非带宽。在 A100/H100 等卡上,GEMM 的有效带宽通常远低于显卡的理论峰值带宽。

GFLOPS

GFLOPS(Giga Floating Point Operations Per Second):
例如,矩阵乘法 C = A × B,其中 A 是 M×K,B 是 K×N:

  • C 的每个元素需要 K 次乘法 + K 次加法 = 2K 次浮点运算
  • C 共有 M×N 个元素
  • 总浮点运算量 = 2 × M × N × K 次

GFLOPS = 浮点运算次数 / 时间(s) / 1e9

带宽利用率和OPS对比

维度有效带宽 (Bandwidth)GFLOPS
全称Effective BandwidthGiga Floating-point Operations Per Second
衡量目标内存/显存的吞吐能力计算核心 (ALU/CUDA Core)的吞吐能力
单位GB/s (每秒十亿字节)GFLOPS (每秒十亿次浮点运算)
关注点数据搬运的速度(物流)数据加工的速度(生产)
性能瓶颈访存受限 (Memory Bound)计算受限 (Compute Bound)
典型算子Matrix Copy, ReLU, Element-wise AddMatrix Multiplication (GEMM), Convolution
优化核心减少合并访存、提升缓存命中率提高运算单元利用率、利用 Tensor Core

核心逻辑

  • 如果你的算法主要是“搬运工”(如Matrix Copy),请盯着有效带宽看。
  • 如果你的算法主要是“加工厂”(如GEMM),请盯着GFLOPS看。

性能评价的金标准:Roofline Model (顶峰模型)

todo

http://www.jsqmd.com/news/528019/

相关文章:

  • 深度解析Magpie:Windows窗口缩放工具的架构设计与性能调优
  • 每日AI资讯速递 - 2026年3月24日
  • 2026年房产纠纷律所推荐:二手房买卖合同纠纷热门团队与成功案例对比 - 品牌推荐
  • 从先验到后验:贝叶斯估计如何量化不确定性并优化信号处理
  • 2026年好用的GEO优化服务公司推荐,覆盖川鄂贵等地 - 工业品牌热点
  • 2026公共建筑场景PVC彩壳耐久性深度解析 - 资讯焦点
  • YOLOv8如何应对遮挡?复杂场景检测优化实战
  • 腰腿痛反复不好?可能不是腰肌劳损,而是腰椎间盘突出
  • log5:数组
  • cv_unet_image-colorization部署教程:Linux服务器后台常驻服务部署方案
  • Vite + React 中静态资源动态访问
  • 爬虫用动态代理IP必看注意事项,防封技巧全攻略
  • 2026老旧小区改造橡塑板品牌深度评测报告 - 资讯焦点
  • 2026冶金化工铅泵品牌性能深度评测报告 - 资讯焦点
  • STM32F7 LTDC+DMA2D驱动TFT-LCD实战指南
  • AI率87%→知网0%的真实测试到0%
  • LumiPixel Canvas Quest模型文件管理与版本控制实践
  • 解读南方网通讯灵GEO服务重庆代理,哪个口碑好 - 工业品网
  • Universal Pokemon Randomizer ZX:重塑宝可梦游戏体验的开源利器
  • 2026年南方网通讯灵GEO服务重庆代理前景如何,有实力的品牌盘点 - 工业推荐榜
  • Ostrakon-VL-8B项目实战:从零搭建一个图片社交应用的AI理解后端
  • 2026年遗产继承律师推荐:家庭资产传承规划靠谱选择与专业能力深度分析 - 十大品牌推荐
  • 娜塔莉·波特曼出演蒂芙尼的“HardWear”系列广告片
  • Linux top命令高级玩法:f 字段定制与企业级排障实战
  • godot-rust入门案例
  • Web of Science核心合集文献条目批量导出工具
  • Redis String结构详解:从底层原理到实战应用
  • Virtual Display Driver:零成本打造专业多屏环境的终极方案
  • 让大模型用代码说话(非常详细),CodeAct技术原理从入门到精通,收藏这一篇就够了!
  • Go应用内存泄漏排查手册:用pprof抓取heap数据+Graphviz可视化解析