精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

TensorRT是如何做到架構(gòu)更快的?

人工智能 智能汽車
文章總結(jié)了TensorRT工具鏈以及TensorRT后端優(yōu)化流程。

本文經(jīng)自動駕駛之心公眾號授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。

一. TensorRT是什么?

2016年Nvidia為自家GPU加速推理而提供的SDK,人們有時也把它叫做推理框架。

二. 為什么?

只有Nvidia最清楚自家GPU或DLA該如何優(yōu)化,所以TensorRT跑網(wǎng)絡(luò)的速度是最快的,比直接用Pytorch快N倍。

遙遙領(lǐng)先的TensorRT

三. 怎么做到的?

1. 搜索整個優(yōu)化空間

與Pytorch等其它訓(xùn)練框架最大區(qū)別是,TensorRT的網(wǎng)絡(luò)優(yōu)化算法是基于目標(biāo)GPU所做的推理性能優(yōu)化,而其它框架一方面需要綜合考慮訓(xùn)練和推理,更重要的是它們沒有在目標(biāo)GPU上做針對性的優(yōu)化。

TensorRT又是如何針對目標(biāo)GPU優(yōu)化的呢?

簡單講就是在可能的設(shè)計空間中搜索出全局最優(yōu)解。

這個搜索空間有哪些變量呢?

比如CUDA架構(gòu)中的編程模型所對應(yīng)的,將Tensor劃分為多少個block?以及這些block如何組織到Grid中。

任務(wù)被劃分為多個Block

Block以Grid的方式組織起來

不同的組織層次以對應(yīng)不同的存儲體系結(jié)構(gòu)中的不同存儲器

再舉例,使用什么樣的指令完成計算,可能是FFMA、FMMA,可能是TensorCore指令...

更難的部分可能是Tensor數(shù)據(jù)流的調(diào)度,把他們放在local、share還是global memory呢?如何擺放呢?

這些變量組合在一起是一個巨大的搜索空間,可能你的CPU計算幾天也得不出個結(jié)果來。

但是,我們知道神經(jīng)網(wǎng)絡(luò)的計算是由一個個粒度更大的算子組成的,算子上面還有粒度更大的層結(jié)構(gòu)。我們也清楚地知道層與層之間相對獨(dú)立,也就是說可以針對每層計算優(yōu)化,最后把優(yōu)化后的層串在一起大概率就是網(wǎng)絡(luò)的全局最優(yōu)解。

于是,TensorRT預(yù)先寫了很多算子和層(CUDA Kernel)。當(dāng)然這些算子的輸入和輸出tensor是可以配置的,以適應(yīng)網(wǎng)絡(luò)輸入和輸出的不同以及GPU資源的不同。

部分優(yōu)化好的算子

搜索空間變小了,從原來的指令級別的搜索,上升到了算子級別的搜索。因?yàn)檫@些實(shí)現(xiàn)都是用CUDA kernel所寫,更準(zhǔn)確的說是Kernel級別的搜索了。

但是Tensor數(shù)據(jù)流的調(diào)度問題并沒有解決,這也是最關(guān)鍵和復(fù)雜的地方。我們應(yīng)該將輸入Tensor劃分為多少個Block呢?這些Blocks應(yīng)該分配給多少個線程呢?Tensor存儲在哪呢?local/share/global memory的哪些地方呢?中間計算結(jié)果存儲在哪里呢?

對于計算部分是可以通過模擬的方式(類似指令集仿真器)計算得到性能的,但是Tensor數(shù)據(jù)流在share/L2/Global Memory的流動過程就很難通過仿真計算得到精確結(jié)果,因?yàn)橐荒M的數(shù)據(jù)量和線程數(shù)過大,何況要嘗試的可能性還很多,靠CPU仿真計算的思路就別想了。唯一辦法就是讓候選算子在目標(biāo)GPU上直接跑跑,統(tǒng)計出性能,最后通過比對選出最優(yōu)解。TensorRT把這個過程叫做Timing,TensorRT甚至可以將優(yōu)化的中間過程存儲下來供你分析,叫做timing caching(通過trtexec --timingCacheFile=<file>)。

Nvida GPU memory架構(gòu)

以上所描述的優(yōu)化過程可以叫做Hardware Aware Optimazation。

總結(jié)起來優(yōu)化器會重點(diǎn)分析:

  • Type of hardware(Hardware capability...)
  • Memory footprint(Share, Cache, Global...)
  • Input and output shape
  • Weight shapes
  • Weight sparsity
  • Level of quantization (so, reconsider memory)

而這些是Pytorch等框架不會去深入挖掘的,尤其是對存儲系統(tǒng)的優(yōu)化。

2. 強(qiáng)制選擇Kernel

由于Block之間線程的運(yùn)行順序是隨機(jī)的,CPU可能在向GDDR/HBM讀寫數(shù)據(jù),甚至GPU的時鐘頻率也在隨負(fù)載的變化而變化,這導(dǎo)致了不同系統(tǒng)運(yùn)行環(huán)境下GPU的性能表現(xiàn)會有差異。這種差異也可能導(dǎo)致TensorRT Timing的最優(yōu)解不是實(shí)際推理時的最優(yōu)解,可能選擇了次優(yōu)的Kernel。

TensorRT提供了一個補(bǔ)救方法,就是強(qiáng)制指定選擇某個Kernel實(shí)現(xiàn),如果你很確信它是最優(yōu)解的話。

TensorRT提供的API叫做AlgorithmSelector。

3. Plugin

當(dāng)然,你對自己設(shè)計的算子更有把握,可以自己寫Kernel,然后指定使用它。

不過,更多情況下,是因?yàn)榘l(fā)現(xiàn)TensorRT不支持某個算子,你才被迫去寫Kernel,畢竟CUDA編程不簡單,何況性能還需要足夠好。

4. cuBLAS和cuDNN

TensorRT安裝指導(dǎo)要求你先安裝CUDA SDK和cuDNN。

CUDA SDK需要安裝是顯而易見的,因?yàn)門ensorRT所調(diào)用的Kernel需要NVCC編譯器來編譯成Nvidia GPU的匯編指令序列啊!

但是CUDA SDK中還有一個cuBLAS庫也是被TensorRT所依賴的,我們知道C++庫BLAS(Basic Linear Algebra Subprograms),它是針對CPU進(jìn)行的線性代數(shù)計算優(yōu)化,那么cuBLAS就是針對CUDA GPU開發(fā)的線性代數(shù)計算庫,它的底層當(dāng)然也就是用CUDA Kernel寫成的。典型的矩陣乘法算子就可以直接調(diào)用cuBLAS了。

cuBLAS開發(fā)的很早,應(yīng)該是CUDA生態(tài)最早的一批庫了吧,但是隨著深度學(xué)習(xí)的普及,Nvidia又在生態(tài)中加入了cuDNN庫,它的層次更高,封裝了到了網(wǎng)絡(luò)層,所以其實(shí)TensorRT也可以直接調(diào)用優(yōu)化好的cuDNN庫中的Kernel?是也不是。

TensorRT可以選擇所謂Tactic(策略)來決定是使用TensorRT寫的Kernel還是cuBLAS和cuDNN的。

5. Tactic

TensorRT的Tactic能決定很多優(yōu)化選項。

例如,每次timing某個算子時需要平均的運(yùn)行次數(shù)。缺省TensorRT會運(yùn)行四次,以降低不確定性帶來的誤差,但這個次數(shù)是可以修改的。

還可以決定上面提到的Kernel庫的選擇,Plugin的選擇,GPU時鐘頻率鎖定等。

6. 量化

TensorRT當(dāng)然具備網(wǎng)絡(luò)量化能力,提供了將全網(wǎng)都量化到int8的隱性量化方式,也提供了插入Q/DQ Layer的顯性量化方式。

混合量化是Nvidia做的很優(yōu)秀的地方,這對于高效利用計算資源起到了重要作用,不過,這個另外的話題,以后有機(jī)會再談。

7. 多應(yīng)用推理和多卡推理

其實(shí)這才是Nvidia強(qiáng)悍的地方,在友商都在談單卡性能時,其實(shí)多卡或多節(jié)點(diǎn)才是Nvidia的殺手锏

另外,對于單卡性能富余的情況下,可能希望有多個流并行推理,這個對于TensorRT來說也是必須支持的

四. TensorRT的內(nèi)核到底是什么?

答:根據(jù)網(wǎng)絡(luò)、輸入、輸出tensor、目標(biāo)GPU的資源,通過實(shí)際運(yùn)行,在候選Kernel庫中擇優(yōu)的一個Hardware Aware優(yōu)化器。

五. 編譯器

最后,如果非要套用編譯器前后端理論的話,上述談到的部分應(yīng)該屬于編譯器后端部分了,因?yàn)樗呀?jīng)和底層硬件息息相關(guān)了。只不過它邏輯上處于于NVCC這個實(shí)體編譯器的上層。而編譯器前端,也就是與硬件不相關(guān)的圖融合部分是也是在TensorRT的Builder內(nèi)完成的。

好了,如果你對AI編譯器還不了解,可以看下面這篇入門文章

https://zhuanlan.zhihu.com/p/632648673

最后送上兩幅圖,作為總結(jié)

TensorRT工具鏈

TensorRT后端優(yōu)化流程


責(zé)任編輯:張燕妮 來源: 自動駕駛之心
相關(guān)推薦

2017-11-14 08:25:36

數(shù)據(jù)庫MySQL安全登陸

2011-11-09 15:49:52

API

2016-11-30 14:18:30

互聯(lián)網(wǎng)

2021-08-02 09:01:05

MySQL 多版本并發(fā)數(shù)據(jù)庫

2024-06-13 15:26:23

2024-03-08 09:46:53

2019-12-23 09:25:29

日志Kafka消息隊列

2009-11-20 11:37:11

Oracle完全卸載

2019-01-03 14:00:37

降價青云全棧云

2024-07-10 17:28:51

2011-06-22 09:45:46

JavaScriptAPI

2017-12-05 11:48:44

AI人工智能開發(fā)者

2020-06-01 08:41:29

蘇寧分析大數(shù)據(jù)

2019-07-01 15:40:53

大數(shù)據(jù)架構(gòu)流處理

2019-08-08 10:18:15

運(yùn)維架構(gòu)技術(shù)

2016-01-08 10:03:07

硅谷通吃互聯(lián)網(wǎng)

2024-03-08 07:58:13

QPShttpsync

2022-09-09 08:41:43

Netty服務(wù)端驅(qū)動

2010-03-30 10:44:05

Nginx啟動

2021-05-24 10:55:05

Netty單機(jī)并發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

加勒比综合在线| 久久国产精品网| 99草在线视频| 999在线观看精品免费不卡网站| 精品亚洲夜色av98在线观看| 免费看污污网站| 日本高清在线观看| 久久午夜羞羞影院免费观看| 国产欧美日韩亚洲精品| 国产一级特黄视频| 欧美日韩中字| 欧美不卡一二三| 波多野结衣xxxx| 黄在线观看免费网站ktv| 国产精品污网站| 国产综合av一区二区三区| 亚洲在线免费观看视频| 一区二区三区四区五区精品视频 | 国产日韩欧美自拍| 日本在线视频免费| 91成人精品视频| 亚洲人成电影网站色xx| 国产人妻精品午夜福利免费| 成人国产一区| 欧美午夜无遮挡| 亚洲精品国产suv一区88| jzzjzzjzz亚洲成熟少妇| 97久久超碰国产精品电影| 亚洲精品免费在线视频| 天天干天天操天天操| 99在线精品免费视频九九视| 欧美大尺度激情区在线播放| 女人抽搐喷水高潮国产精品| 老司机精品导航| 欧美美女18p| 日本欧美一区二区三区不卡视频| 精品少妇3p| 日韩欧美一级精品久久| 91插插插插插插插插| 成人美女黄网站| 香蕉久久一区二区不卡无毒影院| 91嫩草国产丨精品入口麻豆| 在线免费av网站| 久久久蜜桃精品| 久久大香伊蕉在人线观看热2| 精品国产av一区二区三区| 久久99精品久久久久久| 国产精品爽黄69天堂a| 日本精品入口免费视频| 久久久噜噜噜| 欧洲一区二区视频| 九九热精品视频在线| 亚洲激情女人| 77777少妇光屁股久久一区| 久久精品久久精品久久| 激情综合视频| 久久男人的天堂| 国产一级片免费| 在线欧美不卡| 91禁外国网站| 日韩美一区二区| 日韩精品亚洲专区| 国产精品视频中文字幕91| 国产精品51麻豆cm传媒| 麻豆精品视频在线观看免费 | 亚洲一区二区四区| 亚洲欧美视频一区二区| 自拍偷拍国产精品| 欧美 亚洲 视频| av资源新版天堂在线| 五月开心婷婷久久| 亚洲人成色77777| 国产香蕉久久| 日韩天堂在线观看| 妖精视频一区二区| 亚洲精品国产动漫| 中文字幕精品在线视频| www深夜成人a√在线| 欧美三区在线| 欧美一级视频免费在线观看| 五月激情丁香网| 国产一区二区三区在线观看免费视频 | 欧美综合激情| 国产在线更新| 婷婷开心久久网| 国产91色在线观看| 97精品久久| 亚洲色图国产精品| 欧产日产国产v| 久久精品男女| 2022国产精品| 国外av在线| 亚洲视频免费观看| 国产深夜男女无套内射| 欧美一级做a| 亚洲国产欧美一区| 成人精品一二三区| 伊人成人在线| 国产欧美精品一区二区| 少妇喷水在线观看| 中文字幕一区免费在线观看| 免费不卡av在线| a成人v在线| 亚洲国产精品成人va在线观看| 欧美激情 一区| 国内精品福利| 成人黄色在线免费| 视频在线观看你懂的| 综合婷婷亚洲小说| 欧美日韩国产精品激情在线播放| 精品国产一区二区三区2021| 亚洲一区www| 91午夜视频在线观看| 国内精品第一页| 日本精品一区二区| 成人ssswww在线播放| 555夜色666亚洲国产免| 国产美女永久免费无遮挡| 黄色成人在线网址| 91日韩在线播放| 国产69久久| 疯狂欧美牲乱大交777| 丰满人妻一区二区三区大胸| 成人激情在线| 国产国语刺激对白av不卡| 手机看片一区二区| 亚洲一区在线观看免费| 国产乱码一区二区三区四区| 欧美日韩xxxx| 69久久夜色精品国产69| 国产小视频免费观看| 中文字幕亚洲精品在线观看| 黄色免费网址大全| 国产在视频线精品视频www666| 97国产精品视频| 亚洲国产精品久久人人爱潘金莲| 亚洲婷婷在线视频| www.精品在线| 全球成人免费直播| 国产精品视频yy9099| 成人资源www网在线最新版| 欧美午夜片在线免费观看| 999精品免费视频| 激情亚洲成人| 国产99午夜精品一区二区三区| www国产在线观看| 91精品国产入口| 精品自拍偷拍视频| 国产麻豆精品一区二区| 91精品国产吴梦梦| 精品国产一级| 久久久久久久久久久久av| 丰满人妻一区二区三区无码av| 亚洲精品国产精华液| 成人免费黄色av| 红桃视频亚洲| 久久久久免费网| 日韩在线短视频| 色综久久综合桃花网| 国产又粗又猛又爽又黄的视频一| 国产精品传媒在线| theporn国产精品| 欧美久久九九| 精品无码久久久久国产| 女生影院久久| www.欧美精品| 免费观看黄一级视频| 精品国产乱码久久久久酒店 | 欧美wwwwwww| 亚洲女同另类| 国产伦精品一区二区三区免费视频| 国模私拍视频在线播放| 日韩精品高清在线| 久久久久亚洲视频| 亚洲男人的天堂av| asian性开放少妇pics| 蜜臀av国产精品久久久久| 免费观看国产视频在线| 加勒比中文字幕精品| 日韩av男人的天堂| 成人日韩欧美| 日韩av在线直播| 在线观看毛片网站| 亚洲综合免费观看高清完整版| 久久无码人妻精品一区二区三区 | 91精品国产91久久久久青草| 电影在线观看一区| 国产亚洲欧美视频| 亚洲欧美强伦一区二区| 欧美专区亚洲专区| 国产精品第108页| 欧美激情综合五月色丁香| 亚洲AV无码久久精品国产一区| 羞羞答答国产精品www一本| 一区二区三区观看| 香蕉视频一区| 亚洲一区二区三区777| 美女的胸无遮挡在线观看| www.欧美免费| 久草在线免费福利资源| 日韩视频在线你懂得| 久久久久精彩视频| 午夜精品123| 成人免费精品动漫网站| 久久久久久一二三区| 涩涩网站在线看| 久久免费高清| 日本手机在线视频| 91亚洲人成网污www| 茄子视频成人在线观看 | 在线国产精品播放| 后入内射欧美99二区视频| 欧美三区在线观看| 日韩久久中文字幕| 一区二区日韩av| 中文乱码字幕高清一区二区| 国产亚洲美州欧州综合国| 一区二区免费在线观看视频| 国产一区二区三区蝌蚪| 91看片在线免费观看| 久久精品1区| 欧美一级在线看| 亚洲高清成人| 一二三在线视频| 亚洲一区二区三区无吗| 亚洲巨乳在线观看| 狠狠色丁香婷婷综合影院| 精品一卡二卡三卡四卡日本乱码 | 成人免费视频视频| 欧美色图校园春色| 国产真实精品久久二三区| 99热手机在线| 日韩成人免费在线| 日韩免费高清在线| 日韩二区三区在线观看| 无码人妻h动漫| 久久av最新网址| 黄色a级片免费| 视频在线观看91| 日本成人黄色网| 日韩国产精品久久久久久亚洲| 97成人在线观看视频| 国产一区二区三区久久久久久久久| 久久久久久久9| 在线成人亚洲| 亚洲熟妇国产熟妇肥婆| 中文亚洲欧美| 国产成人久久777777| 久久精品午夜| 日本激情视频在线播放| 久久国产三级精品| 国产精品嫩草影院8vv8| 精久久久久久久久久久| 天天久久综合网| 国产99久久久国产精品免费看| 亚洲少妇一区二区| av激情综合网| 国产精品815.cc红桃| 久久精品日韩一区二区三区| 亚洲天堂岛国片| 综合久久给合久久狠狠狠97色| 欧美做爰爽爽爽爽爽爽| 一区二区激情视频| 日本三级片在线观看| 色香色香欲天天天影视综合网| 特级西西444www大胆免费看| 欧美猛男超大videosgay| av男人天堂网| 精品视频久久久| 午夜小视频在线| 欧美激情视频一区| 悠悠资源网亚洲青| 国产精品一区二区久久久久| 日韩一区免费| 久久久久久久久久久一区| 日韩系列欧美系列| 成人免费在线网| 日本成人在线视频网站| 国产高清av片| 91色视频在线| 国产日韩精品中文字无码| 亚洲黄色性网站| 成人免费毛片视频| 欧美一级艳片视频免费观看| 亚洲欧美日韩免费| 久久久精品国产一区二区| av在线加勒比| 成人免费视频a| 日韩福利视频一区| 在线播放 亚洲| 在线欧美不卡| 网站在线你懂的| 91片在线免费观看| 午夜免费激情视频| 在线精品观看国产| 风流老熟女一区二区三区| 一区二区在线视频| 波多野结衣中文在线| 国产日韩欧美91| 欧美日韩精品一区二区三区在线观看| 亚洲一区3d动漫同人无遮挡| 一本久道综合久久精品| 欧美又黄又嫩大片a级| 久久久久综合网| 日本免费在线播放| 正在播放亚洲一区| 黄色av网站在线免费观看| 欧美激情在线观看| 日韩一级视频| 日韩福利视频| 亚洲一区二区免费看| 性色av浪潮av| 亚洲欧洲三级电影| 亚洲精品91天天久久人人| 亚洲国产成人av在线| a免费在线观看| 国产免费一区二区三区在线观看| 先锋影音国产精品| 亚洲一区二区三区av无码| 久久99精品国产| 成年人在线免费看片| 色综合天天狠狠| 先锋av资源站| 午夜精品久久久久久久男人的天堂 | 日韩一级精品| 无码任你躁久久久久久老妇| 亚洲欧美偷拍三级| 亚洲性在线观看| 最好看的2019的中文字幕视频| 欧美1级2级| 免费中文日韩| 久久蜜桃精品| 国产黄色大片免费看| 91久久精品一区二区| 你懂的免费在线观看| 欧美一区第一页| 日本欧美高清| 免费无码不卡视频在线观看| 成人毛片视频在线观看| 黄色一级视频免费观看| 日韩精品专区在线影院重磅| 性欧美video高清bbw| 97netav| 亚洲天堂黄色| 性久久久久久久久久久| 精品动漫一区二区三区| 午夜视频在线播放| 日本免费久久高清视频| 欧美男gay| 欧美wwwwwww| 亚洲精品精品亚洲| 高清毛片aaaaaaaaa片| 久久久久免费精品国产| 国产精品亚洲网站| 国产精品7m凸凹视频分类| 中文字幕日韩久久| 亚洲精品国产精品乱码不99| 老牛影视av牛牛影视av| 高清欧美电影在线| 色先锋久久影院av| 欧美亚洲日本在线观看| 综合婷婷亚洲小说| 亚洲国产av一区二区| 欧美一区在线直播| 日韩av自拍| 少妇丰满尤物大尺度写真| 亚洲电影第三页| 国产一二三区在线视频| 成人激情视频在线| 黄色成人在线网址| 中文字幕在线看高清电影| 欧洲精品在线观看| 中文字幕中文字幕在线十八区| 国产日韩三区| 日韩成人精品在线| 欧美精品一级片| 亚洲免费人成在线视频观看| 成人av色网站| av一区二区三区免费观看| 91浏览器在线视频| 国产精品久久久久久免费播放| 国内精品小视频| 欧美日韩伦理| 中文字幕一二三| 91黄色免费看| 波多野结衣中文字幕久久| 日韩理论片在线观看| 丁香亚洲综合激情啪啪综合| 波多野结衣视频观看| 欧美日韩xxxxx| 精品视频97| 女同性恋一区二区三区| 欧美日韩精品一区二区三区四区| 免费毛片在线看片免费丝瓜视频| 欧洲一区二区在线| 成人高清免费观看| 国产又粗又猛又色又| 日本成人黄色片| 亚洲性视频h| 成人免费精品动漫网站|