百度Paddle Fluid v1.3版本官方重磅更新

业界首个视频分类模型库

新增视频模型库,提供5个视频分类经典模型以及适合视频分类任务的通用骨架代码,用户可一键式高效配置模型完成训练和评测。

视频理解权威竞赛ActivityNet- Kinetics视频动作识别任务冠军方法stNet的resnet50版本开源实现。

基于PaddlePaddle的BERT多机多卡和混合精度训练

新增支持NLP语义表示BERT模型,支持多机多卡训练,支持混合精度训练,训练速度对比主流实现提升50%+,提供完整部署示例。

分布式训练性能大幅提升

大规模稀疏参数服务器Benchmark发布, CPU多机异步训练发布显著提升点击率预估任务IO吞吐的built-in reader,多机多卡训练性能多方面提升。

下面将Paddle Fluid v1.3版本所发布的内容,全面介绍给广大开发者:

重要更新

统一Executor和ParallelExecutor接口,用户只需通过CompiledProgram将单卡模型转化多卡模型,并利用Executor进行训练或者预测。

正式发布AnalysisConfig 预测接口,支持计算图分析、算子融合等优化,并支持利用 Intel MKLDNN、Nvidia     TensorRT 子图引擎等第三方库的加速.

模型库新增发布PaddlePaddle视频模型库,提供5个视频分类经典模型以及适合视频分类任务的通用骨架代码,用户可一键式高效配置模型完成训练和评测。

新增支持NLP语义表示BERT模型,支持多机多卡训练,支持混合精度训练,训练速度对比主流实现提升50%+,提供完整部署示例。

大规模稀疏参数服务器Benchmark发布, CPU多机异步训练发布显著提升点击率预估任务IO吞吐的built-in     reader,多机多卡训练性能多方面提升。

新增支持Intel Deep     Learning Boost(VNNI指令集)。在新一代的Intel Xeon     Scalable Processor上,使用这个特性的一些模型,INT8预测性能可以达到FP32的2倍。

基础框架

安装

新增Linux和MacOS下的中文版本辅助安装脚本,提供交互式安装方式,协助用户在复杂环境下快速完成PaddlePaddle安装。

Windows支持优化:新增cuda8,cudnn7的GPU支持,新增AVX指令集、MKLDNN、mnist数据集支持。修复Windows加载Linux/Mac下同版本paddle训练模型的问题。

增加动态图基础功能

动态图tracer、 autograd、python      Layer/PyLayer,动态图支持MLP、GAN、ptbRNN、Resnet模型,动态图支持Optimizer、GPU训练。

Executor和ParallelExecutor接口优化

对Executor和ParallelExecutor接口进行统一,用户只需通过CompiledProgram将单卡模型转化多卡模型,并利用Executor进行训练或者预测。

ParallelExecutor优化对MultiDevSSAGraphBuilder进行重构,使得MultiDevSSAGraphBuilder更易扩展。去除ParallelExecutor中的设备锁,提升ParallelExecutor多卡调度性能。

中间表达IR和Pass方面的优化

完善C++ IR graph的python接口以及C++ IR      pass的python接口。

在framework.py中新增IRGraph类,为在Python层编写IR Pass做准备。

新增支持网络无锁更新的Pass。

新增QuantizationTransformPass,此为Quantization      Aware Training量化模式训练前的图修改操作部分。

内存和显存方面的优化

新增支持在编译时加入 Jemalloc 作为动态链接库,提升内存管理的性能,降低基础框架内存管理开销

新增memory      optimize,inplace pass, memory pool early deletion等显存优化策略。

新增支持网络无锁更新的Pass。

新增QuantizationTransformPass,此为Quantization      Aware Training量化模式训练前的图修改操作部分。

Operator整体层面的优化

每个op在执行前只做一次scope查询,减少读写锁操作(原来需要做1~5次scope查询)

新增Temporary      Allocator,减少op中的同步操作

新增py_func      operator,支持python op接入,用户可以借助py_func      Operator快速实现所需要的特有操作

重构DDim,Variable     Type等,降低基础框架调度开销。

INTEL FP32计算相关优化

优化density_prior_box      operator,单op四线程提速3倍。

优化Stack      operator,单op提速16倍。

开发Transpose,Concat和Conv3d三个基于MKLDNN的kernel。

修复lrn      operator中MKLDNN kernel精度bug,同时单op提速1.3倍。

修复MKLDNN初始化占用5G内存的问题,目前初始化占用500MB。

减少从MKLDNN OP      kernel到非MKLDNN OP kernel时不必要的reorder。

完善CPU     JitKernel

sequence pooling 的jitkernel,纯op提升2倍。

softmax 的jitkernel,纯op提升2倍,同时使得Bert模型CPU预测提升26%。

常见的基本逻辑:向量的每个元素求平方kVSquare、矩阵乘法kMatMul、向量的最大值kHMax、向量所有元素的和kHSum。

预测引擎

服务器预测

正式发布AnalysisConfig 预测接口,支持计算图分析、算子融合等优化,并支持利用 Intel MKLDNN、Nvidia     TensorRT 子图引擎等第三方库的加速。

预发布 intel CPU上的 预测 INT8 离线量化方案

开发Conv2D,Pool2D,Quantize,Dequantize四个基于MKL-DNN的INT8      kernel。

预发布Calibration的3个核心Python      API(paddle.fluid.contrib.Calibrator)。

开发Calibration工具,保证FP32和INT8的精度在ResNet-50和MobileNet-V1在ImageNet验证数据集上相差在1%内。

支持Intel      Xeon CascadeLake Server(VNNI指令)及Intel      Xeon SkyLake Server,性能提升约为1.33倍。

CPU预测速度提升

fuse sequence pooling concatop,支持N      (<200)个sequence_pooling op concat起来组成一个新op,整体使得seqpool模型 CPU预测提升56%。

fuse 连续重复的fc op为一个大op,使得seqpool模型CPU预测速度提升15%。

fuse 逻辑为((X * Y).^2      - (X.^2 * Y.^2) ) .* scalar的op组合 , 使得seqpool模型CPU预测速度提升8.2%。

针对输入tensor元素个数为1的情况,优化compare_op的CPU      Kernel。

新增Paddle-TRT 对Calibration INT8的支持,GPU预测速度提升

模型VGG,Resnet50上预测速度达到了Paddle-TRT float32的两倍性能。

模型VGG,Resnet50在imagenet数据集上测试,精度下降0.3%以内。

算子融合

增加 fc和 con 相关两个 fuse,作用于 conv_op CUDNN kernel。

新增Conv+Affine      Channel的融合pass,Faster RCNN运行的性能提升26.8%。

新增Transpose+Flatten+Concat 融合pass,MobilenetSSD模型性能提升15%。

实现beam_search      operator的CUDA Kernel,并且将相应的top-k、elementwise_add、reshape、log计算融合到beam_search operator中。

功能完善及易用性提升

新增C++ IR graph的Python接口。

新增预测库的Python接口。

服务端预测支持从内存加载模型。

其他

删除legacy V2代码。从1.3版本起,不再支持V1&V2老版本功能。

修复Paddle-TRT      elementwise-mul模型运行出现问题的bug。

修复Paddle-TRT      trt_engine stream多个连续输入情况下模型输出结果异常的bug。

移动端预测

效率优化,常见模型预测速度提升

int8预测支持dequantize和其他op(batch      normalization/relu/elementwise add)进行自动kernel融合。

transpose2      operator对于shuffle channel操作进行优化。

gru operator使用neon指令进行优化,并针对batch size为1时进行优化。

优化和实现pooling,支持任意的padding。

优化和实现batch normalization、softmax、elementwise      add。

新增支持多个输入和多个输出的模型预测。

新增实现prelu6     operator、cast operator、top_k     operator。

修复int8     offline量化溢出结果不对的问题。

修复winograd实现在输入feature     map的height和width不相等时结果可能为0的bug。

模型建设

PaddleCV 智能视觉

新增发布PaddlePaddle视频模型库,包括五个视频分类模型:Attention Cluster、NeXtVLAD、LSTM,、stNet、TSN。提供适合视频分类任务的通用骨架代码,包括数据读取和预处理、训练和预测、网络模型以及指标计算等多个模块。用户根据需要添加自己的网络模型,直接复用其他模块的代码,快速部署模型。

新增支持目标检测Mask R-CNN模型,效果与主流实现打平。

语义分割DeepLabV3+模型,depthwise_conv      op融合,显存优化,显存占用对比上一版本减少40%。

PaddleNLP 智能文本处理

新增支持NLP语义表示BERT模型,支持多机多卡训练,支持混合精度训练,训练速度对比主流实现提升50%+,提供完整部署示例。

机器翻译Transformer模型优化解码计算,decoder中加入对encoder      output计算结果的cache,预测速度提升一倍。

PaddleRec 智能推荐

Sequence Semantic Retrieval 新增单机多线程、单机多卡运行示例,添加预测功能、数据预处理优化,完善部署示例。

GRU4Rec新增负采样功能,使用bpr loss和cross      entropy loss的效果与原作打平。

分布式训练

大规模稀疏参数服务器Benchmark发布

测试真实业务场景下,特征规模百亿、样本平均特征数1k的点击率预估任务,在batch=512情况下,100worker加速比90.5,吞吐量1.36M/s 。

CPU多机异步训练

发布面向点击率预估任务的built-in      reader,Criteo数据集下IO总吞吐提升1300%。

GPU多机多卡水平扩展性能提升

新增并行模式:PG(ParallelGraph)、MP(Multi-Process),独立GPU卡之间的计算,提升性能同时,不影响模型精度。

在ResNet50模型,单机8卡V100下,PG, MP模式提升训练性能30%以上;4机32卡,PG模式提速46%,MP模式提速60%。

在BERT模型,8卡V100下,PG, MP模式提升训练性能26%。

Multi-Process模式相比Parallel-Graph模式对Reader速度敏感度不高。

GPU多机多卡垂直扩展性能提升

新增功能:fp16和混合精度训练

Fp16单机单卡加速情况:ResNet50提速约87%,BERT提速约70%。

BERT同时开启PG和混合精度,单机8卡下单位时间吞吐提升120%。

ResNet50同时开启混合精度训练和MP模式,在V100单机8卡、4机32卡下,单位时间吞吐提升100%。

典型模型收敛速度优化

新增功能:动态Batch Size,动态Image      Resize方法。

Resnet50 on      Imagenet数据集:训练收敛轮数下降为标准训练方法的1/3左右。

VisualDL

VisualDL graph支持Paddle     fluid保存的模型可视化展示。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,829评论 1 331
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,603评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,846评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,600评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,780评论 3 272
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,695评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,136评论 2 293
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,862评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,453评论 0 229
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,942评论 2 233
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,347评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,790评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,293评论 3 221
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,839评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,448评论 0 181
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,564评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,623评论 2 249

推荐阅读更多精彩内容

  • 一、 序 看一粒沙中的世界, 一朵野花中的天堂。 把无限握于掌中, 把永恒握于瞬间。 ...
    Despacito_998d阅读 782评论 0 2
  • 昨天在武志红老师的《你就是答案》一书中看到了一个有趣的观点: 区分想象、行为与后果 武老师讲到要学会区分想象、行为...
    柚子Yock阅读 579评论 0 2