苹果针对教师推出免费在线编程课
这些实验表明,不用等到每个梯度 tensor 都可用时再启动 AllReduce,DDP 在等待较短的时间并将多个梯度存储到一个 AllReduce 操作中时,就可以实现更高的吞吐量和更短的延迟。 通信重叠计算 在使用分桶的情况下,DDP 只需在启动通信之前在同一个 bucket 中等待所有的内容。在这样的设置下,在反向传播的最后触发 AllReduce 就显得不足了。因此需要对更加频繁的信号做出相应,并且更加迅速地启动 AllReduce。因此,DDP 为每个梯度累加器都注册了 autograd 钩子。
下图 3(a)的示例中,两个竖直轴表示时间,虚线代表梯度准备就绪的时间。进程 1 中,4 个梯度按顺序计算。进程 2 中,g_2 在 g_3 和 g_4 之后计算;图 3(b)的示例中,梯度 g_3 对应的参数在一次迭代中被跳过了,导致 g_3 的就绪信号缺失。 梯度下降 研究者阐述了在 PyTorch 上进行分布式数据并行训练的几种梯度降低技术。DDP 中的梯度下降算法已经有了新的改进。为了介绍当前实现的结构,研究者从一个简单的初始方案(naive solution)开始,逐步介绍更多复杂的版本,最终在 PyTorch v1.5.0 上使用当前版本。 初始方案 DDP 首先校正了所有的训练进程,以保证各个进程:
为了完成第二点,初始方案在进行本地反向传播之后、更新本地参数之前插入了一个梯度同步环节。幸运的是,PyTorch 的 autograd 引擎能够接受定制的 backward 钩子(hook)。DDP 可以注册 autograd 钩子来触发每次反向传播之后的计算。然后,它会使用 AllReduce 聚合通信来号召计算所有进程中每个参数的平均梯度,并且把结果写回梯度 tensor。 初始方案足以完成想要的目标,但存在两项性能缺陷。聚合通信在小型 tensor 上性能表现很差,这种缺陷在带有大量小参数的大型模型上尤为突出。由于两者之间存在界限,分别进行梯度计算和同步化会造成通信重叠计算机会的缺失。 梯度分桶(bucketing ) 梯度分桶的观点是受聚合通信在大型 tensor 上更加高效的启发而提出的。
下图 2(a)和 (b) 给出的定量视图展示了在每个 AllReduce 中参数数目不同的情况下,AllReduce 60M torch 的 float32 参数的完整执行时间: 因此,美国允许台积电恢复为华为代工芯片的可能性并不大。即使有可能恢复,那么大概率也将是有限度的恢复,比如限制使用先进制程等。 虽然,美国的禁令会使得台积电会有不小的损失,但是并不是那么不可替代,要知道台积电的先进制程其实并不缺客户,丢失订单会也会被其他客户所填补。 在今年6月的台积电召开股东大会上,台积电董事长刘德音就可能无法继续向华为供货一事表示,“我们不希望这样的情况发生。”但“如果确实发生了,我们会迅速完成替代……不过还很难预测这种速度到底会有多快”。 值得注意的是,虽然华为在台积电营收中的占比达到了14%,但是台积电更多的营收则是由美系半导体厂商所贡献的。 那么,美国政府后续是否会逐步放开高通等美系半导体厂商对华为的供货? 可能性很大。因为只要华为自研芯片的制造能力被限制住,那么,华为的终端设备当中就很难出现更为先进的自研芯片,此时,华为为了继续生存,那么也将不得不采用第三方的芯片,如果此时开放高通等美系厂商的先进芯片的供应,华为为了使得自身的产品拥有足够的市场竞争力,那么无疑将会导向更具技术优势的一方,而这无疑是符合美国利益的。 去年,华为公司创始人兼总裁任正非在接受外媒采访时就曾表示:“尽管某些领域华为已经开发出可以取而代之的产品,但如果美国政府允许英特尔、高通等公司继续供货,华为会继续向他们购买产品。”而在2018年,华为就曾向高通采购了5000万颗芯片。 如果事情真的会像之前推演的那样发展,那么无疑将影响芯片及终端市场的格局。即,华为先进制程的自研芯片将逐渐消失在市场上,自研芯片业务萎缩,美系芯片厂商在智能手机等终端市场的市占率进一步提升,华为对于美系芯片依赖程度或将进加深。同时,原本此次华为事件中最大受益者的联发科,未来也将面临着来自华为的订单被高通抢走的风险。
不得不说,老美用心险恶,各种限制的最终目的,可能只会给华为留下唯一一条美国希望华为走的“活路”。 (编辑:保山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |