项目简介
本项目是基于C++和gRPC的任务分发和报告系统。包含任务管理器、设备管理器、工作进程和报告进程等组件,用于分布式环境中的任务管理与调度。系统借助gRPC通信,支持任务动态分发、状态监控和结果报告,适用于对任务管理和调度效率有要求的场景。
项目的主要特性和功能
- 任务管理:通过gRPC和任务管理器通信,获取任务的目标模型信息、数据集路径和预处理/后处理插件。
- 任务分发:利用gRPC和服务端通信,接收并将任务分发给各个工作进程。
- 任务报告:工作进程定期向设备管理器发送包含任务状态、进度和结果的报告。
- 模型加载与推理:工作进程加载模型、处理输入数据、执行模型推理并获取输出结果。
- 预处理和后处理:运用自定义预处理和后处理模块处理图像数据,以适配不同模型的输入要求。
- 插件管理:通过动态链接库(DLL)加载和处理图像数据的预处理和后处理插件。
安装使用步骤
环境准备
- 安装gRPC、C++编译器和所需依赖库(如OpenCV、MXNet等)。
- 确保系统安装了
build-essential
、git
、ninja-build
、ccache
、libopenblas-dev
和cmake
等工具。
编译插件
使用以下命令编译自定义的预处理和后处理插件:
shell
g++ -fPIC -shared custom.cpp -o libplugin.so $(pkg-config --cflags --libs opencv)
编译MXNet
- 下载MXNet源代码:
shell cd mxnet git checkout -b v1.6.x origin/v1.6.x git submodule update --init
- 修改
CMakeLists.txt
文件,确保USE_CUDA
设置为OFF
,USE_CPP_PACKAGE
设置为ON
。 - 编译MXNet:
shell mkdir build cd build cmake .. make
编译项目
编译项目源代码,生成可执行文件。
运行程序
运行生成的可执行文件,通过命令行参数或配置文件配置gRPC服务器地址、设备ID等。
注意:项目代码依赖多个文件和配置,实际使用时可能需参考具体项目文档或代码注释。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】