NVIDIA TensorRT高性能深度学习推理
NVIDIA TensorRT高性能深度学习推理
NVIDIA TensorRT 是用于高性能深度学习推理的 SDK。此 SDK 包含深度学习推理优化器和运行时环境,可为深度学习推理应用提供低延迟和高吞吐量。
在推理过程中,基于 TensorRT 的应用程序的执行速度可比 CPU 平台的速度快 40 倍。借助 TensorRT,您可以优化在所有主要框架中训练的神经网络模型,精确校正低精度,并最终将模型部署到超大规模数据中心、嵌入式或汽车产品平台中。
TensorRT 以 NVIDIA 的并行编程模型 CUDA 为基础构建而成,可帮助您利用 CUDA-X 中的库、开发工具和技术,针对人工智能、自主机器、高性能计算和图形优化所有深度学习框架中的推理。
TensorRT 针对多种深度学习推理应用的生产部署提供 INT8 和 FP16 优化,例如视频流式传输、语音识别、推荐和自然语言处理。推理精度降低后可显著减少应用延迟,这恰巧满足了许多实时服务、自动和嵌入式应用的要求。
可以从每个深度学习框架中将已训练模型导入到 TensorRT。应用优化后,TensorRT 选择平台特定的内核,在数据中心、Jetson 嵌入式平台以及 NVIDIA DRIVE 自动驾驶平台上更大限度提升 Tesla GPU 的性能。
借助 TensorRT,开发者可专注于创建新颖的 AI 支持应用,无需费力调节性能来部署推理工作。
TensorRT 优化与性能
与所有主要框架集成
NVIDIA 与深度学习框架开发者紧密合作,使用 TensorRT 在 AI 平台上实现优化的推理性能。如果您的训练模型采用 ONNX 格式或其他热门框架(例如 TensorFlow 和 MATLAB),您可以通过一些简单的方法将模型导入到 TensorRT 以进行推理。下面介绍了一些集成,其中包含了新手入门信息。
TensorRT 和 TensorFlow 已紧密集成,因此您可以同时尽享 TensorFlow 的灵活性和 TensorRT 的超强优化性能。
MATLAB 已通过 GPU 编码器实现与 TensorRT 的集成,这能协助工程师和科学家在使用 MATLAB 时为 Jetson、DRIVE 和 Tesla 平台自动生成高性能推理引擎。
TensorRT 提供了一个 ONNX 解析器,因此您可以轻松地从框架(例如 Caffe 2、Chainer、Microsoft
Cognitive Toolkit、MxNet 和 PyTorch)中将 ONNX 模型导入到 TensorRT。
TensorRT 还与 ONNX Runtime 集成,助您以 ONNX 格式轻松实现机器学习模型的高性能推理。
如果您在专有或自定义框架中执行深度学习训练,请使用 TensorRT C++
API 来导入和加速模型。
“通过在 V100 上使用
Tensor 核心、新近优化的 CUDA 库以及 TF-TRT 后端,我们能将原本就很快的深度学习 (DL) 网络速度再提升 4 倍”
公布 TensorRT
7.1:新功能
TensorRT 7.1 针对 NVIDIA A100 GPU 进行了优化并加入了新优化,现可使用 INT8 精度加速 BERT 推理,实现高达 V100 GPU 六倍的性能。NVIDIA 开发者计划成员可于 2020 年夏季下载 TensorRT 7.1。
TensorRT 7.0(当前版本)包含:
- 新编译器,可对语音和异常检测中的常用时间递归神经网络进行加速
- 对 20 多种新 ONNX 操作的支持,这些操作可对 BERT、TacoTron 2 和 WaveRNN 等关键的语音模型进行加速
- 对动态形状的扩展支持,可实现关键的会话式 AI 模型
- 新版插件、解析器
- BERT、Mask-RCNN、Faster-RCNN、NCF 和 OpenNMT 的新示例
其他资源
概览
- NGC 中的 TensorRT 容器、模型和脚本
- 运行 TensorRT 的“Hello
World”(示例代码) - 将 ONNX 用作输入,运行 TensorRT 的“Hello
World”(示例代码) - 使用自定义校准以 INT8 精度执行推理(示例代码)
- TensorRT 简介(网络研讨会)
- 使用 TensorRT 执行
8 位推理(网络研讨会)
会话式 AI
- 使用 TensorRT 通过
BERT 实现实时自然语言理解(博客) - 使用 TensorRT 进行自动语音识别 (Notebook)
- 使用 TensorRT 对实时文字转语音进行加速(博客)
- 使用 BERT 实现
NLU (Notebook) (Notebook) - 实时文字转语音(示例)
- 基于序列到序列 (seq2seq) 模型的神经网络机器翻译 (NMT)(示例代码)
- 逐层构建 RNN 网络(示例代码)
开始实操训练
NVIDIA 深度学习学院 (DLI) 为 AI 和加速计算领域的开发者、数据科学家和研究人员提供实操训练。立即参加关于使用 TensorRT 优化和部署 TensorFlow 模型以及“使用 TensorRT 部署智能视频分析”的自定进度选修课程,获取 TensorRT 实操经验。
适用范围
NVIDIA 开发者计划会员可访问 TensorRT 产品页面,免费使用 TensorRT 进行用于开发和部署。最新版本的插件、解析器和示例也以开源形式提供,可从 TensorRT GitHub 资源库获取。
开发者还可以通过 NGC 容器注册表中的 TensorRT 容器获得 TensorRT。
TensorRT 已纳入:
- 用于在计算机视觉和智能视频分析
(IVA) 应用中进行实时流分析的 NVIDIA Deepstream SDK - 适用于 NVIDIA DRIVE PX2 自动驾驶平台的 NVIDIA DriveInstall
- 适用于 Jetson TX1、TX2
嵌入式平台的 NVIDIA Jetpack
NVIDIA TensorRT高性能深度学习推理的更多相关文章
- NVIDIA TensorRT:可编程推理加速器
NVIDIA TensorRT:可编程推理加速器 一.概述 NVIDIA TensorRT是一个用于高性能深度学习推理的SDK.它包括一个深度学习推理优化器和运行时间,为深度学习推理应用程序提供低延迟 ...
- NVIDIA GPUs上深度学习推荐模型的优化
NVIDIA GPUs上深度学习推荐模型的优化 Optimizing the Deep Learning Recommendation Model on NVIDIA GPUs 推荐系统帮助人在成倍增 ...
- 基于NVIDIA GPUs的深度学习训练新优化
基于NVIDIA GPUs的深度学习训练新优化 New Optimizations To Accelerate Deep Learning Training on NVIDIA GPUs 不同行业采用 ...
- TX2之多线程读取视频及深度学习推理
背景 一般在TX2上部署深度学习模型时,都是读取摄像头视频或传入视频文件进行推理,从视频中抽取帧进行目标检测等任务.对于大点的模型,推理的速度是赶不上摄像头或视频的帧率的,如果我们使用单线程进行处理, ...
- [笔记] 基于nvidia/cuda的深度学习基础镜像构建流程 V0.2
之前的[笔记] 基于nvidia/cuda的深度学习基础镜像构建流程已经Out了,以这篇为准. 基于NVidia官方的nvidia/cuda image,构建适用于Deep Learning的基础im ...
- NVIDIA数据中心深度学习产品性能
NVIDIA数据中心深度学习产品性能 在现实世界的应用程序中部署AI,需要训练网络以指定的精度融合.这是测试AI系统的最佳方法-准备将其部署在现场,因为网络随后可以提供有意义的结果(例如,对视频流正确 ...
- [笔记] 基于nvidia/cuda的深度学习基础镜像构建流程
基于NVidia开源的nvidia/cuda image,构建适用于DeepLearning的基础image. 思路就是先把常用的东西都塞进去,再装某个框架就省事儿了. 为了体验重装系统的乐趣,所以采 ...
- TensorRT深度学习训练和部署图示
TensorRT深度学习训练和部署 NVIDIA TensorRT是用于生产环境的高性能深度学习推理库.功率效率和响应速度是部署的深度学习应用程序的两个关键指标,因为它们直接影响用户体验和所提供服务的 ...
- NVIDIA TensorRT 让您的人工智能更快!
NVIDIA TensorRT 让您的人工智能更快! 英伟达TensorRT™是一种高性能深度学习推理优化器和运行时提供低延迟和高通量的深度学习推理的应用程序.使用TensorRT,您可以优化神经网络 ...
随机推荐
- hdu2489-DFS+最小生成树
题意: 给你n个点,和任意两点的距离,让你在这N个点中找到一个有m个点并且ratio最小的树. ratio = sum(edge) / su ...
- SMTP、POP3和IMAP邮件协议
目录 SMTP POP IMAP 总结 DNS记录中的MX记录 今天入职第一天,公司让配置个人的内网.外网邮箱,这可把我给搞晕了,本来以前就对邮箱这块不是很了解,平时也不怎么用邮箱,顶多有个QQ邮箱而 ...
- 使用同步或异步的方式完成 I/O 访问和操作(Windows核心编程)
0x01 Windows 中对文件的底层操作 Windows 为了方便开发人员操作 I/O 设备(这些设备包括套接字.管道.文件.串口.目录等),对这些设备的差异进行了隐藏,所以开发人员在使用这些设备 ...
- 反编译APP
反编译APP 有两种反编译工具:dex2jar 和 apktool,两个工具反编译的效果是不一样的,dex2jar反编译出java源代码,apktool反编译出来的是java汇编代码. dex2jar ...
- vue-axios的总结及项目中的常见封装方法。
前言 我们知道 vue 2.0版本开始推荐使用 axios 来完成前端 ajax 请求,axios 是一个基于Promise 的 http 库,可以用在浏览器和 node.js 中,axios 成为v ...
- Mysql连接查询示例语句
SELECT *FROM ssm_emp; SELECT * FROM ssm_dept; #查询两表交集 SELECT * FROM ssm_emp e INNER JOIN ssm_dept d ...
- http预请求options
在有很多情况下,当我们在js里面调用一次ajax请求时,在浏览器那边却会查询到两次请求,第一次的Request Method参数是OPTIONS,还有一次就是我们真正的请求,比如get或是post请求 ...
- SRP(单一职责)——没有一只能飞能走的鸟
单一职责原则(SRP:Single responsibility principle)又称单一功能原则.它规定一个类应该只有一个发生变化的原因. 一.起因 编码中,需要创建一只小鸟,既能飞,用能走. ...
- C++ primer plus读书笔记——第6章 分支语句和逻辑运算符
第6章 分支语句和逻辑运算符 1. 逻辑运算符的优先级比关系运算符的优先级低. 2. &&的优先级高于||. 3. cctype中的函数P179. 4. switch(integer- ...
- SpringBoot系列——事件发布与监听
前言 日常开发中,我们经常会碰到这样的业务场景:用户注册,注册成功后需要发送邮箱.短信提示用户,通常我们都是这样写: /** * 用户注册 */ @GetMapping("/userRegi ...