自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_52861033的博客

每天进步一点点

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

原创 编译流程、make命令与nccl-test中的Makefile解析

对于涉及多种技术(如 CUDA、MPI、NCCL)和复杂依赖的项目,这个过程可能会变得相当曲折,充满了各种意想不到的“坑”。就像我们之前调试 MPI+NCCL CUDA 程序时遇到的那样,从找不到头文件到链接器报错,再到最终的可执行文件格式错误,每一步都可能隐藏着问题。面对包含多个源文件、复杂依赖关系和编译选项的项目,手动执行上面所有的编译链接命令会非常繁琐且容易出错。源代码文件到最终可执行文件的完整旅程,结合我们实际遇到的错误案例进行分析,并详细介绍。这样的构建自动化工具是如何在其中发挥作用的。

2025-04-27 16:30:37 886

原创 NCCL 通信与调试

具体的命令为:ssh-keygen -t rsa生成密钥,ssh-copy-id root@ip地址 拷贝到另外一个服务器节点,使用ssh root@172.21.33.14 date测试是否成功免密登录。输出日期则成功设置免密。确保 Node A 和 Node B 之间可以互相进行无密码 SSH 登录 (使用。和 NCCL 库的关键步骤。编译支持 MPI 的。远程启动进程的前提。

2025-04-27 16:20:57 690

原创 从零构建 MPI + NCCL 的 CUDA 程序

安装了与系统驱动兼容的 CUDA Toolkit (12.4) 和对应的 NCCL (for CUDA 12.4, x86_64)。虽然过程曲折,但理解了这些原理,就能更从容地应对类似的编译挑战。希望这次的记录能帮助你节省宝贵的调试时间!在开始编译之前,我们已经通过之前的努力,在个人目录下 (希望这篇博客能清晰地记录下我们解决问题的过程!,并调用了相应的 API。通常 MPI 的头文件在安装目录的。能理解或需要传递给链接器的参数。,用于设置必要的环境变量 (提供的链接参数传递给。我们的目标是编译一个。

2025-04-22 20:33:24 871

原创 PyTorch 多 GPU 入门:深入解析 nn.DataParallel 的工作原理与局限

虽然 GPU 计算是并行的,但驱动 GPU 的 Python 代码(数据加载、预处理、控制流等)可能会受到 GIL 的限制,尤其是在数据加载或 CPU 密集型操作成为瓶颈时。DDP 采用多进程架构,避免了 GIL 问题,使用高效的 AllReduce 操作进行梯度同步,负载更均衡,性能通常远超 DP。主 GPU 需要存储原始模型、所有副本的输出、所有副本的梯度总和,以及优化器状态等,其显存占用通常比其他 GPU 高得多。的内部,详细拆解它的执行流程,理解其优缺点,并帮助你判断它是否适合你的应用场景。

2025-04-22 20:33:17 1281

原创 PyTorch 分布式 DistributedDataParallel (DDP)

这篇博客将带你深入 DDP 的核心,彻底理解它的工作原理、关键组件、与 DP 的本质区别,以及它如何借助 NCCL 等后端实现高效通信,助你真正释放分布式计算的潜力。这几个关键组件的用法,你就能驾驭这个强大的工具,显著加速你的模型训练过程,并为迈向更大规模的分布式计算打下坚实的基础。它简单易用,但其固有的主 GPU 瓶颈、GIL 限制和低效的通信模式,往往让它在实际应用中难以充分发挥多 GPU 的威力。DDP 是 PyTorch 官方推荐的、用于严肃的分布式训练场景的首选方案。操作进行梯度同步,并实现了。

2025-04-22 20:33:16 1028

原创 PyTorch DDP 跨节点通信的底层机制

当我们的训练扩展到多个节点(不同的物理机器)时,这些分布在网络各处的 GPU 进程是如何找到彼此、建立连接,并高效地交换梯度信息的?理解了这一系列从应用层到底层硬件的协作流程,你就能更好地配置你的分布式训练环境,诊断潜在的通信瓶颈(比如检查网络配置、NCCL 环境变量、硬件拓扑),并对 DDP 的惊人效率有更深的体会。(DDP) 是 PyTorch 中实现高性能分布式训练的利器,它通过高效的梯度同步机制,让多个 GPU 甚至多台机器协同工作,大大加速模型训练。首先,你需要让大家互相认识并建立联系方式(

2025-04-22 20:33:14 865

原创 NCCL:1.基础入门(理论)

想象一下,几十上百个 GPU 需要频繁同步梯度信息,如果通信效率低下,GPU 的强大算力将大量浪费在等待上。这时,NVIDIA Collective Communications Library (NCCL) 应运而生,它就像是 GPU 之间的高速公路系统,专门解决这个痛点。本文是 NCCL 学习系列的第一篇,旨在带你理解 NCCL 的核心价值、基本概念以及它所依赖的硬件基础。集合通信是指一组进程(在这里是控制 GPU 的进程/Rank)参与的、有特定数据交换模式的操作。理解这些操作的语义至关重要。

2025-04-18 08:58:34 525

原创 BERT-DDP

这份代码执行的是一个典型的分布式训练流程,利用多个 GPU(可能分布在多个节点上)来加速模型训练。核心思想是每个 GPU 处理一部分数据,计算梯度,然后同步梯度并更新模型。

2025-04-11 16:15:48 1052

原创 torch.no_grad() vs. param.requires_grad == False

特性类型上下文管理器的属性作用范围代码块 (Block-level),影响块内所有 PyTorch 运算张量 (Tensor-level),影响特定的张量(参数)持续性临时 (Temporary),仅在with块内有效持久 (Persistent),直到被显式修改效果禁用梯度计算和跟踪(不构建计算图)阻止特定张量的梯度计算和更新(计算图可能仍构建)主要用途模型评估/推理冻结模型层/参数 (微调)资源节省显著节省内存和计算时间(对块内所有操作)节省梯度计算/存储(对特定参数)在块内设置是可以。

2025-04-09 11:10:19 792

原创 用VAE作为标题显示标题过短,所以标题变成了这样

这就是编码器(压缩机)生成的那份“摘要笔记”。

2025-04-07 22:14:06 599

原创 重生之我是去噪高手——diffusion model

想象一下,你有一张清晰的图片。扩散模型的核心思想分为两个过程:目标:把一张真实的、清晰的图片(来自你的训练数据集)逐步变成完全的随机噪声(通常是高斯噪声)。如何做:这个过程是固定的、预先定义好的,不需要学习。关键点:类比:想象把一滴墨水滴入清水中,墨水会逐渐扩散(加噪),直到整杯水变成均匀的淡黑色(纯噪声)。前向过程提供了问题-答案对,即噪声阶段和对映的噪声。这个可以为反向过程提供训练的数据。简单来说,前向过程就是故意弄脏图片,并且记录下是怎么弄脏的,目的是为了给 AI 提供学习“如何把脏图片变干净”

2025-04-05 23:53:40 790

原创 算法模板-线段树+懒标记

在区间修改当中加入了懒标记以增加效率,它的作用是当找到一个小区间被所求区间覆盖的话,就不再往下进行递归查找,只对当前小区间进行标记。等到下次查询或更新的时候再对小区间中的节点进行更新。所以懒标记会在对小区间的查询或修改的时候率先更新,这体现在更新区间和查询区间的函数中,在不覆盖的情况下,会率先调用push_down函数对子节点进行更新。每个节点存储一段区间的左右端点以及区间的某种属性。点修改可以算是区间修改的一个特例。区间查询:主要的思路是拼凑与拆分。

2024-04-19 15:09:05 582

原创 牛客小白月赛90 题解

思路:本质是枚举,使用前缀和计算A任务的时间,使用优先队列(大根堆)存储选B任务的代价,通过枚举找到最小值。我感觉使用dp也能写,不过我不会。其实题目的思路很简单,当k等于2时,就是考虑在前2或3或4...n个任务里完成两个B任务的最短时间。A任务是必须做的,所以使用前缀和计算。B任务可以选做,所以一定是选值比较低的进入优先队列会更优。可以观察样例发现,0这个数字比较特殊,若数字里没0,只要填个个位数就行(1或2)。若数字里有0,那么0这个位置就填1,想让数字最小,那么1的位置填0,0的位置填1。

2024-04-19 13:30:09 489

原创 牛客周赛 Round 39题解

思路:贪心,由于最后一定会剩下sum%k个球,我们想让球的颜色最少,最好的方法是让剩下的球全部是一个颜色的。所以先求一下sum%k看剩几个球,再对数组排序,倒着取看结果是否为负,若为负则表示当前颜色是不能取完的(很直觉的做法,感觉也可以从前往后进行模拟,比较符合正常思路)。dp[i]表示%p后能凑出i这个数字使用最少的数字的个数。dp是考虑从哪个状态枚举到哪个状态。但好像没讲全对,可能是状态转移的更新部分不太对。思路:推公式,不是很难,题目完全是在迷惑大家。以下是bfs的正确代码。思路:带懒标记的线段树。

2024-04-17 13:45:11 565

原创 牛客周赛 Round 40题解

dp[i][j]表示考虑前i件装备,使用不超过j个金币时能获得的最大战力。初始条件为,意味着没有装备和没有使用金币时战力为 0。初始化其它值为一个很小的数(这里用),代表非法状态。

2024-04-15 12:36:03 958

原创 蓝桥杯杂题选做

之前收藏的比较适合我的题。

2024-04-12 21:55:29 1013

原创 蓝桥杯第十二届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组题解

思路:这个问题要求找出在满足给定条件(每位同学获得两张可能相同也可能不同的卡片,且没有任何两位同学获得完全相同的一组卡片)的前提下,小蓝需要准备的最少卡片种数。代码采用了一个直接的遍历方法来寻找解决方案。### 代码解释代码首先读入一个整数 `n`,表示班上同学的人数。接下来,它使用一个循环来遍历可能的卡片种数 `k`。对于每一个 `k`,它计算在当前的卡片种数下,能够产生的不同卡片组合总数。

2024-04-11 17:05:27 1152

原创 蓝桥杯第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组题解

思路:简单的推导一下公式。

2024-04-09 10:49:43 717

原创 蓝桥杯第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组题解

这段代码使用动态规划(DP)来解决一个特定的问题,涉及到一系列的题目,每道题目答对可以获得10分,答错分数归零。目标是计算所有可能的得分方式中,最终得分为70分的总方案数。思路:dfs,枚举三种情况,不选当前瓜,选当前瓜的一半,选当前瓜。代码妙在将需要求的目标和每个瓜的值先乘2,免去了整除的尴尬。这是动态规划的基础,从这些初始条件开始,可以计算出后续所有的情况。这种使用动态规划的方法高效地遍历了所有可能的答题方案,计算出了满足条件的总方案数。题后所有可能得分(0到90分,每隔10分)的方案数之和。

2024-04-07 20:02:31 1296 2

原创 算法基础课-搜索与图论

思路:写的很好的题解。

2024-04-06 13:11:55 1241

原创 论文阅读-多级检查点重新启动MPI应用的共同设计

论文名称:摘要—高性能计算(HPC)系统继续通过包含更多硬件组件来支持更大的应用部署来扩展。关键是,这种扩展往往会减少故障之间的平均时间,从而使容错成为一个越来越重要的挑战。在HPC中容错的标准做法是检查点/重新启动。已经有一些重要但独立的工作来创建快速的应用层检查点恢复技术和MPI层的快速恢复技术。然而,这些技术是独立操作的,虽然它们彼此预设,但它们并没有被设计成共同优化端到端的应用恢复。

2024-03-30 16:00:59 1515 1

原创 文档翻译-NVIDIA DALI Getting Started

让我们从为分类任务定义一个非常简单的管道开始,该任务确定一张图片中是否包含狗还是小猫。我们准备了一个包含狗和小猫图片的目录结构在我们的代码库中。我们的简单管道将从这个目录中读取图片,解码它们,并返回(图片,标签)对。创建管道最简单的方法是使用pipeline_def装饰器。在simple_pipeline函数中,我们定义要执行的操作以及它们之间的计算流程。使用fn.readers.file来从硬盘读取jpeg(编码图像)和标签。使用fn.decoders.image操作将图像从jpeg解码为RGB。

2024-03-29 10:08:03 1075

原创 文档翻译-NVIDIA DALI Pipeline

文档地址:在DALI中,任何数据处理任务都有一个称为Pipeline的中心对象。Pipeline对象nvidia.dali.Pipeline或其派生类的实例。Pipeline封装了数据处理图和执行引擎。

2024-03-21 20:47:27 931

原创 win10安装Ubuntu22.04LTS及深度学习相关配置详细教学

由于之前Ubuntu系统硬盘空间分配的不够,又去看了一下发现扩容很很麻烦。加以发现自己前面安装的深度学习环境版本与实际要用的不符,所以当机立断决定直接重装系统。

2024-03-13 15:40:56 1512

原创 论文阅读-高效构建检查点

高效构建检查点/快照是训练和诊断深度学习模型的关键工具。在本文中,我们提出了一种适用于检查点构建的有损压缩方案(称为LC-Checkpoint)。LC-Checkpoint同时最大化了压缩率并优化了恢复速度,假设使用SGD来训练模型。LC-Checkpoint使用量化和优先级提升来存储SGD恢复所需的最关键信息,然后使用霍夫曼编码来利用梯度尺度的非均匀分布。我们广泛的实验证明,LC-Checkpoint相对于最先进的算法(SCAR),实现了高达28倍的压缩率和高达5.77倍的恢复加速。

2024-03-03 21:13:53 1344 1

原创 论文阅读-基于动态权重的一致性哈希微服务负载均衡优化

这篇论文真水

2024-02-19 20:19:52 1555 1

原创 论文阅读-Hydra: 用于持久内存和RDMA网络的分散文件系统

新兴的字址持久内存(PM)有可能颠覆内存和存储之间的边界。结合高速RDMA网络,分布式基于PM的存储系统提供了通过紧密耦合PM和RDMA特性来实现存储性能大幅提升的机会。然而,现有的分布式文件系统采用为传统磁盘设计的传统集中式客户端-服务器架构,导致访问延迟过高、可扩展性有限且恢复开销高。本文提出了一种完全去中心化的基于PM的文件系统——Hydra。通过利用本地PM的性能优势,Hydra利用数据访问局部性实现高性能。为加速Hydra节点间的文件传输,文件元数据和数据通过单边RDMA读取进行分离更新。

2024-02-19 18:24:37 1165

原创 吴恩达深度学习-L1 神经网络和深度学习总结

吴恩达《深度学习专项》第一阶段总结与第二阶段预览 - 知乎 (zhihu.com)自我感觉达到文章里Level3的水平了,对于计算中的某些细节还有些不清楚,比如导数的计算,怎么来的,反向传播的过程中的cache存储等。%5Calpha。

2024-02-17 20:52:36 1283

原创 论文阅读-PIM-tree:一种面向内存处理的抗偏移索引

当今的内存索引性能受到内存延迟/带宽瓶颈的限制。Processing-in-memory (PIM) 是一种新兴的方法,可能通过实现低延迟内存访问,其聚合内存带宽随 PIM 节点数量扩展,来缓解这种瓶颈。然而,在工作负载偏斜的情况下,PIM 系统在最小化节点间通信和实现负载平衡之间存在固有的张力。本文介绍了 PIM-tree,一种针对 PIM 系统的有序索引,它通过在数据和查询中实现加载平衡,实现了低通信成本和高负载平衡。我们的抗偏移索引基于主机 CPU 和 PIM 节点之间的劳动分工,利用各自的优势。

2024-02-15 22:32:24 1667 1

原创 论文阅读-面向机器学习的云工作负载预测模型的性能分析

由于异构服务类型和动态工作负载的高变异性和维度,资源使用的精确估计是一个复杂而具有挑战性的问题。在过去几年中,资源使用和流量的预测已受到研究界的广泛关注。许多基于机器学习的工作负载预测模型通过利用其计算能力和学习能力得以发展。本文提出了第一篇系统调查、基于性能分析的比较研究,涉及多样化的基于机器学习的云工作负载预测模型。从预测资源管理的重要性开始讨论,接着介绍了这些工作负载预测模型的框架描述、操作设计、动机和挑战。将不同预测方法的分类和分类法分为五个不同类别。

2024-02-14 21:37:32 3214 2

原创 深度学习-吴恩达L1W2作业

我的理解是X.shape[0]表示多少行, -1表示剩余的所有维度数据合并成列,最后转置,所以最后行列互换,实验中train_set_x_orig的shape为(209,64,64,3),所以转置前表示209行,每一列都是其他维度数据的合并,最后转置,达成了209列,每一列表示每个特征。np.dot表示矩阵乘法,直接使用*表示元素乘法,也就是说,它将两个数组中对应位置的元素相乘,得到一个新的具有相同形状的数组,*与np.multiply类似。-向量化在深度学习中非常重要, 它保证了计算的效率和清晰度。

2024-02-14 15:47:22 918

原创 论文阅读-Pegasus:通过网络内一致性目录容忍分布式存储中的偏斜工作负载

高性能分布式存储系统面临着由于偏斜和动态工作负载引起的负载不平衡的挑战。本文介绍了Pegasus,这是一个利用新一代可编程交换机ASIC来平衡存储服务器负载的新型存储系统。Pegasus使用数据存储中最受欢迎的对象的选择性复制来分配负载。通过使用一种新颖的网络内一致性目录,Pegasus交换机跟踪和管理复制对象的位置。这使得它能够实现对复制键的负载感知转发和动态再平衡,同时仍然保证数据的一致性和一致性。Pegasus设计的实施是切实可行的,因为它只在交换机数据平面中存储转发元数据。

2024-02-13 23:12:55 1582 1

原创 论文阅读-One for All : 动态多租户边缘云平台的统一工作负载预测

多租户边缘云平台中的工作负载预测对于高效的应用部署和资源供给至关重要。然而,在多租户边缘云平台中,异构的应用模式、可变的基础设施性能以及频繁的部署给准确和高效的工作负载预测带来了重大挑战。基于聚类的动态多租户边缘云平台建模方法往往因需要维护大量数据聚类和模型而产生过高的成本。现有的端到端时间序列预测方法在动态多租户边缘云平台中难以提供一致的预测性能。本文提出了一个具有全局池化和静态内容感知的端到端框架 DynEformer,为动态多租户边缘云平台提供了统一的工作负载预测方案。

2024-02-12 18:50:18 2319 2

原创 论文阅读-GROUP:一种聚焦于工作负载组行为的端到端多步预测方法

首先,我们为云原生应用程序定义工作负载组行为。假设容器 ci 的原始工作负载数据序列从 t0 到 tN是。为了识别容器的工作负载组行为,我们将每个容器的工作负载特征建模为包含以下四个组成部分,这些部分代表了每个容器的数据、趋势、季节和细节方面的工作负载变化。数据分量D 表示工作负载系列的原始数据值,直接描述工作负载的数据变化关系。趋势分量T 表示工作负载系列的长期活动,排除季节和不规则影响,并可以近似表示原始工作负载系列。季节分量S 指定定期发生的模式,由至少一个或多个间隔组成。

2024-02-07 21:07:24 1769 3

原创 6.824-Lab 1: MapReduce

在这个实验中,你将构建一个MapReduce系统。你将实现一个工作进程(worker process),调用应用程序的Map和Reduce函数,并处理文件的读写,以及一个主进程(master process),分配任务给工作进程并处理失败的工作进程。你将构建的系统与MapReduce论文中描述的相似。

2024-02-07 13:14:37 1404

原创 论文阅读-面向公平性的分布式系统负载均衡机制

因此,策略配置 (x2A;x2B) 是纳什均衡。然而,纳什均衡 (x2A;x2B) 也是一个帕累托最优策略。备注 6。我们的。

2024-02-06 21:43:19 2323 2

原创 论文阅读-通过云特征增强的深度学习预测云工作负载转折点

云工作负载转折点要么是代表工作负载压力的局部峰值点,要么是代表资源浪费的局部谷值点。预测这些关键点对于向系统管理者发出警告、采取预防措施以实现高资源利用率、服务质量(QoS)和投资收益至关重要。现有研究主要只关注于工作负载未来点值的预测,而没有考虑基于趋势的转折点预测。此外,在预测过程中最关键的挑战之一是,传统的趋势预测方法在金融和工业领域等方面虽然取得了成功,但它们表示云特征的能力较弱,这意味着它们无法描述高度变化的云工作负载时间序列。本文提出了一种基于云特征增强的深度学习的新型云工作负载转折点预测方法。

2024-02-05 21:13:53 1234 1

原创 论文阅读-CARD:一种针对复制元数据服务器集群的拥塞感知请求调度方案

复制元数据服务器集群(RMSC)在分布式文件系统中非常高效,同时面对数据驱动的场景(例如,大规模分布式机器学习任务)。然而,考虑到成本效益和系统利用率,实践中通常会限制集群规模。在这种情况下,由于客户端对拥塞不知情的行为和非智能选择策略(即,集群中的服务器被间歇性地优先选择然后避开),集群中的服务器开始在更高的系统利用率下遭受负载波动。负载波动带来的后果在一定程度上降低了整个系统的总体性能。解决这个问题的一个方案是让客户端分担部分责任,并为了稳定性更明智地行事。因此,在本文中,我们提出了一种。

2024-02-04 19:28:54 1361 1

原创 论文阅读-在分布式数据库环境中对哈希算法进行负载均衡基准测试

现代高负载应用使用多个数据库实例存储数据。这样的架构需要数据一致性,并且确保数据在节点之间均匀分布很重要。负载均衡被用来实现这些目标。几乎所有负载均衡系统的核心都是哈希算法。自经典一致性哈希引入以来,已经为此目的设计了许多算法。负载均衡器的一个目的是确保存储集群的可扩展性。在节点添加或移除期间尽可能少地转移数据记录对整个系统的性能至关重要。负载均衡器中的哈希算法对这一过程影响最大。在本文中,我们通过模拟和真实系统实验评估了几种用于负载均衡的哈希算法。

2024-02-03 18:03:14 1318

原创 论文阅读-一种用于大规模分布式文件系统中基于深度强化学习的自适应元数据管理方案

在一个典型的分布式元数据系统中,有N个元数据节点和M个MDS,令T = {ni | 1 ≤ i ≤ N}表示元数据命名空间树上所有元数据节点的集合,而S = {mj | 1 ≤ j ≤ M}表示所有MDS的集合。定义1:定义跳数Ji为在从根节点向上递归搜索节点ni期间,在不同MDS之间的“切换”次数。定义2:定义流行度Pi为节点ni的总访问次数,其中Pi = access(ni) + ∑nj∈Di access(nj),并且Di表示ni的后代节点集,它既包括对ni的访问,也包括对其后代节点的访问的总和。

2024-02-03 16:01:26 1455 1

空空如也

空空如也

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

TA关注的人

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