模型推理batch inference速度無明顯提升箱吕、耗時線性增長問題排查

現(xiàn)象描述

當(dāng)模型在推理階段使用batch inference時,推理速度并無明顯提升舟茶,相比單幀多次推理收益不大谭期。如筆者在Xavier上測試某模型結(jié)果

batch size 推理時間ms 折算耗時 ms/img
1 11.23 11.23
2 20.39 10.20
4 38.73 9.68
8 74.11 9.26
32 287.30 8.98

類似情況在網(wǎng)上也很多見,如yolov5作者的測試結(jié)果【1】

image-20231024222825202.png

按理來說吧凉,多張圖放一個batch喂給模型隧出,模型矩陣運(yùn)算可以并行操作,推理的速度可以有batch size倍的提升阀捅,但實(shí)際觀察到的現(xiàn)象確實(shí)提升不大胀瞪,尤其是在一些算力較弱的設(shè)備上。

原因分析:

在網(wǎng)上搜索一番饲鄙,大概定位原因赏廓,這里參考GitHub tensorrt 的 issues 1046解答【2】:

簡單來說涵紊,問題在于gpu計算性能有瓶頸。如果單張圖的計算量已經(jīng)快占滿計算核心(達(dá)到性能瓶頸)幔摸,再增加batch size也無法多張圖并行計算,尤其是在網(wǎng)絡(luò)中間的一些層channel數(shù)特別大時颤练,瞬時矩陣乘法運(yùn)算量非常大既忆,cuda核用滿了就需要排隊慢慢計算。

Generally, GPU computation is more efficient when the batch size is larger. This is because when you have a lot of ops, you can fully utilize the GPUs and hide some inefficiency or overhead between ops. However, if there are already a lot of ops at BS=1 and even BS=1 is able to fully utilize the GPUs, you may not see any increase in efficiency anymore.

For example, is your input size BSx3x1600x1000? This is a super large image which is expected to fully utilize even the largest GPU we have (like A100), so I don't think increasing BS gives benefit on GPU efficiency.

In terms of N/V/K, in your case the "N" is already 1600x1000 at BS=1, so N=1600x1000 vs N=2x1600x1000 do not make too much difference in turns of GPU efficiency, compared to N=1 vs N=2.

另外一個現(xiàn)象就是gpu性能越高嗦玖,batch inference效果提升越明顯患雇。如筆者在xavier上測試單幀推理時,GPU利用率就接近60%宇挫,所以當(dāng)batch size增加時基本無增益苛吱,而yolov5作者在A100(性能天花板更高)測試時,加速效果更明顯器瘪。其實(shí)當(dāng)batch size非常大時翠储,相當(dāng)于在讓GPU持續(xù)工作直到計算完成,減少了等待時間橡疼,所以性能越高可以并行計算的量也就越大援所,加速越明顯。

可以嘗試的優(yōu)化方向:

遇到上述情況欣除,想要加快推理速度住拭,除了最直接的-換更高性能的設(shè)備,暫時想到如下兩個方向優(yōu)化:

減少計算量:

  1. 降低模型輸入尺寸

  2. 優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)(中間計算量非常大的某些層)历帚,思想就是大的矩陣分解計算滔岳;想簡單省事的就看是否有開源的成果,如yolov5升級yolov8之類的

  3. 模型導(dǎo)trt挽牢,模型量化(fp16, int8)谱煤、剪枝等

  4. 升級trt版本說不定有驚喜,NVIDIA的工程師們可能對某些算子做了優(yōu)化

減少cuda核等待時間:

  1. 異步模式(多線程等)卓研,就是不讓gpu閑著趴俘,一直去計算
    如有其它后續(xù)補(bǔ)充......

Reference

  1. https://docs.google.com/spreadsheets/d/1Nm3jofjdgKja0AZHV8Jk_m8TgcF7jenCSA06DuEG2C0/edit?usp=sharing
  2. https://github.com/NVIDIA/TensorRT/issues/1046
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市奏赘,隨后出現(xiàn)的幾起案子寥闪,更是在濱河造成了極大的恐慌,老刑警劉巖磨淌,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疲憋,死亡現(xiàn)場離奇詭異,居然都是意外死亡梁只,警方通過查閱死者的電腦和手機(jī)缚柳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門埃脏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秋忙,你說我怎么就攤上這事彩掐。” “怎么了灰追?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵堵幽,是天一觀的道長。 經(jīng)常有香客問我弹澎,道長朴下,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任苦蒿,我火速辦了婚禮殴胧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘佩迟。我一直安慰自己团滥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布音五。 她就那樣靜靜地躺著惫撰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪躺涝。 梳的紋絲不亂的頭發(fā)上厨钻,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機(jī)與錄音坚嗜,去河邊找鬼夯膀。 笑死,一個胖子當(dāng)著我的面吹牛苍蔬,可吹牛的內(nèi)容都是我干的诱建。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼碟绑,長吁一口氣:“原來是場噩夢啊……” “哼俺猿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起格仲,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤押袍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凯肋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谊惭,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了圈盔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豹芯。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖驱敲,靈堂內(nèi)的尸體忽然破棺而出铁蹈,到底是詐尸還是另有隱情,我是刑警寧澤癌佩,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布木缝,位于F島的核電站,受9級特大地震影響围辙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜放案,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一姚建、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吱殉,春花似錦掸冤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至押赊,卻和暖如春饺藤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背流礁。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工涕俗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人神帅。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓再姑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親找御。 傳聞我的和親對象是個殘疾皇子元镀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容