提交 648df20b 编写于 作者: S ShiningZhang

update doc

上级 363fc461
# 安装指南
本说明将指导您在64位操作系统编译和安装PaddleServing。请根据计算硬件、操作系统和软件驱动版本等环境差异,选择正确的安装程序。
本说明将指导您在编译和安装 Paddle Serving。请根据计算硬件、操作系统和软件驱动版本等环境差异,选择正确的安装程序。
## 标准环境安装
| 操作系统 | 计算平台 | CPU架构 | 安装指南 |
|:-------:|:-------:|:-------:|:-------:|
| Linux | CPU | x86 | [镜像安装]() |
| Linux | GPU | x86 | [镜像安装]() |
| Linux | XPU | x86 | [镜像安装]() |
| Linux | XPU | arm64 | [镜像安装]() |
| Linux | ROCM | x86 | [镜像安装]() |
| Linux | NPU | arm64 | [镜像安装]() |
| Windows | CPU | x86 | [原生系统安装]() |
| Windows | GPU | x86 | [原生系统安装]() |
本章节介绍了基于标准的 Linux 环境进行必要的环境配置,并进行安装的流程。请参考[标准环境]()
## 镜像安装
## Docker 镜像安装(推荐)
本章节介绍了基于提供的标准镜像环境进行安装的流程。请参考[镜像安装]()
## 源码编译安装
本章节介绍了对于有开发需求的状况下,使用源码编译的流程。请参考[源码编译]()
## 原生系统环境安装
## Kuberntes 集群
本章节介绍了基于标准的 Linux 环境进行必要的环境配置,并进行安装的流程。请参考[原生系统环境]()
本章节介绍了基于各类集群环境部署 PaddleServing 的详细教程。请参考[Kuberntes集群]()
## 源码编译安装
## 安全网关
本章节介绍了对于有开发需求例如添加定制代码、定制化算子等的状况下,使用源码编译的流程。请参考[源码编译]()
本章节介绍了安全网关的使用教程,适用于加密需求。请参考[安全网关]()
......@@ -2,7 +2,30 @@
本文档介绍基于标准镜像环境的安装流程。
## 获取镜像
<img src="images/2-1_Docker_Images_CN_1.png">
## 获取镜像(第一步)
镜像中包含以下基础组件
| 组件 | 版本要求 |
| :--------------------------: | :-------------------------------: |
| OS | Ubuntu16 and 18/CentOS 7 |
| gcc | 5.4.0(Cuda 10.1) and 8.2.0 |
| gcc-c++ | 5.4.0(Cuda 10.1) and 8.2.0 |
| cmake | 3.16.0 and later |
| Python | 3.6.0 and later |
| Go | 1.17.2 and later |
| git | 2.17.1 and later |
| glibc-static | 2.17 |
| openssl-devel | 1.0.2k |
| bzip2-devel | 1.0.6 and later |
| python-devel / python3-devel | 3.6.0 and later |
| sqlite-devel | 3.7.17 and later |
| patchelf | 0.9 |
| libXext | 1.3.3 |
| libSM | 1.2.2 |
| libXrender | 0.9.10 |
**一. CPU/GPU 镜像:**
......@@ -39,30 +62,49 @@
| GPU (cuda11.2-cudnn8-tensorRT8) Runtime |Ubuntu 16|0.8.0-cuda11.2-cudnn8-runtime||
**二. Java 镜像:**
```
docker pull registry.baidubce.com/paddlepaddle/serving:0.8.0-cuda10.2-java
```
| 镜像选择 | 操作系统 | TAG |
| :----------------------------------------------------------: | :-----: | :--------------------------: |
| GPU (cuda10.2-cudnn7-tensorRT6) development for Java | Ubuntu16 | 0.8.0-cuda10.2-java |
**三. XPU 镜像:**
```
docker pull registry.baidubce.com/paddlepaddle/serving:xpu-arm # for arm xpu user
docker pull registry.baidubce.com/paddlepaddle/serving:xpu-x86 # for x86 xpu user
```
| 镜像选择 | 操作系统 | TAG |
| :----------------------------------------------------------: | :-----: | :--------------------------: |
| XPU (arm64) development | kylin10 | xpu-arm |
| XPU (x86) development | Ubuntu16 | xpu-x86 |
**四. ROCM 镜像:**
```
docker pull paddlepaddle/paddle:latest-dev-rocm4.0-miopen2.11 # for x86 rocm user
```
| 镜像选择 | 操作系统 | TAG |
| :----------------------------------------------------------: | :-----: | :--------------------------: |
| ROCM4.0 (x86) development | Ubuntu16 | latest-dev-rocm4.0-miopen2.11 |
**五. NPU 镜像:**
```
docker pull paddlepaddle/paddle:latest-dev-cann5.0.2.alpha005-gcc82-aarch64 # for arm ascend910 user
docker pull registry.baidubce.com/paddlepaddle/serving:ascend-aarch64-cann3.3.0-paddlelite-devel # for arm ascend310 user
```
## 使用 pip 安装
| 镜像选择 | 操作系统 | TAG |
| :----------------------------------------------------------: | :-----: | :--------------------------: |
| Ascend910 (arm64 cann5.0.2) development | kylin10 | latest-dev-cann5.0.2.alpha005-gcc82-aarch64 |
| Ascend310 (arm64 cann3.3.0) development | kylin10 | ascend-aarch64-cann3.3.0-paddlelite-devel |
本节将介绍使用 pip 的安装方式。
## 使用 pip 安装(第二步)
本节将介绍使用 pip 安装 Paddle Serving
以下示例中 GPU 环境均为 cuda10.2-cudnn7
**一. 启动开发镜像**
......@@ -93,14 +135,17 @@ docker pull registry.baidubce.com/paddlepaddle/serving:ascend-aarch64-cann3.3.0-
cd Serving
pip3 install -r python/requirements.txt
```
**注意**: 如果您直接使用 PaddlePaddle 提供的开发镜像,需要执行以下脚本增加 Serving 所需依赖项
```
wget https://paddle-serving.bj.bcebos.com/tools/paddle_env_install.sh
bash paddle_env_install.sh
```
**三. 安装服务 whl 包**
共有3种 client、app、server,Server 分为 CPU 和 GPU,GPU 包根据您的环境选择一种安装
服务 whl 包包括: client、app、server,其中 Server 分为 CPU 和 GPU,GPU 包根据您的环境选择一种安装
- post102 = CUDA10.2 + Cudnn7 + TensorRT6(推荐)
- post101 = CUDA10.1 + TensorRT6
- post112 = CUDA11.2 + TensorRT8
```
pip3 install paddle-serving-client==0.8.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
......@@ -110,15 +155,24 @@ docker pull registry.baidubce.com/paddlepaddle/serving:ascend-aarch64-cann3.3.0-
pip3 install paddle-serving-server==0.8.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
# GPU Server,需要确认环境再选择执行哪一条,推荐使用CUDA 10.2的包
pip3 install paddle-serving-server-gpu==0.8.3.post102 -i https://pypi.tuna.tsinghua.edu.cn/simple
#CUDA10.2 + Cudnn7 + TensorRT6(推荐)
pip3 install paddle-serving-server-gpu==0.8.3.post102 -i https://pypi.tuna.tsinghua.edu.cn/simple
#CUDA10.1 + TensorRT6
pip3 install paddle-serving-server-gpu==0.8.3.post101 -i https://pypi.tuna.tsinghua.edu.cn/simple
#CUDA11.2 + TensorRT8
pip3 install paddle-serving-server-gpu==0.8.3.post112 -i https://pypi.tuna.tsinghua.edu.cn/simple
```
默认开启国内清华镜像源来加速下载,如果您使用 HTTP 代理可以关闭(`-i https://pypi.tuna.tsinghua.edu.cn/simple`)
**四. 安装 Paddle 相关 Python 库**
**四. 安装 Paddle 相关 Python 库**(可选)
**当您使用`paddle_serving_client.convert`命令或者`Python Pipeline 框架`时才需要安装。**
**注意**: 如果您的 Cuda 版本不是10.2,或者您需要在 GPU 环境上使用 TensorRT,请勿直接执行上述命令,需要参考[Paddle-Inference官方文档-下载安装Linux预测库](https:/paddleinference.paddlepaddle.org.cn/master/user_guides/download_lib.html#python)选择相应的 GPU 环境的 url 链接并进行安装。
```
# CPU 环境请执行
pip3 install paddlepaddle==2.2.2
......@@ -126,13 +180,20 @@ docker pull registry.baidubce.com/paddlepaddle/serving:ascend-aarch64-cann3.3.0-
# GPU CUDA 10.2环境请执行
pip3 install paddlepaddle-gpu==2.2.2
```
**注意**: 如果您的 Cuda 版本不是10.2,或者您需要在 GPU 环境上使用 TensorRT,请勿直接执行上述命令,需要参考[Paddle-Inference官方文档-下载安装Linux预测库](https:/paddleinference.paddlepaddle.org.cn/master/user_guides/download_lib.html#python)选择相应的 GPU 环境的 url 链接并进行安装。
**五. 安装完成后的环境检查**
当以上步骤均完成后可使用命令行运行环境检查功能,自动运行 Paddle Serving 相关示例,进行环境相关配置校验。
```
python3 -m paddle_serving_server.serve check
# 以下输出表明环境检查正常
(Cmd) check_all
PaddlePaddle inference environment running success
C++ cpu environment running success
C++ gpu environment running success
Pipeline cpu environment running success
Pipeline gpu environment running success
```
详情请参考[环境检查文档](./Check_Env_CN.md)
# 标准环境配置
# 原生系统标准环境配置
本文介绍基于标准环境进行配置安装。
本文介绍基于原生系统标准环境进行配置安装。
## CentOS 7 环境配置
<img src="images/2-2_Environment_CN_1.png">
## CentOS 7 环境配置(第一步)
**一.环境准备**
......@@ -12,15 +15,27 @@
* 如果您的计算机有 NVIDIA® GPU,请确保满足以下条件
* **CUDA 工具包 10.1/10.2 配合 cuDNN 7 (cuDNN 版本>=7.6.5)**
* **CUDA 工具包 11.2 配合 cuDNN v8.1.1**
* **配套版本的 TensorRT**
* **CUDA 工具包:10.1/10.2 配合 cuDNN 7 (cuDNN 版本>=7.6.5) 或者 11.2 配合 cuDNN v8.1.1**
* **兼容版本的 TensorRT**
* **GPU运算能力超过3.5的硬件设备**
您可参考NVIDIA官方文档了解CUDA和CUDNN的安装流程和配置方法,请见[CUDA](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/),[cuDNN](https://docs.nvidia.com/deeplearning/sdk/cudnn-install/),[TensorRT](https://docs.nvidia.com/deeplearning/tensorrt/index.html)
您可参考NVIDIA官方文档了解CUDA和CUDNN的安装流程和配置方法,请见[CUDA](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/),[cuDNN](https://docs.nvidia.com/deeplearning/sdk/cudnn-install/),[TensorRT](https://docs.nvidia.com/deeplearning/tensorrt/index.html), [GPU算力](https://developer.nvidia.com/cuda-gpus)
**三.安装必要工具**
需要安装的依赖库及工具详见下表:
| 组件 | 版本要求 |
| :--------------------------: | :-------------------------------: |
| bzip2-devel | 1.0.6 and later |
| make | later |
| gcc | 8.2.0 |
| gcc-c++ | 8.2.0 |
| cmake | 3.15.0 and later |
| Go | 1.17.2 and later |
| openssl-devel | 1.0.2k |
| patchelf | 0.9 |
1. 更新系统源
更新`yum`的源:
......@@ -115,7 +130,7 @@
ln -sf /usr/lib/libssl.so.10 /usr/lib/libssl.so
```
## Ubuntu 16.04/18.04 环境配置
## Ubuntu 16.04/18.04 环境配置(第一步)
**一.环境准备**
......@@ -221,15 +236,26 @@
ln -sf /usr/lib/libssl.so.10 /usr/lib/libssl.so
```
## Windows 环境配置
## Windows 环境配置(第一步)
由于受限第三方库的支持,Windows平台目前只支持用web service的方式搭建local predictor预测服务。
**一.环境准备**
**目前原生Windows仅支持Python 3.6或更高版本**。首先需要将Python的可执行程序所在目录加入到PATH当中。通常在**系统属性/我的电脑属性**-**高级**-**环境变量** ,点选Path,并在开头加上路径。例如`C:\Users\$USER\AppData\Local\Programs\Python\Python36`,最后连续点击**确定** 。在Powershell上如果输入python可以进入python交互界面,说明环境变量配置成功。
* **Python 版本 3.6/3.7/3.8/3.9 (64 bit)**
**二.选择 CPU/GPU**
* 如果您的计算机有 NVIDIA® GPU,请确保满足以下条件
**二.安装必要工具**
* **CUDA 工具包 10.1/10.2 配合 cuDNN 7 (cuDNN 版本>=7.6.5)**
* **CUDA 工具包 11.2 配合 cuDNN v8.1.1**
* **配套版本的 TensorRT**
* **GPU运算能力超过3.5的硬件设备**
您可参考NVIDIA官方文档了解CUDA和CUDNN的安装流程和配置方法,请见[CUDA](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/),[cuDNN](https://docs.nvidia.com/deeplearning/sdk/cudnn-install/),[TensorRT](https://docs.nvidia.com/deeplearning/tensorrt/index.html)
**三.安装必要工具**
1. 更新 wget 工具
......@@ -243,15 +269,11 @@
部分用户可能会在`import paddle`阶段遇见dll无法链接的问题,建议[安装Visual Studio社区版本](https://visualstudio.microsoft.com/) ,并且安装C++的相关组件。
## 使用 pip 安装
## 使用 pip 安装(第二步)
**一. 安装服务 whl 包**
共有3种 client、app、server,Server 分为 CPU 和 GPU,GPU 包根据您的环境选择一种安装
- post102 = CUDA10.2 + Cudnn7 + TensorRT6(推荐)
- post101 = CUDA10.1 + TensorRT6
- post112 = CUDA11.2 + TensorRT8
服务 whl 包包括: client、app、server,其中 Server 分为 CPU 和 GPU,GPU 包根据您的环境选择一种安装
```
pip3 install paddle-serving-client==0.8.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
......@@ -261,8 +283,11 @@
pip3 install paddle-serving-server==0.8.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
# GPU Server,需要确认环境再选择执行哪一条,推荐使用CUDA 10.2的包
# CUDA10.2 + Cudnn7 + TensorRT6(推荐)
pip3 install paddle-serving-server-gpu==0.8.3.post102 -i https://pypi.tuna.tsinghua.edu.cn/simple
# CUDA10.1 + TensorRT6
pip3 install paddle-serving-server-gpu==0.8.3.post101 -i https://pypi.tuna.tsinghua.edu.cn/simple
# CUDA11.2 + TensorRT8
pip3 install paddle-serving-server-gpu==0.8.3.post112 -i https://pypi.tuna.tsinghua.edu.cn/simple
```
......@@ -284,6 +309,13 @@
```
python3 -m paddle_serving_server.serve check
# 以下输出表明环境检查正常
(Cmd) check_all
PaddlePaddle inference environment running success
C++ cpu environment running success
C++ gpu environment running success
Pipeline cpu environment running success
Pipeline gpu environment running success
```
详情请参考[环境检查文档](./Check_Env_CN.md)
\ No newline at end of file
......@@ -12,6 +12,8 @@
此外,针对某些 C++ 二次开发场景,我们也提供了 OPENCV 的联编方案。
<img src="images/2-3_Compile_CN_1.png">
## 编译环境准备
......@@ -20,7 +22,7 @@
| OS | Ubuntu16 and 18/CentOS 7 |
| gcc | 5.4.0(Cuda 10.1) and 8.2.0 |
| gcc-c++ | 5.4.0(Cuda 10.1) and 8.2.0 |
| cmake | 3.2.0 and later |
| cmake | 3.16.0 and later |
| Python | 3.6.0 and later |
| Go | 1.17.2 and later |
| git | 2.17.1 and later |
......@@ -73,35 +75,6 @@ cd Serving && git submodule update --init --recursive
请按照如下,确定好需要编译的 Python 版本,设置对应的环境变量,一共需要设置三个环境变量,分别是 `PYTHON_INCLUDE_DIR`, `PYTHON_LIBRARIES`, `PYTHON_EXECUTABLE`。以下我们以 python 3.7为例,介绍如何设置这三个环境变量。
1. 设置 `PYTHON_INCLUDE_DIR`
搜索 Python.h 所在的目录
```
find / -name Python.h
```
通常会有类似于 `**/include/python3.7/Python.h` 出现,我们只需要取它的文件夹目录就好,比如找到 `/usr/include/python3.7/Python.h`,那么我们只需要 `export PYTHON_INCLUDE_DIR=/usr/include/python3.7/` 就好。
如果没有找到。说明 1)没有安装开发版本的 Python,需重新安装 2)权限不足无法查看相关系统目录。
2. 设置 `PYTHON_LIBRARIES`
搜索 libpython3.7.so 或 libpython3.7m.so
```
find / -name libpython3.7.so
find / -name libpython3.7m.so
```
通常会有类似于 `**/lib/libpython3.7.so` 或者 `**/lib/x86_64-linux-gnu/libpython3.7.so` 出现,我们只需要取它的文件夹目录就好,比如找到 `/usr/local/lib/libpython3.7.so`,那么我们只需要 `export PYTHON_LIBRARIES=/usr/local/lib` 就好。
如果没有找到,说明 1)静态编译 Python,需要重新安装动态编译的 Python 2)全县不足无法查看相关系统目录。
3. 设置 `PYTHON_EXECUTABLE`
直接查看 python3.7 路径
```
which python3.7
```
假如结果是 `/usr/local/bin/python3.7`,那么直接设置 `export PYTHON_EXECUTABLE=/usr/local/bin/python3.7`
设置好这三个环境变量至关重要,设置完成后,我们便可以执行下列操作(以下是 Paddle Cuda 11.2 的开发镜像的 PYTHON 环境,如果是其他镜像,请更改相应的 `PYTHON_INCLUDE_DIR`, `PYTHON_LIBRARIES`, `PYTHON_EXECUTABLE`)。
```
# 请自行修改至自身路径
export PYTHON_INCLUDE_DIR=/usr/local/include/python3.7m/
......@@ -121,6 +94,17 @@ go install github.com/golang/protobuf/protoc-gen-go@v1.4.3
go install google.golang.org/grpc@v1.33.0
go env -w GO111MODULE=auto
```
环境变量的含义如下表所示。
| cmake 环境变量 | 含义 | 注意事项 | Docker 环境是否需要 |
|-----------------------|-------------------------------------|-------------------------------|--------------------|
| PYTHON_INCLUDE_DIR | Python.h 所在的目录,通常为 **/include/python3.7/Python.h | 如果没有找到。说明 1)没有安装开发版本的 Python,需重新安装 2)权限不足无法查看相关系统目录。 | 是(/usr/local/include/python3.7) |
| PYTHON_LIBRARIES | libpython3.7.so 或 libpython3.7m.so 所在目录,通常为 /usr/local/lib | 如果没有找到。说明 1)没有安装开发版本的 Python,需重新安装 2)权限不足无法查看相关系统目录。 | 是(/usr/local/lib/x86_64-linux-gnu/libpython3.7m.so) |
| PYTHON_EXECUTABLE | python3.7 所在目录,通常为 /usr/local/bin | | 是(/usr/local/bin/python3.7) |
**二. 设置 CUDA 环境变量**
如果您是 GPU 用户需要额外设置 `CUDA_PATH`, `CUDNN_LIBRARY`, `CUDA_CUDART_LIBRARY``TENSORRT_LIBRARY_PATH`
```
......@@ -143,6 +127,7 @@ export TENSORRT_LIBRARY_PATH="/usr/"
## 正式编译
我们一共需要编译三个目标,分别是 `paddle-serving-server`, `paddle-serving-client`, `paddle-serving-app`,其中 `paddle-serving-server` 需要区分 CPU 或者 GPU 版本。
全部编译选项详见附录。
**一. 编译 paddle-serving-server**
......@@ -167,16 +152,18 @@ cd build_server
cmake -DPYTHON_INCLUDE_DIR=$PYTHON_INCLUDE_DIR \
-DPYTHON_LIBRARIES=$PYTHON_LIBRARIES \
-DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \
-DCUDA_TOOLKIT_ROOT_DIR=${CUDA_PATH} \
-DCUDNN_LIBRARY=${CUDNN_LIBRARY} \
-DCUDA_CUDART_LIBRARY=${CUDA_CUDART_LIBRARY} \
-DTENSORRT_ROOT=${TENSORRT_LIBRARY_PATH} \
-DCUDA_TOOLKIT_ROOT_DIR=$CUDA_PATH \
-DCUDNN_LIBRARY=$CUDNN_LIBRARY \
-DCUDA_CUDART_LIBRARY=$CUDA_CUDART_LIBRARY \
-DTENSORRT_ROOT=$TENSORRT_LIBRARY_PATH \
-DSERVER=ON \
-DWITH_GPU=ON ..
make -j20
cd ..
```
编译出的 whl 包在 `build_server/python/dist/` 目录下,编译出的二进制文件在 `build_server/core/general-server/serving` 路径下。
**二. 编译 paddle-serving-client**
接下来,我们继续编译 client,这个包的编译命令在所有平台通用,不区分 CPU 和 GPU 的版本。
......@@ -191,6 +178,7 @@ cmake -DPYTHON_INCLUDE_DIR=$PYTHON_INCLUDE_DIR \
make -j10
cd ..
```
编译出的 whl 包在 `build_client/python/dist/` 目录下。
**三. 编译 paddle-serving-app**
......@@ -205,6 +193,7 @@ cmake -DPYTHON_INCLUDE_DIR=$PYTHON_INCLUDE_DIR \
make -j10
cd ..
```
编译出的 whl 包在 `build_app/python/dist/` 目录下。
## 安装相关 whl 包
```
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册