Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
6c7c98f2
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6c7c98f2
编写于
7月 15, 2018
作者:
W
WangZhen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update the compilation process of PaddlePaddle with docker and without docker.
上级
d7ca9dc8
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
79 addition
and
18 deletion
+79
-18
doc/fluid/new_docs/beginners_guide/install/install_doc.rst
doc/fluid/new_docs/beginners_guide/install/install_doc.rst
+79
-18
未找到文件。
doc/fluid/new_docs/beginners_guide/install/install_doc.rst
浏览文件 @
6c7c98f2
...
@@ -177,7 +177,7 @@ Docker安装完成后,请您执行下面的步骤:
...
@@ -177,7 +177,7 @@ Docker安装完成后,请您执行下面的步骤:
在MacOS安装PaddlePaddle
在MacOS安装PaddlePaddle
--------
--------
对于MacOS系统,我们暂未提供pip安装方式,您可以使用 **
从
源码编译** 的方式安装。
对于MacOS系统,我们暂未提供pip安装方式,您可以使用 **源码编译** 的方式安装。
.. _others:
.. _others:
...
@@ -185,7 +185,7 @@ Docker安装完成后,请您执行下面的步骤:
...
@@ -185,7 +185,7 @@ Docker安装完成后,请您执行下面的步骤:
-------------
-------------
.. _source:
.. _source:
从源码编译
源码编译(使用Docker镜像)
==========
==========
.. _requirements:
.. _requirements:
...
@@ -206,28 +206,85 @@ Docker安装完成后,请您执行下面的步骤:
...
@@ -206,28 +206,85 @@ Docker安装完成后,请您执行下面的步骤:
"""""""""""""
"""""""""""""
PaddlePaddle需要使用Docker环境完成编译,这样可以免去单独安装编译依赖的步骤,可选的不同编译环境Docker镜像
PaddlePaddle需要使用Docker环境完成编译,这样可以免去单独安装编译依赖的步骤,可选的不同编译环境Docker镜像
可以在 `这里 <https://hub.docker.com/r/paddlepaddle/paddle_manylinux_devel/tags/>`_ 找到。或者
可以在 `这里 <https://hub.docker.com/r/paddlepaddle/paddle_manylinux_devel/tags/>`_ 找到。
参考下述可选步骤,从源码中构建用于编译PaddlePaddle的Docker镜像。
如果您选择不使用Docker镜像,则需要在本机安装下面章节列出的 `附录:编译依赖`_ 之后才能开始编译的步骤。
编译PaddlePaddle,需要执行:
**I. 编译CPU-Only版本的PaddlePaddle,需要执行:**
.. code-block:: bash
# 1. 获取源码
git clone https://github.com/PaddlePaddle/Paddle.git
cd Paddle
# 2. 执行如下命令下载最新版本的docker镜像
sudo docker run --name paddle-test -v $PWD:/paddle --network=host -it docker.paddlepaddlehub.com/paddle:latest-dev /bin/bash
# 3. 进入docker内执行如下命令编译CPU-Only的二进制安装包
mkdir /paddle/build && cd /paddle/build
cmake .. -DWITH_FLUID_ONLY=ON -DWITH_GPU=OFF -DWITH_TESTING=OFF
make -j$(nproc)
**II. 编译GPU版本的PaddlePaddle,需要执行:**
.. code-block:: bash
.. code-block:: bash
# 1. 获取源码
# 1. 获取源码
git clone https://github.com/PaddlePaddle/Paddle.git
git clone https://github.com/PaddlePaddle/Paddle.git
cd Paddle
cd Paddle
# 2. 可选步骤:源码中构建用于编译PaddlePaddle的Docker镜像
# 2. 配置环境使得docker可以访问宿主机GPU设备
docker build -t paddle:dev .
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 {}:{}')
# 3. 执行如下命令下载支持GPU运行的docker容器
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
# 4. 进入docker内执行如下命令编译GPU版本的PaddlePaddle
mkdir /paddle/build && cd /paddle/build
cmake .. -DWITH_FLUID_ONLY=ON -DWITH_GPU=ON -DWITH_TESTING=OFF
make -j$(nproc)
**注意事项:**
* 上述有关 :code:`docker` 的命令把当前目录(源码树根目录)映射为 container 里的 :code:`/paddle` 目录。
* 若要运行GPU版本的PaddlePaddle,需要在进入docker后修改 :code:`~/.bashrc` 文件,加入 :code:`export LD_LIBRARY_PATH=/usr/lib64:/usr/local/lib:$LD_LIBRARY_PATH` 语句,并执行 :code:`source ~/.bashrc` 命令。
* 若您在使用Docker编译PaddlePaddle遇到问题时, `这个issue <https://github.com/PaddlePaddle/Paddle/issues/12079>`_ 可能会对您有所帮助。
.. _source:
源码编译(不使用Docker镜像)
==========
如果您选择不使用Docker镜像,则需要在本机安装下面章节列出的 `附录:编译依赖`_ 之后才能开始编译的步骤。
.. _build_step:
编译方法
"""""""""""""
在本机上编译CPU-Only版本的PaddlePaddle,需要执行如下命令:
.. code-block:: bash
# 1. 使用virtualenvwrapper创建python虚环境并将工作空间切换到虚环境 [可选]
mkvirtualenv paddle-venv
workon paddle-venv
# 2. 获取源码
git clone https://github.com/PaddlePaddle/Paddle.git
cd Paddle
# 3. 执行下面的命令编译CPU-Only的二进制
# 3. 执行下面的命令编译CPU-Only的二进制
docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_TESTING=OFF" paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5 bash -x /paddle/paddle/scripts/paddle_build.sh build
mkdir build && cd build
# 4. 或者也可以使用为上述可选步骤构建的镜像(必须先执行第2步)
cmake .. -DWITH_FLUID_ONLY=ON -DWITH_GPU=OFF -DWITH_TESTING=OFF
docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_TESTING=OFF" paddle:dev
make -j4 # 根据机器配备CPU的核心数开启相应的多线程进行编译
注:上述命令把当前目录(源码树根目录)映射为 container 里的 :code:`/paddle` 目录。如果使用自行
**注意事项:**
构建的镜像(上述第4步)会执行 :code:`Dockerfile` 描述的默认入口程序 :code:`docker_build.sh` 可以省略步骤3中
最后的执行脚本的命令。
* MacOS系统下因为默认安装了cblas库,所以编译时可能会遇到 :code:`use of undeclared identifier 'openblas_set_num_threads'` 错误。因此,在执行cmake命令时需要指定所使用openblas库的头文件路径,具体操作如下:
.. code-block:: bash
cd Paddle/build && rm -rf *
cmake .. -DWITH_FLUID_ONLY=ON -DWITH_GPU=OFF -DWITH_TESTING=OFF -DOPENBLAS_INC_DIR=/usr/local/Cellar/openblas/[本机所安装的openblas版本号]/include/
make -j4 # 根据机器配备CPU的核心数开启相应的多线程进行编译
* 若您在MacOS系统下从源码编译PaddlePaddle遇到问题时, `这个issue <https://github.com/PaddlePaddle/Paddle/issues/12078>`_ 可能会对您有所帮助。
编译完成后会在build/python/dist目录下生成输出的whl包,可以选在在当前机器安装也可以拷贝到目标机器安装:
编译完成后会在build/python/dist目录下生成输出的whl包,可以选在在当前机器安装也可以拷贝到目标机器安装:
...
@@ -258,13 +315,13 @@ PaddlePaddle需要使用Docker环境完成编译,这样可以免去单独安
...
@@ -258,13 +315,13 @@ PaddlePaddle需要使用Docker环境完成编译,这样可以免去单独安
.. code-block:: bash
.. code-block:: bash
docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_TESTING=ON" -e "RUN_TEST=ON"
paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5
bash -x /paddle/paddle/scripts/paddle_build.sh build
docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_TESTING=ON" -e "RUN_TEST=ON"
docker.paddlepaddlehub.com/paddle:latest-dev
bash -x /paddle/paddle/scripts/paddle_build.sh build
如果期望执行其中一个单元测试,(比如 :code:`test_sum_op` ):
如果期望执行其中一个单元测试,(比如 :code:`test_sum_op` ):
.. code-block:: bash
.. code-block:: bash
docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_TESTING=ON" -e "RUN_TEST=OFF"
paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5
bash -x /paddle/paddle/scripts/paddle_build.sh build
docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_TESTING=ON" -e "RUN_TEST=OFF"
docker.paddlepaddlehub.com/paddle:latest-dev
bash -x /paddle/paddle/scripts/paddle_build.sh build
cd /paddle/build
cd /paddle/build
ctest -R test_sum_op -V
ctest -R test_sum_op -V
...
@@ -338,12 +395,16 @@ PaddlePaddle编译需要使用到下面的依赖(包含但不限于),其
...
@@ -338,12 +395,16 @@ PaddlePaddle编译需要使用到下面的依赖(包含但不限于),其
:header: "依赖", "版本", "说明"
:header: "依赖", "版本", "说明"
:widths: 10, 15, 30
:widths: 10, 15, 30
"CMake", "
>=3.2
", ""
"CMake", "
3.4
", ""
"GCC", "4.8.2", "推荐使用CentOS的devtools2"
"GCC", "4.8.2", "推荐使用CentOS的devtools2"
"Python", "2.7.x", "依赖libpython2.7.so"
"Python", "2.7.x", "依赖libpython2.7.so"
"SWIG", ">=2.0", ""
"wget","",""
"openblas","",""
"pip", ">=9.0", ""
"pip", ">=9.0", ""
"numpy", "", ""
"numpy", "", ""
"SWIG", ">=2.0", ""
"protobuf","3.1.0",""
"wheel","",""
"Go", ">=1.8", "可选"
"Go", ">=1.8", "可选"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录