使用Docker编译PaddlePaddle

在ubuntu中使用Docker编译PaddlePaddle


要在ubuntu中使用docker编译paddle框架,首先分为以下几个步骤:

  • 安装docker环境
  • 拉取paddle的docker镜像
  • 开启镜像并配置
  • 验证编译安装成功

1、Docker环境安装

使用Docker编译

Docker是一个开源的应用容器引擎。使用Docker,既可以将PaddlePaddle的安装&使用与系统环境隔离,也可以与主机共享GPU、网络等资源

使用Docker编译PaddlePaddle,您需要:

可参考:

2、拉取Paddle的docker镜像

对于国内用户,因为网络问题下载docker比较慢时,可使用百度提供的镜像:

  • CPU版的PaddlePaddle:

    docker pull registry.baidubce.com/paddlepaddle/paddle:latest-dev
    
  • GPU版的PaddlePaddle:

    nvidia-docker pull registry.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda10.2-cudnn7-dev
    

3、docker编译配置

(1) 进入docker

先要开始启动docker,然后再使用attach进入环境。

sudo docker start paddle-test

sudo docker ps

sudo docker attach paddle-test

(2) 源码下载及环境配置

mkdir source

git clone git@github.com:PaddlePaddle/Paddle.git

进入下列文件目录

cd Paddle

(非必选)可根据需要,切换到较稳定版本下进行编译:

git checkout [分支名]

例如:

git checkout release/2.3

注意:python3.6、python3.7版本从release/1.2分支开始支持, python3.8版本从release/1.8分支开始支持, python3.9版本从release/2.1分支开始支持, python3.10版本从release/2.3分支开始支持

安装依赖

pip3 install protobuf

apt install patchelf

(3) 依赖项

由于在paddle源码编译过程中,需要安装相应的依赖库,这些依赖库是通过github仓库拉取源码的形式下载下来的。
若docker环境下能够网络通畅的使用github,可跳过此项。
若网络情况不稳定,那么这里建议参考下面,分别将这些仓库手动clone下来,同时要注意当前的目录。

git clone https://github.com/protocolbuffers/protobuf.git
git clone https://github.com/weidai11/cryptopp.git
git clone https://github.com/dmlc/dlpack.git
git clone https://github.com/oneapi-src/oneDNN.git
git clone https://github.com/baidu-research/warp-ctc.git
git clone https://github.com/gflags/gflags.git
git clone https://github.com/wjakob/clang-cindex-python3

(4) 执行cmake

执行cmake,根据是否使用GPU有以下两种方式,可自行结合需要修改DWITH_GPU=ON或OFF。

cmake .. -DPY_VERSION=3.7 -DWITH_GPU=OFF
cmake .. -DPY_VERSION=3.7 -DWITH_GPU=ON

(5) 执行编译

开始执行编译,-j后面对应的是线程数,可自定义。当然最好是用(nproc),会根据系统参数自动设置。
这里的流程是:

  • 1、先执行build源码到target。

  • 2、copying 源码到build目录下

  • 3、creating、adding

最后,看到[100%]Built target paddle_python就说明已经编译完成了。

4、安装编译好的包

编译好paddle源码后,我们还需要将生成的whl安装到docker中的python环境下。
根据上面的信息和官方文档的提示,可以知道,生成whl文件在下面这个目录。

cd /paddle/build/python/dist

pip3 install paddlepaddle-0.0.0-cp37-cp37m-linxu_x86_64.whl

由于在clone paddle的源码时,使用的是develop分支,因此对应的版本号为0.0.0。
如果需要稳定版本,可在源码下载的时候,选择相应的分支。

5、验证安装成功

将paddle的whl安装到python3环境后,可以在docker中进行相应的验证是否可用。

python3
import paddle
paddle.utils.run_check()

至此,所有步骤完成,paddle以源码形式编译并安装完成,enjoy your work~。

6、参考材料

[1].https://www.paddlepaddle.org.cn/documentation/docs/zh/install/compile/linux-compile.html

posted @ 2022-12-16 00:18  Xu_Lin  阅读(1354)  评论(0编辑  收藏  举报