本文档包含共7个样例,以便向用户展示 TopsInference2.0 接口(以下简称为2.0接口)的变化以及使用方式。它们分别是4个基于 C++ 开发的样例以及3个基于 Python 开发的样例。所有的样例代码均发布在Github:tops_inference_sample 。
标题 | 样例名称及代码仓库 | 简介 |
---|---|---|
Bert C++ Sample | cpp:sampleONNXBert | 基于 C++ 的应用,使用 GCU 完成 ONNX Bert 模型推理,包含 CPU 上的前后处理过程,可以获得端到端的结果 |
ResNet C++ Sample | cpp:sampleONNXResNet | 使用 GCU 和 2.0 接口完成 ResNet50 ONNX 模型推理的 C++ 应用 |
Yolov5 C++ Sample | cpp:sampleONNXYolov5 | 一个端到端的 C++ 应用,使用 GCU 完成 Yolov5 ONNX 模型的推理,包含图片的前后处理 |
Paralle Pipeline C++ Sample | cpp:sampleParallelPipeline | C++ 模拟 GCU 并行业务模式,检测和分类同一时刻运行在不同的线程中,同一线程中对多 batch 通过 stream 分组异步执行 |
Serial Pipeline C++ Sample | cpp:sampleSimpleSerialPipeline | C++ 模拟 GCU 串行业务线模式(同一线程中先检测后分类) |
Bert Python Sample | python:sampleONNXBert | 基于 Python 的应用,使用 GCU 完成 ONNX Bert 模型推理,包含 CPU 上的前后处理过程,可以获得端到端的结果 |
ResNet Python Sample | python:sampleONNXResNet | 使用 GCU 和 2.0 接口完成 ResNet50 ONNX 模型推理的 Python 应用 |
Yolov5 Python Sample | python:sampleONNXYolov5 | 一个端到端的 Python 应用,使用 GCU 完成 Yolov5 ONNX 模型的推理,包含图片的前后处理 |
无论开发 C++ 或是 Python 应用程序时,用户都需要保证2.0接口被正确安装,详细参见TopsInference 安装
此次基于2.0接口开发的样例程序,以具有代表性的 Bert、ResNet、Yolov5 的推理向用户展示2.0接口的变化。同时基于 C++ 实现多线程单模型并行推理、单线程多模型串行推理样例应用以模拟业务场景。
C++ Bert、ResNet、Yolov5 模型推理及前后处理,此外,亦开发了模拟业务场景 Pipeline 的应用。
样例展示通过 C++ 2.0 接口在 GCU 上进行 ONNX Bert 模型的推理。样例的构建运行等参见 GitHub:cpp/sampleONNXBert/README.md。该样例包含了 CPU 上的文字前后处理过程,获得端到端的结果。其输入要求 json 格式的文本文件,输出为 json 格式的文本文件。
样例展示 GCU 上完成 ONNX ResNet50 模型推理的全过程。样例构建运行参考 GitHub:cpp/sampleONNXResNet/README.md。样例完成图片的前处理后送入 GCU 推理。在屏幕上打印接口的耗时和分类的索引信息。
样例完成 GCU 上使用 YoloV5 完成端到端的图片识别任务。样例构建运行参考 GitHub:cpp/sampleONNXYolov5/README.md。
样例模拟多线程同时使用 GCU,并行完成检测和分类推理任务的业务场景。样例构建运行参考 GitHub:cpp/sampleParallelPipeline/README.md。
样例模拟串行的业务场景,在单线程中先后使用 GCU 完成检测和分类。样例构建运行参考 GitHub:cpp/sampleSimpleSerialPipeline/README.md
Python Bert、ResNet、Yolov5 模型推理及前后处理。
同 Bert C++ Sample,该样例展示通过 Python 2.0 接口在 GCU 上进行 ONNX Bert 模型的推理。样例的构建运行等参见 GitHub:python/sampleONNXBert/README.md。
同 ResNet C++ Sample,Python 代码仓库见 GitHub:python/sampleONNXBert。
同 Yolov5 C++ Sample,Python 代码仓库见 GitHub:python/sampleONNXYolov5。