<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>DP on zzudongxiang</title><link>https://www.zzudongxiang.com/tags/dp/</link><description>Recent content in DP on zzudongxiang</description><generator>Hugo</generator><language>zh-cn</language><copyright>2026 zzudongxiang.com · 豫ICP备2022012018号-1 · 豫公网安备41160202000614号</copyright><lastBuildDate>Mon, 01 Apr 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://www.zzudongxiang.com/tags/dp/index.xml" rel="self" type="application/rss+xml"/><item><title>3D并行（3D Parallelism）</title><link>https://www.zzudongxiang.com/posts/3d-parallelism/</link><pubDate>Mon, 01 Apr 2024 00:00:00 +0000</pubDate><guid>https://www.zzudongxiang.com/posts/3d-parallelism/</guid><description>&lt;div&gt;
&lt;blockquote&gt;
&lt;p&gt;参考文献：&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 14.4px"&gt;Narayanan D, Shoeybi M, Casper J, et al. Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM: SC&amp;rsquo; 21, November 14-19, 2021, St. Louis, MO, USA&lt;/p&gt;
\[C\]&lt;p&gt;, 2021. ACM, 2021-01-01.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;单一的MP或DP无法硬度继续增长的大模型算力需求，面对成千上万的GPU集群规模增长，结合TP、PP、DP等多种方式组成3D Parallelism的并行方式逐渐成为了主流的并行计算框架。&lt;/p&gt;
&lt;h2 id="1-基于megatron-lm"&gt;1. 基于Megatron-LM&lt;/h2&gt;
&lt;h3 id="11-研究背景"&gt;1.1 研究背景&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;单一的DP、TP、PP方法无法满足日益增长的模型参数量，因此提出一种基于多种并行方法的PTD-P并行技术。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-实现方法"&gt;1.2 实现方法&lt;/h3&gt;
&lt;img src="images/image-usvb.png" style="display: inline-block;width:80.0%" /&gt;
&lt;p&gt;图. 默认的Pipeline调度（上）和插值的Pipeline调度（下）&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;对每个设备上运行的网络层进行进一步拆分，每个子集称为一个Chunk，在图（下）中用深色和浅色两种颜色表示&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;假设一共4个Device，每个Device可以分为4层（例如：在Device 1上运行1~4层，Device 2上运行5-8），则可以将每个设备的计算过程分为两个Chunk（每个Chunk需要计算两层网络）例如：Device 1对应1，2，9，10四层，Device 2对应3，4，11，12四层。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;以Device 3为例，为什么运行完Chunk 2的Batch2后需要Wait，而不是直接运行Batch 3？只是为了展示插值的概念？&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="13-实验结论"&gt;1.3 实验结论&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;提出一种插值Pipeline调度算法，实现在3072个GPU上训练1T参数的训练，总体算力达到502PFLOPS，单个GPU的算力达到了理论峰值的52%。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;相比较ZeRO-3（不带MP），因为减少了通信量，在175B和530B规模的大模型上效果要好70%&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;插值Pipeline调度算法可以增加计算密集度，但是对通信的开销也会增加&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;PP在较大的模型上效率更高，效果更好，TP的并行方式会增加不同设备之间的通信量&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;重算技术只是一个为了平衡内存与算力之间可选的技术，会降低内存消耗，但同时也会增加1/3的算力消耗&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;高度的MP可能会导致较小的矩阵乘运算，降低GPU的利用率&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="14-实验数据"&gt;1.4 实验数据&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;本文对PTD-P模型中，GPU数量、全局Batch Size、Microbatch Size、Bubble Time、Throughput等多个参量进行多角度多变量讨论&lt;/p&gt;</description></item><item><title>数据并行（Data Parallelism）</title><link>https://www.zzudongxiang.com/posts/data-parallelism/</link><pubDate>Mon, 01 Apr 2024 00:00:00 +0000</pubDate><guid>https://www.zzudongxiang.com/posts/data-parallelism/</guid><description>&lt;div&gt;
&lt;blockquote&gt;
&lt;p&gt;参考文献：&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 14.4px"&gt;Team D, Majumder R, President V, et al. DeepSpeed: Extreme-scale model training for everyone&lt;/p&gt;
\[J\]&lt;p&gt;. Microsoft, 2020.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 14.4px"&gt;Rajbhandari S, Rasley J, Ruwase O, et al. ZeRO: Memory optimizations Toward Training Trillion Parameter Models&lt;/p&gt;
\[C\]&lt;p&gt;, 2020. IEEE, 2020-01-01.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Ren J, Rajbhandari S, Aminabadi R Y, et al. ZeRO-Offload: Democratizing Billion-Scale Model Training&lt;/p&gt;
\[J\]&lt;p&gt;. &lt;a href="http://arXiv.org" rel="noopener noreferrer nofollow" target="_blank"&gt;arXiv.org&lt;/a&gt;, 2021.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 14.4px"&gt;Rajbhandari S, Ruwase O, Rasley J, et al. ZeRO-Infinity: Breaking the GPU MemoryWall for Extreme Scale Deep Learning: SC&amp;rsquo; 21, November 14–19, 2021, St. Louis, MO, USA&lt;/p&gt;</description></item><item><title>异构集群（Heterogeneous Clusters）</title><link>https://www.zzudongxiang.com/posts/heterogeneous-clusters/</link><pubDate>Mon, 01 Apr 2024 00:00:00 +0000</pubDate><guid>https://www.zzudongxiang.com/posts/heterogeneous-clusters/</guid><description>&lt;div&gt;
&lt;h1 id="1-heterog"&gt;1. HeteroG&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;参考文献：&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 14.4px"&gt;Yi X, Zhang S, Luo Z, et al. Optimizing Distributed Training Deployment in Heterogeneous GPU Clusters: Proceedings of the 16th International Conference on emerging Networking EXperiments and Technologies&lt;/p&gt;
\[C\]&lt;p&gt;, Barcelona, Spain, 2020. Association for Computing Machinery.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;一个集群中的GPU型号和性能可能都有所不同，但是在并行计算的时候往往假设每个参与并行的设备算力都是相等的，但是实际上由许多不同型号的GPU组成的集群仍然存在，为了解决这个问题，有相关的研究者提出了&lt;code&gt;HeteroG&lt;/code&gt;方法，在异构集群上实现有效率的并行计算。&lt;/p&gt;
&lt;img src="images/image-lqrb.png" style="display: inline-block;width:50.0%" /&gt;
&lt;p&gt;图. HeteroG的工作流程图&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;首先对开发者构建的网络进行分析，根据模型的需要决定是否需要进行MP&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;然后根据策略将模型分发到各个设备上进行开销测试（Profiler）和仿真计算（Simulator）然后根据这个测试结果指定相应的并行策略（Strategy Maker）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;完成策略制定后重新对网络图进行重新编译（根据MP和DP的测算结果决定）然后开始并行计算&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;这个工作主要由一个经过训练的神经网络完成&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最终实验结果证明与当前其他的并行策略相比，在异构集群的并行计算上有222%的性能提升。&lt;/p&gt;
&lt;/div&gt;</description></item></channel></rss>