Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • Paddle
  • Issue
  • #12079

P
Paddle
  • 项目概览

PaddlePaddle / Paddle
大约 2 年 前同步成功

通知 2325
Star 20933
Fork 5424
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 1423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
  • Wiki 0
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
P
Paddle
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 1,423
    • Issue 1,423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
    • 合并请求 543
  • Pages
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 0
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 提交
  • Issue看板
已关闭
开放中
Opened 7月 10, 2018 by saxon_zh@saxon_zhGuest

Linux系统下使用Docker编译GPU版本的PaddlePaddle“踩坑”记录

Created by: wzzju

Linux系统下使用Docker编译GPU版本的PaddlePaddle“踩坑”记录

文档声明:编译过程参照官网文档(Fluid 0.14.0)。

根据官方文档,使用Docker容器编译PaddlePaddle,执行命令如下:


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

cd Paddle

git checkout -b 0.14.0 origin/release/0.14.0

docker run -it -v $PWD:/paddle -e "WITH_FLUID_ONLY=ON" -e "WITH_GPU=OFF" -e "WITH_TESTING=OFF" paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5 bash -x /paddle/paddle/scripts/paddle_build.sh build

问题1

image

原因分析:

如下图所示,官网给出了两种使用Docker容器编译PaddlePaddle的方式,即通过1->3步骤编译或通过1->2->4步骤编译。由问题1可知,通过1->3步骤编译会报错,说明官网文档第3步中使用的paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5Docker镜像环境存在问题。 image

问题2

接下来,使用1->2->4步骤进行编译时,在下载docker镜像时出现如下错误:

image

原因分析

由上图可知,生成docker镜像时需要下载golang,访问的网址为https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz(谷歌有关),故而使用者需要保证电脑可以科学上网(翻墙)。

解决方法

选择下载并使用docker.paddlepaddlehub.com/paddle:latest-devdocker镜像,执行命令如下:


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

cd Paddle

git checkout -b 0.14.0 origin/release/0.14.0

sudo docker run --name paddle-test -v $PWD:/paddle --network=host -it docker.paddlepaddlehub.com/paddle:latest-dev /bin/bash

进入docker编译GPU版本的PaddlePaddle,执行命令如下:

mkdir build && cd build
# 编译GPU版本的PaddlePaddle
cmake .. -DWITH_FLUID_ONLY=ON -DWITH_GPU=ON -DWITH_TESTING=ON
make -j$(nproc)

编译结果

image

安装PaddlePaddle并运行test_fit_a_line.py 程序:
pip install build/python/dist/*.whl
python python/paddle/fluid/tests/book/test_fit_a_line.py

问题3——GPU版本的PaddlePaddle运行结果报错

image image

原因分析

使用sudo docker run --name paddle-test -v $PWD:/paddle --network=host -it docker.paddlepaddlehub.com/paddle:latest-dev /bin/bash命令创建的docker容器仅能支持运行CPU版本的PaddlePaddle。

解决方法

使用如下命令重新开启支持GPU运行的docker容器:

export CUDA_SO="$(\ls /usr/lib64/libcuda* | xargs -I{} echo '-v {}:{}') $(\ls /usr/lib64/libnvidia* | xargs -I{} echo '-v {}:{}')"

export DEVICES=$(\ls /dev/nvidia* | xargs -I{} echo '--device {}:{}')

sudo docker run ${CUDA_SO} ${DEVICES} --rm --name paddle-test-gpu -v /usr/bin/nvidia-smi:/usr/bin/nvidia-smi -v $PWD:/paddle --network=host -it docker.paddlepaddlehub.com/paddle:latest-dev /bin/bash

进入docker之后执行如下命令进行PaddlePaddle的安装及测试运行:

export LD_LIBRARY_PATH=/usr/lib64:/usr/local/lib:$LD_LIBRARY_PATH
pip install build/python/dist/*.whl
python python/paddle/fluid/tests/book/test_fit_a_line.py

运行结果

image

参考资料

  • PaddlePaddle使用文档
指派人
分配到
无
里程碑
无
分配里程碑
工时统计
无
截止日期
无
标识: paddlepaddle/Paddle#12079
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7