精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

欧美激情喷水视频| 91精品国产综合久久精品app | 日韩视频永久免费观看| 91热视频在线观看| 青草视频在线免费直播 | 在线中文字幕一区二区| 久久99精品久久久久久秒播放器 | 精品欧美一区二区在线观看| 91视频最新入口| 蜜桃视频在线观看免费视频网站www| 国产美女视频91| 91精品国产一区| 秋霞欧美一区二区三区视频免费| 亚洲日本一区二区三区在线| 欧美性xxxxxxx| ijzzijzzij亚洲大全| 天堂av一区二区三区| 美女视频网站黄色亚洲| 欧美激情18p| 在线视频第一页| 99视频有精品高清视频| 精品欧美激情精品一区| 在线观看成人av| 蜜桃免费在线| 国产成人精品综合在线观看| 国产精品美女呻吟| 日韩黄色精品视频| 天天做天天爱天天综合网2021| 日韩精品在线免费| 成人免费黄色av| 福利一区二区免费视频| 图片区小说区国产精品视频| 精品无码av无码免费专区| 91在线品视觉盛宴免费| 91免费看片在线观看| 91青青草免费在线看| 亚洲视频一区二区三区四区| 久久aⅴ国产紧身牛仔裤| 欧美国产日韩一区二区在线观看| 极品尤物一区二区| 欧美极品在线观看| 精品sm在线观看| 91视频福利网| 日韩专区视频| 在线视频综合导航| 女人另类性混交zo| 中文字幕 在线观看| 亚洲综合丁香婷婷六月香| 性欧美18一19内谢| av在线三区| 国产喂奶挤奶一区二区三区| 久久精品国产99精品国产亚洲性色| 亚洲精品第五页| 国产一区二区三区美女| 国产精品一区二区三区久久久| 国产高清中文字幕| 亚洲精品黄色| 91精品国产乱码久久久久久蜜臀 | 97se国产在线视频| 97精品久久人人爽人人爽| 日本欧美一区二区三区| 国产精品盗摄久久久| 一级一片免费看| 三级不卡在线观看| 国产精品久久9| 国产女优在线播放| 蜜臀av一区二区三区| 国产精品美女999| 一本久道久久综合无码中文| 久久精品国产99国产精品| 成人黄色大片在线免费观看| 国产夫妻性生活视频| 国产99久久久国产精品潘金| 国产日韩一区欧美| 天堂av中文在线资源库| 国产日产欧产精品推荐色| 五月天婷亚洲天综合网鲁鲁鲁| 电影av一区| 中文字幕在线不卡视频| 亚洲精品天堂成人片av在线播放| 男人天堂亚洲| 精品福利樱桃av导航| 99免费视频观看| 日韩毛片网站| 亚洲福利视频网| 成年人网站免费在线观看| 欧美色女视频| 欧美老女人性视频| 在线观看国产亚洲| 日韩和欧美一区二区| 成人免费xxxxx在线观看| www.亚洲欧美| 久久精品亚洲一区二区三区浴池| 亚洲精品中文字幕在线| 欧洲黄色一区| 日韩欧美在线视频观看| av噜噜在线观看| 国产精品乱战久久久| 亚洲天堂网站在线观看视频| 高h视频免费观看| 亚洲尤物精选| 92国产精品久久久久首页| 色哟哟中文字幕| 国产精品国产三级国产三级人妇| 蜜臀av无码一区二区三区| 91精品韩国| 精品久久久久久无| 免费观看a级片| 一区视频在线看| 国产精品综合不卡av| 可以免费观看的毛片| 国产欧美一区二区三区在线看蜜臀 | 欧美激情综合色综合啪啪五月| 69成人免费视频| 精品一区二区久久| 欧美久久电影| 波多野结衣中文在线| 欧美日本在线一区| 五级黄高潮片90分钟视频| 国产精品毛片一区二区在线看| 7777免费精品视频| va婷婷在线免费观看| 久久九九久精品国产免费直播| 国产一线二线三线女| 久久天天久久| 国产午夜精品一区二区三区| xxxxxx国产| 国产成人一级电影| 在线观看精品视频| av免费在线一区| 亚洲激情免费观看| 久久亚洲成人av| 国产一区啦啦啦在线观看| 日韩高清三级| 欧美××××黑人××性爽| 亚洲精品一区av在线播放| 国产在线观看成人| 国产美女精品人人做人人爽| 午夜一区二区三区| 韩日毛片在线观看| 欧美精品一区二区精品网| 91视频综合网| 国产麻豆成人传媒免费观看| 在线免费观看成人网| 日本中文字幕一区二区| 亚洲欧美激情精品一区二区| 在线观看亚洲天堂| 99久久免费视频.com| 六月婷婷在线视频| 成人另类视频| 久久久久久国产| 免费av一级片| 黄色成人av在线| 亚洲久久久久久| 狠狠爱成人网| 国产一区国产精品| 成人在线黄色电影| 亚洲国产精品嫩草影院久久| 日韩特黄一级片| 99久久夜色精品国产网站| 免费毛片小视频| 国产成人久久| 国产日韩中文在线| 在线观看中文| 亚洲成年人在线播放| 青青操免费在线视频| 91看片淫黄大片一级在线观看| av免费中文字幕| 成人羞羞在线观看网站| 成人激情视频网| 在线看福利影| 亚洲激情自拍图| 亚洲综合图片网| 中文字幕在线一区二区三区| 天天久久综合网| 国产精品mv在线观看| 国产精品日韩一区二区| 欧美成人资源| 日韩在线视频一区| 91片黄在线观看喷潮| 一区二区三区在线播| 国产精品久久无码| 日本特黄久久久高潮| 亚洲国产精品女人| 国产精品xxxav免费视频| 日本高清视频一区| 国产在线1区| 亚洲国产日韩精品在线| 伊人久久中文字幕| 一区二区三区在线影院| 亚洲国产精品成人综合久久久| 奇米精品一区二区三区四区 | 麻豆网站视频在线观看| 精品久久久久久久人人人人传媒| www毛片com| 亚洲天堂久久久久久久| 日本一级片在线播放| 另类人妖一区二区av| 真人抽搐一进一出视频| 成人亚洲一区| 国产嫩草一区二区三区在线观看| 综合在线影院| 欧美成人一区二区三区电影| 欧美成人免费| 日韩一区二区在线观看视频播放| 亚洲另类在线观看| 亚洲美女精品一区| 无码少妇精品一区二区免费动态| 国产成人免费在线| 无限资源日本好片| 宅男噜噜噜66国产日韩在线观看| 中文字幕精品一区日韩| 香蕉久久夜色精品国产更新时间| 91色在线视频| 无人区在线高清完整免费版 一区二| 欧美黄色免费网站| 日本韩国在线视频爽| 亚洲免费伊人电影在线观看av| 99er热精品视频| 欧美亚洲动漫另类| 青青青国产在线| 亚洲国产精品影院| 国内偷拍精品视频| 中文字幕中文乱码欧美一区二区 | 日本77777| 日韩精品一级中文字幕精品视频免费观看 | 日本在线观看免费| 亚洲欧美色婷婷| 十八禁一区二区三区| 日韩亚洲欧美在线观看| 亚洲资源在线播放| 欧美在线一二三四区| 中文字幕超碰在线| 一区二区三区在线观看国产| 国产成人免费在线观看视频| 国产视频亚洲色图| 大又大又粗又硬又爽少妇毛片| 懂色一区二区三区免费观看| 亚洲一区二区三区四区精品| 蜜桃精品在线观看| 欧美三级午夜理伦三级富婆| 日韩经典一区二区| 免费观看精品视频| 午夜在线精品偷拍| 国产91对白刺激露脸在线观看| 999亚洲国产精| 久久久亚洲精品无码| 在线国产精品一区| 日韩国产欧美亚洲| 亚洲欧美日韩在线观看a三区| 免费毛片网站在线观看| 亚洲人成高清| 天堂…中文在线最新版在线| 亚洲另类黄色| 男人操女人免费软件| 羞羞答答国产精品www一本| av黄色在线网站| 亚洲综合丁香| 密臀av一区二区三区| 日本va欧美va精品| 日韩中文字幕a| 国内外成人在线视频| 无套内谢丰满少妇中文字幕 | 99在线视频播放| 国产91精品入| 欧美日韩高清在线一区| 精品国产一区二区三区噜噜噜| 天天久久人人| 亚洲电影影音先锋| 国产欧美久久久久| 亚洲每日在线| 激情内射人妻1区2区3区 | 色欲欲www成人网站| 成人免费电影视频| 野花社区视频在线观看| 国产欧美综合色| 久草免费在线视频观看| 香蕉加勒比综合久久| aaa在线视频| 777xxx欧美| 五月婷婷六月激情| 一本色道久久综合狠狠躁篇的优点 | www.91精品| 国产欧美日韩亚洲| 国产最新精品| 国产视频在线观看网站| 免费精品视频| 一级做a爱视频| 99免费精品视频| 黄色免费一级视频| 夜夜嗨av一区二区三区中文字幕 | www.xx日本| 亚洲精品视频免费看| 日韩无码精品一区二区三区| 欧美视频在线观看一区| 午夜精品久久久久久久99老熟妇| 亚洲品质视频自拍网| 97超碰资源站在线观看| 2019中文字幕在线| 96视频在线观看欧美| 久久久久一区二区| 中文在线播放一区二区| 成人一级片网站| 成人免费高清在线观看| 国产精品免费在线视频| 精品国产31久久久久久| 国产精品人人爽| 亚洲视频在线看| www在线观看黄色| 亚洲影影院av| 国内精品伊人久久久| 99色这里只有精品| 精品一区二区三区影院在线午夜 | 深爱激情综合| 99国产精品白浆在线观看免费| 日本欧美一区二区在线观看| 国产精品伦子伦| 亚洲自拍偷拍网站| 国产一区二区三区三州| 国产视频精品自拍| heyzo在线欧美播放| 亚洲综合中文字幕在线| 日韩片欧美片| 精品久久久久久无码国产| 不卡一区二区中文字幕| 日本妇女毛茸茸| 3d动漫精品啪啪| 91高清在线视频| 国产精品福利片| 亚洲8888| 337p粉嫩大胆噜噜噜鲁| 成人av电影在线观看| 欧美人妻精品一区二区免费看| 欧美久久久久久久久| 97视频在线观看网站| 国产激情久久久| 猛男gaygay欧美视频| 老太脱裤让老头玩ⅹxxxx| 国产成人亚洲精品狼色在线| 国产精品成人免费观看| 91精品国产一区二区| 国产丝袜在线| 91aaaa| 欧美91精品| 巨乳女教师的诱惑| 亚洲欧美日韩电影| 国产免费黄色大片| 久久精品人人做人人爽| 亚州精品国产| 国产精品亚洲天堂| 国产一区二区不卡| 九九在线观看视频| 精品动漫一区二区三区在线观看| 色噜噜狠狠狠综合欧洲色8| 99电影在线观看| 一区在线视频| 日韩成人av一区二区| 欧美日韩免费看| 免费理论片在线观看播放老| 国产精品wwwwww| 久久激情电影| 亚洲制服中文字幕| 亚洲男人的天堂网| 高h震动喷水双性1v1| 性欧美视频videos6一9| 九九精品久久| 亚洲性图一区二区| 亚洲日本丝袜连裤袜办公室| 国内爆初菊对白视频| 欧美又大又粗又长| 精品日韩免费| 亚洲一区二区三区四区精品| 亚洲福利视频导航| 涩爱av在线播放一区二区| 国产精品大片wwwwww| 在线观看日韩| 99久久免费看精品国产一区| 在线看一区二区| 草莓福利社区在线| 国产在线精品一区| 日韩av电影一区| 日本中文字幕免费在线观看| 亚洲福利小视频| 成人影院在线免费观看| 91免费国产精品| 久久久久久久网| av网站免费播放| 日本精品一区二区三区在线播放视频 | 午夜偷拍福利视频| 亚洲天堂一区二区三区| 9999精品免费视频| 3d动漫一区二区三区| 亚洲国产成人一区二区三区| 亚洲国产精品久久久久久6q| 欧洲日韩成人av| 综合av在线| 亚洲精品91在线| 精品国产制服丝袜高跟| 日韩中文在线播放| 被灌满精子的波多野结衣|