文献阅读(247)AIpa

  • 题目:Alpa: Automating Inter- and Intra-Operator Parallelism for Distributed Deep Learning
  • 时间:2022
  • 会议:OSDI
  • 研究机构:UCB

传统的DNN并行策略: 现有的分布式训练系统要么需要用户手动创建并行化计划,要么需要用户从有限的模型并行化配置空间中自动生成并行化计划

  • 数据并行:将模型复制多份,数据集分配到不同的设备上
  • 运算符并行:将某个op沿non-batch axes分配到多个设备上
  • 流水线并行:不同的op或stage分配到不同的设备上,彼此间流水线

在这里插入图片描述

本篇论文的主要贡献: :本篇论文将分布式训练分成了inter-operator并行和intra-operator并行。

  • We construct a two-level parallel execution plan space where plans are specified hierarchically using interand intra-operator parallelisms.

  • We design tractable optimization algorithms to derive near-optimal execution plans at each level.

  • We implement Alpa, a compiler system for distributed DL on GPU clusters. Alpa features:
    (1) a set of compilation passes that generate execution plans using the hierarchical optimization algorithms,
    (2) a new runtime architecture that orchestrates the inter-op parallelism between device meshes, and
    (3) a number of system optimizations that improve compilation and address cross-mesh communication

  • intra-operator parallelism: 硬件利用率更高,但每次训练迭代中需要在拆分和合并时进行通信

  • inter-operator parallelism: 只需要在相邻计算阶段之间需要通信,但数据依赖可能导致设备的空闲时间

在这里插入图片描述

下图中,红色箭头表示慢速连接上的发送/接收,绿色箭头表示快速连接上的全收集。
(a)在Megatron-LM中,针对equal mesh shape的scatter-gather优化
(b)用于unequal mesh shape的发送/接收
©uequal mesh shape上的local all-gather
在这里插入图片描述


  • 题目:On Optimizing the Communication of Model Parallelism
  • 时间:2022
  • 会议:MLsys
  • 研究机构:UCB

Neither intra-op parallelism nor inter-op parallelism alone suffices to train large models. In practice, they must be combined to support large models like GPT-3.
单独的intra-op parallelism或inter-op parallelism都不足以训练大型模型,它们必须结合起来支持大型模型,如GPT-3
This combined strategy is implemented in many model-parallel systems by first partitioning the computational graph using inter-op parallelism then sharding each stage using intra-op parallelism.
这种组合策略在许多模型并行系统使用,首先inter-op parallelism划分计算图,然后intra-op parallelism划分每个stage
Specifically, the graph is first partitioned into multiple stages. Each stage is assigned to a group of devices, referred to as a device mesh, sliced from the cluster.
计算图被分成多个stage,每个stage被分配给一组设备,称为设备网格,
Operators and tensors of a stage are parallelized over that stage’s assigned mesh following a chosen intra-op parallelism plan; collective communication happens only across devices within each mesh.
一个stage的算子和张量按照选择的intra-op parallelism在该stage分配的mesh上并行化,集合通信仅发生在每个mesh内的设备之间。
At the boundary of any two adjacent stages, communication is required to exchange tensors between their meshes.
在任意两个相邻的stage处,需要进行通信以在网格之间交换张量。
Unlike inter-op parallelism, the tensor might have been sharded with different layouts on the source and destination meshes – in which case, communication involves not only transferring the tensor, but also performing tensor layout conversion between the source and destination groups of devices.
与inter-op parallelism不同,张量可能在源和目标网格上以不同的布局进行分割,在这种情况下,通信不仅涉及传输张量,还涉及在源和目标设备组之间执行张量布局转换
We call this communication pattern cross-mesh resharding, which is the focus of this paper.
我们称这种通信模式为跨网格重共享,这是本文的重点。

一般的cross-mesh resharding问题可以分解为多个单元通信任务,每个单元通信任务负责发送一个data slice,我们将原始问题构建为一个两级优化问题:

  • 单个单元通信任务的优化,对此使用广播以达到最佳性能。
  • cross-mesh resharding中多单元通信任务的负载平衡和调度。

集群设置:节点之间是全连接拓扑,独立的发送/接收带宽(全双工)

在这里插入图片描述
每个cross-mesh resharding包括多个单元通信任务。这些任务可能会在发送方和接收方设备上重叠,并影响彼此的性能。因此,为了优化cross-mesh resharding的总完成时间,我们将该问题视为负载平衡和调度问题,需要:
(1)通过在发送方设备和主机间通信链路上平均分配通信工作负载来平衡负载,以避免拥塞和掉队;
(2)调度分配给一个特定设备的不同任务的顺序,以最小化由于不可用的发送器/接收器而导致的等待

  • 最直接的算法:将每个任务分配给sender’s host中的第一个(即最低索引)设备发送。我们按照任意的全局顺序安排所有的任务
  • 仅考虑负载平衡的算法:将每个任务分配给当前工作负载最轻的sender’s host
  • 带剪枝的深度优先搜索:对于每台host,为该host上的所有send/recv任务分配一个执行顺序,且该任务有指数级的复杂度
  • 随机贪婪搜索:对所有要调度的任务进行随机排序,迭代并选择与先前选择的任务不重叠的任务。我们多次重复这个过程,并为迭代选择最大的候选集。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/5113.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

测试笔记:接口测试

目录1.接口(1)接口概念(2)接口类型2、接口风格(1)传统风格(2)RESTful风格接口3、接口测试(1)接口测试是什么(2)接口测试原理&#xff…

Node.js学习笔记——fs模块

fs全称为file system,称之为文件系统,是Node.js中的内置模块,可以对计算机中的磁盘进行操作。 本章节会介绍如下操作: 文件写入文件读取文件移动与重命名文件删除文件夹操作查看资源状态 一、文件写入 文件写入就是将数据保存…

利用nginx实现动静分离的负载均衡集群实战

前言 大家好,我是沐风晓月,今天我们利用nginx来作为负载,实现两台apache服务器的动静分离集群实战; 本文收录于沐风晓月的专栏《linux基本功-系统服务实战》,更多内容可以关注我的博客: https://blog.csd…

Visual Studio 2015 + cmake编译QT5程序

概述 由于QT的集成开发环境QTCreate,在代码调试功能上远不及Visual Studio方便,因此,在Windows平台,可以使用Visual Studio来开发调试QT程序,本文章就主要介绍下,如何使用CMAKE编译QT5程序,并使…

【JAVA真的没出路了吗?】

2023年了,转行IT学习Java是不是已经听过看过很多次了。随之而来的类似学Java没出路、Java不行了、对Java感到绝望等等一系列的制造焦虑的话题也在网上层出不穷,席卷了一大片的对行业不了解的吃瓜群众或是正在学习中的人。如果是行外人真的会被这种言论轻…

【教程】使用ChatGPT制作基于Tkinter的桌面时钟

目录 描述 代码 效果 说明 下载 描述 给ChatGPT的描述内容: python在桌面上显示动态的文字,不要显示窗口边框。窗口背景和标签背景都是透明的,但标签内的文字是有颜色。使用tkinter库实现,并以class的形式书写,方…

GPS时间序列分析---剔除跳跃点,拟合时间序列

通常利用GPS时间序列进行数据分析时,会遇到大地震的发生,这个时候会导致GPS的观测结果出现很大的跳跃值,这对后续的数据处理和分析带来了困难。这里分享一个最近了解的,可以用于处理这一问题的工具包---TSAnalyzer。下面主要介绍该…

Adobe:当创意工作遇上生成式AI

放眼全球IT行业,当前最炙手可热的领域是什么?答案显然只有一个:因为ChatGPT而火爆全球的生成式AI(Artificial Intelligence Generated Content,简称AIGC),又称人工智能生成内容。那么当创意设计…

再学一下Feign的原理

简介 Feign是Spring Cloud Netflix组件中的一个轻量级Restful的HTTP服务客户端,它简化了服务间调用的方式。 Feign是一个声明式的web service客户端.它的出现使开发web service客户端变得更简单.使用Feign只需要创建一个接口加上对应的注解, 比如FeignClient注解。…

Go分布式爬虫学习笔记(十四)

文章目录14_context为什么需要Context?级联退出Context 的使用方法。context.ValuecontextContext 最佳实践Context 底层原理14_context Never start a goroutine without knowing how it will stop。 如果你不知道协程如何退出,就不要使用它。 为什么需要Context?…

家政服务系统APP小程序需具备哪些功能?

由于工作忙碌或者是懒人经济作祟,现代人对于家政服务的需求直线上升。而且互联网技术深入生活的方方面面,让上门家政服务系统开发成为很多线下家政公司转型互联网的方式,那么开发一款家政服务系统APP小程序需具备哪些功能呢? …

逻辑回归 算法推导与基于Python的实现详解

文章目录1 逻辑回归概述2 逻辑回归公式推导与求解2.1 公式推导2.2公式求解3 基于Python的实现3.1可接收参数3.2 完整代码示例1 逻辑回归概述 逻辑回归(Logistic Regression)是一种用于分类问题的统计学习方法。它基于线性回归的原理,通过将线…

【软考——系统架构师】架构、系分、软设的区别和联系

🔎这里是【软考——系统架构师】,关注我考试轻松过线 👍如果对你有帮助,给博主一个免费的点赞以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 文章目录👀三科相同点👀三科不同点--上午题&am…

CISAW-CISDR灾难备份与恢复专业级认证

证书样板: 认证机构 中国网络安全审查技术与认证中心(英文缩写为:CCRC,原为中国信息安全认证中心)于 2006 年由中央机构编制委员会办公室批准成立,为国家市场监督管理总局直属事业单位。依据《网络安全法》 《网络安…

Java每日一练(20230401)

目录 1. 合并K个升序链表 🌟🌟🌟 2. 最长有效括号 🌟🌟🌟 3. 分割回文串 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 …

Linux系统一键安装最新内核并开启 BBR 脚本

本脚本适用环境 系统支持:CentOS 6,Debian 8,Ubuntu 16 虚拟技术:OpenVZ 以外的,比如 KVM、Xen、VMware 内存要求:≥128M 更新日期:2022 年 5 月 11 日 关于本脚本 1、本脚本已在 蓝易云 上…

后端Springboot框架搭建APi接口开发(第二章)

上一章我讲述了如何使用Mybatis操作数据库。这一章我讲述如何利用Sptring框架搭建API接口 第一节:封装SqlSessionFactory工具类 在API操作数据库大量调用SqlSessionFactory,因此应将SqlSessionFactory封装成工具类供方法随时调用 在文件结构中的util文…

前端直接生成GIF动态图实践

前言去年在博客中发了两篇关于GIF动态生成的博客,GIF图像动态生成-JAVA后台生成和基于FFmpeg的Java视频Mp4转GIF初探,在这两篇博客中都是采用JAVA语言在后台进行转换。使用JAVA的同学经过自己的改造和开发也可以应用在项目上。前段时间有朋友私下问&…

MySQL主从复制、读写分离(MayCat2)实现数据同步

文章目录1.MySQL主从复制原理。2.实现MySQL主从复制(一主两从)。3.基于MySQL一主两从配置,完成MySQL读写分离配置。(MyCat2)1.MySQL主从复制原理。 MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据…

设计模式之门面模式(C++)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、门面模式是什么? 门面模式是一种结构型的软件设计模式,也叫外观模式,它提供了统一的接口去…