Skip to content

Commit 2f6c97f

Browse files
authored
Cherrypicktodev_1 (#660)
* fix_windows * Final update 1.3 (#653) * thorough clean * delete_DS_Store * update_1.3
1 parent 2c09d17 commit 2f6c97f

File tree

4 files changed

+143
-10
lines changed

4 files changed

+143
-10
lines changed

doc/fluid/advanced_usage/deploy/inference/build_and_install_lib_cn.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
-------------
88

99
.. csv-table:: c++预测库列表
10-
:header: "版本说明", "预测库(1.2版本)", "预测库(develop版本)"
10+
:header: "版本说明", "预测库(1.3版本)", "预测库(develop版本)"
1111
:widths: 1, 3, 3
1212

13-
"cpu_avx_mkl", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/1.2.0-cpu-avx-mkl/fluid_inference.tgz>`_", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/latest-cpu-avx-mkl/fluid_inference.tgz>`_"
14-
"cpu_avx_openblas", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/1.2.0-cpu-avx-openblas/fluid_inference.tgz>`_", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/latest-cpu-avx-openblas/fluid_inference.tgz>`_"
15-
"cpu_noavx_openblas","`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/1.2.0-cpu-noavx-openblas/fluid_inference.tgz>`_", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/latest-cpu-noavx-openblas/fluid_inference.tgz>`_"
16-
"cuda8.0_cudnn5_avx_mkl", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn5-avx-mkl/fluid_inference.tgz>`_", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/latest-gpu-cuda8-cudnn5-avx-mkl/fluid_inference.tgz>`_"
17-
"cuda8.0_cudnn7_avx_mkl","`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/1.2.0-gpu-cuda8-cudnn7-avx-mkl/fluid_inference.tgz>`_", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/latest-gpu-cuda8-cudnn7-avx-mkl/fluid_inference.tgz>`_"
18-
"cuda9.0_cudnn7_avx_mkl", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/1.2.0-gpu-cuda9-cudnn7-avx-mkl/fluid_inference.tgz>`_", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/latest-gpu-cuda9-cudnn7-avx-mkl/fluid_inference.tgz>`_"
13+
"cpu_avx_mkl", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/1.3.0-cpu-avx-mkl/fluid_inference.tgz>`_", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/latest-cpu-avx-mkl/fluid_inference.tgz>`_"
14+
"cpu_avx_openblas", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/1.3.0-cpu-avx-openblas/fluid_inference.tgz>`_", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/latest-cpu-avx-openblas/fluid_inference.tgz>`_"
15+
"cpu_noavx_openblas","`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/1.3.0-cpu-noavx-openblas/fluid_inference.tgz>`_", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/latest-cpu-noavx-openblas/fluid_inference.tgz>`_"
16+
"cuda8.0_cudnn5_avx_mkl", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/1.3.0-gpu-cuda8-cudnn5-avx-mkl/fluid_inference.tgz>`_", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/latest-gpu-cuda8-cudnn5-avx-mkl/fluid_inference.tgz>`_"
17+
"cuda8.0_cudnn7_avx_mkl","`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/1.3.0-gpu-cuda8-cudnn7-avx-mkl/fluid_inference.tgz>`_", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/latest-gpu-cuda8-cudnn7-avx-mkl/fluid_inference.tgz>`_"
18+
"cuda9.0_cudnn7_avx_mkl", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/1.3.0-gpu-cuda9-cudnn7-avx-mkl/fluid_inference.tgz>`_", "`fluid_inference.tgz <https://paddle-inference-lib.bj.bcebos.com/latest-gpu-cuda9-cudnn7-avx-mkl/fluid_inference.tgz>`_"
1919

2020

2121
从源码编译

doc/fluid/beginners_guide/install/compile/compile_Windows.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,6 @@
7777

7878
* 编译**GPU版本PaddlePaddle**:
7979

80-
* 对于需要编译**GPU版本PaddlePaddle**的用户:
81-
8280
For Python2: `cmake .. -G "Visual Studio 14 2015 Win64" -DPYTHON_INCLUDE_DIR=${PYTHON_INCLUDE_DIRS}
8381
-DPYTHON_LIBRARY=${PYTHON_LIBRARY}
8482
-DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}

doc/fluid/beginners_guide/install/install_MacOS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
### 注意事项
1111

1212
* 可以使用`pip -V`(Python版本为2.7)或`pip3 -V`(Python版本为3.5/3.6/3.7),确认pip/pip3版本是否满足要求
13-
* 默认提供的安装包需要计算机支持AVX指令集
13+
* 默认提供的安装包需要计算机支持AVX指令集和MKL
1414

1515
## 选择CPU/GPU
1616

doc/fluid/release_note.rst

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,141 @@
22
版本说明
33
==============
44

5+
Paddle Fluid v1.3
6+
##########################
7+
8+
重要更新
9+
=========
10+
* 统一Executor和ParallelExecutor接口,用户只需通过CompiledProgram将单卡模型转化多卡模型,并利用Executor进行训练或者预测。
11+
* 正式发布AnalysisConfig 预测接口,支持计算图分析、算子融合等优化,并支持利用 Intel MKLDNN、Nvidia TensorRT 子图引擎等第三方库的加速.
12+
* 模型库新增发布PaddlePaddle视频模型库,提供5个视频分类经典模型以及适合视频分类任务的通用骨架代码,用户可一键式高效配置模型完成训练和评测。
13+
* 新增支持NLP语义表示BERT模型,支持多机多卡训练,支持混合精度训练,训练速度对比主流实现提升50%+,提供完整部署示例。
14+
* 大规模稀疏参数服务器Benchmark发布, CPU多机异步训练发布显著提升点击率预估任务IO吞吐的built-in reader,多机多卡训练性能多方面提升。
15+
16+
基础框架
17+
==========
18+
* 安装
19+
* 新增Linux和MacOS下的中文版本辅助安装脚本,提供交互式安装方式,协助用户在复杂环境下快速完成PaddlePaddle安装。
20+
* Windows支持优化:新增cuda8,cudnn7的GPU支持,新增AVX指令集、MKLDNN、mnist数据集支持。修复Windows加载Linux/Mac下同版本paddle训练模型的问题。
21+
* 增加动态图基础功能
22+
* 动态图tracer、 autograd、python Layer/PyLayer,动态图支持MLP、GAN、ptbRNN、Resnet模型,动态图支持Optimizer、GPU训练。
23+
* Executor和ParallelExecutor接口优化
24+
* 对Executor和ParallelExecutor接口进行统一,用户只需通过CompiledProgram将单卡模型转化多卡模型,并利用Executor进行训练或者预测。
25+
* ParallelExecutor优化
26+
对MultiDevSSAGraphBuilder进行重构,使得MultiDevSSAGraphBuilder更易扩展。
27+
去除ParallelExecutor中的设备锁,提升ParallelExecutor多卡调度性能。
28+
* 中间表达IR和Pass方面的优化
29+
* 完善C++ IR graph的python接口以及C++ IR pass的python接口。
30+
* 在framework.py中新增IRGraph类,为在Python层编写IR Pass做准备。
31+
* 新增支持网络无锁更新的Pass。
32+
* 新增QuantizationTransformPass,此为Quantization Aware Training量化模式训练前的图修改操作部分。
33+
* 内存和显存方面的优化
34+
* 新增支持在编译时加入 Jemalloc 作为动态链接库,提升内存管理的性能,降低基础框架内存管理开销
35+
*新增memory optimize,inplace pass, memory pool early deletion等显存优化策略。
36+
* 新增支持网络无锁更新的Pass。
37+
* 新增QuantizationTransformPass,此为Quantization Aware Training量化模式训练前的图修改操作部分。
38+
* Operator整体层面的优化
39+
* 每个op在执行前只做一次scope查询,减少读写锁操作(原来需要做1~5次scope查询)
40+
* 新增Temporary Allocator,减少op中的同步操作
41+
* 新增py_func operator,支持python op接入,用户可以借助py_func Operator快速实现所需要的特有操作
42+
* 重构DDim,Variable Type等,降低基础框架调度开销。
43+
* INTEL FP32计算相关优化
44+
* 优化density_prior_box operator,单op四线程提速3倍。
45+
* 优化Stack operator,单op提速16倍。
46+
* 开发Transpose,Concat和Conv3d三个基于MKLDNN的kernel。
47+
* 修复lrn operator中MKLDNN kernel精度bug,同时单op提速1.3倍。
48+
* 修复MKLDNN初始化占用5G内存的问题,目前初始化占用500MB。
49+
* 减少从MKLDNN OP kernel到非MKLDNN OP kernel时不必要的reorder。
50+
* 完善CPU JitKernel
51+
* sequence pooling 的jitkernel,纯op提升2倍。
52+
* softmax 的jitkernel,纯op提升2倍,同时使得Bert模型CPU预测提升26%。
53+
* 常见的基本逻辑:向量的每个元素求平方kVSquare、矩阵乘法kMatMul、向量的最大值kHMax、向量所有元素的和kHSum。
54+
55+
预测引擎
56+
==========
57+
58+
服务器预测
59+
+++++++++++
60+
* 正式发布AnalysisConfig 预测接口,支持计算图分析、算子融合等优化,并支持利用 Intel MKLDNN、Nvidia TensorRT 子图引擎等第三方库的加速。
61+
* 预发布 intel CPU上的 预测 INT8 离线量化方案
62+
* 开发Conv2D,Pool2D,Quantize,Dequantize四个基于MKL-DNN的INT8 kernel。
63+
* 预发布Calibration的3个核心Python API(paddle.fluid.contrib.Calibrator)。
64+
* 开发Calibration工具,保证FP32和INT8的精度在ResNet-50和MobileNet-V1在ImageNet验证数据集上相差在1%内。
65+
* 支持Intel Xeon CascadeLake Server(VNNI指令)及Intel Xeon SkyLake Server,性能提升约为1.33倍。
66+
* CPU预测速度提升
67+
* fuse sequence pooling concatop,支持N (<200)个sequence_pooling op concat起来组成一个新op,整体使得seqpool模型 CPU预测提升56%。
68+
* fuse 连续重复的fc op为一个大op,使得seqpool模型CPU预测速度提升15%。
69+
* fuse 逻辑为 $$((X * Y).^2 - (X.^2 * Y.^2) ) .* scalar$$ 的op组合 , 使得seqpool模型CPU预测速度提升8.2%。
70+
* 针对输入tensor元素个数为1的情况,优化compare_op的CPU Kernel。
71+
* 新增Paddle-TRT 对Calibration INT8的支持,GPU预测速度提升
72+
* 模型VGG,Resnet50上预测速度达到了Paddle-TRT float32的两倍性能。
73+
* 模型VGG,Resnet50在imagenet数据集上测试,精度下降0.3%以内。
74+
* 算子融合
75+
* 增加 fc和 con 相关两个 fuse,作用于 conv_op CUDNN kernel。
76+
* 新增Conv+Affine Channel的融合pass,Faster RCNN运行的性能提升26.8%。
77+
* 新增Transpose+Flatten+Concat 融合pass,MobilenetSSD模型性能提升15%。
78+
* 实现beam_search operator的CUDA Kernel,并且将相应的top-k、elementwise_add、reshape、log计算融合到beam_search operator中。
79+
* 功能完善及易用性提升
80+
* 新增C++ IR graph的Python接口。
81+
* 新增预测库的Python接口。
82+
* 服务端预测支持从内存加载模型。
83+
* 其他
84+
* 删除legacy V2代码。从1.3版本起,不再支持V1&V2老版本功能。
85+
* 修复Paddle-TRT elementwise-mul模型运行出现问题的bug。
86+
* 修复Paddle-TRT trt_engine stream多个连续输入情况下模型输出结果异常的bug。
87+
88+
移动端预测
89+
+++++++++++
90+
* 效率优化,常见模型预测速度提升
91+
* int8预测支持dequantize和其他op(batch normalization/relu/elementwise add)进行自动kernel融合。
92+
* transpose2 operator对于shuffle channel操作进行优化。
93+
* gru operator使用neon指令进行优化,并针对batch size为1时进行优化。
94+
* 优化和实现pooling,支持任意的padding。
95+
* 优化和实现batch normalization、softmax、elementwise add。
96+
* 新增支持多个输入和多个输出的模型预测。
97+
* 新增实现prelu6 operator、cast operator、top_k operator。
98+
* 修复int8 offline量化溢出结果不对的问题。
99+
* 修复winograd实现在输入feature map的height和width不相等时结果可能为0的bug。
100+
101+
模型建设
102+
==========
103+
* addleCV 智能视觉
104+
* 新增发布PaddlePaddle视频模型库,包括五个视频分类模型:Attention Cluster、NeXtVLAD、LSTM,、stNet、TSN。提供适合视频分类任务的通用骨架代码,包括数据读取和预处理、训练和预测、网络模型以及指标计算等多个模块。用户根据需要添加自己的网络模型,直接复用其他模块的代码,快速部署模型。
105+
* 新增支持目标检测Mask R-CNN模型,效果与主流实现打平。
106+
* 语义分割DeepLabV3+模型,depthwise_conv op融合,显存优化,显存占用对比上一版本减少50%。
107+
* PaddleNLP 智能文本处理
108+
* 新增支持NLP语义表示BERT模型,支持多机多卡训练,支持混合精度训练,训练速度对比主流实现提升50%+,提供完整部署示例。
109+
* 机器翻译Transformer模型优化解码计算,decoder中加入对encoder output计算结果的cache,预测速度提升一倍。
110+
* PaddleRec 智能推荐
111+
* Sequence Semantic Retrieval 新增单机多线程、单机多卡运行示例,添加预测功能、数据预处理优化,完善部署示例。
112+
* GRU4Rec新增负采样功能,使用bpr loss和cross entropy loss的效果与原作打平。
113+
114+
分布式训练
115+
===========
116+
* 大规模稀疏参数服务器Benchmark发布
117+
* 测试真实业务场景下,特征规模百亿、样本平均特征数1k的点击率预估任务,在batch=512情况下,100worker加速比95.0,吞吐量1.56M/s 。
118+
* CPU多机异步训练
119+
* 发布面向点击率预估任务的built-in reader,Criteo数据集下IO总吞吐提升1300%。
120+
* GPU多机多卡水平扩展性能提升
121+
* 新增并行模式:PG(ParallelGraph)、MP(Multi-Process),独立GPU卡之间的计算,提升性能同时,不影响模型精度。
122+
* 在ResNet50模型,单机8卡V100下,PG, MP模式提升训练性能30%以上;4机32卡,PG模式提速46%,MP模式提速60%。
123+
* 在BERT模型,8卡V100下,PG, MP模式提升训练性能26%。
124+
* Multi-Process模式相比Parallel-Graph模式对Reader速度敏感度不高。
125+
* GPU多机多卡垂直扩展性能提升
126+
* 新增功能:fp16和混合精度训练
127+
* Fp16单机单卡加速情况:ResNet50提速约87%,BERT提速约70%。
128+
* BERT同时开启PG和混合精度,单机8卡下单位时间吞吐提升120%。
129+
* ResNet50同时开启混合精度训练和MP模式,在V100单机8卡、4机32卡下,单位时间吞吐提升100%。
130+
* 典型模型收敛速度优化
131+
* 新增功能:动态Batch Size,动态Image Resize方法。
132+
* Resnet50 on Imagenet数据集:训练收敛轮数下降为标准训练方法的1/3左右。
133+
134+
VisualDL
135+
==========
136+
* VisualDL graph支持Paddle fluid保存的模型可视化展示。
137+
138+
139+
5140
Paddle Fluid v1.2
6141
##########################
7142

0 commit comments

Comments
 (0)