摘要: 新书出版:《分布式机器学习——系统、工程与实战》 ## 0x01 广告 经过一年多的努力,我的书 《分布式机器学习——系统、工程与实战》终于上架了,在这里打个广告。 ![](https://img2023.cnblogs.com/blog/1850883/202307/1850883-20230719224442070-381968133.jpg) 阅读全文
posted @ 2023-07-21 23:50 罗西的思考 阅读(971) 评论(5) 推荐(2) 编辑
摘要: 前几篇文章我们介绍了 PyTorch 流水线并行的基本知识,自动平衡机制和切分数据等,本文我们结合论文内容来看看如何实现流水线依赖,核心就是如何建立这些小批次之间的跨设备依赖关系。 阅读全文
posted @ 2021-10-07 10:54 罗西的思考 阅读(2118) 评论(4) 推荐(3) 编辑
摘要: Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。Celery 是调用其Worker 组件来完成具体任务处理。前文讲了 Celery 启动过程的前半部分,本文继续后半部分的分析。 阅读全文
posted @ 2021-04-01 21:58 罗西的思考 阅读(668) 评论(0) 推荐(0) 编辑
摘要: Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。本系列将通过源码分析,和大家一起深入学习 Celery。本文是系列第二篇,继续探究 Celery 架构。 阅读全文
posted @ 2021-03-27 10:02 罗西的思考 阅读(1901) 评论(0) 推荐(0) 编辑
摘要: 本文我们主要来看看ParameterServerStrategy如何分发计算,也就是ClusterCoordinator如何运作。这是TF分布式的最后一篇。 阅读全文
posted @ 2022-05-21 11:45 罗西的思考 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 对于 ParameterServerStrategy V2,我们将从几个方面来研究:如何与集群建立连接,如何生成变量,如何获取数据,如何运行。其中,变量和作用域我们在前文已经研究过,运行在 MirroredStrategy 里面也介绍,所以本文主要看看如何使用,如何初始化。在下一篇之中会重点看看如何分发计算。 阅读全文
posted @ 2022-05-14 08:08 罗西的思考 阅读(714) 评论(0) 推荐(1) 编辑
摘要: 本章我们看看 ParameterServerStrategy,就是第一版代码。研究这个是因为目前工业界还有很多公司在使用,而且其内部机制也比较清晰易懂,值得我们分析。 阅读全文
posted @ 2022-05-08 09:12 罗西的思考 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 前一篇我们分析了MirroredStrategy 的基本架构和如何更新变量,本文我们来看看 MirroredStrategy 如何运行。具体希望了解的是,MirroredStrategy 通过什么方式在远端设备节点上运行训练方法(如何分发计算),MirroredStrategy 和我们之前分析的 TF 运行时怎么联系起来?和 master,worker 这些概念怎么联系起来? 阅读全文
posted @ 2022-04-26 08:03 罗西的思考 阅读(533) 评论(0) 推荐(1) 编辑
摘要: MirroredStrategy 策略通常用于在一台机器上用多个GPU进行训练。其主要难点就是:如何更新 Mirrored 变量?如何分发计算?本文我们看看其总体思路和如何更新变量。 阅读全文
posted @ 2022-04-19 18:37 罗西的思考 阅读(1132) 评论(0) 推荐(0) 编辑
摘要: 在 TensorFlow 之中,分布式变量是在多个设备上创建的变量。Mirrored variable 和 SyncOnRead variable 是两个例子。本文就对分布式变量进行分析。 阅读全文
posted @ 2022-04-14 17:44 罗西的思考 阅读(881) 评论(0) 推荐(0) 编辑
摘要: 我们接下来介绍TensorFlow分布式Strategy的基础,本文会先看看Strategy的类体系和如何处理数据,下一篇看看如何处理变量。 阅读全文
posted @ 2022-04-12 14:21 罗西的思考 阅读(1157) 评论(1) 推荐(0) 编辑
摘要: 本文以两篇官方文档为基础来学习TensorFlow如何进行分布式训练,借此进入Strategy世界。 阅读全文
posted @ 2022-04-10 09:50 罗西的思考 阅读(1000) 评论(1) 推荐(1) 编辑
摘要: 当计算图在设备之间划分之后,跨设备的 PartitionGraph 之间可能存在着数据依赖关系,因此 TF 在它们之间插入 Send/Recv 节点,这样就完成数据交互。而在分布式模式之中,Send/Recv 通过 RpcRemoteRendezvous 完成数据交换,所以我们需要先看看 TF 之中的数据交换机制 Rendezvous。 阅读全文
posted @ 2022-04-06 15:52 罗西的思考 阅读(860) 评论(1) 推荐(0) 编辑