真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Roofline模型(一):概念、基本公式、圖像分析-創(chuàng)新互聯(lián)

目錄
  • Roofline模型
    • 引入:什么是較好的性能評(píng)價(jià)模型?
    • 什么是roofline模型?
    • 怎樣使用roofline模型分析性能?
      • (DRAM) roofline model簡(jiǎn)化模型
      • (DRAM) roofline model基本公式
      • (DRAM) roofline model圖像
      • 使用roofline模型分析性能示例

成都創(chuàng)新互聯(lián)專注于萬(wàn)州企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城系統(tǒng)網(wǎng)站開發(fā)。萬(wàn)州網(wǎng)站建設(shè)公司,為萬(wàn)州等地區(qū)提供建站服務(wù)。全流程按需定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)Roofline模型

參考文獻(xiàn):

Samuel Williams, Roofline Performance Modeling for HPC and Deep Learning Applications, https://crd.lbl.gov/assets/Uploads/S21565-Roofline-1-Intro.pdf

YouTube English Presentation:Roofline Hackathon 2020 part 1 and 2 - YouTube

引入:什么是較好的性能評(píng)價(jià)模型?

image-20230113122833220

  • 1、假設(shè)在GPU上對(duì)內(nèi)核的循環(huán)測(cè)試進(jìn)行性能分析,我們對(duì)不同的loop nest得到了隨機(jī)的flop rates,有的很高,有的很低,這意味著只用GFLOP/s去評(píng)價(jià)性能可能有失偏頗

在這里插入圖片描述

  • 2、假設(shè)我們把某CPU代碼移植到了Nvida GPU或者是AMD GPU中,將原CPU代碼作為baseline(綠色),去對(duì)比移植后的代碼性能(灰色)提升了多少,然后發(fā)現(xiàn)在有的循環(huán)中提升了非常多(例如第三根柱子、最后一根柱子),有的循環(huán)中只提升了一點(diǎn)點(diǎn)(例如第6根柱子),也不能很好的評(píng)價(jià)性能。

    那么什么是“好的”性能?(GPU為例)

    兩個(gè)基本評(píng)價(jià)標(biāo)準(zhǔn):

    1、能夠在吞吐量有限的情況下運(yùn)行

    ? not sensitive to Amdahl effects, D2H/H2D transfers, launch overheads, etc…

    ? 對(duì)于阿達(dá)姆效應(yīng)不敏感、不會(huì)有連續(xù)的性能瓶頸;沒(méi)有頻繁的主機(jī)(Host)與設(shè)備內(nèi)存(Device)之間的數(shù)據(jù)交換,保持盡量少的數(shù)據(jù)交換,使時(shí)間盡可能花在GPU計(jì)算上;啟動(dòng)開銷盡量小,避免啟動(dòng)一堆很小的kernel(例如一個(gè)kernel只計(jì)算幾微秒),把時(shí)間浪費(fèi)在launch kernel上

    2、充分利用GPU的計(jì)算以及訪存帶寬能力

    總之,我們需要一個(gè)定量的性能評(píng)價(jià)模型,而不是定性的類似“性能不錯(cuò)”這樣的評(píng)價(jià)。例如,達(dá)到了GPU計(jì)算峰值的80%、利用了70%的訪存帶寬等。

什么是roofline模型?
  • roofline模型是一個(gè)面向吞吐量的性能模型
  • 關(guān)注“率(rates)”而不是時(shí)間(time),例如flop rate(GFLOP/s)、bytes per second rate(GB/s)
  • 與架構(gòu)無(wú)關(guān),可以應(yīng)用于CPU、GPU、DCU、Google TPU、FPGA等等
怎樣使用roofline模型分析性能? (DRAM) roofline model簡(jiǎn)化模型

首先我們對(duì)代碼運(yùn)行的計(jì)算機(jī)架構(gòu)進(jìn)行簡(jiǎn)單建模:

image-20230113094623117

首先假設(shè)當(dāng)數(shù)據(jù)位于Cache中時(shí)(local data),SM通??梢赃_(dá)到計(jì)算能力峰值(此處舉例為GFLOP/s)。然假設(shè)在某數(shù)據(jù)并行程序中,所有的SMs運(yùn)行時(shí)都是負(fù)載均衡的,將它們合并,進(jìn)行進(jìn)一步簡(jiǎn)化:

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-u8V4Qwj4-1673586721407)(C:\Users\dly2211480\AppData\Roaming\Typora\typora-user-images\image-20230113094915163.png)]

最后假設(shè)有足夠的Cache空間以及訪存帶寬,即性能不會(huì)因?yàn)镃ache空間不足以及訪存帶寬不夠而被影響,基于此將模型再次簡(jiǎn)化:

image-20230113095039891

對(duì)于簡(jiǎn)化后的模型來(lái)說(shuō),能夠影響性能的只有我們寫的代碼能算多快以及在主機(jī)端和設(shè)備端之間傳輸數(shù)據(jù)的速度有多快。我們將上面的模型叫做DRAM roofline model。

(DRAM) roofline model基本公式

假設(shè)數(shù)據(jù)傳輸時(shí)間和運(yùn)算時(shí)間可以完美重疊,那么我們的代碼耗時(shí)應(yīng)為:
?Time? = max ? { ?#FP?ops? / ?Peak?GFLOP/s? ?#Bytes? / ?Peak?GB/s? \text { Time }=\max \left\{\begin{array}{l} \text { \#FP ops } / \text { Peak GFLOP/s } \\ \text { \#Bytes } / \text { Peak GB/s } \end{array}\right. ?Time?=max{#FP?ops?/?Peak?GFLOP/s??#Bytes?/?Peak?GB/s??
?#FP?ops? / ?Peak?GFLOP/s? \text { \#FP ops } / \text { Peak GFLOP/s } ?#FP?ops?/?Peak?GFLOP/s?是理論計(jì)算時(shí)間,即浮點(diǎn)操作數(shù)量除以峰值計(jì)算速度, ?#Bytes? / ?Peak?GB/s? \text { \#Bytes } / \text { Peak GB/s } ?#Bytes?/?Peak?GB/s?是理論訪存時(shí)間,即需要從DRAM中存入以及讀取的數(shù)據(jù)總量的Bytes除以DRAM峰值帶寬。

前面提到roofline模型主要關(guān)注“率”,因此對(duì)上面公式進(jìn)行變形,得到:
?#FP?ops? ?Time? = min ? { ?Peak?GFLOP/s? ?(#FP?ops? / ?#Bytes)? ? ?Peak?GB/s? \frac{\text { \#FP ops }}{\text { Time }}=\min \left\{\begin{array}{l} \text { Peak GFLOP/s } \\ \text { (\#FP ops } / \text { \#Bytes) } * \text { Peak GB/s } \end{array}\right. ?Time??#FP?ops??=min{Peak?GFLOP/s??(#FP?ops?/?#Bytes)???Peak?GB/s??
即:
?GFLOP/s? = min ? { ?Peak?GFLOP/s? A I ? ?Peak?GB/s? \text { GFLOP/s }=\min \left\{\begin{array}{l} \text { Peak GFLOP/s } \\ A I^* \text { Peak GB/s } \end{array}\right. ?GFLOP/s?=min{Peak?GFLOP/s?AI??Peak?GB/s??
上面的公式就是roofline模型的基本公式,其中AI(Arithmetic Intensity)=FLOPs/Bytes=計(jì)算量/訪存量,表示計(jì)算密度。當(dāng)代碼的計(jì)算量遠(yuǎn)大于訪存量,我們說(shuō)他是計(jì)算密集型的,當(dāng)訪存量遠(yuǎn)大于計(jì)算量,則說(shuō)他是訪存密集型的。

(DRAM) roofline model圖像

image-20230113113314290

根據(jù) ?GFLOP/s? = min ? { ?Peak?GFLOP/s? A I ? ?Peak?GB/s? \text { GFLOP/s }=\min \left\{\begin{array}{l} \text { Peak GFLOP/s } \\ A I^* \text { Peak GB/s } \end{array}\right. ?GFLOP/s?=min{Peak?GFLOP/s?AI??Peak?GB/s??,以AI(計(jì)算密度)為橫坐標(biāo),F(xiàn)LOP/s(可達(dá)到的浮點(diǎn)性能)為縱坐標(biāo),可得出roofline模型圖像(因圖像長(zhǎng)得像屋頂所以叫roofline模型)。藍(lán)色段中,性能受限于理論帶寬(即斜率,Peak GB/s),在粉色段中,性能受限于浮點(diǎn)計(jì)算峰值性能(Peak GFLOP/s)。圖中的轉(zhuǎn)折點(diǎn)的橫坐標(biāo) 稱作“Machine Balance”,其表征了硬件架構(gòu)的特點(diǎn),而Arithmetic Intensity(計(jì)算密度)表征了我們的代碼/應(yīng)用的特點(diǎn)。

image-20230113115515087

我們大致可以把圖像分為5個(gè)區(qū)域,粉色線以上和藍(lán)色線以左的區(qū)域是程序無(wú)論如何都無(wú)法達(dá)到的性能,因?yàn)樗馕吨^(guò)了計(jì)算機(jī)的峰值計(jì)算性能/訪存帶寬。淡藍(lán)色區(qū)域(計(jì)算密度小于Machine Balance點(diǎn))是性能較好的訪存密集型程序,這部分程序的訪存帶寬利用率較高(可能50%或更高),評(píng)價(jià)訪存密集型程序的指標(biāo)主要選用訪存帶寬;淡粉色區(qū)域(計(jì)算密度大于Machine Balance點(diǎn))是性能較好的計(jì)算密集型程序,有較好的數(shù)據(jù)重用率與數(shù)據(jù)局部性,這部分程序的浮點(diǎn)性能較高(可能50%或更高),評(píng)價(jià)計(jì)算密集型程序的指標(biāo)主要選用浮點(diǎn)性能。最后就是可能帶寬與浮點(diǎn)性能都低于50%峰值性能的poor performance,如果程序性能處于這個(gè)部分,需要考慮優(yōu)化算法提高性能,達(dá)到粉色或者藍(lán)色區(qū)域。

使用roofline模型分析性能示例

對(duì)于文章一開始的性能分析圖(隨機(jī)輸出kernel性能),我們將其重新組織,計(jì)算每個(gè)kernel的計(jì)算密度,并以計(jì)算密度為橫坐標(biāo),重新排列得到:

image-20230113123103143

將其與roofline模型相比較:

image-20230113123120725

那些貼近于roofline的kernel較好的利用了計(jì)算資源(綠色點(diǎn)點(diǎn)),而那些遠(yuǎn)離roofline的kernel(紅色點(diǎn)點(diǎn))則是我們重點(diǎn)需要去優(yōu)化、提高計(jì)算資源利用率的。這里需要注意,對(duì)比FLOP/s很低的kernel(例如第一個(gè)綠點(diǎn)),紅點(diǎn)雖然看起來(lái)FLOP/s更高,但是比綠點(diǎn)更有優(yōu)化性價(jià)比。因?yàn)榫G點(diǎn)已經(jīng)很接近roofline模型了,無(wú)法突破機(jī)器能提供的大資源,可能需要費(fèi)很大的勁兒才能提高一點(diǎn)點(diǎn)(如果不改變計(jì)算密度的話);而紅點(diǎn)離roofline還有較遠(yuǎn)距離,可通過(guò)不斷優(yōu)化訪存函數(shù)、計(jì)算函數(shù)來(lái)提高訪存帶寬/浮點(diǎn)計(jì)算性能利用率。除此之外,如果想要提高FLOP/s很低但是又比較接近roofline的kernel,可以通過(guò)改進(jìn)計(jì)算方法/減少數(shù)據(jù)傳輸時(shí)間來(lái)提高計(jì)算密度(例如提高空間局部性、提高cache命中率、改進(jìn)數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型)。

在這里插入圖片描述

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站標(biāo)題:Roofline模型(一):概念、基本公式、圖像分析-創(chuàng)新互聯(lián)
鏈接地址:http://weahome.cn/article/jighi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部