Skip to content

Commit aa2f2fb

Browse files
committed
remove conflict
2 parents a6ef875 + 0a8addf commit aa2f2fb

File tree

370 files changed

+4488
-3062
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

370 files changed

+4488
-3062
lines changed

RELEASE.cn.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,62 @@
1+
# v0.11.0版本
2+
3+
## PaddlePaddle Fluid
4+
5+
- PaddlePaddle发布版本v0.11.0包含一个新的特性*PaddlePaddle Fluid*. Fluid 是设计用来让用户像Pytorch和Tensorflow Eager Execution一样执行程序。在这些系统中,不再有*模型*这个概念,应用也不再包含一个用于描述Operator图或者一系列层的符号描述,而是像通用程序那样描述训练或者预测的过程。而Fluid与PyTorch或Eager Execution的区别在于Fluid不依赖Python提供的控制流,例如 if-else-then或者for,而是提供了基于C++实现的控制流并暴露了对应的用with语法实现的Python接口。例如:
6+
7+
https://github.com/PaddlePaddle/Paddle/blob/3df78ed2a98d37f7ae6725894cc7514effd5664b/python/paddle/v2/fluid/tests/test_while_op.py#L36-L44
8+
9+
- 在v0.11.0版本中,我们提供了一个C++类`Executor`用于运行一个Fluid程序。Executor类似一个解释器。在未来的版本中,我们将提升和优化Executor成为一个调试器,就像GDB。并可能提供一些编译器,这个编译器会读取一个上文所描述的应用然后编译成一个等价的
10+
源代码,这个源代码可以被nvcc编译成可以使用CUDA的二进制,或者被icc编译成可以充分利用Intel CPU的二进制。
11+
12+
13+
## 新特点
14+
15+
* 发布 `PaddlePaddle Fluid`
16+
* 增加了用于模型预测的C-API。
17+
* 用Fluid API实现了一个简单的GAN的例子。
18+
* 增加了关于性能调优的文档。
19+
*`paddle.v2.dataset`下载数据集提供了重试机制.
20+
* C++中使用protobuf-lite替换protobuf减少了二进制的大小。
21+
* 发布了新特性 [Elastic Deep Learning (EDL)](https://github.com/PaddlePaddle/cloud/tree/develop/doc/autoscale/experiment).
22+
* 基于Bazel API利用cmake实现了一个的新的构建系统函数库。
23+
* 当使用编译选项`WITH_MKL=ON`时自动下载和编译Intel® [MKLML](https://github.com/01org/mkl-dnn/releases/download/v0.11/mklml_lnx_2018.0.1.20171007.tgz) 函数库.
24+
* [Intel® MKL-DNN on PaddlePaddle](https://github.com/PaddlePaddle/Paddle/tree/develop/doc/design/mkldnn):
25+
- 完成了 11个 MKL-DNN 层: Convolution, Fully connectivity, Pooling, ReLU, Tanh, ELU, Softmax, BatchNorm, AddTo, Concat, LRN。
26+
- 完成了 3个 MKL-DNN 网络: VGG-19, ResNet-50, GoogleNet
27+
- 基于Intel Skylake 6148 CPU的[性能测试](https://github.com/PaddlePaddle/Paddle/blob/develop/benchmark/IntelOptimizedPaddle.md) : 相对于MKLML有2~3倍的训练加速。
28+
* 增加 [softsign activation](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/activation.html#softsign)
29+
* 增加 [dot product layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#dot-prod)
30+
* 增加 [L2 distance layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#l2-distance)
31+
* 增加 [sub-nested sequence layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#sub-nested-seq)
32+
* 增加 [kmax sequence score layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#kmax-sequence-score)
33+
* 增加 [sequence slice layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#seq-slice)
34+
* 增加 [row convolution layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#row-conv)
35+
* 增加移动端友好的网页
36+
37+
## 改进
38+
39+
* 使用一个Python`whl`包即可安装.
40+
* [V2 API可以实现用户定制化评估](https://github.com/PaddlePaddle/models/tree/develop/ltr#训练过程中输出自定义评估指标)
41+
*`PADDLE_ONLY_CPU` 改为 `PADDLE_WITH_GPU`, 因为我们会支持多种设备。
42+
* 删除了有一些bug的BarrierStat。
43+
* 清理和删除了paddle::Parameter中未使用的函数。
44+
* 删除了ProtoDataProvider。
45+
* Huber loss同时支持回归和分类。
46+
* 为sequence pooling 层增加`stride`参数。
47+
* v2 API自动使用cudnn batch normalization。
48+
* 可以使用一个固定的参数名共享BN层的参数。
49+
* 2D convolution operation支持variable-dimension input特性。
50+
* 重构cmake中关于CUDA的部分并实现自动检测GPU架构的功能。
51+
* 优化网页导航。
52+
53+
## 错误修复
54+
55+
* 修复ROI pooling的Bug. cc9a761
56+
* 修复当label是dense vector是AUC变成0的问题. #5274
57+
* 修复WarpCTC 层的Bug.
58+
59+
160
# v0.10.0版本
261

362
我们非常高兴发布了PaddlePaddle V0.10.0版,并开发了新的[Python API](http://research.baidu.com/paddlepaddles-new-api-simplifies-deep-learning-programs/)

RELEASE.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,75 @@
1+
# Release v0.11.0
2+
3+
## PaddlePaddle Fluid
4+
5+
- Release 0.11.0 includes a new feature *PaddlePaddle Fluid*. Fluid is
6+
designed to allow users to program like PyTorch and TensorFlow Eager Execution.
7+
In these systems, there is no longer the concept *model* and applications
8+
do not include a symbolic description of a graph of operators nor a sequence
9+
of layers. Instead, applications look exactly like a usual program that
10+
describes a process of training or inference. The difference between
11+
Fluid and PyTorch or Eager Execution is that Fluid doesn't rely on Python's
12+
control-flow, `if-then-else` nor `for`. Instead, Fluid provides its
13+
C++ implementations and their Python binding using the `with` statement. For an example
14+
15+
https://github.com/PaddlePaddle/Paddle/blob/3df78ed2a98d37f7ae6725894cc7514effd5664b/python/paddle/v2/fluid/tests/test_while_op.py#L36-L44
16+
17+
- In 0.11.0, we provides a C++ class `Executor` to run a Fluid program.
18+
Executor works like an interpreter. In future version, we will improve
19+
`Executor` into a debugger like GDB, and we might provide some compilers,
20+
which, for example, takes an application like the above one, and outputs
21+
an equivalent C++ source program, which can be compiled using
22+
[`nvcc`](http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html)
23+
to generate binaries that use CUDA, or using
24+
[`icc`](https://software.intel.com/en-us/c-compilers) to generate binaries
25+
that make full use of Intel CPUs.
26+
27+
## New Features
28+
29+
* Release `PaddlePaddle Fluid`.
30+
* Add C-API for model inference
31+
* Use fluid API to create a simple GAN demo.
32+
* Add develop guide about performance tunning.
33+
* Add retry when download `paddle.v2.dataset`.
34+
* Linking protobuf-lite not protobuf in C++. Reduce the binary size.
35+
* Feature [Elastic Deep Learning (EDL)](https://github.com/PaddlePaddle/cloud/tree/develop/doc/autoscale/experiment) released.
36+
* A new style cmake functions for Paddle. It is based on Bazel API.
37+
* Automatically download and compile with Intel® [MKLML](https://github.com/01org/mkl-dnn/releases/download/v0.11/mklml_lnx_2018.0.1.20171007.tgz) library as CBLAS when build `WITH_MKL=ON`.
38+
* [Intel® MKL-DNN on PaddlePaddle](https://github.com/PaddlePaddle/Paddle/tree/develop/doc/design/mkldnn):
39+
- Complete 11 MKL-DNN layers: Convolution, Fully connectivity, Pooling, ReLU, Tanh, ELU, Softmax, BatchNorm, AddTo, Concat, LRN.
40+
- Complete 3 MKL-DNN networks: VGG-19, ResNet-50, GoogleNet
41+
- [Benchmark](https://github.com/PaddlePaddle/Paddle/blob/develop/benchmark/IntelOptimizedPaddle.md) on Intel Skylake 6148 CPU: 2~3x training speedup compared with MKLML.
42+
* Add the [`softsign` activation](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/activation.html#softsign).
43+
* Add the [dot product layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#dot-prod).
44+
* Add the [L2 distance layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#l2-distance).
45+
* Add the [sub-nested sequence layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#sub-nested-seq).
46+
* Add the [kmax sequence score layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#kmax-sequence-score).
47+
* Add the [sequence slice layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#seq-slice).
48+
* Add the [row convolution layer](http://www.paddlepaddle.org/docs/develop/documentation/zh/api/v2/config/layer.html#row-conv)
49+
* Add mobile friendly webpages.
50+
51+
## Improvements
52+
53+
* Build and install using a single `whl` package.
54+
* [Custom evaluating in V2 API](https://github.com/PaddlePaddle/models/tree/develop/ltr#训练过程中输出自定义评估指标).
55+
* Change `PADDLE_ONLY_CPU` to `PADDLE_WITH_GPU`, since we will support many kinds of devices.
56+
* Remove buggy BarrierStat.
57+
* Clean and remove unused functions in paddle::Parameter.
58+
* Remove ProtoDataProvider.
59+
* Huber loss supports both regression and classification.
60+
* Add the `stride` parameter for sequence pooling layers.
61+
* Enable v2 API use cudnn batch normalization automatically.
62+
* The BN layer's parameter can be shared by a fixed the parameter name.
63+
* Support variable-dimension input feature for 2D convolution operation.
64+
* Refine cmake about CUDA to automatically detect GPU architecture.
65+
* Improved website navigation.
66+
67+
## Bug Fixes
68+
69+
* Fix bug in ROI pooling. cc9a761
70+
* Fix AUC is zero when label is dense vector. #5274
71+
* Fix bug in WarpCTC layer.
72+
173
# Release v0.10.0
274

375
We are glad to release version 0.10.0. In this version, we are happy to release the new

benchmark/IntelOptimizedPaddle.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ On each machine, we will test and compare the performance of training on single
1919
## Benchmark Model
2020

2121
### Server
22+
23+
#### Training
2224
Test on batch size 64, 128, 256 on Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
2325

2426
Input image size - 3 * 224 * 224, Time: images/second
@@ -53,5 +55,33 @@ Input image size - 3 * 224 * 224, Time: images/second
5355

5456
<img src="figs/googlenet-cpu-train.png" width="500">
5557

58+
#### Inference
59+
Test on batch size 1, 2, 4, 8, 16 on Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
60+
- VGG-19
61+
62+
| BatchSize | 1 | 2 | 4 | 8 | 16 |
63+
|-----------|-------|-------|-------|-------|-------|
64+
| OpenBLAS | 1.07 | 1.08 | 1.06 | 0.88 | 0.65 |
65+
| MKLML | 5.58 | 9.80 | 15.15 | 21.21 | 28.67 |
66+
| MKL-DNN | 75.07 | 88.64 | 82.58 | 92.29 | 96.75 |
67+
68+
- ResNet-50
69+
70+
| BatchSize | 1 | 2 | 4 | 8 | 16 |
71+
|-----------|-------|--------|--------|--------|--------|
72+
| OpenBLAS | 3.35 | 3.19 | 3.09 | 2.55 | 1.96 |
73+
| MKLML | 6.33 | 12.02 | 22.88 | 40.53 | 63.09 |
74+
| MKL-DNN | 107.83| 148.84 | 177.78 | 189.35 | 217.69 |
75+
76+
77+
- GoogLeNet
78+
79+
| BatchSize | 1 | 2 | 4 | 8 | 16 |
80+
|-----------|--------|--------|--------|--------|--------|
81+
| OpenBLAS | 12.04 | 11.31 | 10.00 | 9.07 | 4.34 |
82+
| MKLML | 22.74 | 41.56 | 81.22 | 133.47 | 210.53 |
83+
| MKL-DNN | 175.10 | 272.92 | 450.70 | 512.00 | 600.94 |
84+
85+
5686
### Laptop
5787
TBD

cmake/cblas.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ if(WITH_MKLML AND MKLML_INC_DIR AND MKLML_LIB)
1717
set(CBLAS_INC_DIR ${MKLML_INC_DIR})
1818
set(CBLAS_LIBRARIES ${MKLML_LIB})
1919

20-
add_definitions(-DPADDLE_USE_MKLML)
20+
add_definitions(-DPADDLE_WITH_MKLML)
2121
add_definitions(-DLAPACK_FOUND)
2222

2323
message(STATUS "Found cblas and lapack in MKLML "

cmake/external/mkldnn.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,5 @@ ADD_LIBRARY(mkldnn SHARED IMPORTED GLOBAL)
6767
SET_PROPERTY(TARGET mkldnn PROPERTY IMPORTED_LOCATION ${MKLDNN_LIB})
6868
ADD_DEPENDENCIES(mkldnn ${MKLDNN_PROJECT})
6969
MESSAGE(STATUS "MKLDNN library: ${MKLDNN_LIB}")
70-
add_definitions(-DPADDLE_USE_MKLDNN)
70+
add_definitions(-DPADDLE_WITH_MKLDNN)
7171
LIST(APPEND external_project_dependencies mkldnn)

doc/howto/dev/contribute_to_paddle_cn.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,18 +76,18 @@ no changes added to commit (use "git add" and/or "git commit -a")
7676

7777
## 构建和测试
7878

79-
编译 PaddlePaddle 的源码以及生成文档需要多种开发工具。为了方便大家,我们的标准开发流程是把这些工具都装进一个Docker image,称为*开发镜像*,通常名字是 `paddle:dev`。然后所有用 `cmake && make` 的地方(比如IDE配置里)都用 `docker run paddle:dev`来代替。
79+
编译 PaddlePaddle 的源码以及生成文档需要多种开发工具。为了方便大家,我们的标准开发流程是把这些工具都装进一个Docker image,称为*开发镜像*,通常名字是 `paddle:latest-dev` 或者 `paddle:[version tag]-dev``paddle:0.11.0-dev`。然后所有用 `cmake && make` 的地方(比如IDE配置里)都用 `docker run paddle:latest-dev`来代替。
8080

8181
如要build这个开发镜像,在源码目录树的根目录中运行:
8282

8383
```bash
84-
➜ docker build -t paddle:dev .
84+
➜ docker build -t paddle:latest-dev .
8585
```
8686

8787
随后可以用这个开发镜像开始build PaddlePaddle的源码。比如如果要build一个不依赖GPU,但是支持AVX指令集,并且包括unit tests的PaddlePaddle,可以:
8888

8989
```bash
90-
➜ docker run -v $(pwd):/paddle -e "WITH_GPU=OFF" -e "WITH_AVX=ON" -e "WITH_TEST=ON" paddle:dev
90+
➜ docker run -v $(pwd):/paddle -e "WITH_GPU=OFF" -e "WITH_AVX=ON" -e "WITH_TESTING=ON" paddle:latest-dev
9191
```
9292

9393
这个过程除了编译PaddlePaddle为 `./build/libpaddle.so`,并且输出一个 `./build/paddle.deb`文件之外,还会输出一个 `build/Dockerfile`。我们只需要运行下面命令把编译好的PaddlePaddle打包成一个*生产镜像*`paddle:prod`):
@@ -99,7 +99,7 @@ no changes added to commit (use "git add" and/or "git commit -a")
9999
如果要运行所有的单元测试,可以用如下命令:
100100

101101
```bash
102-
➜ docker run -it -v $(pwd):/paddle paddle:dev bash -c "cd /paddle/build && ctest"
102+
➜ docker run -it -v $(pwd):/paddle paddle:latest-dev bash -c "cd /paddle/build && ctest"
103103
```
104104

105105
关于构建和测试的更多信息,请参见[这篇文档](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/getstarted/build_and_install/docker_install_cn.rst)

0 commit comments

Comments
 (0)