NCCL
文章平均质量分 95
predawnlove
AI计算芯片通信库软件开发工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【NCCL】6 PAT AllGather 设备端实现详解
本文详细解析了NCCL中PAT(Pipelined Allgather Tree)算法的设备端实现。该算法采用生产者-消费者模式,通过算法计算线程和工作线程协同完成AllGather操作。算法计算线程负责计算二叉树操作步骤并同步工作线程,工作线程分组处理不同步骤。实现中使用了共享内存存储步骤信息,动态调整线程并行度,并支持PAT特有的二叉树结构。代码要求SM 6.0+架构,通过原子标志实现线程间高效同步。原创 2025-12-25 11:05:50 · 607 阅读 · 0 评论 -
【NCCL】5 GPU 间链路 Preconnect 机制
NCCL GPU间链路的Preconnect机制是一种优化技术,用于在通信前预先建立连接。其流程分为四个阶段:1)标记需要连接的算法,通过ncclPrepareTasks识别未初始化的算法;2)执行集合通信预连接,异步处理连接任务;3)针对PAT等特定算法建立连接,如PAT使用二叉树结构进行分层连接;4)底层连接建立,通过ncclTransportP2pConnect标记并建立物理连接。该机制显著减少了实际通信时的连接开销,尤其对多节点GPU通信性能提升明显,PAT算法中采用二叉树结构实现高效的数据传输路径原创 2025-12-24 17:10:00 · 757 阅读 · 0 评论 -
【NCCL】4 AllGather-PAT算法
本文分析了NCCL中AllGather操作选择PAT算法的条件。PAT算法需要满足三个必要条件:1)GPU架构为SM6.0+;2)每节点仅1个GPU;3)使用主机端网络设备。算法性能模型显示,PAT在多节点、中等数据量场景下具有对数延迟优势。验证方法包括查看NCCL调试日志中的算法选择信息。总结指出,要启用PAT算法必须同时满足硬件、拓扑和网络类型三项核心要求。原创 2025-12-24 16:17:21 · 553 阅读 · 0 评论 -
【NCCL】3. ncclPrepareTasks 到 scheduleCollTasksToPlan 的衔接机制
本文分析了NCCL库中从ncclPrepareTasks到scheduleCollTasksToPlan的完整衔接机制。关键流程包括:ncclPrepareTasks将集合通信任务组织到collTaskQueue队列;ncclTasksRegAndEnqueue创建对应的设备工作结构体;doLaunches调用ncclLaunchPrepare作为核心衔接点;ncclLaunchPrepare通过scheduleCollTasksToPlan将任务调度到内核计划中,最终通过ncclLaunchKernel启原创 2025-12-23 16:46:34 · 582 阅读 · 0 评论 -
【NCCL】2. ncclTaskCollSorterInsert 到 ncclPrepareTasks 的衔接机制
用户调用 ncclAllGather()↓ncclGroupStartInternal() // 增加组深度↓↓↓ncclTaskCollSorterInsert() // 任务暂存在 collSorter↓ncclGroupEndInternal() { // 减少组深度,当深度=0时触发↓↓↓ncclPrepareTasks() { // ← 这里是衔接点!ncclTaskCollSorterDequeueAll() // 从 collSorter 取出所有任务↓。原创 2025-12-23 16:17:39 · 999 阅读 · 0 评论 -
【NCCL】1. nccl通信API 到设备端 RunWorkColl 的完整调用链
NCCL集合通信优化采用双维度并行策略:时间维度的chunkSteps实现流水线并行,空间维度的sliceSteps实现数据并行。调用链分析显示,从ncclAllGather到设备端执行经历主机端任务创建、调度计划、内核启动和设备执行四个阶段。流水线设计通过重叠通信、计算和数据传输隐藏延迟,而数据分片则实现多线程并行处理。完整的调用路径涉及任务排序、算法选择、内核参数准备等关键步骤,最终通过模板化的设备端函数实现高效集合通信。原创 2025-12-19 17:48:51 · 666 阅读 · 0 评论
分享