自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱串门的小马驹博客

分布式,通信,ai大模型,人工智能框架,大规模集群学习分享

  • 博客(43)
  • 收藏
  • 关注

原创 VScode配置连接远程服务器configure ssh Hosts

Host随便写这里写acmdxmj(爱串门的小马驹),Hostname服务器IP,User服务器用户名,Port服务器端口号。选择“Configure SSH Hosts”后,下拉选项更新,选择“C:\User\用户名\.ssh\config”选择“C:\User\用户名\.ssh\config”后,会打开一个配置文件,进行如下配置。并ctrl+s保存。点击完上面的按钮后,出现如下的下拉选项,选择“Connect to Host”出现如下下拉框,我们要连的服务器是Linux系统,我们选Linux。

2024-09-22 09:26:03 326

原创 GPU与国产芯片异构通信方案,异构万卡集群 初步调研

国内已经有三家,实现了异构集群,GPU与国产芯片异构通信方案,初步调用结果如下。

2024-09-22 08:51:56 949 1

原创 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 700

原创 进程间通信,消息队列编程和案例 mq_open mq_close mq_unlink mq_setattr mq_getattr mq_send mq_receive

是 POSIX 消息队列(POSIX message queues)中用于发送和接收消息的函数。POSIX 消息队列是一种进程间通信(IPC)机制,允许进程以消息的形式交换数据。哈哈哈哈,先了解一下函数,最后来个案例。

2024-09-01 09:46:05 917

原创 主机通道适配器 (HCA)和 接口分类QDR、FDR 、EDR、HDR、NDR

QDR (40G) 以及 FDR10 (40G)、FDR (56G)、EDR (100G)(长达 100m)、HDR (200G) 和 NDR (400G)(长达 150m)数据速率。高速 Gb 数据速率 (FDR)、增强数据速率 (EDR)、高数据速率 (HDR) 和下一数据速率 (NDR)光链路。,InfiniBand网络中的关键组件,它连接了服务器(或其他端节点)与InfiniBand网络。,有分别对应的线缆(NVIDIA Mellanox LinkX Optics AOC 线缆)。

2024-09-01 09:43:26 350

原创 获取char*字符串指针指向的数组长度时,记得用strlen,而不是sizeof

strlen和sizeof的区别用以下示例说明:函数输出结果 这里的或取决于系统指针的大小。在32位系统上,指针通常是4个字节;在64位系统上,指针通常是8个字节。解释sizeof(ptr): 这里是一个指针变量,计算的是指针变量本身所占的内存字节数,而不是指针所指向的内存区域的大小。因此,它返回的是指针在特定平台上的大小(通常是4或8个字节)。strlen(ptr): 这里被当作一个指向字符数组(字符串)首元素的指针。函数遍历这个字符串,直到遇到字符为止,并返回遇到的之前的字符数。因此,对

2024-09-01 09:41:54 1498

原创 linux 如何查看cpu核心数量

在Linux系统中,有多种方法可以查看CPU的核心数量。

2024-08-29 20:20:20 384

原创 华为集合通信库开源了!HCCL开源链接、架构、拓扑算法、常用接口

华为集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,提供单机多卡以及多机多卡间的数据并行、模型并行集合通信方案。HCCL的软件架构如下图所示,分为“通信框架”、“通信算法”与“通信平台”三个模块,本源码仓中包含了其中紫色底纹所示的“通信框架”与“通信算法”两个模块的源码。适配层,图引擎与单算子适配,进行通信切分寻优等操作。

2024-08-29 19:32:58 1438

原创 阿里十万卡训练集群 网络拓扑架构和优势 Alibaba HPN: A Data Center Network for Large Language Model Training

GPU通过NVlink互联,每台主机配备了9个NIC,每个NIC具有2×200Gbps。这九个NIC中的一个(即图7中的NIC0)连接到前端网络,而其余八个NIC连接到后端网络,在LLM训练期间承载流量。这八个NIC中的每一个都服务于一个专用GPU,每个NIC两个端口。

2024-08-03 21:57:59 1401 10

原创 VirtualBox虚拟机安装,Ubuntu iso 镜像下载

利用VirtualBox,在Windows主机上装Ubuntu的虚拟机。

2024-07-27 07:44:23 525

原创 VitualBox虚拟机重启后配置无法保存,已安装软件变为没有安装

Vit已经尝试过,关闭VitualBox,或者重启电脑。再开机打开VitualBox,依然显示所设置的虚拟机是休眠状态。启动虚拟机,发现安装包和配置依然在。VitualBox虚拟机重启后虚拟机还原为上次开机的状态,安装的安装包配置啥的全部丢失。按网上的配置了半天也没解决。最终用下面讨巧的办法,即不重启虚拟机。4、哈哈哈,虚拟机启动啦,而且虚拟机状态就和我们休眠前一样。我们不在重启虚拟机,那我们想关闭虚拟机的时候怎么办呢?3、启动虚拟机后,会到这个界面,等待一会就可。我们要启动虚拟机,就选中点击右上角的启动。

2024-07-27 07:42:33 301

原创 RDMA通信4:MR(Memory Region, 内存区域)基本概念和作用

RDMA通信中MR(Memory Region)指的是由RDMA软件层在内存中规划出的一片区域,用于存放收发的数据。IB协议中,用户在申请完用于存放数据的内存区域之后,都需要通过调用IB框架提供的API注册MR,才能让RDMA网卡访问这片内存区域。MR就是一块RDMA通信过程中申请使用的内存。一个系统中可以有多个MR。1.5 RDMA MR(Memory Region, 内存区域)基本概念和作用_哔哩哔哩_bilibiliMR主要有如下三个作用1、虚拟地址到物理地址的转化2、控制访问权限3、避免换页。

2024-07-22 21:43:02 1306 1

原创 RDMA通信5:PD(Protection Domain)保护域机制

是 RDMA 中一种数据安全保护机制。它将 QP (Queue Pair) 和 MR(Memory Region) 绑定到一起,特定的QP只能访问对应的MR而不是所有的MR,保护数据安全。

2024-07-22 05:42:46 455

原创 RDMA通信3:基本操作类型Send/Recv,Write,Read机制和通信过程

RDMA支持多种通信方式,常见的包括:Send(发送)和Receive(接收)、RDMA Write、RDMA Read。哈哈哈,今天我们就来了解一下这些通信原语的通信过程。

2024-07-19 19:07:58 1672

原创 pip安装和使用 Python的包管理工具,它的全称是“pip installs packages“

pip是Python的包管理工具,它的全称是"pip installs packages",意为"安装包"。

2024-07-19 19:04:31 262

原创 ECMP等价多路由机制,大模型训练负载均衡流量极化冲突原因,万卡(大规模)集群语言模型(LLM)训练流量拥塞特点

ECMP(Equal-Cost Multi-Path Routing)等价多路径路由未开启ECMP,无法充分利用路径资源。如图1所示,假设从S0到Server的为S0-S1-S2-S4即图中橘色路径,那么即便存在另一条等价路径,蓝色路径,路由器仍然会每次选择第一条橘色路径转发数据。除非此条路径发生拥塞,才会重新选择路径。开启ECMP,便可同时利用这两条路径,进行基于流的负载均衡,例如主机A到Server的数据流选择橘色路径,主机B到Server的数据流选择蓝色路径。

2024-07-17 20:21:33 1650 2

原创 C++ 三元运算符 y=x!= -1 ? 1 : 0

下面的公式如何计算呢?假设SrcBuf = 0,开始我们的计算过程。

2024-07-17 20:09:55 284

原创 NCCL源码详解6:通信拓扑识别感知构建 物理拓扑xml文件 ncclTopoGetSystem() 视频教程

Nvidia NCCL如何构建物理拓扑。

2024-07-08 21:05:39 1321 2

原创 exel带单位求和,统计元素个数

用下面的公式求和,单位不是“个”的时候记得替换单位。统计范围不是“C1:C7”也记得换一下啊!如下图所示,求和结果为0,显然不是我们想要的。如果exel表格中,如果数据有单位,无法直接用。统计有多少个元素,用下面的公式。看结果,结果是我们要的。

2024-07-08 21:00:26 283

原创 RDMA通信2:一张图了解 RDMA基本元素和组成 通信过程元素关系解析 视频教程

哈哈哈,今天我们把下面RDMA这张图理解了,我们的任务就完成了!一、WQ和WQE 三、CQ和CQN 四、WR和WC 二、QP和QPN。1、用户(应用程序)下发个工作请求WR12、WR1在驱动层被映射为工作队列元素WQE1,放入发送队列SQ中,让硬件去完成任务。3、硬件完成任务,返回完成队列元素CQE1,放入完成队列CQ0。4、CQE1在用户层被映射为工作完成WC1,通知用户(应用程序)任务完成。

2024-06-30 16:51:41 722

原创 博士最多8年?硕士6年清退?

对于“因研究未结束而无法正常毕业的博士”,目前高校可以按规定统筹利用科研经费、学费收入、社会捐助等资金,设置研究生“助教、助研和助管”岗位,并提供相应津贴,三是修订《普通高等学校学生管理规定》,将明确规定“学校可实行灵活的学习制度,对休学创业的学生,可以在规定的。并简化批准程序”“休学创业后复学的学生,因自身情况需要转专业的,学校同等条件下,应当优先考虑”。哈哈哈,我说读博18年,虽然是纯属虚构的人生经历,但是。哈哈哈,教育部可没说过博士最多八年,教育部说的是。中南财经政法大学章程修正案。

2024-06-28 21:23:27 492 1

原创 Booksim2源码分析1:核心函数调用逻辑 NoC片上网络模拟 含视频教程

BookSim2源码解读,详解。哈哈哈,我们就从main函数开始,看看BookSim2都调用了哪些核心函数。

2024-06-25 16:55:49 247

原创 BookSim2 安装步骤教程 Network-on-Chips (NoCs) 片上网络模拟器 含视频

BookSim2 一个用于Network-on-Chips (NoCs) 芯片上网络的周期精确模拟器。该模拟器的设计是为了实现网络组件的模拟灵活性和精确建模。BookSim1 是一个通用的网络模拟器,并不专门针对片上环境。不支持在片上网络环境中提出的一些更先进的功能和拓扑结构。

2024-06-23 08:51:06 404

原创 VirtualBox 主机和虚拟机间直接复制粘贴设置 安装增强功能报错解决Could not mount the media/drive ‘D:\vmbox\VBoxGuestAdditions.i

安装增强功能 报错解决Could not mount the media/drive ‘D:\vmbox\VBoxGuestAdditions.iso’

2024-06-22 21:22:45 573 1

原创 Ubuntu iso 镜像下载 步骤截图说明

Linux如果需要下载其它版本,点击check out our alternative Downloads。(下载时会弹出,Sign up for our newsletter,不用管,也能下载)后续点击Downloadload 24.04 LTS直接下载就行。3、点击Download Ubuntu Desktop。2、点击Get Ubuntu。下面就是等待下载完成。

2024-06-22 07:14:44 868

原创 RMDA通信1:通信过程和优势,以太网socket为何用户空间拷贝到内核空间

RDMA硬件要求,以太网socket通信的缺点,RDMA的优点,太网socket通信过程,缺点,为啥要从用户空间拷贝到内核空间。因此需要将数据由物理地址不联系的用户空间,拷贝到物理地址连续的内核空间,让网卡访问连续地址空间的主机内存空间。

2024-06-21 07:18:34 611

原创 NCCL的不足,集合通信库初步调研 NCCL、BCCL、TCCL、ACCL、HCCL

不同厂商的集合通信库,就是针对他们网络或者硬件的定制化集合通信。已达到。百度和腾讯是明确说,基于NCCL扩展,也就是改的NCCL代码,或者在NCCL上加了些东西。但是阿里和华为没有明确说,可能是重写的一套。

2024-06-17 23:03:46 3272 9

原创 NCCL源码解读5:拓扑识别感知整体思路总览

依据物理拓扑结构,来进行通信,可达到性能更优,这也是Nvidia NCCL的核心功能。NCCL拓扑识别的整体思路:1、物理拓扑构建2、通信路径计算(每个GPU/网卡到其它GPU,网卡的最优路径。)3、逻辑拓扑构建(通信通道检索)哈哈哈,整体思路是不是特别简单。就是先获取物理拓扑图,然后计算通信路径(方便逻辑拓扑构建),根据通信路径构建逻辑拓扑,例如ring,tree逻辑拓扑,指明哪个GPU和哪个GPU通信。

2024-06-17 21:31:02 786 3

原创 模型计算量估计,训练时间预测 Scaling Laws for Neural Language Models

其中C表示训练语言模型所需的总计算量,N表示模型参数量,D表示用于训练的语料总量,6表示每训练一个token所需的浮点计算量约为6N,其中前向计算2N,反向计算4N。activati注意:这里的算力利用率是整个训练过程中的算力利用率,有的地方的算力利用率是计算的时候的算力利用率,不考虑纯通信和集群故障。其中C表示训练语言模型所需的总计算量,S表示训练模型所用集群的算力,MFU(Model FLOPs Utilization)训练模型时的算力利用率。activation checkpoint

2024-06-16 10:52:37 584 1

原创 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 1207 4

原创 NCCL源码详解4:bootstrapInit()引导网络bootstrap网络连接建立 视频教程

Nvidia NCCL bootstrapInit()利用已知的根节(rank0)网络地址(从而获得ncclUniqueId中包含的rank0的网络地址),建立一个环形网络,allgather获取所有rank的信息。

2024-06-04 21:11:58 1561 2

原创 字节万卡(大规模)集群训练平台设计方案:集群容错、分布式方案、算法优化、通信加速、数据加载、底层 MegaScale: Scaling Large Language Model 视频教程

1.1 万卡训练集群出现原因、挑战、设计思路、考虑因素;1.2 万卡训练大语言模型LLM训练优化,并行注意力、滑动窗口;1.3 万卡分布式训练,ZeRO数据并行优化 1.6 通信与数据加载并行数据加载优化,消除多余加载器,数据加载通信并行

2024-05-30 19:16:56 1563

原创 NCCL源码详解3:通信器初始化ncclCommInitRank() 含视频教程

NCCL源码解析解读分析,ncclCommInitRank()根据rank号和CUDA设备uniqueID等,完成NCCL通信器初始化。ncclCommInitRankDev()使用 ncclAsyncLaunch 异步启动 ncclCommInitRankFunc 函数来初始化通信。 异步启动通信器初始化ncclCommInitRankFunc()

2024-05-24 20:06:16 1594

原创 DeepSpeed与Megatron的区别和联系

毕竟Megatron是Nvidia亲儿子,底层优化信手拈来。DeepSpeed数据并行相比于Megatron做的更牛逼。分布式人工智能框架

2024-05-18 08:06:41 2983

原创 NCCL源码详解2:通信初始化如何获取唯一ID UniqueId,ncclGetUniqueId()中ncclInit()、bootstrapGetUniqueId()包含视频教程

NCCL 视频教程 源码解读 获取唯一ID UniqueId,ncclGetUniqueId()和其调用的ncclInit()和bootstrapGetUniqueId() NCCL源码解析解读分析,

2024-05-18 06:20:05 1546

原创 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 1579 3

原创 DeepSpeed和Megatron如何调用NCCL通信后端源码解读

原本准备看一下DeepSpeed如何对接使用NCCL的,如何初始化通信后端的,没想到。瞬间傻在原地。

2024-05-10 20:29:27 1021

原创 集合通信算法源码解读视频教程 Open MPI 5.0,NCCL可参考

NCCL、MPI中有各种各样的集合通信原语/接口,像Broadcast、Allreduce、reduce、allgather、scatter、alltoall、gather、reducescatter等。每个集合通信原语,都有多套算法实现。例如Broadcast,由于应用场景的不同,参与通信的通信实体数量,每次发送的数据量各不相同等,导致难以有一种集合通信算法在各种条件下都是最优的,因此出现了一个集合通信原语,有多套集合通信算法实现。

2024-05-04 09:19:58 361

原创 VLLM推理框架PagedAttention出现的原因 核心思想 视频教程 加速大语言模型推理过程,提升推理速度,减少key value缓存和重复计算

利用分页/分块存储的思想,将一个长序列的key vlaue缓存,分成多个块进行存储。解决tokens序列长度未知,动态变化,连续存储的问题。降低显存占用,提升并行处理的序列数量,提高处理速度。 1.1 VLLM pageattention出现的原因 推理框架 Efficient Memory Management for Large Language_哔哩哔哩_bilibili1.2 Paged Attention VLLM核心思想 原理 推理框架_哔哩哔哩_bilibiliVLLM pagedattent

2024-05-03 10:16:39 369

原创 ZeRO++ 分布式数据并行 视频教程 《ZeRO++: Extremely Efficient Collective Communication for Large Model Training》

ZeRO++ 数据并行出现的原因,和他的优化策略。并且介绍了数据并行 DP DDP ZeRO1 ZeRO2 ZeRO3。《ZeRO++: Extremely Efficient Collective Communication for Large Model Training》数据并行模型训练

2024-05-01 18:48:46 336 2

华为集合通信库 HCCL源码

华为集合通信库 HCCL源码

2024-08-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除