这篇博客介绍了分布式并行训练策略,包括 Data Parallelism (DP), Zero Redundancy Optimizer (Zero), Pipeline Parallelism (PP) 和 Tensor Parallelism (TP)。
这篇文章主要介绍了 PyTorch 设备 copy的细节,包含D2H/H2D和D2D(在同一设备与不同设备上)等内容。
在proxy lab中,我们构建了一个简单的web proxy,包含多线程处理并发请求和一个LRU cache快速返回静态资源。
本文深入探讨了 PyTorch 中的数据类型提升(dtype promotion)机制,包含 promotion 的基本规则、scalar 如何被 wrapped 成 tensor、TensorIterator 在计算数据类型时的作用等细节。
在本文中,我们将深入探讨 PyTorch 中的结构化内核(Structured Kernel)和张量迭代器(TensorIterator),包括在Structured Kernel中的meta
、impl
函数及 TensorIterator 的构建和算子计算调用的过程。
本文介绍了 Pytorch 的编译功能,我们从代码示例开始展示使用编译对代码执行的加速效果,随后补充介绍了pytorch FX
相关基础知识,最后整体介绍了 TorchDynamo相关内容,包括对 Python 字节码的调整、Guard
、Cache
等。
本文探讨了Cuda **流(Stream)的基本概念、并行执行和多GPU同步策略。我们分析了使用多个Cuda流的优势,以及如何通过Cuda事件(Event)**确保任务同步,利用Cuda流优化程序性能。
本文提供了一个关于PyTorch分布式训练能力的全面概述,涵盖了torch.distributed
的核心组件,深入探讨了Distributed Data-Parallel Training (DDP)、RPC-Based Distributed Training、Collective Communication (c10d) 等内容。
在malloc lab中,我们将开发我们自己的malloc
、free
、realloc
函数。通过这个实验,我们能更好理解内存布局与管理,并在空间利用率和时间效率上做权衡,实现一套高效内存管理机制。
这篇文章介绍了pytorch broadcast机制的基本概念与开发细节,包含前向和反向的详细计算过程。