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

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

3天内不再提示

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

Linux阅码场 来源:面包板社区 作者:Linux阅码场 2021-04-16 11:16 次阅读

上期我们讲了现代计算机体系结构通过处理器(CPU/GPU)和内存的交互来执行计算程序,处理输入数据,并输出结果。实际上,由于CPU是高速器件,而内存访问速度往往受限(如图所示,CPU和内存的性能差距从上个世纪80年代开始,不断拉大),为解决速度匹配的问题,在CPU和内存之间设置了高速缓冲存储器Cache。

04180576-9e23-11eb-8b86-12bb97331649.png

而且Cache往往分几个层级,与内存以及其它外部存储器共同构成计算机系统的存储器层次结构(Memory Hierarchy),如下图所示,使得整个系统在性能,成本和制造工艺达到平衡。

045341ae-9e23-11eb-8b86-12bb97331649.jpg

我们可以看到,各个存储层次在访问时间上存在数量级别的差异,访问速度越快,单位制造成本越高,容量越小。在这里,我们并不打算讨论Cache具体设计和实现,只是希望针对Cache及其命中率对性能的影响有一个直观的认识。为了简化讨论问题的复杂性,我们这里做如下假设。

整个流水线分为5个阶段,分别为《1》取指、《2》译码、《3》运算执行、《4》访存读写 (可选)、《5》写回结果至寄存器

这里只考虑一级Cache,而且指令、数据共享L1 Cache。Cache命中的情况下,每个阶段都是1个时钟(cycle),而cache不命中的情况,阶段《1》,《5》各耗时100个时钟(cycles)。

访存指令占所有指令1/3。下面我们来分别计算3种情况下的CPI。

= 100 cycles + 3 * (1 cycle) + ((1 cycle * 2/3) + (100 cycles * 1/3))

= 137 cycles.

= (1 cycle * 0.9 + 100 cycles * (1 - 0.9)) + (3 cycles) + ((1 cycle * (2/3 + 0.9/3)) + (100cycles * (1 - 0.9) * 1/3))

= 18.2 cycles.

= (1 cycle * (0.99) + 100 cycles * (1 - 0.99)) + (3 cycles) + ((1 cycle * (2/3 + 0.99/3)) + (100 cycles * (1 - 0.99) * 1/3))

= 6.32 cycles.

Cache完全缺失。

CPI = 《1》阶段的时钟+《2, 3, 5》阶段的时钟+《4》阶段的时钟

Cache命中率达到90%。

CPI = 《1》阶段的时钟+《2, 3, 5》阶段的时钟+《4》阶段的时钟

Cache命中率达到99%

CPI = 《1》阶段的时钟+《2, 3, 5》阶段的时钟+《4》阶段的时钟另外在上期文章里我们也提到同样32b数据的访问,DRAM的耗能是SRAM的百倍(640pJ vs 5pJ)。完全可见正确配置Cache对高能效高性能计算的重要作用。

值得一提的是,由于CPU和GPU设计面向的差异,他们的Memory Hierarchy存在明显的区别,一个典型的对比如下图,可以看到GPU的Memeory Hierarchy设计的时候更注意带宽或者说Throughput,而相比之下对Latency就没有CPU重视, GPU Cache容量也相对比较小。

045d4bae-9e23-11eb-8b86-12bb97331649.png

那我们不禁要问,GPU的Latency指标这么糟糕,按照我们先前的计算,Cache不命中的后果是不是很严重?不过不要担心,CPU的Cache不命中可能会导致叫停流水线的严重后果,而对GPU,只要计算任务量足够,它的硬件调度器(Hardware Scheduler)能够自动在不同的任务间无缝切换,来掩藏特定任务访问memory带来的延迟。关于GPU的Latency hiding,值得大书特书,我们以后会详细讨论。
编辑:lyn

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

    关注

    68

    文章

    10442

    浏览量

    206545
  • Cache
    +关注

    关注

    0

    文章

    127

    浏览量

    27979

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

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

收藏 人收藏

    评论

    相关推荐

    赋能产业互联网,高通量计算让世界更高效!

    随着互联网技术的迅猛发展,计算机的主要应用从以传统的科学与工程计算为主逐步演变为以数据处理为核心,以传统高性能计算机体系结构为核心技术的新型基础设施面临巨大挑战,高通量计算应运而生。中
    发表于 04-12 14:46 97次阅读
    赋能产业互联网,高通<b class='flag-5'>量计算</b>让世界更高效!

    怎么根据变压器容量计算出最大需量

    根据变压器容量来计算最大需量是一个重要的问题,尤其是在电力系统中。最大需量是指某一时间段内需求的最大电力负荷。 变压器容量是指变压器能够输出的最大功率。它通常以千伏安(kVA)为单位衡量。在计算最大
    的头像 发表于 03-24 10:16 1863次阅读

    量计算公式多少度电 电量和度数怎么换算

    量计算公式多少度电? 电量计算公式是通过电压和电流的乘积来计算的,单位为瓦特-小时(Wh)。公式为: 电量(Wh)= 电压(V) × 电流(A) × 使用时间(小时) 其中,电压是指电流通过的电器
    的头像 发表于 02-03 14:42 1.1w次阅读

    AMD将推新GPU效能媲美英伟达RTX 4080

    据悉,AMD正努力研制新品级GPU,性能堪比英伟达的RTX 4080,而售价却只有后者的一半。据多个在线社区反映,AMD即将发布的Radeon RX 8000系列GPU效能与NVIDIA几乎不相上下,定价却只是前者的一半。
    的头像 发表于 01-31 10:00 453次阅读

    LTM4620给fpga提供1.0V内核电源,4620输出电容量计算是否应该包含布局在fpga芯片附近的bulk电容?

    LTM4620给fpga提供1.0V内核电源,4620输出电容量计算是否应该包含布局在fpga芯片附近的bulk电容? 靠近FPGA布局的电容也比较大,比如470uF。但这些电容隔4620布局比较远,大于7cm。通过内电层铺铜连接。
    发表于 01-05 06:01

    【先楫HPM5361EVK开发板试用体验】性能测试基准---Dhrystone (3)

    1、Dhrystone介绍 Dhrystone是一种用于测量计算机性能的基准测试程序。它最初由Weicker和Emery编写于1984年,是一种用于衡量计算机处理器性能的标准测试
    发表于 12-20 22:14

    小型流量计正确安装方法

    正确安装小型流量计是确保其准确测量和长期稳定运行的关键步骤。以下是正确安装小型流量计的一些要点。
    的头像 发表于 12-19 15:44 362次阅读
    小型流<b class='flag-5'>量计</b><b class='flag-5'>正确</b>安装方法

    AD5933/AD5934阻抗测量不正确的问题怎么解决?

    本人在开发AD5933/AD5934阻抗测试板时遇到了以下问题: 1、按参考历程对控制寄存器写命令,则初始化后的输出波形峰峰值无法按命令改变,测量计算后的阻值会随实际值增大而增大,但不
    发表于 12-15 07:02

    采用AD5933进行阻抗测量,测量计算后的阻值会随实际值增大而增大的原因?

    您好,最近采用AD5933进行阻抗测量,电路如下图: 编程控制Vout 为2Vp-p,30kHz;PGA=1;校准电阻10k 测量计算后的阻值会随实际值增大而增大,但不成比例;具体数值如下: 请问出现这种问题的原因是什么?
    发表于 12-12 07:38

    铜排载流量计算方法

    铜排是工业中常用的一种导电材料,通常用于电路板、电缆和电器设备中。在设计和使用铜排的过程中,需要准确计算其载流量,以确保其正常工作和安全可靠。本文将详细介绍铜排载流量的计算方法。 铜排载流量计算
    的头像 发表于 12-08 14:06 3111次阅读

    高效稳定管理电源的正确姿势”!

    高效稳定管理电源的正确姿势”!
    的头像 发表于 11-23 09:04 210次阅读
    高效稳定管理电源的<b class='flag-5'>正确</b>“<b class='flag-5'>姿势</b>”!

    TI电量计算法流程学习笔记

    在了解电量计算法之前,我们需要先了解一些电池、电量计领域常见专有名词的缩写定义。
    的头像 发表于 10-16 16:23 1755次阅读
    TI电<b class='flag-5'>量计算</b>法流程学习笔记

    咖啡机流量计正确安装方法

    咖啡机流量计是一种用于测量咖啡机中水流量的设备,正确的安装方法可以确保咖啡机的正常运行和准确的水流量测量。 首先,选择合适的位置安装流量计。通常,流量计应安装在咖啡机的水管上,确保水流
    发表于 08-11 14:35

    AI芯片的应用场景和发展趋势

    AI芯片也被称为AI加速器或计算卡,即专门用于处理人工智能应用中的大量计算任务的模块(其他非计算任务仍由CPU负责)。当前,AI芯片主要分为 GPU 、FPGA 、ASIC。
    的头像 发表于 08-06 16:18 987次阅读

    AI芯片的优势和主要挑战 AI芯片和存储芯片的区别

      AI芯片也被称为AI加速器或计算卡,即专门用于处理人工智能应用中的大量计算任务的模块(其他非计算任务仍由CPU负责)。当前,AI芯片主要分为 GPU 、FPGA 、ASIC。
    的头像 发表于 08-03 17:19 2184次阅读