PaddlePaddle Towards a Deep Learning Compiler for the Cloud_架构师峰会_北京站.pptxVIP

  • 1
  • 0
  • 约2.08千字
  • 约 24页
  • 2023-07-01 发布于北京
  • 举报

PaddlePaddle Towards a Deep Learning Compiler for the Cloud_架构师峰会_北京站.pptx

PaddlePaddle Towards a Deep Learning Compiler于洋Baidu于洋百度资深工程师百度资深工程师 ,从事百度深度学习平台PaddlePaddle开发工作。 2015年天津 大学硕士毕业。之后加入百度后一直从事深度学习系统的研发 ,主要负责深度学 习系统的性能优化和功能开发工作。是PaddlePaddle的主要开发人员之一 ,参与 开发了PaddlePaddle的Fluid模块。PaddlePaddle历史开源前? 百度内部项目? 四年前由徐伟老师发起? 50+百度内部产品使用? 获得两次百度百万美元最高奖开源后? 2016年9月开源? 开源后TechLeader ----- 王益? 新的PythonAPI? 支持浏览器编程 ,云端运行? 深度整合Kubernetes? 发布PaddlePaddle Fluid深度学习框架历史基于层的深度学习 框架用Sequence Of Layer表示神经网络基于Op的深度学习框 架用DAG表示神经网络命令式编程的深度 学习框架使用编程语句表示 神经网络两年前目前四年前深度学习框架历史? 四年时间 ,发展出三代深度学习系统? 深度学习系统表达能力越来越强? Sequence of Layer? 适应CNN? Symbolic Programming paradigm? DAG? 可以适应RNN ,并减少框架核心的代码量? Symbolic Programming paradigm? Imperative programming? 不区分神经网络的配置和执行。? 神经网络边配置边执行。Symbolic 神经网络框架的问题? 缺乏像编程语言般的灵活性? 举例:? RNN会按照展开成多份静态网络? 每份静态的网络只能处理同样形状(Shape)的数据。PyTorch的命令式编程范式? 借用了其他编程语言的控制流? 好处: 框架本身不用关心If/Else, While如何实现? 问题:? 无法序列化网络。不能很好的部署、集群并行。? 性能优化空间小。编译器的主要模块CommonOptimizerMachineCodeSourceCodeFrontendBackendPaddlePaddle-Fluid编译器设计思路PythonFrontendMultiGPU BackendProgramDesc (Nested Block)Cluster BackendFPGA BackendOtherLanguagefrontend…编译阶段与运行阶段分离? 编译阶段描述计算流程? 编译结果是ProgramDesc? 类似编程语言中的AST(抽象语法树)? 设备无关优化在编译阶段完成? 不同执行器后端根据设备特性对Program进行优化、运行Block? PaddlePaddle-Fluid将计算描述成嵌套的Block ,而不是DAG。编程语言PaddlePaddleFor, whileWhileOpIf-Else, SwitchIfElseOp顺序执行指令(Op)序列RNN / LoopIf-else / IfElseOp更强的IfElse/While? 与PyTorch/DyNet实现动态网络的机制不同 ,Fluid实现动态的IfElse/ While操作? 『动态』: 每一个mini-batch中的每条数据的分支都可以不同? 『高效』: 数据自动基于Batch运行 ,无补零PaddlePaddle-Fluid RNN执行流程AvgLossLossLossLossLossLossLossLossLossLossLossFCFCFCFCFCFCFCFCFCFCRNNRNNRNNRNNRNNRNNRNNRNNRNNRNNFCFCFCFC执行器优化: 单设备à多设备…DataDataFCFCFCFCFCFC………………Op执行器优化: Kernel FusionOpOpFusibleOpFused OpOpOp从单机到多机? 本地训练程序编译出中间结果 `Program`? 本地训练程序将中间结果上传给集群Master节点? 集群Master节点将单机`Program`分解变换成集群每个节点需要执行的 程序Model Parallelism从单机到多机WorkerWorkerWorkerProgramData ParallelismWorker Role=PServerWorker Role=PServerWorker Role=PServerProgramProgramWorker Role=TrainerWorker Role=TrainerLaoptopMasterLocal项目信息? Main Repo ? Book? /PaddlePaddle/Paddle ?

文档评论(0)

1亿VIP精品文档

相关文档