0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈GPU: 衡量计算效能的正确姿势(2)

Linux阅码场 来源:面包板社区 作者:Linux阅码场 2021-04-16 11:12 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这次我们准备聊下决定系统计算性能的两大关键指标,1. 浮点运算能力(FLOPS), 2. 内存带宽(Memory Bandwidth)。

一· 为什么这两个指标很重要

目前无论是嵌入式系统,PC还是大型服务器都遵循了冯。诺依曼结构。

fe1778c8-9e22-11eb-8b86-12bb97331649.png

CPU密集型程序来说,执行时候系统的内部交互主要在处理器(包括控制器和运算器)和存储器之间展开,大概是如下图过程。

fe2a96c4-9e22-11eb-8b86-12bb97331649.jpg

所以CPU的处理能力以及访存的效率对程序的性能起到了关键作用。大家知道计算一个程序执行时间的公式如下(假设该程序是CPU Bound),

程序执行时间(time) = 程序指令数目(Intructions) * 指令的平均时钟数(CPI, Clock cycles/Instruction) * 时钟周期(Seconds/Clock cycle)

为支持计算所需的精度和广度,CPU/GPU ALU支持浮点运算,单精度甚至双精度都是必须的要求。这里我们引入FLOPS(floating point operations per second)的概念来表征CPU/GPU浮点运算能力,所以针对浮点计算密集型程序,把FLOPS套到上面公式,我们可以用浮点运算数目/FLOPS来估摸程序大概执行时间。

访存效率的重要性我们这里也可以再提一下,以GPU为例,无论是游戏还是深度学习,都有大量的内存读写数据量。比如graphics里,有三角面片模型装载,纹理采样,深度测试(depth test),Alpha混合,以及图像输出等等。深度学习训练的时候,巨大的训练集/测试集输入,迭代过程几十万,百万级别参数读写。如果访存成为瓶颈(Memory Bound),强大的计算能力也无从发挥。

二,如何知道FLOPS 和内存带宽

我们先看下如何得到两个指标的理论数值。

关于内存带宽,假设某款GPU,其显示内存的时钟频率为1546 MHZ,显存的位宽(Interface Width)为384 bit, 则其带宽的理论峰值计算如下,具体也可以参考https://en.wikipedia.org/wiki/Memory_bandwidth。

BW = 1546(clocks per second) * 384(memory interface width) * 2(DDR) / 8(In bytes) = 148GB/s

而GPU的理论FLOPS计算就要微妙很多,各个厂家对演算过程讳莫如深,一般不会公开,我们这里也不多着墨,大家参考厂家给出的数据罢了。ARM的网站写过一篇文章探讨FLOPS营销噱头一地鸡毛的状态,Flipping the FLOPS - how ARM measures GPU compute performance,搜来看看,可以起到心理预防的作用。

相比理论数值,对码农来说,我们更关心是我们程序运行的实际性能数值,这才是关系我们饭碗的要紧之处。假设一个程序的核心运算是如下SAXPY,恰当地部署到GPU或者多核CPU后,比如平均运行时间为1us,我们该如何计算实际访存带宽和FOPS?

int N = 1 《《 22;

void saxpy(float a, float *x, float *y){

for (int i = 0; i 《 n; ++i)

y[i] = a*x[i] + y[i];

}

我们可以看到每次迭代,有三次内存访问(x读一次,y读写各一次),而有两次浮点运算(乘加各一次)。所以实际BW和FOPS的计算如下,

BW = (3 * N * 4) / (1 / 1e9) = 120GB/s

FOPS = (2 * N) / (1 / 1e9) = 20GFLOPS

我们可以把实际数值和理论峰值比较下,确认运算瓶颈在何处,是memory bound还是cpu bound,然后进一步优化,关于这部分内容,我们以后介绍roofline模型的时候还会涉及。

三,ALU和访存的功耗水平

下图来自David A. Patterson的另一本著作《计算机体系结构:量化研究方法》,罗列45nm制程各种类型ALU和访存的功耗大小以及他们相对水平,可以看到32b的内存访问的功耗远超同样位宽大小的运算。

fe39f16e-9e22-11eb-8b86-12bb97331649.png

为什么我们要在这里留意功耗水平?移动设备由于电池供电,尺寸大小散热限制,对功耗异常敏感,功耗大小直接决定设备的使用价值。以后我们谈到移动GPU的设计的时候,可以了解如何在消除减少内存访问方面极尽所能。另外比特币矿场矿机,数据中心的服务器,其数目都是以万记,它们更是电老虎,每天的电力消耗才是运营的最大费用,会极大地影响了投资回报率,所以功耗水平有很重要的经济效果。最后目前全民倡导碳中和,绿色计算,身处产业链的我们,从硬件和软件角度,努力提升功耗水平,也有很大社会意义。
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11326

    浏览量

    225836
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5266

    浏览量

    136040
  • ALU
    ALU
    +关注

    关注

    0

    文章

    34

    浏览量

    13552

原文标题:GPU: 衡量计算效能的正确姿势(2)

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    国产来袭!2nm AI GPU

    的时间和成本内实现。   近日,据媒体报道,上海棣山科技有限公司(以下简称“棣山科技”)对外披露其2nm高端AI GPU芯片最新研发进展。据悉,该公司自主攻关的这款芯片已达到国际前沿设计水平,目前核心研发工作仍处于原型验证关键阶段。   国产
    的头像 发表于 04-15 07:02 8126次阅读

    2026年1至2月中国集成电路出口额同比大增69%

    根据海关总署3月10日公布的数据,今年1月和2月,中国集成电路(IC)出口额达到3046.7亿元,同比增长68.9%。按数量计算,集成电路出口量比上年同期增长13.7%,达到524.6亿个。
    的头像 发表于 03-14 14:04 952次阅读

    如何在 VisionFive v2 上使用外部 GPU

    如果旧的 amd gpu 在 VisionFive V2 上运行,我想使用带有开源 amd 驱动程序的 amd gpu。我需要什么以及如何将 GPU 连接到 VisionFive v
    发表于 03-13 06:38

    成功案例:象帝先计算技术与Imagination合作——面向现代图形与计算工作负载的专业GPU

    为专业计算设计桌面GPU桌面GPU不仅用于游戏,还能加速从专业可视化、高级模拟到数据密集型计算在内的多种现代工作负载。专业用户需要能在多种应用场景中稳定运行的高性能、多功能平台。构建桌
    的头像 发表于 03-09 09:17 433次阅读
    成功案例:象帝先<b class='flag-5'>计算</b>技术与Imagination合作——面向现代图形与<b class='flag-5'>计算</b>工作负载的专业<b class='flag-5'>GPU</b>

    炎核开源开放平台上架推出OpenSparseBlas高性能稀疏计算

    在科学计算与工程仿真领域,高效处理大规模稀疏矩阵运算是提升整体计算效能的关键。为此,我们在炎核开源开放平台上架推出 OpenSparseBlas——一个专为稀疏矩阵/向量计算而打造的高
    的头像 发表于 12-15 15:18 963次阅读

    汽车中的GPU是如何使用的?

    (HMI)的发展尤为迅猛。随着电子电气架构(EEA)的集中化,车辆对高性能计算能力的需求显著提升,GPU(图形处理单元)的灵活性、可扩展性以及高效并行计算能力,使其成为支持这些创新应用的核心组件
    的头像 发表于 12-03 14:45 9691次阅读
    汽车中的<b class='flag-5'>GPU</b>是如何使用的?

    绝缘子漏电起痕试验仪泄漏电流信号的小波变换分析及电弧能量计算

    手段;而基于该分析结果的电弧能量计算,则能量化电弧对绝缘子性能的影响,两者共同为试验结果的精准解读与绝缘子耐痕性能评估提供科学依据。​ 泄漏电流信号的小波变换分析,核心在于对信号的“分层解析与特征提取”。试
    的头像 发表于 10-15 09:43 515次阅读
    绝缘子漏电起痕试验仪泄漏电流信号的小波变换分析及电弧能<b class='flag-5'>量计算</b>

    如何选择合适的电池电量计

    最优的电池性能依赖于驱动电量计算法的高精度的电池模型。花费大量时间进行定制特征分析能够获得高精度电池性能、最大程度减小电池电量的(SOC)误差,以及正确预测电池何时接近空电量。
    发表于 07-10 14:23 0次下载

    【VisionFive 2单板计算机试用体验】1、开箱初体验(刷系统+静态IP设置+GPU跑分测评)

    GPU跑分 首先用clinfo命令查看一下GPU,当然也可以在debain-system setting-about界面看到BXE-4-32GPU benchmark软件一般用glmark
    发表于 07-09 21:50

    如何计算孔板流量计和平衡流量计的流量?计算公式一样吗?

    平衡流量计与孔板流量计作为差压式流量计的典型代表,虽均基于压力差与流量的数学关系进行计算,但是平衡流量计
    的头像 发表于 07-09 13:54 1125次阅读
    如何<b class='flag-5'>计算</b>孔板流<b class='flag-5'>量计</b>和平衡流<b class='flag-5'>量计</b>的流量?<b class='flag-5'>计算</b>公式一样吗?

    GPU架构深度解析

    GPU架构深度解析从图形处理到通用计算的进化之路图形处理单元(GPU),作为现代计算机中不可或缺的一部分,已经从最初的图形渲染专用处理器,发展成为强大的并行
    的头像 发表于 05-30 10:36 2014次阅读
    <b class='flag-5'>GPU</b>架构深度解析

    自己动手绕线圈电感详细计算公式(建议收藏!)

    线圈高度W----线圈宽度单位分别为毫米和mH。空心线圈电感量计算公式:l=(0.01*D*N*N)/(L/D+0.44)线圈电感量l单位:微亨线圈直径D单位:cm线圈匝数N单位:匝线圈长度L单位:cm 获取完整文档资料可下载附件哦!!!! 如果内容有帮助可以关注、点赞、评论支持一下哦~
    发表于 05-28 16:57

    Imagination与澎峰科技携手推动GPU+AI解决方案,共拓计算生态

    近日, Imagination Technologies 与国内领先的异构计算软件与智算混合云服务提供商 澎峰科技 ( PerfXLab )正式签署合作备忘录( MoU ),围绕 GPU 与 AI
    发表于 05-21 09:40 1291次阅读

    变压器速查速算手册(完整版)

    资料介绍本文较详细而系统地介绍了变压器的计算公式和计算方法。内容包括:变压器基本计算及试验计算,变压器运行和节能计算,变压器容
    发表于 04-30 17:40

    常见传动机构负载惯量计算方法及实例

    传动机构负载惯量计算方法 1. 丝杆传动机构 丝杆传动机构广泛应用于精密定位系统中。其负载惯量的计算需要考虑负载质量、丝杆导程、丝杆直径以及摩擦系数等因素。 假设负载质量为m,丝杆导程为Pb,丝杆直径为Db,负载移动速度为
    的头像 发表于 04-23 17:38 5190次阅读
    常见传动机构负载惯<b class='flag-5'>量计算</b>方法及实例