通信方式、点对点通信、集合通信

news/2025/2/4 4:36:30/

文章目录

    • 从硬件PCIE、NVLINK、RDMA原理到通信NCCL、MPI原理!
    • 通信实现方式:机器内通信、机器间通信
    • 通信实现方式:通讯协调
    • 通信实现方式:机器内通信:PCIe
    • 通信实现方式:机器内通信:NVLink
    • 通信实现方式:机器间通信:RDMA(直连模式)
    • 通信协调:软件篇
    • 通信协调:软件篇:MPI
    • MPI:集合通信
    • MPI:进程启动与收发数据顺序:broadcast
    • MPI:进程启动与收发数据顺序:gather
    • 通信协调:软件篇:NCCL
    • 点对点通信、集合式通信
    • 分布式训练系统
    • 集中式通信方式:一对多 broadcast
    • 集中式通信方式:一对多 scatter
    • 集中式通信方式:多对一 reduce
    • 集中式通信方式:多对一 gather
    • 集中式通信方式:多对多 all reduce
    • 集中式通信方式:多对多 all gather
    • 集中式通信方式:多对多 reduce scatter
    • 集中式通信方式:多对多 all to all

NCCLMPI_2">从硬件PCIE、NVLINK、RDMA原理到通信NCCL、MPI原理!

通信实现方式:机器内通信、机器间通信

计算机通网络通讯中最重要的两个衡量指标是:带宽、延迟

在这里插入图片描述

内存共享:比如 多个应用共享手机里面的同一块内存
PCIe:最明显的方式就是 gpu 与 cpu 之间的通信,大部分都通过之间的PCIe插槽进行的
NVLink(直连模式):GPU 与 GPU 之间进行一个互通

在这里插入图片描述
Q:不同机柜之间的GPU的访问,不是通过NVSwitch进行全互联的吗。那这个机器间的通信,都传输什么信息呢?通讯、互传数据、等待和同步相关的问题,这些信息是走什么传输的呢?
---- 如果是NVLink通信的话,它应该还是属于 机器内通信,而不是机器间通讯(TCP/IP、RDMA)

蓝色的线:通过网线进行连接
AI集群里面,可能更多的用到 RDMA 的网络模型通信


通信实现方式:通讯协调

在这里插入图片描述

通信实现方式:机器内通信:PCIe

在这里插入图片描述

通信实现方式:机器内通信:NVLink

在这里插入图片描述


通信实现方式:机器间通信:RDMA(直连模式)

在这里插入图片描述
在这里插入图片描述
(1)左边的图是TCP/IP,右边的是RDMA
(2)左边的几个蓝色方框,在传递的时候 需要经过好几次的用户的内存拷贝,对大数据执行起来会非常的缓慢,数据量越大的时候,这个延迟是很难去接受的!
(3)而RDMA新的协议,就是用户直接跳过kernel层,直接传到远端的服务器,数据绕过CPU,直接通过RDMA设备,对远端的虚拟内存直接进行访问读和写;

(4)既然是机器间通信,那么不同机器间是通过以太网连接的
(5)Q:RDMA是通过网线连接的吗?
在这里插入图片描述


通信协调:软件篇

在这里插入图片描述


通信协调:软件篇:MPI

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
OSI只是一个模型概念,并不提供具体的实现方法。实际上的网络的标准是TCP/IP

在这里插入图片描述
在这里插入图片描述

MPI:集合通信

在这里插入图片描述

在这里插入图片描述


MPI:进程启动与收发数据顺序:broadcast

在这里插入图片描述


MPI:进程启动与收发数据顺序:gather

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
优化通信框架的性能,那不就是用到了之前学习到的 二叉树的结构了

在这里插入图片描述
在这里插入图片描述


NCCL_68">通信协调:软件篇:NCCL

在这里插入图片描述
(1)对网络拓扑进行一个感知,topo是长什么样子的,回环是怎么组织的
(2)对网络拓扑进行一个搜索,找到一个最好的通信的策略
(3)使能CUDA的kernel 对数据进行通信

在这里插入图片描述


点对点通信、集合式通信

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述


分布式训练系统

在这里插入图片描述
在这里插入图片描述
对模型进行切分,每个服务器又需要相互通信,把一个大的网络模型切分成很多小的网络模型,每个小的网络模型之间是相互依赖的,需要就需要跨节点对数据进行同步
涉及到同步,中间的过程就需要通信,跨节点的通信,跨网络的通信,跨卡的通信;


集中式通信方式:一对多 broadcast

(1)把 NPU0 的数据同步到其他 3 份里面
在这里插入图片描述


集中式通信方式:一对多 scatter

在这里插入图片描述


集中式通信方式:多对一 reduce

在这里插入图片描述


集中式通信方式:多对一 gather

在这里插入图片描述


集中式通信方式:多对多 all reduce

在这里插入图片描述

在这里插入图片描述


集中式通信方式:多对多 all gather

在这里插入图片描述


集中式通信方式:多对多 reduce scatter

在这里插入图片描述


集中式通信方式:多对多 all to all

在这里插入图片描述
假设每个NPU上面都有一个A的数据,A的数据在计算完之后,希望进行通讯,都变成一块卡的数据,再进行聚类处理


http://www.ppmy.cn/news/1569135.html

相关文章

25寒假算法刷题 | Day1 | LeetCode 240. 搜索二维矩阵 II,148. 排序链表

目录 240. 搜索二维矩阵 II题目描述题解 148. 排序链表题目描述题解 240. 搜索二维矩阵 II 点此跳转题目链接 题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到…

软件工程概论试题五

一、多选 1.好的软件的基本属性包括()。 A. 效率 B. 可依赖性和信息安全性 C. 可维护性 D.可接受性 正答:ABCD 2.软件工程的三要素是什么()? A. 结构化 B. 工具 C.面向对象 D.数据流! E.方法 F.过程 正答:BEF 3.下面中英文术语对照哪些是正确的、且是属…

Haskell语言的安全开发

Haskell语言的安全开发 引言 随着软件工程的不断发展,安全性问题日益成为软件开发中的关键挑战之一。面对日益复杂的系统和不断更新的攻击手段,开发者需要采用更加严格和有效的手段来保证软件的安全性。Haskell作为一种纯函数式编程语言,以…

【新春特辑】2025年1月科技浪潮中的AI最新时事与科技趋势

2025年1月科技浪潮中的AI最新时事与科技趋势 一、AI科技时事 人工智能代理(AI Agent)的发展 最新进展:人工智能代理正逐步成为科技领域的新热点。这些代理能够自主执行特定任务,如管理日程、回复邮件等。然而,它们仍…

Java开发vscode环境搭建(二)-项目启动补充

(1)指定端口号:(默认8080) (2)添加一个测试controller (3)切换到DemoAplication.java中 点击图中所示的地方,或者鼠标右键->Run Java 终端出现如下字样&…

Haskell语言的多线程编程

Haskell语言的多线程编程 Haskell是一种基于函数式编程范式的编程语言,以其强大的类型系统和懒惰求值著称。近年来,随着多核处理器的发展,多线程编程变得日益重要。虽然Haskell最初并不是为了多线程而设计,但它的设计理念和工具集…

Kotlin判空辅助工具

1)?.操作符 //执行逻辑 if (person ! null) {person.doSomething() } //表达式 person?.doSomething() 2)?:操作符 //执行逻辑 val c if (a ! null) {a } else {b } //表达式 val c a ?: b 3)!!表达式 var message: String? &qu…

如何配置Java JDK

步骤1:点击资源,点击Java下载 https://www.oracle.com/ 步骤2:点击java下载、JDK23下载,下载第一行第一个 步骤3:解压到一个空文件夹下,复制lib地址 步骤4:在设置里面搜索“高级系统设置”;点击…