有时我们无法确定一段代码会抛出何种异常,但是又希望能捕获这些异常
Triton shared memory
在使用triton时,可以使用shared memory方式加速数据传输的过程
leveldb静态编译及snappy支持
由于服务器依赖比较老旧,因此需要重新安装各种依赖
C++重写和虚函数对比
在子类中,可以声明一个和父类相同的函数,此时父类函数是否标记为virtual将会影响这一行为
Tensorrt Engine 输出模型输入输出信息
调试plan文件的时候经常需要输出相关信息,在这里分享一个方便的程序脚本,可以输出每个输入输出节点的相关信息
python import 机制
python中的各种import方式
python 删除超大目录
Python使用Pipe控制命令行输入输出
在开发过程中,我们有时需要在python中调用诸如ffmpeg这样的命令。此时就不可避免的需要用到pipe。
Golang 输入输出 stdio
Golang 的标准输入输出常见用法
Nvidia Triton 使用教程
近年来,在深度学习模型的部署中,涌现了许多新技术,从最早的tf/pytorch直接部署,到onnx,到trnsorrt(trt),模型的运行效率越来越高。但即便是使用trt方式部署模型,也依旧无法避免巨大的工作量。在使用c++部署trt时,代码量较大,还需要预处理困难。而使用python部署trt,受限于python的GIL问题,需要同时部署多个模型,又失去了trt节省显存的优点。同时,不论使用何种方式,都无法避免面对组batch等问题,整个系统的工程实现会变得非常复杂。
在这样的情况下,triton应运而生一站式的帮助我们解决了几乎所有的工程问题,作为一款强大的模型执行引擎,triton支持几乎所有主流的网络模型,对于pytorch,tensorflow,onnx,trt都有良好的支持。
本文将从trt/onnx模型的部署介绍triton的部署流程。