NCCL 源码详解总目录

前言

本文主要对 NCCL 源码相关资料以及自己将要发布的文章做一个汇总,关注点赞收藏不迷路。

KIDGINBROOK 讲解的版本与我要看的版本不一致,我的版本是 NCCL 2.19.1。部分内容重合,部分内容有差异,我最多的是对其的补充与部分疑难点的详解。

建议可以先阅读 KIDGINBROOK 相关博客,对 NCCL 有一个整体了解。

比较忙,更新时间久,我尽快。

学习源码

NCCL 自定义源码

  1. 我基于 NCCL_2.19 版本修改了一下源码,可以脱离GPU硬件,自定义拓扑结构,跟踪多种链接情况的软件流程;
  2. 默认硬件连接如下,如果要定义,按照格式修改 xml 文件即可,后续看情况,可能出一个交互式设计;
  3. 提供一个 xml 转 pdf 的 python 脚本 topo/xml_to_PNG.py;

拓扑图展现的不是很好,原本设计是 GPU0 GPU1 GPU2 GPU3 是相互通过 NVLINK 链接的,有点乱,先用着吧。
请添加图片描述

正文

NCCL源码解析: proxy 线程
NCCL源码解析: P2P 连接的建立
NCCL源码解析: 共享内存连接的建立

未完待续

转载:

来自 @ KIDGINBROOK

NVIDIA NCCL 源码学习(一)- 初始化及ncclUniqueId的产生

NVIDIA NCCL 源码学习(二)- bootstrap网络连接的建立

NVIDIA NCC​L 源码学习(三)- 机器内拓扑分析

NVIDIA NCCL 源码学习(四)- 建图过程

NVIDIA NCCL 源码学习(五)- 路径计算

NVIDIA NCCL 源码学习(六)- channel搜索

NVIDIA NCCL 源码学习(七)- 机器间channel连接

NVIDIA NCCL 源码学习(八)- 数据通信链路transport的建立

NVIDIA NCCL 源码学习(九)- 单机内ncclSend和ncclRecv的过程

NVIDIA NCCL 源码学习(十)- 多机间ncclSend和ncclRecv的过程

NVIDIA NCCLNVIDIA Collective Communications Library)是一种用于高性能并行计算的库,特别适用于多GPU系统中的并行通信操作。如果你想学习NCCL源码,我可以给你一些建议: 1. 先了解基本概念:在开始研究NCCL源码之前,确保你对并行计算和通信操作有基本的了解。理解NCCL的设计目标和背后的原理会有助于你更好地理解源码。 2. 寻找源码NCCL源码可以在NVIDIA的开源GitHub存储库中找到。你可以在https://github.com/NVIDIA/nccl 上找到最新的代码。 3. 阅读文档:NVIDIA提供了NCCL的官方文档,其中包含了详细的API文档和使用指南。在阅读源码之前,先浏览一遍文档,了解库的功能和使用方式,这将有助于你更好地理解源码中的细节。 4. 逐步阅读源码:开始时,可以选择从简单的功能开始阅读,逐步深入到更复杂的部分。从整体架构入手,了解主要的数据结构和函数调用关系。然后,选择一个具体的功能或算法,深入研究相关的源代码。 5. 调试和实践:通过在实际应用中使用NCCL库,你可以更好地理解源码。尝试使用NCCL库进行一些简单的通信操作,并通过调试器进行源码跟踪,观察库的行为和内部工作原理。 6. 参考资料和社区支持:除了官方文档和源码,你还可以参考一些相关的学术论文、博客文章和社区讨论,这些资源可以帮助你更好地理解NCCL的设计和实现。 希望这些建议对你学习NCCL源码有所帮助!如果你有其他问题,请随时提问。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Call Me Gavyn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值