九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
tensorRT模型推理加速實(shí)踐
TensorRT的應(yīng)用已經(jīng)非常廣泛,特別地在推薦系統(tǒng)和自動(dòng)駕駛這些需要高性能推理的AI領(lǐng)域,發(fā)揮著至關(guān)重要的作用。本文結(jié)合實(shí)際的業(yè)務(wù)場(chǎng)景,完成onnx到TensorRT模型的轉(zhuǎn)換與推理過程,及實(shí)際應(yīng)用部署后的效果和性能比較,完成對(duì)TensorRT性能提升的驗(yàn)證。   21
TensorRT簡(jiǎn)介
TensorRT是由C++、CUDA、python三種語言編寫成的庫(kù),有助于在 NVIDIA GPU上進(jìn)行高性能推理?;谀壳爸髁鞯纳疃葘W(xué)習(xí)框架得到的模型都可通過TensorRT實(shí)現(xiàn)推理加速。
圖1 TensorRT轉(zhuǎn)換過程2021年7月,NVIDIA 發(fā)布了 TensorRT 8.0版本,新版本極大提升了Transformers結(jié)構(gòu)的推理新能。TensorRT性能優(yōu)化主要依賴下面兩種方式:1、權(quán)重與激活精度校準(zhǔn):在推理中使用FP16或者INT8精度計(jì)算,通過降低計(jì)算精度,提高計(jì)算效率,實(shí)現(xiàn)更低的顯存占用率和延遲以及更高的吞吐率。結(jié)合TensorRT提供的完全自動(dòng)的校準(zhǔn)(Calibration)過程,減少精度降低帶來的性能損耗。2、層與張量融合:通過Kernel縱向融合、Kernel橫向融合、消除concatenation層這三種方式,實(shí)現(xiàn)層與張量的融合,TensorRT可以獲得更小、更快、更高效地計(jì)算流圖,其擁有更少層網(wǎng)絡(luò)結(jié)構(gòu)以及更少Kernel Launch次數(shù),以提高 GPU 的計(jì)算效率。目前TensorRT已廣泛應(yīng)用于國(guó)內(nèi)外各大廠家,如微信也使用TensorRT來進(jìn)行搜索加速。2
TensorRT實(shí)踐
1
環(huán)境部署
TensorRT是必須依賴GPU的環(huán)境的,要根據(jù)自己本地的CUDA版本來確認(rèn)所需要安裝的TensorRT版本(這里面有EA搶先版和GA通用版本,建議下載GA通用版本,穩(wěn)定一點(diǎn)),筆者本地配置為
硬件(GPU):T4軟件:tensorRT8.0.1.6 + cuda11.4 + pycuda2020.1 + torch1.12.1+cu113
可供參考,具體可參考官網(wǎng)[4]。
2
ONNX轉(zhuǎn)TRT
onnx模型轉(zhuǎn)成TRT模型的辦法有很多,這里介紹簡(jiǎn)單介紹兩種常用方式:
(1)使用TensorRT自帶的trtexec命令
通過下面的腳本可直接進(jìn)行轉(zhuǎn)換,這里面主要涉及自有的基于bert實(shí)現(xiàn)的文本分類模型(負(fù)面情感等級(jí)分析),原訓(xùn)練后得到模型已轉(zhuǎn)換為onnx模型,大家可以根據(jù)自己實(shí)際的模型進(jìn)行相應(yīng)地修改。
1../trtexec 2.--onnx='pytorch_model_fp16.onnx' 3.--saveEngine='bert.trt' 4.--fp16 5.--minShapes=input_ids:1x1,attention_mask:1x1,token_type_ids:1x1 6.--optShapes=input_ids:1x256,attention_mask:1x256,token_type_ids:1x256 7.--maxShapes=input_ids:1x256,attention_mask:1x256,token_type_ids:1x256 8.--device=1
(2) 通過python API這種形式轉(zhuǎn)換,首先以trt的Logger為參數(shù),使用builder創(chuàng)建計(jì)算圖類型,然后使用onnx等網(wǎng)絡(luò)框架下的結(jié)構(gòu)填充計(jì)算圖,最后由計(jì)算圖創(chuàng)建cuda環(huán)境下的引擎,并以序列化的形式寫入到文件中,方便后續(xù)推理過程。特別的,這里面要注意輸入名要與onnx的構(gòu)造輸入名字要保持一致,具體代碼如下:
圖2 onnx轉(zhuǎn)TensorRT代碼
這兩種方式生成的trt模型的效果都是一樣的,但第一種方式由于要對(duì)輸入模型和本地環(huán)境做一下額外的校驗(yàn),通過python API這種初始化設(shè)定參數(shù)的方式要快很多,兩種方式都需要添加最小輸入、常規(guī)輸入、最大輸入,以保證模型能夠動(dòng)態(tài)地處理最大長(zhǎng)度以內(nèi)的句子。
3
TensorRT推理
通過TensorRT的模型轉(zhuǎn)換后,外部訓(xùn)練好的模型都被tensorRT統(tǒng)一成tensorRT可識(shí)別的engine文件(并優(yōu)化過)。在推理時(shí),只要通過TensorRT的推理SDK就可以完成推理。具體的推理過程如下:
圖3 TensorRT推理流程代碼實(shí)現(xiàn)如下:
圖4 模型推理代碼說明:通過TensorRT運(yùn)行時(shí),加載轉(zhuǎn)換好的engine。推理前準(zhǔn)備:
1、在CPU中處理好輸入(數(shù)據(jù)讀入、標(biāo)準(zhǔn)化、Bert分詞等);2、利用TensorRT的推理SDK中common模塊進(jìn)行輸入和輸出GPU顯存分配。執(zhí)行推理:
1、將CPU的輸入拷貝到GPU中;2、在GPU中進(jìn)行推理,并將模型輸出放入GPU顯存中。推理后處理:
1、將輸出從GPU顯存中拷貝到CPU中;2、在CPU中進(jìn)行其他后處理。
4
實(shí)驗(yàn)驗(yàn)證
下圖是TensorRT在公開模型推理加速的實(shí)際表現(xiàn),采用的是先進(jìn)的GPU卡V100,較其他方式,在保證同等低延遲的情況下,結(jié)合tensorRT使得模型整體吞吐量提升了幾十倍,著實(shí)驚艷。
圖5 基于公開模型TensorRT的表現(xiàn)
筆者也對(duì) TensorRT的效果進(jìn)行了本地的性能驗(yàn)證,為了保證本地環(huán)境與實(shí)際線上保持一致,這里采用了docker鏡像的方式進(jìn)行實(shí)際的封裝。最后我們比較了幾個(gè)模型的整體效果和性能,TensorRT的整體性能大約能提升6-7倍,與 BERT 原模型40QPS 的性能相比,TensorRT 整體性能達(dá)到了258QPS,推理速度提升極大。
表1 基于負(fù)面情感分析模型的性能比較模型準(zhǔn)確率(%)性能(QPS)
bert原模型89.0540
onnx模型89.0563
onnx+fp16模型89.05185
onnx+fp16+opt模型89.05214
tensorRT+fp16模型89.15258
3
總結(jié)
不管是在模型精度損失、以及模型推理性能加速上,TensorRT確實(shí)表現(xiàn)亮眼,如想要更進(jìn)一步提升性能,可以嘗試int8的量化方式。
當(dāng)然,TensorRT也不是沒有缺陷。TensorRT對(duì)CUDA版本、GPU版本的要求還是比較苛刻的,包括針對(duì)不同的硬件環(huán)境,它的可移植性是相對(duì)較差,所以在實(shí)際的應(yīng)用部署過程中,盡可能的需要保證研發(fā)環(huán)境和實(shí)際的部署環(huán)境一致。
參考文獻(xiàn)
1、https://zhuanlan.zhiku.com/p/4464774592、TensorRT SDK | NVIDIA Developer3、https://zhuanlan.zhihu.com/p/4464770754、https://docs.nvidia.com/deeplearning/tensorrt/quick-start-guide5、https://blog.csdn.net/weixin_48026885/article/details/1240253626、Deploying Deep Neural Networks with NVIDIA TensorRT | NVIDIA Technical Blog7、NVIDIA Announces TensorRT 8 Slashing BERT-Large Inference Down to 1 Millisecond | NVIDIA Technical Blog
AI遇見云
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
RetinaFace MXNet模型轉(zhuǎn)ONNX轉(zhuǎn)TensorRT
教主黃仁勛亮相GTC China:英偉達(dá)已售出15億塊GPU!重磅發(fā)布TensorRT 7
醫(yī)學(xué)AI部署探索,“推理效率”將成為下一個(gè)角斗場(chǎng)?
H100推理飆升8倍!英偉達(dá)官宣開源TensorRT-LLM,支持10 模型
英偉達(dá)開源TensorRT-LLM,可優(yōu)化類ChatGPT開源模型!
一文帶你輕松上手TensorRT模型構(gòu)建與推理
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服