简介

TIS(Triton Inference Server)是NVIDIA推出的AI模型部署框架,前身为ensorRT Inference Server,它支持多种深度学习框架作为backend(如TensorFlow、PyTorch、TensorRT、ONNX等)甚至可以集成多个backend,如下图所示,通过TIS部署的服务可以通过HTTP或者gRPC的方式请求。目前,PyTorch的模型部署其实还不是很完善,主流的部署框架其实就是TorchServe和Triton,相较于前者使用Java,我这边还是比较喜欢Triton一些,所以这个系列的核心就是利用Triton部署PyTorch模型。

安装

安装Triton之前必须确保显卡驱动正确安装,且已经成功安装docker和nvidia-docker,具体可以参考我之前的教程,因为后续的安装都需要基于docker来进行(也推荐采用这种方式)。

接下来,需要登录NVIDIA NGC以便于获取镜像的地址,不过这时并不能成功获取镜像,需要先获得API Key才能获取镜像,注册流程见下图。

注册后,使用下面的框中命令登录docker,登录成功后(会有Login Succeeded提示)。

接着,再访问TIS镜像地址获取镜像地址,并使用下图框中的命令拉取最新的镜像。当然,这个版本很新,对显卡驱动要求较高,我所用的机器的显卡驱动也才455版本,因此我这里使用旧版本,命令如下。

docker pull nvcr.io/nvidia/tritonserver:20.10-py3

此时也可以通过将镜像保存到本地以便使用,这是因为其实从nvidia官方下载这个镜像其实挺慢的。相关的命令如下。

# 保存镜像
docker save -o tritonserver-20.10-py3.tar nvcr.io/nvidia/tritonserver:20.10-py3# 加载镜像
sudo docker load < tritonserver-21.07-py3.tar

运行

在运行镜像之前,我们按照官方的推荐建立一个模型仓库,该仓库中按照模型名存放着tensorrt engine文件,该文件夹有如下格式,具体如何设置配置文件后面的文章会提到(主要是模型配置文件和各个版本的模型文件,参考官方示例,这里的1指的就是版本1)。

model_repository/
└── inception_graphdef├── 1│   └── model.graphdef├── config.pbtxt└── inception_labels.txt

然后,我们运行可使用GPU的镜像并将模型仓库映射到容器中的根目录下的models文件夹中,命令如下,其中的命令均为docker常用命令(设置是使用本机第3号GPU卡),这里不多做赘述,可以查看我的Docker教程。

docker run --gpus '"device=3"' --rm -p8000:8000 -p8001:8001 -p8002:8002 -v/home/zhouchen/model_repository:/models nvcr.io/nvidia/tritonserver:20.10-py3 tritonserver --model-repository=/models

此时出现下图所示的状态,没有报ERROR代表服务开启成功。

由于这时候后端还没有写具体的接口,这里调用默认接口测试一下,使用命令curl -v localhost:8000/v2/health/ready,有如下的反馈代表后端部署成功,可以正常访问。

*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 8000 (#0)
> GET /v2/health/ready HTTP/1.1
> Host: localhost:8000
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 0
< Content-Type: text/plain
<
* Connection #0 to host localhost left intact

至此,初步TIS的部署就初步完成了。

总结

本文主要介绍了Triton Inference Server的安装教程,具体可以查看官方文档。

TIS教程01-安装相关推荐

  1. Git 中文详细安装教程01(安装篇)

    git官网:https://git-scm.com/ Step 1 Information Please read the following important information before ...

  2. Wireshark数据抓包教程之安装Wireshark

    Wireshark数据抓包教程之安装Wireshark 安装Wireshark 通过上一节的学习可以根据自己的操作系统来下载安装Wireshark了.本书中已开发版1.99.7(中文版)为主,下面介绍 ...

  3. React 全家桶入门教程 01

    React 全家桶入门教程 01 前面是基础课程(难度小,略过),后面是案例 目的 巩固react基础知识,查漏补缺(熟悉的部分快进) 学习相关的库的使用 https://study.163.com/ ...

  4. Unity2D游戏入门Sunnyland制作记录:01安装软件、导入素材

    01安装软件 点击链接进入Unity官网:Unity官网 ①点击下载Unity ②选择要下载的版本(我使用的是2020.3.14f1c1版本,建议把Hub也下载下来,VS2019也需要下载) ③下载成 ...

  5. ROS2机器人应用简明教程01文档

    学习ROS2机器人操作系统第一步要做什么呢?下载最新的官方文档到本地: 在github搜索ros2_documentation,使用git或者浏览器下载均可. 使用说明: 下载的文档需要编译才可使用, ...

  6. VAPS XT开发入门教程01:软件安装包

    本文首发于:VAPS XT开发入门教程01:软件安装包 上一篇:VAPS XT开发入门教程00:基本介绍 VAPS XT软件包括三个部分: 主程序,按照版本不同大小也不同,大概在800M~2GB左右 ...

  7. jumpserver 使用教程_jumpserver安装及使用教程

    我自己是jumpserver的新手,以下两个链接是比较好的教程: 安装教程:http://blog.csdn.net/wanglei_storage/article/details/51001810 ...

  8. Exchange server 2010系列教程之一 安装Exchange 2010准备条件

    Exchange server 2010系列教程之一 安装Exchange 2010准备条件 最近看了不少论坛和资料,许多人安装Exchange 2010都有问题啊,说实话,我自己开始也出现不少问题, ...

  9. XamarinSQLite教程下载安装SQLite/SQL Server Compact Toolbox

    XamarinSQLite教程下载安装SQLite/SQL Server Compact Toolbox SQLite/SQL Server Compact Toolbox是一个Visual Stud ...

  10. Xamarin.Forms教程下载安装Windows版的Xamarin开发工具

    Xamarin.Forms教程下载安装Windows版的Xamarin开发工具 下载安装Windows版的Xamarin开发工具 本节将讲解如何下载并安装Windows版的Xamarin开发工具. 下 ...

最新文章

  1. 怒刷web前端笔试面试题(一)
  2. C#中Attribute的继承
  3. 【Python】条件及循环语句
  4. Tomcat源码分析(一)------ 架构
  5. iOS之深入解析Runtime的objc_msgSend“快速查找”底层原理
  6. linux命令行输入下一行但不运行命令
  7. 一段能用来统计ip访问的代码(自用)包括所在地
  8. Thymeleaf与Spring集成(第1部分)
  9. 技术系统优化还可以这样做?
  10. php动态生成页面结构,PHP 动态生成静态HTML页面示例代码
  11. 使用Ajax.dll前台调用后台方法及错误示例
  12. Find命令使用实例
  13. 计算机网络管理员是技能培训吗,计算机网络管理员(路由与交换) 专业简介
  14. 关于大学生活的一些经验与感悟
  15. PostgreSQL DBA(81) - Locks(FOR UPDATE SKIP LOCKED)
  16. Excel在统计分析中的应用—第五章—统计指数-Part5- 综合指数(费雪指数)
  17. 中国程序员最容易读错的70个英文单词,非常值得一看!
  18. 3.9、互斥锁(互斥量)
  19. Cross-scene Crowd Counting via Deep Convolutional Neural Networks2015论文笔记
  20. 综合算法03—FrankWolfe_BPR配流算法

热门文章

  1. 副本的leader选举
  2. zookeeper的设计猜想-数据同步
  3. 用户认证-什么是认证
  4. AIO(Asynchronous IO)基本原理
  5. 初步认识Volatile-CPU高速缓存
  6. Spring 提供哪些配置形式?
  7. RedisTemplate 使用 Redis 缓存
  8. Zuul:Pre和Post过滤器(上)
  9. fedora yum mysql_Fedora14使用yum安装mysql
  10. 对计算机的理解大一1000,大一计算机实训报告总结范文-求计算机实习报告1000字左右,急急急?...