Skip to content

PULL REQUEST TEMPLATE REFERENCE

YUNSHEN XIE edited this page Mar 6, 2024 · 4 revisions

PR模板参考内容

一、概述

当我们向PaddlePaddle/Paddle仓库中提交代码时,CheckPRTemplate任务会检测PR描述信息是否符合模板要求,模板主要包含'PR Category'、'PR Types'以及'Description'三项内容;其中,'PR Category'和'PR Types'主要包含内容如下:

二、PR Category分类及描述

PR Category 主要内容
用户体验(User Experience) User Experience是指飞桨深度学习框架中影响用户体验的相关功能。
相关开发内容包含不限于:
* 动态图机制、函数式编程、交互式编程;
* 新增、增强或修改Paddle 公开API;
* 支持用户输入各种数据类型(如 复数/各种int/各种fp)及相关运算;
* 支持用户创建和运算各种Tensor(如(0维/高维Tensor)等;
* 改进行为以符合业界习惯,如 Tensor索引功能和性能完善、支持隐式类型提升、升级Inplace机制以能够批量增加Inplace API 等;
* 单机动态图各种bug fix等。
执行架构(Execute Infrastructure) PIR(Paddle Intermediate Representation)对底层的核心概念如 Operation、Attribute 和 Type 等进行了系统性的抽象,为开发者构建了一套灵活且强大的基础组件。此外,通过引入 Dialect 这一概念,飞桨框架能够全面且分层次地管理各模块对中间表示(IR)的需求,并支持开发者根据特定需求定制化扩展 Dialect,从而显著提升了框架的扩展性和适应性。
相关开发内容包含不限于:
* IR体系,如IR控制流设计,控制流的表达,分析,执行模块等;
* 执行器体系;
* 动静统一,动转静SOT,动转静子图fall back;
* 自动微分机制;
* pass体系建设,执行器策略pass化,pass开发成本降低。
算子机制(Operator Mechanism) 高可复用算子库PHI(Paddle HIgh reusability operator library),主推以配置式算子定义和函数式算子内核组合调用的方式实现新算子。
相关开发内容包含不限于:
* Tensor定义;
* 组合算子机制和策略升级;
* 算子体系、算子定义与Kernel实现;
* 组合算子实现;
* 算子库算子接口标准化。
编译器(CINN) CINN(Compiler Infrastructure for Neural Networks)是一种在不改变模型代码的条件下加速飞桨模型运行速度的深度学习编译器,通过自动融合及自动代码生成技术,提升kernel性能。
相关开发内容包含不限于:
* 编译器架构升级,如架构调整优化后端数据流分析,错误返回相应code,报错信息优化,ShapeDialect等;
* Python DSL提高效率的工具;
* 编译器架构正确性相关的修复完善工作;
* 编译器的有效运行和优化策略等。
硬件接入(Custom Device) 可解耦插件式(Custom Device)硬件接入方式,通过对框架的核心功能与硬件运行时进行分离、框架模块之间的标准接口设计,减少新硬件接入的深度集成工作量的同时,保持多硬件环境组合的灵活性。
相关开发内容包含不限于:
* 硬件接入方案和架构改进;
* 具体硬件的接入实现和调优。
性能优化(Performance Optimization) 主要指针对Nvidia GPU架构进行的与硬件架构紧密相关的功能支持、组件完善、性能优化工作。
相关开发内容包含不限于:
* 执行优化/Pass、软硬协同优化、算子优化(不含编译器);
* 框架自动混合精度(AMP)训练能力建设与完善;
* 算子支持低精度计算;
* Kernel性能优化,包括以性能优化为目的的第三方计算库集成、融合算子开发工作。
分布式策略(Distributed Strategy) 大模型分布式训练相关集合通信策略。
相关开发内容包含不限于:
* 大模型动态图手动并行策略完善和并行性能优化,混合并行策略支持完善和性能优化;
* 大模型训练debug、prof工具;
* 大规模集群训练场景下的缩扩容能力和容错能力的支持。
参数服务器(Parameter Server) 参数服务器PS(Parameter Server)架构和策略。
相关开发内容包含不限于:
* CPUPS,GPUPS和异构PS等,也包含PS和大模型的融合探索工作。
通信库 (Communication Library) 针对底层通信能力封装的框架通信模组。
相关开发内容包含不限于:
* 集合通信,PS通信等不同通信模式对应的通信原语和硬件适配工作。
自动并行(Auto Parallel) 自动并行(Auto Parallel)是指在训练深度学习模型时,系统能够自动地识别并行的机会,并将计算和数据在多个设备或节点上进行分布式执行,以提高训练速度和效率。
相关开发内容包含不限于:
* 动态图半自动并行训练架构;
* 动静统一半自动并行打通,静半架构升级,性能优化和优势体现;
* 全自动并行功能完善,AutoTuner优化;
* 自动并行的分布式能力矩阵评估系统建设;
* 自动弹性扩缩容训练。
推理(Inference) Paddle Inference为飞桨核心框架推理引擎。重点针对服务器端应用场景进行了深度的适配优化,保证飞桨模型在服务器端即训即用,快速部署。
相关开发内容包含不限于:
* 推理架构升级,训推一体&多硬件推理;
* 大模型推理性能性能持续优化,开源细粒度融合高性能推理优化;
* Inference推理基础能力提升,支持高性能多线程异步执行器升级,如默认开启oneDNN加速;
* XPU硬件推理融入飞桨框架,支持更多模型及大模型推理。
安装(Environment Adaptation) Environment Adaptation主要包括在面对不同的运行环境时,能够自动或半自动地进行调整和适应,确保其在各种硬件、软件、网络等环境条件下都能够顺利运行。这包括对编译安装的优化、第三方依赖的管理、对新版本Python的支持、以及对特定硬件架构的适应性等方面的调整和优化工作。
相关开发内容包含不限于:
* 编译安装相关优化,如源码编译效率提升,第三方依赖治理,支持Python 3.12,支持H100(sm90架构)等;
* CI体系建设,如C++单测从链接静态库的方式转变为链接动态库,减小编译体积。
其它(Others) 对于上述分类完全不覆盖或者涉及多个分类不好确定准确分类的,可以选择其它(Others)分类。

三、PR Types分类及描述

PR Types 含义
BC Breaking 不兼容改动
Deprecations 废弃支持
New features 新特性
Improvements 功能提升
Bug fixes bug修复
Performance 性能提升
Docs 文档改动
Devs 框架本身开发的改动
Not User Facing 与用户使用无关的改动
Security 安全相关
Others 其它

更新日期:2024年3月6日

Clone this wiki locally