英伟达悄悄发布最新TensorRT8,性能提升200%!
共 4807字,需浏览 10分钟
·
2021-08-20 13:27
转自:新智元 来源:Nvidia
近日,英伟达悄悄地发布了TensorRT 8,BERT-Large推理仅需1.2毫秒!同时还加入了量化感知训练和对稀疏性的支持,实现了性能200%的提升。项目已开源。
2019年黄仁勋在GTC China正式发布了TensorRT 7,并称其是「我们实现的最大飞跃」。
然而今年TensorRT 8的发布却十分低调。
相比于7.0,TensorRT 8可以说是实现了2倍的性能提升。
在1.2毫秒内实现BERT-Large的推理
通过量化感知训练让INT8的精度达到了与FP32相当的水平
支持稀疏性,让Ampere GPU拥有更快的推理速度
TensorRT
TensorRT
7.0
7.0
推理速度更快
大型语言模型(LSLM),如BERT、GPT-2和XL-Net,极大提升了许多自然语言处理(NLP)任务的准确性。
自2018年10月发布以来,BERT(Bidirectional Encoder Representations from Transformers)及其所有的许多变体,仍然是最受欢迎的语言模型之一,并且仍然可以提供SOTA的准确性。
推理速度更快
多年来,机器学习研究人员一直在努力使用数字来加速人工智能,目标是减少深度学习所需的矩阵乘法堆,缩短获得结果的时间。
在TensorRT 8中使用稀疏性技术,能够提升英伟达Ampere架构的GPU性能。
在保证推理精度的同时,降低深度学习模型中的部分权重,减小模型所需要的带宽和内存。
内存有富余,就可以分配给那些需要计算的部分,推理速度自然也上来了。
量化感知训练提高精度
TensorRT的应用
部署TensorRT
下载TensorRT Build
git clone -b master https://github.com/nvidia/TensorRT TensorRT
cd TensorRT
git submodule update --init --recursive
如果使用TensorRT OSS Build容器,TensorRT库已经预装在/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 Studio7ProfessionalMSBuild.0Bin
构建环境
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
构建TensorRT-OSS
生成Makefiles或VS项目(Windows)并构建。
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 结构的语义分割网络
Swin Transformer:基于Shifted Windows的层次化视觉Transformer设计
TransUNet:基于 Transformer 和 CNN 的混合编码网络