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

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

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

淺談GPU: 衡量計(jì)算效能的正確姿勢(shì)(2)

Linux閱碼場(chǎng) ? 來(lái)源:面包板社區(qū) ? 作者:Linux閱碼場(chǎng) ? 2021-04-16 11:12 ? 次閱讀

這次我們準(zhǔn)備聊下決定系統(tǒng)計(jì)算性能的兩大關(guān)鍵指標(biāo),1. 浮點(diǎn)運(yùn)算能力(FLOPS), 2. 內(nèi)存帶寬(Memory Bandwidth)。

一· 為什么這兩個(gè)指標(biāo)很重要

目前無(wú)論是嵌入式系統(tǒng),PC還是大型服務(wù)器都遵循了馮。諾依曼結(jié)構(gòu)。

fe1778c8-9e22-11eb-8b86-12bb97331649.png

對(duì)CPU密集型程序來(lái)說(shuō),執(zhí)行時(shí)候系統(tǒng)的內(nèi)部交互主要在處理器(包括控制器和運(yùn)算器)和存儲(chǔ)器之間展開(kāi),大概是如下圖過(guò)程。

fe2a96c4-9e22-11eb-8b86-12bb97331649.jpg

所以CPU的處理能力以及訪(fǎng)存的效率對(duì)程序的性能起到了關(guān)鍵作用。大家知道計(jì)算一個(gè)程序執(zhí)行時(shí)間的公式如下(假設(shè)該程序是CPU Bound),

程序執(zhí)行時(shí)間(time) = 程序指令數(shù)目(Intructions) * 指令的平均時(shí)鐘數(shù)(CPI, Clock cycles/Instruction) * 時(shí)鐘周期(Seconds/Clock cycle)

為支持計(jì)算所需的精度和廣度,CPU/GPU ALU支持浮點(diǎn)運(yùn)算,單精度甚至雙精度都是必須的要求。這里我們引入FLOPS(floating point operations per second)的概念來(lái)表征CPU/GPU浮點(diǎn)運(yùn)算能力,所以針對(duì)浮點(diǎn)計(jì)算密集型程序,把FLOPS套到上面公式,我們可以用浮點(diǎn)運(yùn)算數(shù)目/FLOPS來(lái)估摸程序大概執(zhí)行時(shí)間。

訪(fǎng)存效率的重要性我們這里也可以再提一下,以GPU為例,無(wú)論是游戲還是深度學(xué)習(xí),都有大量的內(nèi)存讀寫(xiě)數(shù)據(jù)量。比如graphics里,有三角面片模型裝載,紋理采樣,深度測(cè)試(depth test),Alpha混合,以及圖像輸出等等。深度學(xué)習(xí)訓(xùn)練的時(shí)候,巨大的訓(xùn)練集/測(cè)試集輸入,迭代過(guò)程幾十萬(wàn),百萬(wàn)級(jí)別參數(shù)讀寫(xiě)。如果訪(fǎng)存成為瓶頸(Memory Bound),強(qiáng)大的計(jì)算能力也無(wú)從發(fā)揮。

二,如何知道FLOPS 和內(nèi)存帶寬

我們先看下如何得到兩個(gè)指標(biāo)的理論數(shù)值。

關(guān)于內(nèi)存帶寬,假設(shè)某款GPU,其顯示內(nèi)存的時(shí)鐘頻率為1546 MHZ,顯存的位寬(Interface Width)為384 bit, 則其帶寬的理論峰值計(jì)算如下,具體也可以參考https://en.wikipedia.org/wiki/Memory_bandwidth。

BW = 1546(clocks per second) * 384(memory interface width) * 2(DDR) / 8(In bytes) = 148GB/s

而GPU的理論FLOPS計(jì)算就要微妙很多,各個(gè)廠(chǎng)家對(duì)演算過(guò)程諱莫如深,一般不會(huì)公開(kāi),我們這里也不多著墨,大家參考廠(chǎng)家給出的數(shù)據(jù)罷了。ARM的網(wǎng)站寫(xiě)過(guò)一篇文章探討FLOPS營(yíng)銷(xiāo)噱頭一地雞毛的狀態(tài),F(xiàn)lipping the FLOPS - how ARM measures GPU compute performance,搜來(lái)看看,可以起到心理預(yù)防的作用。

相比理論數(shù)值,對(duì)碼農(nóng)來(lái)說(shuō),我們更關(guān)心是我們程序運(yùn)行的實(shí)際性能數(shù)值,這才是關(guān)系我們飯碗的要緊之處。假設(shè)一個(gè)程序的核心運(yùn)算是如下SAXPY,恰當(dāng)?shù)夭渴鸬紾PU或者多核CPU后,比如平均運(yùn)行時(shí)間為1us,我們?cè)撊绾斡?jì)算實(shí)際訪(fǎng)存帶寬和FOPS?

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

}

我們可以看到每次迭代,有三次內(nèi)存訪(fǎng)問(wèn)(x讀一次,y讀寫(xiě)各一次),而有兩次浮點(diǎn)運(yùn)算(乘加各一次)。所以實(shí)際BW和FOPS的計(jì)算如下,

BW = (3 * N * 4) / (1 / 1e9) = 120GB/s

FOPS = (2 * N) / (1 / 1e9) = 20GFLOPS

我們可以把實(shí)際數(shù)值和理論峰值比較下,確認(rèn)運(yùn)算瓶頸在何處,是memory bound還是cpu bound,然后進(jìn)一步優(yōu)化,關(guān)于這部分內(nèi)容,我們以后介紹roofline模型的時(shí)候還會(huì)涉及。

三,ALU和訪(fǎng)存的功耗水平

下圖來(lái)自David A. Patterson的另一本著作《計(jì)算機(jī)體系結(jié)構(gòu):量化研究方法》,羅列45nm制程各種類(lèi)型ALU和訪(fǎng)存的功耗大小以及他們相對(duì)水平,可以看到32b的內(nèi)存訪(fǎng)問(wèn)的功耗遠(yuǎn)超同樣位寬大小的運(yùn)算。

fe39f16e-9e22-11eb-8b86-12bb97331649.png

為什么我們要在這里留意功耗水平?移動(dòng)設(shè)備由于電池供電,尺寸大小散熱限制,對(duì)功耗異常敏感,功耗大小直接決定設(shè)備的使用價(jià)值。以后我們談到移動(dòng)GPU的設(shè)計(jì)的時(shí)候,可以了解如何在消除減少內(nèi)存訪(fǎng)問(wèn)方面極盡所能。另外比特幣礦場(chǎng)礦機(jī),數(shù)據(jù)中心的服務(wù)器,其數(shù)目都是以萬(wàn)記,它們更是電老虎,每天的電力消耗才是運(yùn)營(yíng)的最大費(fèi)用,會(huì)極大地影響了投資回報(bào)率,所以功耗水平有很重要的經(jīng)濟(jì)效果。最后目前全民倡導(dǎo)碳中和,綠色計(jì)算,身處產(chǎn)業(yè)鏈的我們,從硬件和軟件角度,努力提升功耗水平,也有很大社會(huì)意義。
編輯:lyn

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

    關(guān)注

    68

    文章

    10889

    瀏覽量

    212389
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4760

    瀏覽量

    129132
  • ALU
    ALU
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    13115

原文標(biāo)題:GPU: 衡量計(jì)算效能的正確姿勢(shì)(2)

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    電磁流量計(jì)正確調(diào)試步驟

    電磁流量計(jì)在自來(lái)水、生活用水、制藥等行業(yè)有著非常多的應(yīng)用,但是很多用戶(hù)們采購(gòu)后根據(jù)專(zhuān)業(yè)復(fù)雜的說(shuō)明書(shū)并不能正確的調(diào)試好產(chǎn)品并使用它。經(jīng)過(guò)我司售后部門(mén)的統(tǒng)計(jì)。百分之七十及以上的客戶(hù)朋友們收到貨后都會(huì)致電
    的頭像 發(fā)表于 01-12 09:19 ?223次閱讀

    UPS容量計(jì)算步驟和注意事項(xiàng)

    UPS(不間斷電源)容量的計(jì)算是一個(gè)復(fù)雜的過(guò)程,需要考慮多個(gè)因素,包括負(fù)載功率、備用時(shí)間、效率以及負(fù)載特性等。
    的頭像 發(fā)表于 12-25 10:15 ?289次閱讀

    芯原發(fā)布新一代Vitality架構(gòu)GPU IP系列

    上實(shí)現(xiàn)了顯著提升,并支持多核擴(kuò)展,為用戶(hù)提供更加出色的性能體驗(yàn)。該架構(gòu)集成了諸多先進(jìn)功能,如一個(gè)可配置的張量計(jì)算核心(Tensor Core)AI加速器,以及一個(gè)容量高達(dá)32MB至64MB的三級(jí)(L3)緩存,這些配置共同保證了強(qiáng)大的處理能力和卓越的能效表現(xiàn)。 針對(duì)云游戲領(lǐng)域,Vitality架構(gòu)
    的頭像 發(fā)表于 12-24 10:55 ?224次閱讀

    云端超級(jí)計(jì)算機(jī)使用教程

    云端超級(jí)計(jì)算機(jī)是一種基于云計(jì)算的高性能計(jì)算服務(wù),它將大量計(jì)算資源和存儲(chǔ)資源集中在一起,通過(guò)網(wǎng)絡(luò)向用戶(hù)提供按需的計(jì)算服務(wù)。下面,AI部落小編為
    的頭像 發(fā)表于 12-17 10:19 ?154次閱讀

    《CST Studio Suite 2024 GPU加速計(jì)算指南》

    。 2. 操作系統(tǒng)支持:CST Studio Suite在不同操作系統(tǒng)上持續(xù)測(cè)試,可在支持的操作系統(tǒng)上使用GPU計(jì)算,具體參考相關(guān)文檔。 3. 許可證:GPU
    發(fā)表于 12-16 14:25

    靶式流量計(jì)的工作原理 靶式流量計(jì)和渦街流量計(jì)比較

    位移可以計(jì)算出流量。 流體沖擊 :流體流過(guò)靶板,對(duì)靶板施加力。 位移測(cè)量 :靶板的位移通過(guò)位移傳感器(如差分電容式傳感器)測(cè)量。 信號(hào)處理 :位移信號(hào)被轉(zhuǎn)換成電信號(hào),并通過(guò)電子電路處理。 流量計(jì)算 :根據(jù)位移和流體的
    的頭像 發(fā)表于 12-11 16:49 ?329次閱讀

    平衡流量計(jì)計(jì)算公式

    量計(jì)計(jì)算公式的重要性及應(yīng)用你了解嗎? 一、管道流速公式 這是平衡流量計(jì)中最基本的計(jì)算公式之一,它基于流體的質(zhì)量守恒定律。通過(guò)測(cè)量管道中的壓力差和密度,可以
    的頭像 發(fā)表于 10-25 14:14 ?249次閱讀
    平衡流<b class='flag-5'>量計(jì)</b><b class='flag-5'>計(jì)算</b>公式

    GPU加速計(jì)算平臺(tái)是什么

    GPU加速計(jì)算平臺(tái),簡(jiǎn)而言之,是利用圖形處理器(GPU)的強(qiáng)大并行計(jì)算能力來(lái)加速科學(xué)計(jì)算、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等復(fù)雜
    的頭像 發(fā)表于 10-25 09:23 ?268次閱讀

    GPU計(jì)算主板學(xué)習(xí)資料第735篇:基于3U VPX的AGX Xavier GPU計(jì)算主板 信號(hào)計(jì)算主板 視頻處理 相機(jī)信號(hào)

    GPU計(jì)算主板學(xué)習(xí)資料第735篇:基于3U VPX的AGX Xavier GPU計(jì)算主板 信號(hào)計(jì)算主板 視頻處理 相機(jī)信號(hào)
    的頭像 發(fā)表于 10-23 10:09 ?294次閱讀
    <b class='flag-5'>GPU</b><b class='flag-5'>計(jì)算</b>主板學(xué)習(xí)資料第735篇:基于3U VPX的AGX Xavier <b class='flag-5'>GPU</b><b class='flag-5'>計(jì)算</b>主板 信號(hào)<b class='flag-5'>計(jì)算</b>主板 視頻處理 相機(jī)信號(hào)

    云端超級(jí)計(jì)算機(jī)怎么用

    云端超級(jí)計(jì)算機(jī)是一種基于云計(jì)算的高性能計(jì)算服務(wù),它將大量計(jì)算資源和存儲(chǔ)資源集中在一起,通過(guò)網(wǎng)絡(luò)向用戶(hù)提供按需的計(jì)算服務(wù)。
    的頭像 發(fā)表于 10-18 10:14 ?178次閱讀

    大模型單卡的正確使用步驟

    、注意事項(xiàng)等方面進(jìn)行介紹,以幫助用戶(hù)更好地掌握大模型單卡的使用技巧。 第一部分:大模型單卡概述 1.1 大模型單卡的定義 大模型單卡是一種集成了大量計(jì)算資源和存儲(chǔ)資源的硬件設(shè)備,通常用于處理大規(guī)模數(shù)據(jù)集和執(zhí)行復(fù)雜計(jì)
    的頭像 發(fā)表于 07-05 14:32 ?675次閱讀

    賦能產(chǎn)業(yè)互聯(lián)網(wǎng),高通量計(jì)算讓世界更高效!

    隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,計(jì)算機(jī)的主要應(yīng)用從以傳統(tǒng)的科學(xué)與工程計(jì)算為主逐步演變?yōu)橐詳?shù)據(jù)處理為核心,以傳統(tǒng)高性能計(jì)算機(jī)體系結(jié)構(gòu)為核心技術(shù)的新型基礎(chǔ)設(shè)施面臨巨大挑戰(zhàn),高通量計(jì)算應(yīng)運(yùn)而生。中
    發(fā)表于 04-12 14:46 ?260次閱讀
    賦能產(chǎn)業(yè)互聯(lián)網(wǎng),高通<b class='flag-5'>量計(jì)算</b>讓世界更高效!

    怎么根據(jù)變壓器容量計(jì)算出最大需量

    根據(jù)變壓器容量來(lái)計(jì)算最大需量是一個(gè)重要的問(wèn)題,尤其是在電力系統(tǒng)中。最大需量是指某一時(shí)間段內(nèi)需求的最大電力負(fù)荷。 變壓器容量是指變壓器能夠輸出的最大功率。它通常以千伏安(kVA)為單位衡量。在計(jì)算最大
    的頭像 發(fā)表于 03-24 10:16 ?5662次閱讀

    量計(jì)算公式多少度電 電量和度數(shù)怎么換算

    量計(jì)算公式多少度電? 電量計(jì)算公式是通過(guò)電壓和電流的乘積來(lái)計(jì)算的,單位為瓦特-小時(shí)(Wh)。公式為: 電量(Wh)= 電壓(V) × 電流(A) × 使用時(shí)間(小時(shí)) 其中,電壓是指電流通過(guò)的電器
    的頭像 發(fā)表于 02-03 14:42 ?6w次閱讀

    AMD將推新GPU效能媲美英偉達(dá)RTX 4080

    據(jù)悉,AMD正努力研制新品級(jí)GPU,性能堪比英偉達(dá)的RTX 4080,而售價(jià)卻只有后者的一半。據(jù)多個(gè)在線(xiàn)社區(qū)反映,AMD即將發(fā)布的Radeon RX 8000系列GPU效能與NVIDIA幾乎不相上下,定價(jià)卻只是前者的一半。
    的頭像 發(fā)表于 01-31 10:00 ?3063次閱讀