
集合通信
文章平均质量分 85
爱串门的小马驹
ai分布式,通信,大模型,人工智能框架,大规模集群学习分享,不定期更新
展开
-
NCCL如何打印XML拓扑文件,操作说明和源码展示
为了打印XML拓扑文件,需要设置NCCL的环境变量NCCL_TOPO_DUMP_FILE。这个环境变量指定了XML拓扑文件的输出路径和文件名。按照1.1中的方法设置了环境变量,然后运行NCCL-tests,成功生成topo.xml文件。2、ncclTopoDumpXmlToFile中打开文件,并调用。3、ncclTopoDumpXmlRec向文件中写入内容。1、如果设置了环境变量。E调用保存拓扑文件函数。原创 2025-03-11 22:42:06 · 605 阅读 · 0 评论 -
NCCL,NCCL-tests下载安装教程,测试和错误解决
按理这一期该录个实操视频的,可惜缺卡,哈哈哈,等赚钱了买卡补录。原创 2025-02-22 07:28:35 · 1333 阅读 · 1 评论 -
NCCL源码解读3.1:double binary tree双二叉树构建算法,相比ring环算法的优势
如果我们用两棵树中的每一棵来处理一半的数据,那么每个 rank 最多会收到两次一半的数据,两次发送一半的数据,这在发送/接收的数据方面就像 rings 一样最优。在规模上,当我们在 InfiniBand 结构中跨越 L3 交换机时,带宽会略有下降,我们认为这是由于 NCCL 通信模式和 InfiniBand 路由算法之间的效率低下造成的。,其优势是将广播和 reduce 操作的全带宽(可以组合成一个执行 reduce,然后执行广播的 allreduce)和对数延迟相结合,从而在中小型操作中实现良好的性能。原创 2025-01-04 18:10:54 · 1519 阅读 · 0 评论 -
CPU亲和性设置 代码示例 sched_setaffinity sched_getaffinity
来优化GPU和CPU间的通信路径。NCCL通信时也用到亲和性设置,来优化GPU和CPU间的通信路径。CPU亲和性(CPU Affinity)设置是操作系统中一个重要的性能优化手段,它允许程序或进程被绑定到特定的CPU核心上运行。这样做的好处包括减少缓存未命中、降低线程迁移(context switching)的开销,以及提高缓存的局部性(cache locality),从而可能提升程序的整体性能。对于我们NCCL集合通信,也用到亲和性设置,通过将需要与GPU交互的CPU设置为距离近的CPU核心,原创 2024-09-07 10:29:16 · 2126 阅读 · 0 评论 -
华为集合通信库开源了!HCCL开源链接、架构、拓扑算法、常用接口
华为集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,提供单机多卡以及多机多卡间的数据并行、模型并行集合通信方案。HCCL的软件架构如下图所示,分为“通信框架”、“通信算法”与“通信平台”三个模块,本源码仓中包含了其中紫色底纹所示的“通信框架”与“通信算法”两个模块的源码。适配层,图引擎与单算子适配,进行通信切分寻优等操作。原创 2024-08-29 19:32:58 · 3578 阅读 · 0 评论 -
Nvidia NCCL名词术语解释说明汇总
是NCCL中的一个插件,用户可自定义通信方式。例如自定义在网计算(in-network computing) SHARP,在通信过程中就进行数据融合,例如Allreduce时,在交换机上就完成数据的加法操作,后续就传递加和的结果,不需要再传递需要所有要加的原始数据,减少需要通信的数据量。:GPU如果和跨NUMA的NIC网卡通信的话,会过CPU。NVB 连接是针对非 NVSwitch 系统的优化,其中使用GPU的内存来进行GPU之间的P2P通信,这些GPU不是通过NVLink直接连接的。节点内,即服务器内。原创 2024-06-04 21:13:18 · 3170 阅读 · 0 评论 -
NCCL源码详解6:通信拓扑识别感知构建 物理拓扑xml文件 ncclTopoGetSystem() 视频教程
Nvidia NCCL如何构建物理拓扑。原创 2024-07-08 21:05:39 · 2256 阅读 · 0 评论 -
NCCL的不足,集合通信库初步调研 NCCL、BCCL、TCCL、ACCL、HCCL
不同厂商的集合通信库,就是针对他们网络或者硬件的定制化集合通信。已达到。百度和腾讯是明确说,基于NCCL扩展,也就是改的NCCL代码,或者在NCCL上加了些东西。但是阿里和华为没有明确说,可能是重写的一套。原创 2024-06-17 23:03:46 · 6955 阅读 · 0 评论 -
NCCL源码解读5:拓扑识别感知整体思路总览
依据物理拓扑结构,来进行通信,可达到性能更优,这也是Nvidia NCCL的核心功能。NCCL拓扑识别的整体思路:1、物理拓扑构建2、通信路径计算(每个GPU/网卡到其它GPU,网卡的最优路径。)3、逻辑拓扑构建(通信通道检索)哈哈哈,整体思路是不是特别简单。就是先获取物理拓扑图,然后计算通信路径(方便逻辑拓扑构建),根据通信路径构建逻辑拓扑,例如ring,tree逻辑拓扑,指明哪个GPU和哪个GPU通信。原创 2024-06-17 21:31:02 · 1738 阅读 · 0 评论 -
NCCL源码详解4:bootstrapInit()引导网络bootstrap网络连接建立 视频教程
Nvidia NCCL bootstrapInit()利用已知的根节(rank0)网络地址(从而获得ncclUniqueId中包含的rank0的网络地址),建立一个环形网络,allgather获取所有rank的信息。原创 2024-06-04 21:11:58 · 2190 阅读 · 0 评论 -
NCCL源码详解3:通信器初始化ncclCommInitRank() 含视频教程
NCCL源码解析解读分析,ncclCommInitRank()根据rank号和CUDA设备uniqueID等,完成NCCL通信器初始化。ncclCommInitRankDev()使用 ncclAsyncLaunch 异步启动 ncclCommInitRankFunc 函数来初始化通信。 异步启动通信器初始化ncclCommInitRankFunc()原创 2024-05-24 20:06:16 · 2937 阅读 · 0 评论 -
NCCL源码详解2:通信初始化如何获取唯一ID UniqueId,ncclGetUniqueId()中ncclInit()、bootstrapGetUniqueId()包含视频教程
NCCL 视频教程 源码解读 获取唯一ID UniqueId,ncclGetUniqueId()和其调用的ncclInit()和bootstrapGetUniqueId() NCCL源码解析解读分析,原创 2024-05-18 06:20:05 · 2387 阅读 · 0 评论 -
集合通信算法源码解读视频教程 Open MPI 5.0,NCCL可参考
NCCL、MPI中有各种各样的集合通信原语/接口,像Broadcast、Allreduce、reduce、allgather、scatter、alltoall、gather、reducescatter等。每个集合通信原语,都有多套算法实现。例如Broadcast,由于应用场景的不同,参与通信的通信实体数量,每次发送的数据量各不相同等,导致难以有一种集合通信算法在各种条件下都是最优的,因此出现了一个集合通信原语,有多套集合通信算法实现。原创 2024-05-04 09:19:58 · 572 阅读 · 0 评论 -
DeepSpeed和Megatron如何调用NCCL通信后端源码解读
原本准备看一下DeepSpeed如何对接使用NCCL的,如何初始化通信后端的,没想到。瞬间傻在原地。原创 2024-05-10 20:29:27 · 1861 阅读 · 0 评论 -
NCCL源码详解1:NCCL官网使用/调用案例 Example : One Device per Process or Thread包含视频教程
NCCL源码解析解读分析,rank0获取NCCL通信组ID,并通过MPI_Bcast广播给其它rank;借助MPI获取的这些信息NCCL完成初始化,并进行集合通信。原创 2024-05-11 21:10:00 · 3163 阅读 · 0 评论