0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

解析Roofline模型實踐

Linux閱碼場 ? 來源:面包板社區(qū) ? 作者:Linux閱碼場 ? 2021-04-28 16:14 ? 次閱讀

在多核異構(gòu)的時代,軟件人員普遍面臨的一個困惑是,面對如此復雜的系統(tǒng),應該如何部署我們的算法,是應該讓它運行在CPU,GPU還是甚至類似TPU的專門ASIC上才是最佳方案?另外給定特定的計算平臺,我們的算法實現(xiàn)是不是已經(jīng)榨干硬件平臺的最大能力,還有沒有進一步改善的空間?這些問題尋尋覓覓答案,真像霧里看花,我們渴望有一雙慧眼,幫我們穿透迷津。

在衡量計算效能的正確姿勢我們提到了內(nèi)存帶寬(memory bandiwidth)和以FLOPS為代表的算力是可以很好的刻畫計算平臺的兩個指標。同時既然是要衡量算法的性能自然我們也要考慮算法的特性?;诖?,論文《Roofline: An Insightful Visual Performance Model for Floating-Point Programs and Multicore Architectures》提出了Roofline模型,試圖對硬件和軟件通盤考慮,從而提出改善性能的洞見。

這里我們試著解釋如下,首先我們要介紹運算強度(arithmetic intensity,簡寫成AI)的概念,指的是針對單位內(nèi)存讀寫數(shù)據(jù)進行的運算次數(shù),以FLOP/Byte為單位。比如衡量計算效能的正確姿勢(2)介紹過的SAXPY,每次迭代,有三次內(nèi)存訪問(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

兩邊取對數(shù),

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

以logFLOPS為Y,logAI為X,我們可以得到斜截式 Y = X + logBW,另對特定平臺,算力FLOPS存在極限值,據(jù)此我們可以作如下圖。

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

圖中紫色的線條是不是很類似屋脊線,這正是該模型命名的由來。以脊點為界,左邊區(qū)域構(gòu)成內(nèi)存帶寬瓶頸區(qū)域,右邊區(qū)域?qū)懔ζ款i區(qū)域。已知某算法的AI,其最大可獲取FLOPS很容易計算得到,見如下公式,為AI所在豎直線與Roofline的交點。如算法Algo1的AI處于內(nèi)存帶寬受限區(qū)域,而算法Algo2的AI則位于算力受限區(qū)域,如果Algo1和Algo2為同一問題兩種算法方案,顯然Alg2更有機會獲取滿意的FLOPS。

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

上面公式代表了理想化的情形,實際操作中,存在各種各樣的天花板(Ceiling)障礙,算法優(yōu)化的過程就是反復突破這些障礙而盡量接近roofline,最后得到理想的性能。如下圖過程展示,介紹如何通過改善算法的數(shù)據(jù)局部性以充分利用Cache,并通過向量化而調(diào)用SIMD硬件資源來達到這一目的。

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

除了上面介紹的Roofline模型能夠讓我們在特定平臺“紙上談兵”改善算法性能,Roofline也可以可視化同一算法部署在不同平臺時候性能的比較,結(jié)果讓人一目了然。在Google的有關(guān)TPU(TPU是Google開發(fā)的專門用于神經(jīng)網(wǎng)絡(luò)算法加速的芯片)的論文《In-Datacenter Performance Analysis of a Tensor Processing Unit》里,作者利用Roofline圖表來比較各種神經(jīng)網(wǎng)絡(luò)算法分別部署在同時代CPU、GPU和TPU的性能差異,令人印象深刻。五角星、三角形、圓形分別代表對應算法在TPU、GPU和CPU上運行狀況。

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

需要指出的是,Roofline模型在實踐中并不像想象般容易,運用的時候有很多細微的地方需要仔細推敲。但它仍不失為非常insightful的尋寶圖,如果你能學會正確解讀,它完全有機會幫我們找到算法性能優(yōu)化的巨大寶藏。以后我們會有很多場合涉及它的理念和具體用法,敬請期待。
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • asic
    +關(guān)注

    關(guān)注

    34

    文章

    1205

    瀏覽量

    120600
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10889

    瀏覽量

    212386
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4623

    瀏覽量

    93104

原文標題:Roofline模型初步

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    光電效應的數(shù)學模型解析

    光電效應是指光照射在物質(zhì)上,引起電子從物質(zhì)表面逸出的現(xiàn)象。以下是光電效應的數(shù)學模型及詳細解析: 一、光電效應的基本數(shù)學模型 光子能量公式 : 表達式:E = hν 含義:E代表光子的能量,h是普朗克
    的頭像 發(fā)表于 11-25 13:46 ?1564次閱讀

    TLC555-Q1 spice模型到LTSPICE仿真軟件中提示無法解析是怎么回事?

    請教貴司提供的模型spice模型到LTSPICE仿真軟件中提示無法解析是怎么回事?
    發(fā)表于 11-08 07:42

    鴻蒙應用模型:【應用模型解析

    應用模型是系統(tǒng)為開發(fā)者提供的應用程序所需能力的抽象提煉,它提供了應用程序必備的組件和運行機制。有了應用模型,開發(fā)者可以基于一套統(tǒng)一的模型進行應用開發(fā),使應用開發(fā)更簡單、高效。
    的頭像 發(fā)表于 05-31 11:38 ?546次閱讀
    鴻蒙應用<b class='flag-5'>模型</b>:【應用<b class='flag-5'>模型</b>】<b class='flag-5'>解析</b>

    大語言模型:原理與工程實踐+初識2

    前言 深度學習是機器學習的分支,而大語言模型是深度學習的分支。機器學習的核心是讓計算機系統(tǒng)通過對數(shù)據(jù)的學習提高性能,深度學習則是通過創(chuàng)建人工神經(jīng)網(wǎng)絡(luò)處理數(shù)據(jù)。近年人工神經(jīng)網(wǎng)絡(luò)高速發(fā)展,引發(fā)深度學習
    發(fā)表于 05-13 00:09

    【大語言模型:原理與工程實踐】大語言模型的應用

    ,它通過抽象思考和邏輯推理,協(xié)助我們應對復雜的決策。 相應地,我們設(shè)計了兩類任務(wù)來檢驗大語言模型的能力。一類是感性的、無需理性能力的任務(wù),類似于人類的系統(tǒng)1,如情感分析和抽取式問答等。大語言模型在這
    發(fā)表于 05-07 17:21

    【大語言模型:原理與工程實踐】大語言模型的評測

    評測任務(wù)則重點評估模型在提供方法論和實踐建議方面的能力。這類任務(wù)要求模型能像經(jīng)驗豐富的導師或?qū)<夷菢?,為用戶提供有價值的建議和解決方案??傊?,這套綜合性的評測框架為全面評估大語言模型
    發(fā)表于 05-07 17:12

    【大語言模型:原理與工程實踐】大語言模型的預訓練

    大語言模型的核心特點在于其龐大的參數(shù)量,這賦予了模型強大的學習容量,使其無需依賴微調(diào)即可適應各種下游任務(wù),而更傾向于培養(yǎng)通用的處理能力。然而,隨著學習容量的增加,對預訓練數(shù)據(jù)的需求也相應
    發(fā)表于 05-07 17:10

    【大語言模型:原理與工程實踐】探索《大語言模型原理與工程實踐》2.0

    《大語言模型“原理與工程實踐”》是關(guān)于大語言模型內(nèi)在機理和應用實踐的一次深入探索。作者不僅深入討論了理論,還提供了豐富的實踐案例,幫助讀者理
    發(fā)表于 05-07 10:30

    【大語言模型:原理與工程實踐】大語言模型的基礎(chǔ)技術(shù)

    全面剖析大語言模型的核心技術(shù)與基礎(chǔ)知識。首先,概述自然語言的基本表示,這是理解大語言模型技術(shù)的前提。接著,詳細介紹自然語言處理預訓練的經(jīng)典結(jié)構(gòu)Transformer,以及其工作原理,為構(gòu)建大語言
    發(fā)表于 05-05 12:17

    【大語言模型:原理與工程實踐】核心技術(shù)綜述

    我也不打算把網(wǎng)上相關(guān)的信息在總結(jié)一下,這樣的話,工作量很大。 我主要看了-大語言模型基礎(chǔ)技術(shù)這節(jié) 大語言模型(Large Language Models,LLMs)的核心技術(shù)涵蓋了從模型的架構(gòu)設(shè)計到
    發(fā)表于 05-05 10:56

    【大語言模型:原理與工程實踐】揭開大語言模型的面紗

    大語言模型(LLM)是人工智能領(lǐng)域的尖端技術(shù),憑借龐大的參數(shù)量和卓越的語言理解能力贏得了廣泛關(guān)注。它基于深度學習,利用神經(jīng)網(wǎng)絡(luò)框架來理解和生成自然語言文本。這些模型通過訓練海量的文本數(shù)據(jù)集,如
    發(fā)表于 05-04 23:55

    【大語言模型:原理與工程實踐】探索《大語言模型原理與工程實踐

    的未來發(fā)展方向進行了展望,包括跨領(lǐng)域、跨模態(tài)和自動提示生成能力方向,為讀者提供了對未來技術(shù)發(fā)展的深刻見解?!洞笳Z言模型原理與工程實踐》是一本內(nèi)容豐富、深入淺出的技術(shù)書籍。它不僅為讀者提供了大語言模型
    發(fā)表于 04-30 15:35

    名單公布!【書籍評測活動NO.31】大語言模型:原理與工程實踐

    的能力將對千行百業(yè)產(chǎn)生深遠影響,尤其在優(yōu)化業(yè)務(wù)流程和重塑組織結(jié)構(gòu)方面。 然而,在研究和實踐過程中,我們遇到了一個主要挑戰(zhàn):市場上缺乏大語言模型在實際應用方面的資料。現(xiàn)有的資料多聚焦于理論研究,而具體的實踐
    發(fā)表于 03-18 15:49

    名單公布!【書籍評測活動NO.30】大規(guī)模語言模型:從理論到實踐

    。 為了使更多的自然語言處理研究人員和對大語言模型感興趣的讀者能夠快速了解大模型的理論基礎(chǔ),并開展大模型實踐,復旦大學張奇教授團隊結(jié)合他們在自然語言處理領(lǐng)域的研究經(jīng)驗,以及分布式系統(tǒng)和
    發(fā)表于 03-11 15:16

    解析EMC濾波器:關(guān)鍵作用與應用實踐?

    解析EMC濾波器:關(guān)鍵作用與應用實踐?|深圳比創(chuàng)達電子EMC
    的頭像 發(fā)表于 02-21 10:20 ?588次閱讀
    <b class='flag-5'>解析</b>EMC濾波器:關(guān)鍵作用與應用<b class='flag-5'>實踐</b>?