英偉達(dá)悄悄發(fā)布最新TensorRT8,性能提升200%!
轉(zhuǎn)自:新智元 來源:Nvidia
近日,英偉達(dá)悄悄地發(fā)布了TensorRT 8,BERT-Large推理僅需1.2毫秒!同時還加入了量化感知訓(xùn)練和對稀疏性的支持,實(shí)現(xiàn)了性能200%的提升。項(xiàng)目已開源。
2019年黃仁勛在GTC China正式發(fā)布了TensorRT 7,并稱其是「我們實(shí)現(xiàn)的最大飛躍」。
然而今年TensorRT 8的發(fā)布卻十分低調(diào)。

相比于7.0,TensorRT 8可以說是實(shí)現(xiàn)了2倍的性能提升。
在1.2毫秒內(nèi)實(shí)現(xiàn)BERT-Large的推理
通過量化感知訓(xùn)練讓INT8的精度達(dá)到了與FP32相當(dāng)?shù)乃?/span>
支持稀疏性,讓Ampere GPU擁有更快的推理速度

TensorRT
TensorRT

7.0
7.0


推理速度更快
大型語言模型(LSLM),如BERT、GPT-2和XL-Net,極大提升了許多自然語言處理(NLP)任務(wù)的準(zhǔn)確性。
自2018年10月發(fā)布以來,BERT(Bidirectional Encoder Representations from Transformers)及其所有的許多變體,仍然是最受歡迎的語言模型之一,并且仍然可以提供SOTA的準(zhǔn)確性。
推理速度更快


多年來,機(jī)器學(xué)習(xí)研究人員一直在努力使用數(shù)字來加速人工智能,目標(biāo)是減少深度學(xué)習(xí)所需的矩陣乘法堆,縮短獲得結(jié)果的時間。
在TensorRT 8中使用稀疏性技術(shù),能夠提升英偉達(dá)Ampere架構(gòu)的GPU性能。
在保證推理精度的同時,降低深度學(xué)習(xí)模型中的部分權(quán)重,減小模型所需要的帶寬和內(nèi)存。
內(nèi)存有富余,就可以分配給那些需要計(jì)算的部分,推理速度自然也上來了。
量化感知訓(xùn)練提高精度

TensorRT的應(yīng)用

部署TensorRT
下載TensorRT Build
git clone -b master https://github.com/nvidia/TensorRT TensorRT
cd TensorRT
git submodule update --init --recursive
如果使用TensorRT OSS Build容器,TensorRT庫已經(jīng)預(yù)裝在/usr/lib/x86_64-linux-gnu下。否則需要下載TensorRT GA build。
Ubuntu 18.04 x86-64 cuda-11.3
cd ~/Downloadstar -xvzf TensorRT-8.0.1.6.Ubuntu-18.04.x86_64-gnu.cuda-11.3.cudnn8.2.tar.gzexport TRT_LIBPATH=`pwd`/TensorRT-8.0.1.6
Windows x86-64 cuda-11.3
cd ~Downloads
Expand-Archive .TensorRT-8.0.1.6.Windows10.x86_64.cuda-11.3.cudnn8.2.zip
$Env:TRT_LIBPATH = $(Get-Location)TensorRT-8.0.1.6
$Env:PATH += C:Program Files (x86)Microsoft Visual Studio?7ProfessionalMSBuild.0Bin
構(gòu)建環(huán)境
1. 生成TensorRT-OSS Build容器
TensorRT-OSS Build容器可以使用提供的Dockerfiles和Build腳本來生成。
Ubuntu 18.04 x86-64 cuda-11.3
./docker/build.sh --file docker/ubuntu-18.04.Dockerfile --tag tensorrt-ubuntu18.04-cuda11.3 --cuda 11.3.1
2. 啟動TensorRT-OSS Build容器
Ubuntu 18.04
./docker/launch.sh --tag tensorrt-ubuntu18.04-cuda11.3 --gpus all
構(gòu)建TensorRT-OSS
生成Makefiles或VS項(xiàng)目(Windows)并構(gòu)建。
Linux x86-64 cuda-11.3
cd $TRT_OSSPATH
mkdir -p build && cd build
cmake .. -DTRT_LIB_DIR=$TRT_LIBPATH -DTRT_OUT_DIR=`pwd`/out
make -j$(nproc)
Windows x86-64 Powershell
cd $Env:TRT_OSSPATH
mkdir -p build ; cd build
cmake .. -DTRT_LIB_DIR=$Env:TRT_LIBPATH -DTRT_OUT_DIR= $(Get-Location)out -DCMAKE_TOOLCHAIN_FILE=..cmake oolchainscmake_x64_win.toolchain
msbuild ALL_BUILD.vcxproj往期精彩:
Swin-UNet:基于純 Transformer 結(jié)構(gòu)的語義分割網(wǎng)絡(luò)
Swin Transformer:基于Shifted Windows的層次化視覺Transformer設(shè)計(jì)
TransUNet:基于 Transformer 和 CNN 的混合編碼網(wǎng)絡(luò)
ViT:視覺Transformer backbone網(wǎng)絡(luò)ViT論文與代碼詳解
【原創(chuàng)首發(fā)】機(jī)器學(xué)習(xí)公式推導(dǎo)與代碼實(shí)現(xiàn)30講.pdf
