this is version 1.6.2

Release Notes

重要更新

  • 报错信息优化
    • 规范并升级Paddle的报错体系,为内部检查增加了声明报错类别的功能,具体地,增加了12种错误类型、以及相应兼容原有体系的用于声明错误类型的接口,解决了Paddle报错无类别的问题。
    • 进一步简化了C++报错信息栈,去掉C++报错信息中由于Place参数引入的大量无用boost模板参数信息,对于Op类报错缩减了50%以上的栈信息,显著提升了有效信息的密度和调试体验。
    • 全量拦截Op获取Kernel类型时由于Tensor未初始化导致内部报错且报错信息晦涩难懂的问题,增加了合理的检查,并辅以清晰明确的报错提示信息,有效提升了调试体验。
    • 进一步优化了Paddle报错信息栈的排版,将开发者书写的错误提示置于Error summary最前方,调整Paddle错误检查模板生成的提示至次行,用Hint字样标明,使用户能够直观看到最重要的错误提示信息,提升了调试体验。
  • DGCMomentumOptimizer完善及bug修复
    • 完善DGC算法流程使其与论文一致,对论文中未涉及的Regularization(Weight Decay)项进行修正,精度已完全对齐baseline。
    • 针对DGC下开启fuse策略会导致DGC失效的问题,添加报错信息引导用户关闭fuse。
    • 修复DGC通信流下临时分配buffer导致的nan及hang住问题。

bug修复

  • 修复one_hot算子中allow_out_of_range参数无效的问题。
  • 修复softmax_with_cross_entropy GPU数值稳定版计算可能出现INF最终导致出现NAN的bug。
  • 修复pool/conv/conv_transpose系列中padding是”SAME”模式时实际padding值计算的bug。
  • 修复expand API报错信息文案中写错类型名字。
  • 修复test_accuracy_op.py和test_zeros_op.py两个错误的报错单测。
  • 修复ParallelExecutor fuse_all_optimizer_ops策略在部分Operator没有GPU kernel时,网络使用脏数据训练导致计算错误的bug。
  • 修复ParallelExecutor fuse_all_optimizer_ops策略在混合精度训练时仍然使策略生效从而导致训练报错退出的易用性问题。
  • 修复elementwise_mod float/double kernel可能计算出负值的问题。
  • 修复custom op编译时mkldnn等头文件未提供问题。
  • 修复batchnorm中用户不能同时使用fuse_with_relu和act参数不能同时使用问题。
  • 修复elementwise_add op MKL-DNN kernel中内存错误(导致人脸模型预测报错)。
  • 修复pool/conv/conv_transpose MKL-DNN kernel中padding是“SAME”模式时实际padding计算的bug。
  • 修复ERNIE-large模型使用MKL-DNN预测报错问题。
  • 修复Gelu grad op在AVX2机器上的精度diff问题。
  • 修复layernorm反向单测问题。
  • 修复训练后量化和训练中量化优化性能在C-API下比较问题。
  • 修复ernie预测中multihead计算的differ问题。
  • 修复GRU OP计算的问题。
  • 修复共享参数模型如retinanet下使用paddle-TensorRT预测时,重复设置cpu weight的报错仍然存在的问题。

Op升级

  • crop_tensor支持参数shape任意元素为-1。
  • maxout、lrn支持输入为NHWC格式。
  • batch_norm momentum参数支持Variable作为输入。
  • AdamOptimizer beta1/beta2参数支持Variable作为输入。
  • conv/conv_transpose/lrn/pool op MKL-DNN kernel 支持前向NHWC计算。
  • 对于conv/conv_transpose/lrn/pool op MKL-DNN kernel 反向无法支持NHWC格式进行报错提示。
  • 提升argsort op的性能,添加descending排序模式。
  • conv_fusion OP 支持非对称padding特性。

性能优化

  • 优化数据规模较大场景下topk op的性能。

预测部署

  • AnalysisPredictorDisableGlogInfo()接口提供屏蔽预测所有日志输出的功能,满足在使用paddle预测库时仅输出用户自定义日志的需求。
  • Paddle预测(包括Paddle-TRT子图)支持NV Jetson硬件,包括nano,tx2,Xavier。
    • 支持Paddle预测在Jetson硬件上的源码编译。
    • 发布1.6.2 Jetson硬件C++预预编译预测lib,官网链接
    • 保持接口的一致性:C++预测接口没有发生变化,在Jetson硬件上使用预测接口同Server端一致。
    • 支持所有Paddle训练产出的模型在Jetson硬件上可使用Paddle原生预测。
    • 支持Paddle-TRT预测在Jetson硬件上的加速。

项目简介

PArallel Distributed Deep LEarning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)

🚀 Github 镜像仓库 🚀

源项目地址

https://github.com/paddlepaddle/paddle

发行版本 60

PaddlePaddle 2.5.0 Release Note

全部发行版

贡献者 246

全部贡献者

开发语言

  • C++ 49.8 %
  • Python 41.0 %
  • Cuda 7.0 %
  • CMake 1.1 %
  • Shell 0.6 %