實踐出真知(神經網路篇)

2021-10-13 19:30:06 字數 2216 閱讀 4681

roofline model 提出了使用 operational intensity(計算強度)進行定量分析的方法,並給出了模型在計算平台上所能達到理論計算效能上限公式。roof-line model :模型在乙個計算平台的限制下,到底能達到多快的浮點計算速度。更具體的來說,roof-line model 解決的,是「計算量為a訪存量為b的模型在算力為c頻寬為d的計算平台所能達到的理論效能上限e是多少」這個問題。

所謂「roof-line」,指的就是由計算平台的算力和頻寬上限這兩個引數所決定的「屋頂」形態:算力決定「屋頂」的高度(綠色線段),頻寬決定「房簷」的斜率(紅色線段)

計算瓶頸區域compute-bound:不管模型的計算強度有多大,它的理論效能最大只能等於計算平台的算力。當模型的計算強度大於計算平台的計算強度上限時,模型在當前計算平台處於compute-bound狀態,即模型的理論效能受到計算平台算力的限制,無法與計算強度成正比。但這其實並不是一件壞事,因為從充分利用計算平台算力的角度上看,此時模型利用了計算平台的全部算力。可見,計算平台的算力越高,模型進入計算瓶頸區域後的理論效能也就越大。

頻寬瓶頸區域memory-bound:當模型的計算強度小於計算平台的計算強度上限時,由於此時模型位於「房簷」區間,因此模型理論效能完全由計算平台的頻寬上限房簷的斜率)以及模型自身的計算強度所決定在模型處於頻寬瓶頸區間的前提下,計算平台的頻寬越大(房簷越陡),或者模型的計算強度越大,模型的理論效能可呈線性增長。

計算平台的兩個指標:算力與頻寬算力:也稱為計算平台的效能上限,指的是乙個計算平台傾盡全力每秒鐘所能完成的浮點運算數。單位是flopsorflop/s頻寬:也即計算平台的頻寬上限,指的是乙個計算平台傾盡全力每秒所能完成的記憶體交換量。「記憶體」是廣義上的記憶體。對於cpu計算平台而言指的就是真正的記憶體;而對於gpu計算平台指的則是視訊記憶體。

計算強度上限:兩個指標(算力除以頻寬)相除即可得到計算平台的計算強度上限。它描述的是在這個計算平台上,單位記憶體交換最多用來進行多少次計算。

模型的兩個指標:計算量與訪存量計算量:指的是輸入單個樣本(對於cnn而言就是一張影象),模型進行一次完整的前向傳播所發生的浮點運算個數,也即模型的時間複雜度,單位是#floporflops訪存量:指的是輸入單個樣本,模型完成一次前向傳播過程中所發生的記憶體交換總量,也即模型的空間複雜度。單位是byte模型的計算強度  :由計算量除以訪存量就可以得到模型的計算強度,它表示此模型在計算過程中,每byte記憶體交換到底用於進行多少次浮點運算。單位是flops/byte。可以看到,模計算強度越大,其記憶體使用效率越高。

模型的理論效能  :我們最關心的指標,即模型在計算平台上所能達到的每秒浮點運算次數(理論值)單位是flopsorflop/s。下面我們即將介紹的 roof-line model 給出的就是計算這個指標的方法。

卷積神經網路的複雜度分析

roofline model與深度學習模型的效能分析

令人拍案叫絕的wassertstein gan

實踐出真知之Oracle篇

儲存過程跑批小迴圈 可根據自己的情況適度修改 declare o ret val number start days varchar2 8 end days varchar2 8 begin start days 20200101 重跑開始日期 日期不固定可根據自己需要的日期進行修改 end day...

實踐出真知 MVC和MVVM

理論來自於實踐,並指導於實踐 佚名 我相信在mvc等理論形成之前,就已經有人在付諸mvc的實踐。只是後來有人總結下來,並指導人們做軟體開發。這種設計典範並不是只有後台的 才有,前端也可以有很好的框架,像react和vue。為什麼這麼強調實踐。因為在我學習mvc理論的時候,我是蒙蔽的。雖然看了很多優秀...

實踐出真知 ZAC《網路營銷實戰密碼》

實踐出真知 zac 網路營銷實戰密碼 買zac的書已經有不少時間,但是說實話我還沒看完,跳過了幾個我不是很有興趣的章節。這次寫個感受也不是為了乙個鏈結。帶我入seo這一行的人應該是王通,雖然我沒付過學費,甚至他的電子書我看的都是破解版。但是仍然很感謝王通。後來接觸的是胡寶介老師的書,當然,那個時候能...