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

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

3天内不再提示

解析Roofline模型实践

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

扫码添加小助手

加入工程师交流群

在多核异构的时代,软件人员普遍面临的一个困惑是,面对如此复杂的系统,应该如何部署我们的算法,是应该让它运行在CPUGPU还是甚至类似TPU的专门ASIC上才是最佳方案?另外给定特定的计算平台,我们的算法实现是不是已经榨干硬件平台的最大能力,还有没有进一步改善的空间?这些问题寻寻觅觅答案,真像雾里看花,我们渴望有一双慧眼,帮我们穿透迷津。

在衡量计算效能的正确姿势我们提到了内存带宽(memory bandiwidth)和以FLOPS为代表的算力是可以很好的刻画计算平台的两个指标。同时既然是要衡量算法的性能自然我们也要考虑算法的特性。基于此,论文《Roofline: An Insightful Visual Performance Model for Floating-Point Programs and Multicore Architectures》提出了Roofline模型,试图对硬件和软件通盘考虑,从而提出改善性能的洞见。

这里我们试着解释如下,首先我们要介绍运算强度(arithmetic intensity,简写成AI)的概念,指的是针对单位内存读写数据进行的运算次数,以FLOP/Byte为单位。比如衡量计算效能的正确姿势(2)介绍过的SAXPY,每次迭代,有三次内存访问(x读一次,y读写各一次),而有两次浮点运算(乘加各一次),所以其AI为(2 * N) / (3 * N * 4) = 1/6。

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];

}

引进AI后,算力FLOPS就可以用以下公式来计算。

e6fcb8b8-a7f7-11eb-9728-12bb97331649.png

两边取对数,

e7379988-a7f7-11eb-9728-12bb97331649.png

以logFLOPS为Y,logAI为X,我们可以得到斜截式 Y = X + logBW,另对特定平台,算力FLOPS存在极限值,据此我们可以作如下图。

e7486da8-a7f7-11eb-9728-12bb97331649.png

图中紫色的线条是不是很类似屋脊线,这正是该模型命名的由来。以脊点为界,左边区域构成内存带宽瓶颈区域,右边区域对应算力瓶颈区域。已知某算法的AI,其最大可获取FLOPS很容易计算得到,见如下公式,为AI所在竖直线与Roofline的交点。如算法Algo1的AI处于内存带宽受限区域,而算法Algo2的AI则位于算力受限区域,如果Algo1和Algo2为同一问题两种算法方案,显然Alg2更有机会获取满意的FLOPS。

e77db544-a7f7-11eb-9728-12bb97331649.png

上面公式代表了理想化的情形,实际操作中,存在各种各样的天花板(Ceiling)障碍,算法优化的过程就是反复突破这些障碍而尽量接近roofline,最后得到理想的性能。如下图过程展示,介绍如何通过改善算法的数据局部性以充分利用Cache,并通过向量化而调用SIMD硬件资源来达到这一目的。

e7a00b3a-a7f7-11eb-9728-12bb97331649.png

除了上面介绍的Roofline模型能够让我们在特定平台“纸上谈兵”改善算法性能,Roofline也可以可视化同一算法部署在不同平台时候性能的比较,结果让人一目了然。在Google的有关TPU(TPU是Google开发的专门用于神经网络算法加速的芯片)的论文《In-Datacenter Performance Analysis of a Tensor Processing Unit》里,作者利用Roofline图表来比较各种神经网络算法分别部署在同时代CPU、GPU和TPU的性能差异,令人印象深刻。五角星、三角形、圆形分别代表对应算法在TPU、GPU和CPU上运行状况。

e8b3005e-a7f7-11eb-9728-12bb97331649.png

需要指出的是,Roofline模型在实践中并不像想象般容易,运用的时候有很多细微的地方需要仔细推敲。但它仍不失为非常insightful的寻宝图,如果你能学会正确解读,它完全有机会帮我们找到算法性能优化的巨大宝藏。以后我们会有很多场合涉及它的理念和具体用法,敬请期待。
编辑:lyn

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

    关注

    34

    文章

    1278

    浏览量

    124941
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11327

    浏览量

    225880
  • 算法
    +关注

    关注

    23

    文章

    4804

    浏览量

    98541

原文标题:Roofline模型初步

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    中软国际携手华为基于昆仑大模型赋能油气数智化转型的创新实践

    3月20日,在华为中国合作伙伴大会2026“共筑混合云繁荣生态,共赢政企数智化未来行业”论坛中,中软国际受邀作“深耕油气生产,攻坚智能场景落地,推进规模化复制”的主题分享,系统阐述了公司携手华为基于昆仑大模型赋能油气数智化转型的创新实践
    的头像 发表于 03-25 14:39 528次阅读

    百度正式发布并开源新一代文档解析模型PaddleOCR-VL-1.5

    1 月 29 日,百度正式发布并开源新一代文档解析模型 PaddleOCR-VL-1.5。该模型以仅 0.9B 参数的轻量架构,在全球权威文档解析评测榜单 OmniDocBench V
    的头像 发表于 01-30 10:03 808次阅读
    百度正式发布并开源新一代文档<b class='flag-5'>解析</b><b class='flag-5'>模型</b>PaddleOCR-VL-1.5

    医疗后勤应急保障大模型智能调度系统:功能特点与平台架构解析

        医疗后勤应急保障大模型智能调度系统技术解析    北京华盛恒辉医疗后勤应急保障大模型智能调度系统,融合大数据、人工智能、物联网等前沿技术,聚焦医疗应急物资、设备、人员等资源的实时感知、智能
    的头像 发表于 12-23 15:57 297次阅读

    模型驱动的星间链路动态组网分系统:功能特点与平台架构解析

    模型赋能的星间链路动态组网分系统技术解析    北京华盛恒辉大模型驱动的星间链路动态组网分系统,融合人工智能大模型与卫星通信核心技术,聚焦卫星间动态智能组网及通信链路优化,核心优势在
    的头像 发表于 12-23 14:52 335次阅读

    基于大模型ai的地面测控站网调度分系统:功能特点与平台架构解析

        大模型AI驱动的地面测控站网调度分系统:航天智能化核心技术解析    北京华盛恒辉大模型AI驱动的地面测控站网调度分系统作为航天领域智能化转型的关键支撑,大模型AI驱动的地面测
    的头像 发表于 12-19 15:13 431次阅读

    模型支撑后勤保障方案生成系统:功能特点与平台架构解析

        大模型支撑后勤保障方案生成系统:功能特点与平台架构解析    大模型支撑后勤保障方案生成系统凭借智能预测、动态调度、路径优化、库存管理及可视化展示等核心能力,为后勤保障方案生成系统提供关键
    的头像 发表于 12-17 15:49 410次阅读

    模型赋能物资需求精准预测与采购系统:功能特点与平台架构解析

        大模型赋能物资需求预测与采购智能化:核心功能与价值解析    大模型赋能物资需求精准预测与采购系统通过深度整合多源数据、构建动态预测模型及优化采购策略,可大幅提升物资需求预测精
    的头像 发表于 12-16 11:54 461次阅读

    后勤资源大模型智能调度系统:功能特点与平台架构解析

        后勤资源大模型智能调度系统解析    后勤资源大模型智能调度系统融合大数据、人工智能与机器学习技术,针对物资、设备、人员、运输工具等后勤资源,通过实时感知、智能决策与动态优化,实现资源合理
    的头像 发表于 12-15 16:35 434次阅读

    深度解析 | 低抖动高精度EtherCAT多轴控制的实现与实践案例

    深度解析 | 低抖动高精度EtherCAT多轴控制的实现与实践案例 在工业自动化领域,运动控制的精度和稳定性直接决定了生产效率和产品质量。其中EtherCAT多轴控制技术尤为引人注目。今天,我们
    发表于 12-09 17:17

    NVMe高速传输之摆脱XDMA设计27: 桥设备模型设计

    Switch 上游虚拟 PCI 桥。 此外还包含一个 TYPE1 类型的配置空间封装类, 用来模拟配置空间寄存器组。 模型的每个端口的输入端对接一个 TLP事务处理程序, 该程序负责将接收到的 TLP 事务进行解析和路由转发。
    发表于 09-18 09:11

    模型工具的 “京东答案”

    成为现代职场人提升价值产出的关键竞争力。大模型工具的发展现状如何?有哪些落地的业务实践?大模型工具建设的未来蓝图是什么?围绕这些问题,京东内部开展了一场大模型工具的探索
    的头像 发表于 08-25 16:09 682次阅读

    AIcube1.4目标检测模型导入yolotxt格式数据集后一直显示数据正在解析,为什么?

    AIcube1.4目标检测模型导入yolotxt格式数据集后一直显示数据正在解析 数据有问题,把数据情况说的详细点
    发表于 08-13 07:16

    cubemx导入模型后找不到keil找不到工程内的模型的相关文件是怎么回事?

    模型在cubemx内解析后没有问题,但解析之后生成工程keil内缺读取不到生成的三个模型文件
    发表于 07-18 07:18

    千方科技大模型技术在交通运输领域的应用实践

    2025年,全国交通运输工作会议明确提出实施“人工智能+交通运输”行动,推动交通基础设施数字化升级。近期,千方科技作为行业标杆企业,受邀参与交通运输部管理干部学院主办的“DeepSeek在交通运输管理中的应用专题研讨班”,分享大模型技术在交通运输领域的应用实践
    的头像 发表于 05-22 09:23 1169次阅读

    NVIDIA使用Qwen3系列模型的最佳实践

    阿里巴巴近期发布了其开源的混合推理大语言模型 (LLM) 通义千问 Qwen3,此次 Qwen3 开源模型系列包含两款混合专家模型 (MoE),235B-A22B(总参数 2,350 亿,激活参数
    的头像 发表于 05-08 11:45 3214次阅读
    NVIDIA使用Qwen3系列<b class='flag-5'>模型</b>的最佳<b class='flag-5'>实践</b>