Skip to content

Latest commit

 

History

History
158 lines (144 loc) · 5.12 KB

COMPILE_GUIDE.md

File metadata and controls

158 lines (144 loc) · 5.12 KB

源码编译安装及搭建服务流程

本文将介绍源码编译安装以及在服务搭建流程。编译前确保PaddleServing的依赖项安装完毕。依赖安装教程请前往PaddleSegServing 依赖安装.

1. 编译安装PaddleServing

下列步骤介绍CPU版本以及GPU版本的PaddleServing编译安装过程。

# Step 1. 在~目录下下载paddle-serving代码
cd ~
git clone https://github.com/PaddlePaddle/serving.git
# Step 2. 进入serving目录,创建build目录编译、安装
cd serving
mkdir build 
cd build
# Step 3. 以下为生成GPU版本的makefile,生成CPU版本的makefile执行 cmake -DWITH_GPU=OFF ..
cmake -DWITH_GPU=ON -DCUDNN_ROOT=/usr/local/cuda/lib64 ..
# Step 4. nproc 可以输出当前机器的核心数,利用多核进行编译。如果make时候报错退出,可以多执行几次make解决
make -j$(nproc)
# Step 5. 安装
make install
# Step 6. 安装后可以看PaddleServing的目录结构如下
serving
├── build
├── cmake
├── CMakeLists.txt
├── configure
├── CONTRIBUTING.md
├── cube
├── demo-client
├── demo-serving 
│   ├── CMakeLists.txt
│   ├── conf        # demo-serving 的配置文件目录
│   ├── data        # 模型文件以及参数文件的目录
│   ├── op          # 数据处理的源文件目录
│   ├── proto       # 数据传输的proto文件目录
│   └── scripts 
├── doc
├── inferencer-fluid-cpu
├── inferencer-fluid-gpu
├── kvdb
├── LICENSE
├── pdcodegen
├── predictor
├── README.md
├── sdk-cpp
└── tools

2. 安装PaddleSegServing

# Step 1. 在~目录下下载PaddleSeg代码
git clone http://gitlab.baidu.com/Paddle/PaddleSeg.git
# Step 2. 进入PaddleSeg的serving目录(注意区分PaddleServing的serving目录),并将seg-serving目录复制到PaddleServing的serving目录下
cd PaddleSeg/serving
cp -r seg-serving ~/serving
# 复制后PaddleServing的目录结构如下
serving
├── build
├── cmake
├── CMakeLists.txt
├── configure
├── CONTRIBUTING.md
├── cube
├── demo-client
├── demo-serving 
├── doc
├── inferencer-fluid-cpu
├── inferencer-fluid-gpu
├── kvdb
├── LICENSE
├── pdcodegen
├── predictor
├── README.md
├── sdk-cpp
├── seg-serving   # 此为新增的目录
└── tools

# Step 3. 修改PaddleServing的serving目录下的CMakeLists.txt
cd ~/serving
vim CMakeLists.txt
# Step 4. 倒数第二行加入代码,使得seg-serving下的代码可与PaddleServing一起编译
add_subdirectory(seg-serving)
# Step 5. 进入PaddleServing的build目录,编译安装PaddleSegServing
cd ~/serving/build
make -j$(nproc)
make install
# Step 6. 完成安装后,可以看到执行文件的目录结构如下
build
├── boost_dummy.c
├── CMakeCache.txt
├── CMakeFiles
├── cmake_install.cmake
├── configure
├── demo-client
├── error
├── human-seg-serving
├── inferencer-fluid-cpu
├── inferencer-fluid-gpu
├── info
├── install_manifest.txt
├── kvdb
├── libboost.a
├── log
├── Makefile
├── output          # 所有服务端的执行文件、配置文件、数据文件均安装到此目录下
│   ├── bin
│   ├── demo
│   │   ├── client
│   │   ├── db_func
│   │   ├── db_thread
│   │   ├── seg-serving  
│   │   │   └── bin
│   │   │       ├── conf    # 配置文件目录
│   │   │       ├── data    # 数据模型文件、参数文件目录
│   │   │       ├── seg-serving #可执行文件
│   │   │       ├── kvdb
│   │   │       ├── libiomp5.so
│   │   │       ├── libmklml_gnu.so
│   │   │       ├── libmklml_intel.so
│   │   │       └── log
│   │   ├── kvdb_test
│   │   └── serving
│   ├── include
│   └── lib
├── Paddle
├── pdcodegen
├── predictor
├── sdk-cpp
├── seg-serving
└── third_party

3. 运行PaddleSegServing

3.1. 搭建人脸分割服务

搭建人脸分割服务只需完成一些配置文件的编写即可。与预编译版本的搭建大致相同,但模型文件、参数文件放置的目录略有不同。

3.1.1. 下载人脸分割模型文件,并将其复制到PaddleSegServing相应目录。

可参考预编译安装流程中2.2.1.1节。模型文件放置的目录在 ~/serving/seg-serving/data/model/paddle/fluid/。

3.1.2. 配置参数文件。

可参考预编译安装流程中2.2.1.2节。配置文件的目录在~/serving/seg-serving/conf。

3.2 安装模型文件、配置文件。

cd ~/serving/build
make install

3.3 运行服务端程序

可参考预编译安装流程中2.2.2节。可执行文件在该目录下:~/serving/build/output/demo/seg-serving/bin/。

3.4 运行客户端程序进行测试。

可参考预编译安装流程中2.2.3节。