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