Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Crayon鑫
Paddle
提交
fa1e9042
P
Paddle
项目概览
Crayon鑫
/
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看板
提交
fa1e9042
编写于
11月 06, 2017
作者:
T
typhoonzero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
put files to platlib
上级
2e74cf46
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
175 addition
and
151 deletion
+175
-151
paddle/scripts/docker/build.sh
paddle/scripts/docker/build.sh
+172
-149
python/CMakeLists.txt
python/CMakeLists.txt
+1
-0
python/setup.py.in
python/setup.py.in
+2
-2
未找到文件。
paddle/scripts/docker/build.sh
浏览文件 @
fa1e9042
...
...
@@ -2,170 +2,193 @@
set
-xe
# Set BASE_IMAGE according to env variables
if
[[
${
WITH_GPU
}
==
"ON"
]]
;
then
BASE_IMAGE
=
"nvidia/cuda:8.0-cudnn5-runtime-ubuntu16.04"
else
BASE_IMAGE
=
"ubuntu:16.04"
fi
DOCKERFILE_GPU_ENV
=
""
DOCKERFILE_CUDNN_DSO
=
""
if
[[
${
WITH_GPU
:-
OFF
}
==
'ON'
]]
;
then
DOCKERFILE_GPU_ENV
=
"ENV LD_LIBRARY_PATH /usr/lib/x86_64-linux-gnu:
${
LD_LIBRARY_PATH
}
"
DOCKERFILE_CUDNN_DSO
=
"RUN ln -s /usr/lib/x86_64-linux-gnu/libcudnn.so.5 /usr/lib/x86_64-linux-gnu/libcudnn.so"
fi
mkdir
-p
/paddle/build
cd
/paddle/build
# build script will not fail if *.deb does not exist
rm
*
.deb 2>/dev/null
||
true
# delete previous built whl packages
rm
-rf
/paddle/paddle/dist 2>/dev/null
||
true
cat
<<
EOF
========================================
Configuring cmake in /paddle/build ...
-DCMAKE_BUILD_TYPE=Release
-DWITH_DOC=OFF
-DWITH_GPU=
${
WITH_GPU
:-
OFF
}
-DWITH_MKLDNN=
${
WITH_MKLDNN
:-
ON
}
-DWITH_MKLML=
${
WITH_MKLML
:-
ON
}
-DWITH_AVX=
${
WITH_AVX
:-
OFF
}
-DWITH_GOLANG=
${
WITH_GOLANG
:-
ON
}
-DWITH_SWIG_PY=ON
-DWITH_C_API=
${
WITH_C_API
:-
OFF
}
-DWITH_PYTHON=
${
WITH_PYTHON
:-
ON
}
-DWITH_SWIG_PY=
${
WITH_SWIG_PY
:-
ON
}
-DCUDNN_ROOT=/usr/
-DWITH_STYLE_CHECK=
${
WITH_STYLE_CHECK
:-
ON
}
-DWITH_TESTING=
${
WITH_TESTING
:-
ON
}
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
========================================
EOF
# Disable UNITTEST_USE_VIRTUALENV in docker because
# docker environment is fully controlled by this script.
# See /Paddle/CMakeLists.txt, UNITTEST_USE_VIRTUALENV option.
cmake ..
\
-DCMAKE_BUILD_TYPE
=
Release
\
-DWITH_DOC
=
OFF
\
-DWITH_GPU
=
${
WITH_GPU
:-
OFF
}
\
-DWITH_MKLDNN
=
${
WITH_MKLDNN
:-
ON
}
\
-DWITH_MKLML
=
${
WITH_MKLML
:-
ON
}
\
-DWITH_AVX
=
${
WITH_AVX
:-
OFF
}
\
-DWITH_GOLANG
=
${
WITH_GOLANG
:-
ON
}
\
-DWITH_SWIG_PY
=
${
WITH_SWIG_PY
:-
ON
}
\
-DWITH_C_API
=
${
WITH_C_API
:-
OFF
}
\
-DWITH_PYTHON
=
${
WITH_PYTHON
:-
ON
}
\
-DCUDNN_ROOT
=
/usr/
\
-DWITH_STYLE_CHECK
=
${
WITH_STYLE_CHECK
:-
ON
}
\
-DWITH_TESTING
=
${
WITH_TESTING
:-
ON
}
\
-DCMAKE_EXPORT_COMPILE_COMMANDS
=
ON
cat
<<
EOF
============================================
Building in /paddle/build ...
============================================
EOF
make
-j
`
nproc
`
function
cmake_gen
()
{
# Set BASE_IMAGE according to env variables
if
[[
${
WITH_GPU
}
==
"ON"
]]
;
then
BASE_IMAGE
=
"nvidia/cuda:8.0-cudnn5-runtime-ubuntu16.04"
else
BASE_IMAGE
=
"ubuntu:16.04"
fi
DOCKERFILE_GPU_ENV
=
""
DOCKERFILE_CUDNN_DSO
=
""
if
[[
${
WITH_GPU
:-
OFF
}
==
'ON'
]]
;
then
DOCKERFILE_GPU_ENV
=
"ENV LD_LIBRARY_PATH /usr/lib/x86_64-linux-gnu:
${
LD_LIBRARY_PATH
}
"
DOCKERFILE_CUDNN_DSO
=
"RUN ln -s /usr/lib/x86_64-linux-gnu/libcudnn.so.5 /usr/lib/x86_64-linux-gnu/libcudnn.so"
fi
mkdir
-p
/paddle/build
cd
/paddle/build
# build script will not fail if *.deb does not exist
rm
*
.deb 2>/dev/null
||
true
# delete previous built whl packages
rm
-rf
/paddle/paddle/dist 2>/dev/null
||
true
if
[
${
WITH_TESTING
:-
ON
}
==
"ON"
]
&&
[
${
RUN_TEST
:-
OFF
}
==
"ON"
]
;
then
cat
<<
EOF
========================================
Running unit tests ...
========================================
cat
<<
EOF
========================================
Configuring cmake in /paddle/build ...
-DCMAKE_BUILD_TYPE=Release
-DWITH_DOC=OFF
-DWITH_GPU=
${
WITH_GPU
:-
OFF
}
-DWITH_MKLDNN=
${
WITH_MKLDNN
:-
ON
}
-DWITH_MKLML=
${
WITH_MKLML
:-
ON
}
-DWITH_AVX=
${
WITH_AVX
:-
OFF
}
-DWITH_GOLANG=
${
WITH_GOLANG
:-
ON
}
-DWITH_SWIG_PY=ON
-DWITH_C_API=
${
WITH_C_API
:-
OFF
}
-DWITH_PYTHON=
${
WITH_PYTHON
:-
ON
}
-DWITH_SWIG_PY=
${
WITH_SWIG_PY
:-
ON
}
-DCUDNN_ROOT=/usr/
-DWITH_STYLE_CHECK=
${
WITH_STYLE_CHECK
:-
ON
}
-DWITH_TESTING=
${
WITH_TESTING
:-
ON
}
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
========================================
EOF
ctest
--output-on-failure
# make install should also be test when unittest
make
install
-j
`
nproc
`
pip
install
/usr/local/opt/paddle/share/wheels/
*
.whl
paddle version
fi
if
[[
${
WITH_DOC
:-
OFF
}
==
"ON"
]]
;
then
# Disable UNITTEST_USE_VIRTUALENV in docker because
# docker environment is fully controlled by this script.
# See /Paddle/CMakeLists.txt, UNITTEST_USE_VIRTUALENV option.
cmake ..
\
-DCMAKE_BUILD_TYPE
=
Release
\
-DPYTHON_EXECUTABLE
:FILEPATH
=
/opt/python/cp27-cp27mu/bin/python
\
-DPYTHON_INCLUDE_DIR
:PATH
=
/opt/python/cp27-cp27mu/include
\
-DPYTHON_LIBRARIES
:FILEPATH
=
/opt/_internal/cpython-2.7.11-ucs4/lib/libpython2.7.so
\
-DWITH_DOC
=
OFF
\
-DWITH_GPU
=
${
WITH_GPU
:-
OFF
}
\
-DWITH_MKLDNN
=
${
WITH_MKLDNN
:-
ON
}
\
-DWITH_MKLML
=
${
WITH_MKLML
:-
ON
}
\
-DWITH_AVX
=
${
WITH_AVX
:-
OFF
}
\
-DWITH_GOLANG
=
${
WITH_GOLANG
:-
ON
}
\
-DWITH_SWIG_PY
=
${
WITH_SWIG_PY
:-
ON
}
\
-DWITH_C_API
=
${
WITH_C_API
:-
OFF
}
\
-DWITH_PYTHON
=
${
WITH_PYTHON
:-
ON
}
\
-DCUDNN_ROOT
=
/usr/
\
-DWITH_STYLE_CHECK
=
${
WITH_STYLE_CHECK
:-
ON
}
\
-DWITH_TESTING
=
${
WITH_TESTING
:-
ON
}
\
-DCMAKE_EXPORT_COMPILE_COMMANDS
=
ON
}
function
run_build
()
{
cat
<<
EOF
========================================
Building documentation ...
In /paddle/build_doc
========================================
============================================
Building in /paddle/build ...
============================================
EOF
mkdir
-p
/paddle/build_doc
pushd
/paddle/build_doc
cmake ..
\
-DWITH_DOC
=
ON
\
-DWITH_GPU
=
OFF
\
-DWITH_AVX
=
${
WITH_AVX
:-
ON
}
\
-DWITH_SWIG_PY
=
ON
\
-DWITH_STYLE_CHECK
=
OFF
make
-j
`
nproc
`
gen_proto_py
make
-j
`
nproc
`
paddle_docs paddle_docs_cn
popd
fi
if
[[
${
WOBOQ
:-
OFF
}
==
'ON'
]]
;
then
make
-j
`
nproc
`
}
function
run_test
()
{
if
[
${
WITH_TESTING
:-
ON
}
==
"ON"
]
&&
[
${
RUN_TEST
:-
OFF
}
==
"ON"
]
;
then
cat
<<
EOF
========================================
Converting C++ source code into HTML ...
========================================
========================================
Running unit tests ...
========================================
EOF
ctest
--output-on-failure
# make install should also be test when unittest
make
install
-j
`
nproc
`
pip
install
/usr/local/opt/paddle/share/wheels/
*
.whl
paddle version
fi
}
function
gen_docs
()
{
if
[[
${
WITH_DOC
:-
OFF
}
==
"ON"
]]
;
then
cat
<<
EOF
========================================
Building documentation ...
In /paddle/build_doc
========================================
EOF
export
WOBOQ_OUT
=
/paddle/build/woboq_out
mkdir
-p
$WOBOQ_OUT
cp
-rv
/woboq/data
$WOBOQ_OUT
/../data
/woboq/generator/codebrowser_generator
\
-b
/paddle/build
\
-a
\
-o
$WOBOQ_OUT
\
-p
paddle:/paddle
/woboq/indexgenerator/codebrowser_indexgenerator
$WOBOQ_OUT
fi
cat
<<
EOF
========================================
Generate /paddle/build/Dockerfile ...
========================================
mkdir
-p
/paddle/build_doc
pushd
/paddle/build_doc
cmake ..
\
-DWITH_DOC
=
ON
\
-DWITH_GPU
=
OFF
\
-DWITH_AVX
=
${
WITH_AVX
:-
ON
}
\
-DWITH_SWIG_PY
=
ON
\
-DWITH_STYLE_CHECK
=
OFF
make
-j
`
nproc
`
gen_proto_py
make
-j
`
nproc
`
paddle_docs paddle_docs_cn
popd
fi
if
[[
${
WOBOQ
:-
OFF
}
==
'ON'
]]
;
then
cat
<<
EOF
========================================
Converting C++ source code into HTML ...
========================================
EOF
export
WOBOQ_OUT
=
/paddle/build/woboq_out
mkdir
-p
$WOBOQ_OUT
cp
-rv
/woboq/data
$WOBOQ_OUT
/../data
/woboq/generator/codebrowser_generator
\
-b
/paddle/build
\
-a
\
-o
$WOBOQ_OUT
\
-p
paddle:/paddle
/woboq/indexgenerator/codebrowser_indexgenerator
$WOBOQ_OUT
fi
}
cat
>
/paddle/build/Dockerfile
<<
EOF
FROM
${
BASE_IMAGE
}
MAINTAINER PaddlePaddle Authors <paddle-dev@baidu.com>
ENV HOME /root
function
gen_dockerfile
()
{
cat
<<
EOF
========================================
Generate /paddle/build/Dockerfile ...
========================================
EOF
if
[[
-n
${
APT_MIRROR
}
]]
;
then
cat
>>
/paddle/build/Dockerfile
<<
EOF
RUN sed -i '
${
APT_MIRROR
}
' /etc/apt/sources.list
cat
>
/paddle/build/Dockerfile
<<
EOF
FROM
${
BASE_IMAGE
}
MAINTAINER PaddlePaddle Authors <paddle-dev@baidu.com>
ENV HOME /root
EOF
fi
if
[[
${
WITH_GPU
}
==
"ON"
]]
;
then
NCCL_DEPS
=
"apt-get install -y libnccl-dev &&"
else
NCCL_DEPS
=
""
fi
cat
>>
/paddle/build/Dockerfile
<<
EOF
ADD python/dist/*.whl /
# run paddle version to install python packages first
RUN apt-get update &&
\
${
NCCL_DEPS
}
\
apt-get install -y wget python-pip && pip install -U pip &&
\
pip install /*.whl; apt-get install -f -y &&
\
apt-get clean -y &&
\
rm -f /*.whl &&
\
paddle version &&
\
ldconfig
${
DOCKERFILE_CUDNN_DSO
}
${
DOCKERFILE_GPU_ENV
}
ADD go/cmd/pserver/pserver /usr/bin/
ADD go/cmd/master/master /usr/bin/
# default command shows the paddle version and exit
CMD ["paddle", "version"]
if
[[
-n
${
APT_MIRROR
}
]]
;
then
cat
>>
/paddle/build/Dockerfile
<<
EOF
RUN sed -i '
${
APT_MIRROR
}
' /etc/apt/sources.list
EOF
fi
if
[[
${
WITH_GPU
}
==
"ON"
]]
;
then
NCCL_DEPS
=
"apt-get install -y libnccl-dev &&"
else
NCCL_DEPS
=
""
fi
cat
>>
/paddle/build/Dockerfile
<<
EOF
ADD python/dist/*.whl /
# run paddle version to install python packages first
RUN apt-get update &&
\
${
NCCL_DEPS
}
\
apt-get install -y wget python-pip && pip install -U pip &&
\
pip install /*.whl; apt-get install -f -y &&
\
apt-get clean -y &&
\
rm -f /*.whl &&
\
paddle version &&
\
ldconfig
${
DOCKERFILE_CUDNN_DSO
}
${
DOCKERFILE_GPU_ENV
}
ADD go/cmd/pserver/pserver /usr/bin/
ADD go/cmd/master/master /usr/bin/
# default command shows the paddle version and exit
CMD ["paddle", "version"]
EOF
}
set
+xe
cmake_gen
run_build
run_test
gen_docs
gen_dockerfile
printf
"If you need to install PaddlePaddle in develop docker image,"
printf
"please make install or pip install build/python/dist/*.whl.
\n
"
python/CMakeLists.txt
浏览文件 @
fa1e9042
...
...
@@ -44,6 +44,7 @@ add_custom_target(copy_paddle_pybind ALL DEPENDS ${PADDLE_SOURCE_DIR}/python/pad
add_custom_command
(
OUTPUT
${
PADDLE_PYTHON_BUILD_DIR
}
/.timestamp
COMMAND touch stub.cc
COMMAND env
${
py_env
}
${
PYTHON_EXECUTABLE
}
setup.py bdist_wheel
COMMAND
${
CMAKE_COMMAND
}
-E touch
${
PADDLE_PYTHON_BUILD_DIR
}
/.timestamp
COMMAND
${
CMAKE_COMMAND
}
-E remove_directory
${
PADDLE_PYTHON_BUILD_DIR
}
/lib-python
...
...
python/setup.py.in
浏览文件 @
fa1e9042
from setuptools import setup, Distribution
from setuptools import setup, Distribution
, Extension
class BinaryDistribution(Distribution):
def has_ext_modules(foo):
return True
...
...
@@ -41,6 +41,7 @@ setup(name='paddlepaddle',
description='Parallel Distributed Deep Learning',
install_requires=setup_requires,
packages=packages,
ext_modules=[Extension('_foo', ['stub.cc'])],
package_data={
'paddle.v2.master': ['libpaddle_master.so'],
'paddle.v2.framework': ['core.so'],
...
...
@@ -54,6 +55,5 @@ setup(name='paddlepaddle',
'py_paddle': '${PADDLE_SOURCE_DIR}/paddle/py_paddle'
},
scripts=paddle_bins,
distclass=BinaryDistribution,
data_files=[(paddle_rt_lib_dir, paddle_rt_libs)]
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录