NVIDIA Triton系列06-安装用户端软件

news2024/11/15 23:44:49

NVIDIA Triton系列06-安装用户端软件

B站:肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com)

博客:肆十二-CSDN博客

问答:(10 封私信 / 72 条消息) 肆十二 - 知乎 (zhihu.com)

在前面的文章中,已经带着读者创建好 Triton 的模型仓、安装并执行 Triton 推理服务器软件,接下来就是要安装 Triton 用户端软件,对服务器提出推理请求(requests),才能触发服务器执行推理计算的任务

由于用户端的功能是在向服务器提出推理需求,本身并不参与计算,因此不用考虑设备性能或者是否装载 GPU 设备,即便是一台最基本的 Windows 上网本都能使用,只要安装合适的用户端软件就可以。

为了适应更多种使用场景,Triton 用户端支持 C++/Python/Java/GO 等通用性高的在编程语言,底层还支持 HTTP/REST 与 gRPC 通讯协议,甚至还支持 SSL/TLS 加密选项,以及多种在线压缩(on-wire compression)算法,内容是相当丰富并且多元化,完整的内容可以在 https://github.com/triton-inference-server/client 开源仓里找到,本文只先提供 Python 用户端的部分。

与服务器的安装方式类似,NVIDIA 提供以下 4 种安装方式:

1. 源代码编译

这种方式需要从 https://github.com/triton-inference-server/client 下载源代码,执行步骤在 https://github.com/triton-inference-server/client#build-using-cmake 环节,通常会遇到的麻烦是步骤繁琐,并且出错率较高,因此并不推荐使用这个方法。

2. 可执行文件

Triton 开发团队为使用者提供编译好的可执行文件,包括 Ubuntu 20.04、Jetpack 与 Windows 平台,可以在 https://github.com/triton-inference-server/server/releases/ 上获取,每个版本都会提供对应 NGC 容器的版本,如下图:

img

然后到下面的“Assets”选择合适的版本:

img

以装载 Jetpack 5 的 Orin 为例,就下载 tritonserver2.26.0-jetpack5.0.2.tgz(1.13GB) 压缩文件到本机上,然后解压缩到指定目录下就可以,例如 ${HOME}/triton 目录,会生成 、、、、、 等 6 个目录,用户端的可执行文件在目录下,目前有将近 30 个终端功能。

现在要使用 image_client 这个最基础的识别终端软件,对 qa/images/mug.jpg(下图)这张图片进行推理。

img

请先确认 Triton 服务器软件已经启动并且处于等待请求的状态,现在请开启另一个命令终端,输入以下指令提交推理请求:

cd ${HOME}/triton./clients/bin/image_client -m densenet_onnx -c 3 -s INCEPTION qa/images/mug.jpg

这道指令使用 clients/bin/image_client 终端,请求服务器使用 densenet_onnx 推理模型,对 qa/images/mug.jpg(下图)进行识别。这里的参数“-c 3”是要求识别的分类最多可以到 3 项,指令执行结果如下,表示正确识别图像的 3 个可能分类:

img

其他终端软件会在后面文章中说明。

3. Docker容器版用户端

在安装 Triton 服务器软件一文中已经提过,可以在 NGC 服务器上可以找到 Triton 的相关镜像,其中 year-xy-py3-sdk 里就有提供用户端软件。这里同样在 Jetson AGX Orin 上用 22.09-py3-sdk 镜像做示范,请先执行以下指令下载这个镜像并进入这个容器:

docker pull nvcr.io/nvidia/tritonserver:22.09-py3-sdkdocker run -it --rm --net=host nvcr.io/nvidia/tritonserver:22.09-py3-sdk

进入容器之后,执行以下指令进行图像推理任务:

./install/bin/image_client -m densenet_onnx -c 3 -s INCEPTION ./images/mug.jpg

执行结果应该会看到如下截屏的内容,表示在这里对 Triton 服务器提出的推理请求,得到正确的计算结果。

img

同样的,在容器内 install/bin 目录下也有将近 30 个编译好的终端可执行文件,内容与前一项压缩文件所提供的内容是一致的,在下一篇文章中进行说明。

4. Python 版用户端

由于 Python 是目前在深度学习领域中最重要的编程语言之一,NVIDIA 为 Triton 提供可直接安装的 Python 库,只要执行以下指令就能轻松安装:

pip3 install tritonclient[all] attrdict -i https://pypi.tuna.tsinghua.edu.cn/simple

这个过程会安装以下内容:

http

grpc [ service_pb2, service_pb2_grpc, model_config_pb2]

utils [ Linux 发行版将包括 shared_memory 和 cuda_shared_memory]

如果您在前面下载第 2 部分的压缩文件并且解压缩,在该目录之下的 clients/python 里就提供 30 多个 Triton 的 Python 用户端脚本;如果没有下载前面的压缩文件,现在可以执行以下指令去复制 Triton 项目的 client 开源仓:

git clone https://github.com/triton-inference-server/client

然后在 client 开源仓下的 src/python/examples 里有 30 多个 Triton 的 Python 用户端脚本。

现在进到 Python 用户端脚本的目录里,执行以下指令:

python3 image_client.py -m inception_graphdef -s INCEPTION ${HOME}/triton/server/qa/images/mug.jpg

执行后会显示如下的结果:

img

得到推理的结果为“COFEE MUG”为正确的,表示 Triton 的 Python 用户端使用环境是正确的。

以上介绍 4 种安装 Triton 用户端软件的方式,本文只使用 image_client 这个最简单的图像分类用户端工具,另外还有几个比较重要的用户端工具,后面会有针对性的深入讲解与示范。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决idea debug/run 启动项目一闪而过的问题

由于没有具体报错日志,难以排查,所以记录一下; 1、保证项目依赖正确,能build成功: 可能原因:maven配置文件不对,检查账号密码(可能运维会换),检查仓库地址&…

The Llama 3 Herd of Models 第7部分视觉实验部分全文

第1,2,3部分,介绍、概览和预训练 第4部分,后训练 第5部分,结果 第6部分,推理 7 Vision Experiments 我们进行了一系列的实验,在这些实验中,我们通过一种由两个主要阶段组成的合成方法将视觉识别能力整合到Llama 3中。首先,我们通过在大量图像-文本对上引入和训练两种…

PHP海报在线制作系统小程序源码

创意无限,设计零门槛! 🎨 一键解锁设计大师潜能 你还在为找不到合适的设计师制作海报而烦恼吗?告别繁琐沟通,拥抱“海报在线制作系统”!这个神奇的平台,让你无需任何设计基础,也能…

数据结构: 单向链表

目录 一、链表的概念及结构 二、单链表的实现 2.1 头文件 2.2 各个功能的实现 2.2.1 内存申请 2.2.2 头插,尾插,头删,尾删 头插 尾插 头删 尾删 2.2.3 查找数据 2.2.4 指定位置前中后的数据增删 指定位置之前插入数据 指定位置之后插…

完整版 [vue 配置electron]

vue 配置electron,使用make 进行打包 1. 安装依赖 yarn install 2. 在根目录新建文件夹 electron 3. package.json 文件里添加 "name": "my-electron-app","version": "1.0.0","description": "Hello W…

c++三大特性 封装、继承、多态 (一)

c中的继承 一. 封装封装的定义 二.继承的概念及定义2.1继承的概念2.2继承的定义2.2.1 定义格式2.2.2 继承关系和访问限定符2.2.3 继承基类成员访问方式的变化 三.基类和派生类对象赋值转换四.继承中的类作用域 一. 封装 封装的定义 数据和方法放到一起,把像访问定义…

【Canvas与艺术】八个等腰三角形拼成的八角楼

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>八个等腰三角形拼成的八角楼</title><style type"text…

【C语言】编译和链接(细节的king)

文章目录 前言1. 翻译环境和运行环境1.1 翻译环境1.1.1 预处理&#xff08;预编译&#xff09;1.1.2 编译词法分析语法分析语义分析及优化 1.1.3 汇编1.1.4 链接 1.2 运行环境 前言 相信大家在学完C语言的全部基础知识&#xff0c;肯定会经常动手敲代码。以VS为例&#xff0c;…

【C++】—— 类与对象(三)

【C】—— 类与对象&#xff08;三&#xff09; 4、拷贝构造函数4.1、初识拷贝构造4.1.1、为什么要传引用4.1.2、引用尽量加上 const 4.2、深入拷贝构造4.2.1、为什么要自己实现拷贝构造4.2.2、传值返回先调用拷贝构造的原因4.2.3、躺赢的 MyQueue4.2.4、传值返回与引用返回 4.…

云HIS,云HIS源码

医学领域的信息系统平台种类繁多。在很大程度上&#xff0c;对于一些在医疗机构的区域一体化信息平台&#xff0c;在微观层面上&#xff0c;传统的医疗信息系统已经建立了许多医院(HIS)或数字医院系统&#xff0c;包括子系统提供了一个单一的功能&#xff0c;如注册和形象&…

【H3C(HCL)网络模拟器网络桥接】进入网络设备Web页面

H3C模拟器网络桥接 1.模拟器选择Host&#xff0c;添加 2.选中Host主机的网卡&#xff0c;这里我选的是华三的Virtual Box的网卡 选中后连线至防火墙对应接口&#xff0c;建议连接到G1/0/1&#xff0c;这个接口是默认配置的接口&#xff0c;拥有默认地址 3.修改防火墙配置 [F…

Windows 中 PIN 和密码的区别是什么?各有各的优点

PIN PIN 即个人识别号码&#xff08;Personal Identification Number&#xff09;&#xff0c;在 Windows 系统中通常由 4 到 6 位数字组成。它是 Windows Hello 的一部分&#xff0c;设计用于提供快速、安全的身份验证。 密码 密码是一种更为传统的身份验证方法&#xff0c;…

提升生产效率:APS高级计划排程系统在车间工序级排程的革命性应用

在制造业的数字化转型浪潮中&#xff0c;APS高级计划排程系统以凭借自身卓越的排程运算能力和应用灵活性&#xff0c;已经成为中大型制造业提升生产效率的关键工具。APS系统的介入&#xff0c;打通了传统ERP和MES等各类业务系统运营平台&#xff0c;并且通过产能均衡规划&#…

聚观早报 | 搜狐2024年Q2财报;一加Open推出深红色版本

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 8月6日消息 搜狐2024年Q2财报 一加Open推出深红色版本 smart精灵#5将在澳洲首秀 OpenAI为ChatGPT测试文本水印 …

手动部署内网穿透

关于内网穿透&#xff0c;主要针对什么是公网和内网&#xff1f;NAT转化技术等引出内网穿透方法。 本文主要技术是利用frp部署内网穿透、以及nagix部署web服务。 测试环境&#xff1a; 服务器&#xff1a;Linux云服务内网&#xff1a;用本地WM充当内网云服务器Linux&#xf…

伯克利Linux系统管理: 脚本编写学习 课堂与实验(系统简洁保姆级学习)

Linux系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 第二章(上) Vim课堂与实验 文章目录 Linux系列文章目录一、前言二、学习内容&#xff1a;2.1 上课内容2.1.1 为什么要学习脚本编写&#xff1f;2.1.2 Bash编程语言2.1.3 SheBang2.…

半导体PEEK纳米级钻孔,用德国高精密主轴

在半导体行业&#xff0c;对精度、效率与稳定性的要求近乎苛刻。其中&#xff0c;PEEK&#xff08;聚醚醚酮&#xff09;材料因其优异的耐热性、耐化学性和机械性能&#xff0c;在高端半导体封装、微流控芯片等领域得到了广泛应用。然而&#xff0c;PEEK材料的硬度与韧性并存&a…

Armv8/Armv9的Pstate寄存器介绍

PSTATE概述 在Armv7及其之前&#xff0c;有一个重要的寄存器叫做程序状态寄存器CPSR&#xff0c;但是到了Armv8/Armv9的aarch64架构时&#xff0c;删除了CPSR寄存器&#xff0c;改为了PSTATE&#xff08;PE状态寄存器&#xff09;。 PSTATE表示一组小寄存器的集合&#xff0c;…

隐私指纹浏览器产品系列 — 什么是指纹(一)

1.引言 现在许多网站在努力的尝试标记互联网上的每一个访客&#xff0c;用以追踪用户的行为轨迹&#xff0c;分析行为习惯&#xff0c;以及确认是否为真实用户。除此之外&#xff0c;他们还利用这些标记&#xff0c;将多个可能是同一个用户身份的访客进行归一&#xff0c;关联…

中国高尔夫运动快速发展中,深圳高尔夫展邀您迎接机遇与挑战

在浩瀚的体育世界中&#xff0c;高尔夫以其悠久的历史、优雅的姿态和独特的魅力闻名于世&#xff0c;被誉为“古老的贵族运动”&#xff0c;而这个美誉却让很多人对它敬而远之。其实高尔夫被称作“贵族运动”&#xff0c;仅仅是因为早期它更多在贵族之间流行而已。 高尔夫&…