五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

自編教材分享:第二章—程序性能的度量指標(biāo)及優(yōu)化流程

2023-08-30 19:45 作者:先進(jìn)編譯實(shí)驗(yàn)室  | 我要投稿


在進(jìn)行程序優(yōu)化之前,了解統(tǒng)一的程序性能度量指標(biāo)以及常用的程序優(yōu)化流程是十分有必要的,其中程序性能度量指標(biāo)可以更好地幫助優(yōu)化人員衡量程序的性能。本文主要分享程序性能的度量指標(biāo)及優(yōu)化流程。

程序性能的度量指標(biāo)

程序性能的度量指標(biāo)主要包括程序執(zhí)行時(shí)間、計(jì)算與訪存效率、吞吐量與延遲、加速比、Amdahl定律、Gustafson定律等指標(biāo)。下面將一一介紹。

程序執(zhí)行時(shí)間

程序的執(zhí)行時(shí)間是判斷程序性能優(yōu)劣較為簡(jiǎn)單的方式之一,在使用相同計(jì)算設(shè)備且保證程序正確的前提下,程序運(yùn)行時(shí)間越短意味著其性能越高效。

實(shí)際優(yōu)化過(guò)程中,某些情況下需要對(duì)少量代碼精確計(jì)時(shí),采用普通的計(jì)時(shí)方法測(cè)試的結(jié)果誤差可能較大,此時(shí)可利用嵌入?yún)R編rpcc指令或多次執(zhí)行后取平均值的方式盡量減少結(jié)果誤差。


計(jì)算與訪存效率

計(jì)算效率是指實(shí)測(cè)浮點(diǎn)性能與理論浮點(diǎn)峰值性能之比。而訪存效率是指程序的有效訪存帶寬與存儲(chǔ)器理論帶寬之比,其中帶寬是計(jì)算平臺(tái)每秒內(nèi)存交換量的最大值。

當(dāng)程序的訪存效率接近于1時(shí),說(shuō)明程序已經(jīng)將整個(gè)存取器的帶寬都利用了起來(lái),與之對(duì)應(yīng)的當(dāng)訪存效率遠(yuǎn)小于1,則說(shuō)明存儲(chǔ)帶寬利用率較低,程序還有一定的訪存優(yōu)化空間。

吞吐量與延遲

吞吐量和延遲是衡量軟件系統(tǒng)最常見(jiàn)的兩個(gè)指標(biāo)。但高吞吐量并不意味著低延遲,高延遲也不代表吞吐量變小,它們之間的關(guān)系并不是簡(jiǎn)單的一一對(duì)應(yīng)。延遲測(cè)量的是用于等待的時(shí)間,廣義來(lái)說(shuō),延遲可以表示所有操作完成的耗時(shí),例如一次應(yīng)用程序請(qǐng)求、一次數(shù)據(jù)庫(kù)查詢、一次文件系統(tǒng)操作等,可以表示從單擊鏈接到屏幕顯示整個(gè)頁(yè)面加載完成的時(shí)間。

加速比

加速比speedup是指同一個(gè)任務(wù)在單處理器系統(tǒng)和并行處理器系統(tǒng)中運(yùn)行消耗的時(shí)間的比率,用來(lái)衡量并行系統(tǒng)或程序并行化的效果,也可以用于衡量程序優(yōu)化前后的效果,由于加速比是一個(gè)相對(duì)比值,因此在保證程序正確性的前提下加速比數(shù)值越大,代表著優(yōu)化的效果越顯著。 計(jì)算加速比的公式為:

%E5%8A%A0%E9%80%9F%E6%AF%94%3D%E4%BC%98%E5%8C%96%E5%89%8D%E7%9A%84%E6%89%A7%E8%A1%8C%E6%97%B6%E9%97%B4%2F%E4%BC%98%E5%8C%96%E5%90%8E%E7%9A%84%E6%89%A7%E8%A1%8C%E6%97%B6%E9%97%B4

Amdahl定律

Amdahl定律將程序劃分為可加速與不可加速兩大部分,程序總的加速比S是一個(gè)關(guān)于程序中這兩部分所占比例以及可加速部分性能加速程度的函數(shù),用公式表示為:

S%3D1%2F((1-a)%2Ba%2Fn)

其中a為并行計(jì)算部分所占比例,n為并行計(jì)算部分獲得的加速比。例如當(dāng)a=50%,n=1.15時(shí),S=1/((1-0.50) + (0.50/1.15)) = 1/(0.50 + 0.43) = 1.08。若應(yīng)用程序有50%的代碼是串行部分,那么該程序最終所能夠達(dá)到的加速比上限為1/0.5=2。

Gustafson定律

對(duì)于某些不屬于固定負(fù)載模式的問(wèn)題不能使用Amdahl定律來(lái)解釋。早在1988年Gustafson就發(fā)現(xiàn)了這個(gè)問(wèn)題并提出了固定時(shí)間加速比模型,也就是經(jīng)常提及的擴(kuò)展加速比模型,通常被稱為Gustafson定律,其公式為:

S%3Dn%2B(1-n)*f%3Df-n(f-1)

其中S表示擴(kuò)展加速比,f表示處理器核的數(shù)量,n表示程序中串行部分的比例。

程序性能優(yōu)化常用流程

在進(jìn)行程序優(yōu)化時(shí)之前,除需要了解程序性能常用的度量指標(biāo)外,優(yōu)化人員還需要大致了解程序優(yōu)化的流程及具體實(shí)施步驟,從而可以更加高效順利的開(kāi)展程序優(yōu)化。程序性能的常用優(yōu)化流程如圖1所示。

圖1 程序性能優(yōu)化常用流程


案例

以矩陣乘優(yōu)化為例,假設(shè)優(yōu)化后相比優(yōu)化前需要達(dá)到1.5倍的性能目標(biāo)。在確立性能目標(biāo)后,需要對(duì)程序進(jìn)行性能度量,獲得程序運(yùn)行時(shí)的各方面的數(shù)據(jù)。

初始

初始運(yùn)行時(shí)間:

當(dāng)計(jì)算規(guī)模是1024*1024的時(shí)候,測(cè)出來(lái)的數(shù)據(jù)中最耗時(shí)的函數(shù)是matrixmulti。所以主要針對(duì)這個(gè)函數(shù)進(jìn)行優(yōu)化。

Matrixmulti函數(shù)初始代碼為:

循環(huán)交換

完成一次性能優(yōu)化后,程序員需要判斷當(dāng)前的程序性能是否滿足需求,根據(jù)性能結(jié)果決定是否需要開(kāi)啟下一輪性能優(yōu)化,直至滿足最初的程序性能目標(biāo)后結(jié)束優(yōu)化流程。

進(jìn)行循環(huán)交換后的時(shí)間:

進(jìn)行循環(huán)交換后matrixmulti函數(shù)的代碼為:

循環(huán)展開(kāi)

接下來(lái)使用循環(huán)展開(kāi)進(jìn)行優(yōu)化,把最內(nèi)層的循環(huán)展開(kāi)四次,它的程序的運(yùn)行時(shí)間此時(shí)就已經(jīng)達(dá)到2.04秒,加速比已經(jīng)達(dá)到1.56倍。滿足最初的優(yōu)化目標(biāo),結(jié)束優(yōu)化流程。

進(jìn)行循環(huán)展開(kāi)后matrixmulti函數(shù)的代碼為:

參考資料

AI框架發(fā)展白皮書(shū)(2022年) https://syncedreview.com/2020/12/14/a-brief-history-of-deep-learning-frameworks/


自編教材分享:第二章—程序性能的度量指標(biāo)及優(yōu)化流程的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
湛江市| 定远县| 碌曲县| 台安县| 崇阳县| 扶余县| 马公市| 蕉岭县| 晋宁县| 怀化市| 临城县| 彭州市| 保定市| 通海县| 凤凰县| 文水县| 揭东县| 平顺县| 米泉市| 西青区| 南安市| 林西县| 河北省| 梓潼县| 自治县| 凤阳县| 金溪县| 即墨市| 六安市| 石首市| 海兴县| 忻城县| 靖宇县| 腾冲县| 涟水县| 文水县| 临猗县| 小金县| 冀州市| 绥宁县| 皮山县|