源码编译安装

ModelBox框架采用C++语言编写,工程编译软件是CMake,本章节主要讲解ModelBox源代码的手动编译安装过程。

基于ModelBox开发AI应用,推荐使用容器镜像方式开发,避免从源代码构建ModelBox耗时。源码编译安装方式主要用于不支持Docker的系统,如部分端侧、嵌入式设备等。

一键式脚本

如果只是运行mnist验证,可以使用如下一键式脚本准备编译环境。脚本:get-start.sh

curl https://modelbox-ai.com/modelbox-book/environment/get-start.sh | sh /dev/stdin -m -j2

参数说明:

  • -m: 从国内镜像下载依赖软件包。
  • -j[n]: 并发编译数量。默认是2个。

编译依赖准备

在编译ModelBox之前,需要安装依赖软件,ModelBox依赖软件要求如下:

类别 依赖 依赖说明 最低版本 推荐版本 是否必须 相关组件
编译器 gcc gcc编译器 4.8 7.x 所有
编译器 g++ g++编译器 4.8 7.x 所有
编译器 CMake CMake工具 2.9 3.5 所有
OS Linux Linux操作系统 ubuntu16.04, centOS 7.2 ubuntu 18.04 所有
运行时 nodejs 前端编译 10.x V12.x 前端Editor
运行时 python Python编译 3.x 3.8 Python支持
开发库 cuda cuda支持 10.1 10.2 cuda支持
开发库 cann Ascend支持 5.0.4 5.0.4 Ascend支持
开发库 ffmpeg 视频解码编码支持 视频相关功能
开发库 tensorrt TensorRT模型推理 TensorRT相关的模型推理功能
开发库 tensorflow TensorFlow推理支持 TensorFlow相关的模型推理功能
开发库 libtorch LibTorch推理支持 LibTorch相关的模型推理功能
开发库 mindspore MindSpore推理支持 MindSpore相关的模型推理功能
开发库 httplib HTTP服务支持 modelbox-server相关的功能组件
开发库 cpprest HTTP服务支持 HTTP相关功能单元

上述依赖可按需求选择,其中 是否必须 的依赖,必须要安装到编译环境中才能正常编译代码。如果使用基于镜像的开发环境,可以省去依赖库的安装, 具体见容器镜像章节。

如果不使用容器镜像,也可按上述依赖列表自行基于当前操作系统进行安装。ubuntu操作系统基础软件安装命令如下:

apt-get update
apt-get -y install cmake git wget build-essential npm curl \
   python3 python3-pip python-is-python3 \
   libssl-dev libcpprest-dev libopencv-dev libgraphviz-dev python3-dev \
   libavfilter-dev libavdevice-dev libavcodec-dev
pip install requests opencv-python

如上述依赖安装比较慢,可以使用国内的镜像进行安装,具体镜像如下:

如果需要使用模型推理,还需要安装对应推理引擎、CUDA或CANN等相关依赖。

编译ModelBox

  1. 准备

    编译ModelBox之前,需要准备好开发环境。或在镜像中进行编译,或按上述依赖列表,安装相应的依赖组件。

  2. 下载ModelBox代码

    github

     git clone https://github.com/modelbox-ai/modelbox.git
    

    gitee

     git clone https://gitee.com/modelbox/modelbox.git
    
  3. 编译ModelBox

     mkdir build
     cd build
     cmake ..
    
    • -DUSE_CN_MIRROR=yes:在编译过程中,还需要下载第三方依赖,请保持网络能正常连接第三方服务器,如在国内无法下载,可以增加此cmake参数,从国内镜像下载依赖。
    • -DLOCAL_PACKAGE_PATH:若本地已经有依赖的第三方软件包,则可以使用此参数指定本地依赖包路径,若使用ModelBox编译镜像时,编译镜像的/opt/thirdparty/source已经有相关依赖包,可直接指定本地路径使用,若需要从公共源码仓下载,则无需指定此参数,但需要确保网络通畅。
    • -WITH_WEBUI=off:可视化WEBUI会增加一些额外依赖下载,如果不需要可增加此参数关闭。
    • -DWITH_ALL_DEMO=off:是否编译全量的样例,如果不需要可以关闭。
    • 如需编译release版本,可以执行如下cmake命令

      cmake -DCMAKE_BUILD_TYPE=Release ..
      
    • 如需进行断点调试,则应编译debug版本,可以执行如下cmake命令

      cmake -DCMAKE_BUILD_TYPE=Debug ..
      
  4. 编译安装包

     make package -j16
    

    编译完成后,将在release目录下生成对应的安装包。

安装ModelBox

ModelBox编译完成后,将生成配套OS安装的安装包,如deb、rpm包和tar.gz包,路径为编译目录的release子目录。可根据使用需求进行安装,下表是软件包的用途对照表。

安装包功能对照表

类型 名称 说明
运行库 modelbox-x.x.x-Linux-libmodelbox.[deb|rpm] ModelBox核心运行库。
运行库 modelbox-x.x.x-Linux-graph-graphviz.[deb|rpm] 图解析组件。
服务组件 modelbox-x.x.x-Linux-server.[deb|rpm] ModelBox Server服务组件。
运行库 modelbox-x.x.x-Linux-ascend-device-flowunit.[deb|rpm] Ascend设备SDK以及配套基础功能单元组件。
运行库 modelbox-x.x.x-Linux-cpu-device-flowunit.[deb|rpm] CUDA设备SDK以及配套基础功能单元组件。
运行库 modelbox-x.x.x-Linux-cuda-device-flowunit.[deb|rpm] CPU设备SDK以及配套基础功能单元组件。
开发库 modelbox-x.x.x-Linux-libmodelbox-devel.[deb|rpm] ModelBox开发库。
开发库 modelbox-x.x.x-Linux-server-devel.[deb|rpm] ModelBox Server服务插件开发库。
开发库 modelbox-x.x.x-Linux-ascend-device-flowunit-devel.[deb|rpm] Ascend设备开发库。
开发库 modelbox-x.x.x-Linux-cpu-device-flowunit-devel.[deb|rpm] CPU开发包。
开发库 modelbox-x.x.x-Linux-cuda-device-flowunit-devel.[deb|rpm] CUDA设备开发库。
手册 modelbox-x.x.x-Linux-document.deb.[deb|rpm] 开发手册,包含API说明。
WebUI modelbox-x.x.x-Linux-modelbox-webui.[deb|rpm] 编排界面。
运行库 modelbox-x.x.x-py3-none-any.whl python wheel包。
全量包 modelbox-x.x.x-Linux.tar.gz 全量安装包,包括上述所有组件。

安装包说明

  • ModelBox运行库,CPU运行库,graphviz图解析组件必须安装。
  • Ascend设备组件,CUDA设备组件,可根据硬件配置情况合理安装。
  • modelbox-server服务组件,推荐安装。
  • modelbox-x.x.x-py3-none-any.whl在需要Python运行时安装。
  • modelbox-x.x.x-Linux.tar.gz可解压直接使用。推荐使用安装包,方便管理。

安装命令说明

  1. debian安装包

     sudo dpkg -i *.deb
    
  2. rpm安装包

     sudo rpm -i *.rpm
    
  3. Python wheel包

     pip install *.whl
    
  4. tar.gz包的使用。(可选,如果已经安装了deb|rpm包,则可不用安装tar.gz包)

     tar xf modelbox-x.x.x-Linux.tar.gz
    

    将解压后的目录,复制到/目录,此步骤可选。

     cd modelbox
     cp * / -avf
    

    若未选择上述步骤,未复制modelbox文件到/目录,则需要将/lib/systemd/system/modelbox.service中文件修改为对应的解压目录

     ExecStart=[path/to]/modelbox -p /var/run/modelbox.pid -c [path/to]/modelbox.conf
    

    将上述路径[[path/to]修改为对应解压后的路径。然后执行如下命令

     cp modelbox.service /lib/systemd/system/modelbox.service
     systemctl daemon-reload
    

启动服务

如安装了modelbox-x.x.x-Linux-server,可以使用下述命令启动服务

systemctl enable modelbox
systemctl start modelbox

关于ModelBox Server服务的配置,请查阅运行服务章节

©2022 ModelBox Team all right reserved,powered by Gitbook文件修订时间: 2022-09-16 08:17:12

results matching ""

    No results matching ""