From 6e56e537af471b1ef0de67bde040136d162b520a Mon Sep 17 00:00:00 2001 From: ShiningZhang Date: Thu, 10 Mar 2022 14:45:07 +0800 Subject: [PATCH] add offical_doc --- doc/Offical_Docs/Docker_Images_CN.md | 97 +++++++++++++ doc/Offical_Docs/Environment_CN.md | 195 +++++++++++++++++++++++++++ 2 files changed, 292 insertions(+) create mode 100644 doc/Offical_Docs/Docker_Images_CN.md create mode 100644 doc/Offical_Docs/Environment_CN.md diff --git a/doc/Offical_Docs/Docker_Images_CN.md b/doc/Offical_Docs/Docker_Images_CN.md new file mode 100644 index 00000000..14d5d7d6 --- /dev/null +++ b/doc/Offical_Docs/Docker_Images_CN.md @@ -0,0 +1,97 @@ +# Docker 镜像 + +该文档维护了 Paddle Serving 提供的镜像列表。 + +## 获取镜像 + +您可以通过两种方式获取镜像。 + +**一. 通过 TAG 直接从 dockerhub 或 `registry.baidubce.com` 拉取镜像,具体 TAG 请参见下文的镜像说明章节的表格** + + ```shell + docker pull registry.baidubce.com/paddlepaddle/serving: + ``` + +**二.基于 Dockerfile 构建镜像** + + 建立新目录,复制对应 Dockerfile 内容到该目录下 Dockerfile 文件。执行 + + ```shell + docker build -f tools/${DOCKERFILE} -t : . + ``` + + +## 镜像说明 + +**一. CPU/GPU 镜像:** +若需要基于源代码二次开发编译,请使用后缀为 -devel 的版本。 +**在 TAG 列,0.8.0 也可以替换成对应的版本号,例如 0.5.0/0.4.1 等,但需要注意的是,部分开发环境随着某个版本迭代才增加,因此并非所有环境都有对应的版本号可以使用。** + + +| 镜像选择 | 操作系统 | TAG | Dockerfile | +| :----------------------------------------------------------: | :-----: | :--------------------------: | :----------------------------------------------------------: | +| CPU development | Ubuntu16 | 0.8.0-devel | [Dockerfile.devel](../tools/Dockerfile.devel) | +| GPU (cuda10.1-cudnn7-tensorRT6-gcc54) development | Ubuntu16 | 0.8.0-cuda10.1-cudnn7-gcc54-devel (not ready) | [Dockerfile.cuda10.1-cudnn7-gcc54.devel](../tools/Dockerfile.cuda10.1-cudnn7-gcc54.devel) | +| GPU (cuda10.1-cudnn7-tensorRT6) development | Ubuntu16 | 0.8.0-cuda10.1-cudnn7-devel | [Dockerfile.cuda10.1-cudnn7.devel](../tools/Dockerfile.cuda10.1-cudnn7.devel) | +| GPU (cuda10.2-cudnn7-tensorRT6) development | Ubuntu16 | 0.8.0-cuda10.2-cudnn7-devel | [Dockerfile.cuda10.2-cudnn7.devel](../tools/Dockerfile.cuda10.2-cudnn7.devel) | +| GPU (cuda10.2-cudnn8-tensorRT7) development | Ubuntu16 | 0.8.0-cuda10.2-cudnn8-devel | [Dockerfile.cuda10.2-cudnn8.devel](../tools/Dockerfile.cuda10.2-cudnn8.devel) | +| GPU (cuda11.2-cudnn8-tensorRT8) development | Ubuntu16 | 0.8.0-cuda11.2-cudnn8-devel | [Dockerfile.cuda11.2-cudnn8.devel](../tools/Dockerfile.cuda11.2-cudnn8.devel) | + +**二. Java 镜像:** +``` +registry.baidubce.com/paddlepaddle/serving:0.8.0-cuda10.2-java +``` + +**三. XPU 镜像:** +``` +registry.baidubce.com/paddlepaddle/serving:xpu-arm # for arm xpu user +registry.baidubce.com/paddlepaddle/serving:xpu-x86 # for x86 xpu user +``` + +**四. ROCM 镜像:** +``` +paddlepaddle/paddle:latest-dev-rocm4.0-miopen2.11 # for x86 rocm user +``` + +**五. NPU 镜像:** +``` +paddlepaddle/paddle:latest-dev-cann5.0.2.alpha005-gcc82-aarch64 # for arm ascend910 user +registry.baidubce.com/paddlepaddle/serving:ascend-aarch64-cann3.3.0-paddlelite-devel # for arm ascend310 user +``` + +## 运行 CUDA 容器的要求 + +运行 CUDA 容器需要至少具有一个支持 CUDA 的 GPU 以及与您所使用的 CUDA 工具包版本兼容的驱动程序。 + +运行 CUDA 容器的机器**只需要相应的 NVIDIA 驱动程序**,而 CUDA 工具包不是必要的。 + +相关 CUDA 工具包版本、驱动版本和 GPU 架构的关系请参阅 [nvidia-docker wiki](https://github.com/NVIDIA/nvidia-docker/wiki/CUDA)。 + +## (附录)所有镜像列表 + + +**一. 开发镜像:** + +| Env | Version | Docker images tag | OS | Gcc Version | +|----------|---------|------------------------------|-----------|-------------| +| CPU | >=0.5.0 | 0.8.0-devel | Ubuntu 16 | 8.2.0 | +| | <=0.4.0 | 0.4.0-devel | CentOS 7 | 4.8.5 | +| Cuda10.1 | >=0.5.0 | 0.8.0-cuda10.1-cudnn7-devel | Ubuntu 16 | 8.2.0 | +| | <=0.4.0 | 0.4.0-cuda10.1-cudnn7-devel | CentOS 7 | 4.8.5 | +| Cuda10.2+Cudnn7 | >=0.5.0 | 0.8.0-cuda10.2-cudnn7-devel | Ubuntu 16 | 8.2.0 | +| | <=0.4.0 | Nan | Nan | Nan | +| Cuda10.2+Cudnn8 | >=0.5.0 | 0.8.0-cuda10.2-cudnn8-devel | Ubuntu 16 | 8.2.0 | +| | <=0.4.0 | Nan | Nan | Nan | +| Cuda11.2 | >=0.5.0 | 0.8.0-cuda11.2-cudnn8-devel | Ubuntu 16 | 8.2.0 | +| | <=0.4.0 | Nan | Nan | Nan | + +**二. 运行镜像:** + +运行镜像比开发镜像更加轻量化, 运行镜像提供了 serving 的 whl 和 bin,但为了运行期更小的镜像体积,没有提供诸如 cmake 这样但开发工具。 如果您想了解有关信息,请检查文档[在Kubernetes上使用Paddle Serving](./Run_On_Kubernetes_CN.md)。 + +| Env | Version | Docker images tag | OS | Gcc Version | Size | +|----------|---------|------------------------------|-----------|-------------|------| +| CPU | 0.8.0 | 0.8.0-runtime | Ubuntu 16 | 8.2.0 | 3.9 GB | +| Cuda10.1 | 0.8.0 | 0.8.0-cuda10.1-cudnn7-runtime | Ubuntu 16 | 8.2.0 | 10 GB | +| Cuda10.2 | 0.8.0 | 0.8.0-cuda10.2-cudnn8-runtime | Ubuntu 16 | 8.2.0 | 10.1 GB | +| Cuda11.2 | 0.8.0 | 0.8.0-cuda11.2-cudnn8-runtime| Ubuntu 16 | 8.2.0 | 14.2 GB | diff --git a/doc/Offical_Docs/Environment_CN.md b/doc/Offical_Docs/Environment_CN.md new file mode 100644 index 00000000..4d8bf7f7 --- /dev/null +++ b/doc/Offical_Docs/Environment_CN.md @@ -0,0 +1,195 @@ +# 环境配置 + +使用 PaddleServing 前需要准备相关环境。 + +## 环境准备 + +* **Linux 版本 (64 bit)** + * **CentOS 7 (GPU 版本支持CUDA 10.1/10.2/11.0/11.1/11.2)** + * **Ubuntu 16.04 (GPU 版本支持 CUDA 10.1/10.2/11.0/11.1/11.2)** + * **Ubuntu 18.04 (GPU 版本支持 CUDA 10.1/10.2/11.0/11.1/11.2)** +* **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) + +## 安装必要工具 + +**一.更新系统源** + +* Centos 环境 + + 更新`yum`的源: + + ``` + yum update + ``` + + 并添加必要的yum源: + + ``` + yum install -y epel-release + ``` + +* Ubuntu 环境 + + 更新`apt`的源: + + ``` + apt update + ``` + +**二.安装工具** + +* Centos 环境 + + `bzip2`以及`make`: + + ``` + yum install -y bzip2 + ``` + + ``` + yum install -y make + ``` + + cmake 需要3.15以上,建议使用3.16.0: + + ``` + wget -q https://cmake.org/files/v3.16/cmake-3.16.0-Linux-x86_64.tar.gz + ``` + + ``` + tar -zxvf cmake-3.16.0-Linux-x86_64.tar.gz + ``` + + ``` + rm cmake-3.16.0-Linux-x86_64.tar.gz + ``` + + ``` + PATH=/home/cmake-3.16.0-Linux-x86_64/bin:$PATH + ``` + + gcc 需要5.4以上,建议使用8.2.0: + + ``` + wget -q https://paddle-docker-tar.bj.bcebos.com/home/users/tianshuo/bce-python-sdk-0.8.27/gcc-8.2.0.tar.xz && \ + tar -xvf gcc-8.2.0.tar.xz && \ + cd gcc-8.2.0 && \ + sed -i 's#ftp://gcc.gnu.org/pub/gcc/infrastructure/#https://paddle-ci.gz.bcebos.com/#g' ./contrib/download_prerequisites && \ + unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE && \ + ./contrib/download_prerequisites && \ + cd .. && mkdir temp_gcc82 && cd temp_gcc82 && \ + ../gcc-8.2.0/configure --prefix=/usr/local/gcc-8.2 --enable-threads=posix --disable-checking --disable-multilib && \ + make -j8 && make install + ``` + +* Ubuntu 环境 + + `bzip2`以及`make`: + + ``` + apt install -y bzip2 + ``` + ``` + apt install -y make + ``` + + cmake 需要3.15以上,建议使用3.16.0: + + ``` + wget -q https://cmake.org/files/v3.16/cmake-3.16.0-Linux-x86_64.tar.gz + ``` + + ``` + tar -zxvf cmake-3.16.0-Linux-x86_64.tar.gz + ``` + + ``` + rm cmake-3.16.0-Linux-x86_64.tar.gz + ``` + + ``` + PATH=/home/cmake-3.16.0-Linux-x86_64/bin:$PATH + ``` + + gcc 需要5.4以上,建议使用8.2.0: + + ``` + wget -q https://paddle-docker-tar.bj.bcebos.com/home/users/tianshuo/bce-python-sdk-0.8.27/gcc-8.2.0.tar.xz && \ + tar -xvf gcc-8.2.0.tar.xz && \ + cd gcc-8.2.0 && \ + sed -i 's#ftp://gcc.gnu.org/pub/gcc/infrastructure/#https://paddle-ci.gz.bcebos.com/#g' ./contrib/download_prerequisites && \ + unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE && \ + ./contrib/download_prerequisites && \ + cd .. && mkdir temp_gcc82 && cd temp_gcc82 && \ + ../gcc-8.2.0/configure --prefix=/usr/local/gcc-8.2 --enable-threads=posix --disable-checking --disable-multilib && \ + make -j8 && make install + ``` + +**三.安装GOLANG** + + 建议使用 go1.17.2: + + ``` + wget -qO- https://go.dev/dl/go1.17.2.linux-amd64.tar.gz | \ + tar -xz -C /usr/local && \ + mkdir /root/go && \ + mkdir /root/go/bin && \ + mkdir /root/go/src && \ + echo "GOROOT=/usr/local/go" >> /root/.bashrc && \ + echo "GOPATH=/root/go" >> /root/.bashrc && \ + echo "PATH=/usr/local/go/bin:/root/go/bin:$PATH" >> /root/.bashrc + source /root/.bashrc + ``` + +**四.安装依赖库** + +* Centos 环境 + + 安装相关依赖库 patchelf: + + ``` + yum install patchelf + ``` + + 配置 ssl 依赖库 + + ``` + wget https://paddle-serving.bj.bcebos.com/others/centos_ssl.tar && \ + tar xf centos_ssl.tar && rm -rf centos_ssl.tar && \ + mv libcrypto.so.1.0.2k /usr/lib/libcrypto.so.1.0.2k && mv libssl.so.1.0.2k /usr/lib/libssl.so.1.0.2k && \ + ln -sf /usr/lib/libcrypto.so.1.0.2k /usr/lib/libcrypto.so.10 && \ + ln -sf /usr/lib/libssl.so.1.0.2k /usr/lib/libssl.so.10 && \ + ln -sf /usr/lib/libcrypto.so.10 /usr/lib/libcrypto.so && \ + ln -sf /usr/lib/libssl.so.10 /usr/lib/libssl.so + ``` + +* Ubuntu 环境 + + 安装相关依赖库 patchelf: + + ``` + apt-get install patchelf + ``` + + 配置 ssl 依赖库 + + ``` + wget https://paddle-serving.bj.bcebos.com/others/centos_ssl.tar && \ + tar xf centos_ssl.tar && rm -rf centos_ssl.tar && \ + mv libcrypto.so.1.0.2k /usr/lib/libcrypto.so.1.0.2k && mv libssl.so.1.0.2k /usr/lib/libssl.so.1.0.2k && \ + ln -sf /usr/lib/libcrypto.so.1.0.2k /usr/lib/libcrypto.so.10 && \ + ln -sf /usr/lib/libssl.so.1.0.2k /usr/lib/libssl.so.10 && \ + ln -sf /usr/lib/libcrypto.so.10 /usr/lib/libcrypto.so && \ + ln -sf /usr/lib/libssl.so.10 /usr/lib/libssl.so + ``` \ No newline at end of file -- GitLab