- 博客(84)
- 收藏
- 关注
原创 BERT-DDP
这份代码执行的是一个典型的分布式训练流程,利用多个 GPU(可能分布在多个节点上)来加速模型训练。核心思想是每个 GPU 处理一部分数据,计算梯度,然后同步梯度并更新模型。
2025-04-11 16:15:48
528
原创 torch.no_grad() vs. param.requires_grad == False
特性类型上下文管理器的属性作用范围代码块 (Block-level),影响块内所有 PyTorch 运算张量 (Tensor-level),影响特定的张量(参数)持续性临时 (Temporary),仅在with块内有效持久 (Persistent),直到被显式修改效果禁用梯度计算和跟踪(不构建计算图)阻止特定张量的梯度计算和更新(计算图可能仍构建)主要用途模型评估/推理冻结模型层/参数 (微调)资源节省显著节省内存和计算时间(对块内所有操作)节省梯度计算/存储(对特定参数)在块内设置是可以。
2025-04-09 11:10:19
729
原创 重生之我是去噪高手——diffusion model
想象一下,你有一张清晰的图片。扩散模型的核心思想分为两个过程:目标:把一张真实的、清晰的图片(来自你的训练数据集)逐步变成完全的随机噪声(通常是高斯噪声)。如何做:这个过程是固定的、预先定义好的,不需要学习。关键点:类比:想象把一滴墨水滴入清水中,墨水会逐渐扩散(加噪),直到整杯水变成均匀的淡黑色(纯噪声)。前向过程提供了问题-答案对,即噪声阶段和对映的噪声。这个可以为反向过程提供训练的数据。简单来说,前向过程就是故意弄脏图片,并且记录下是怎么弄脏的,目的是为了给 AI 提供学习“如何把脏图片变干净”
2025-04-05 23:53:40
657
原创 算法模板-线段树+懒标记
在区间修改当中加入了懒标记以增加效率,它的作用是当找到一个小区间被所求区间覆盖的话,就不再往下进行递归查找,只对当前小区间进行标记。等到下次查询或更新的时候再对小区间中的节点进行更新。所以懒标记会在对小区间的查询或修改的时候率先更新,这体现在更新区间和查询区间的函数中,在不覆盖的情况下,会率先调用push_down函数对子节点进行更新。每个节点存储一段区间的左右端点以及区间的某种属性。点修改可以算是区间修改的一个特例。区间查询:主要的思路是拼凑与拆分。
2024-04-19 15:09:05
564
原创 牛客小白月赛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
469
原创 牛客周赛 Round 39题解
思路:贪心,由于最后一定会剩下sum%k个球,我们想让球的颜色最少,最好的方法是让剩下的球全部是一个颜色的。所以先求一下sum%k看剩几个球,再对数组排序,倒着取看结果是否为负,若为负则表示当前颜色是不能取完的(很直觉的做法,感觉也可以从前往后进行模拟,比较符合正常思路)。dp[i]表示%p后能凑出i这个数字使用最少的数字的个数。dp是考虑从哪个状态枚举到哪个状态。但好像没讲全对,可能是状态转移的更新部分不太对。思路:推公式,不是很难,题目完全是在迷惑大家。以下是bfs的正确代码。思路:带懒标记的线段树。
2024-04-17 13:45:11
545
原创 牛客周赛 Round 40题解
dp[i][j]表示考虑前i件装备,使用不超过j个金币时能获得的最大战力。初始条件为,意味着没有装备和没有使用金币时战力为 0。初始化其它值为一个很小的数(这里用),代表非法状态。
2024-04-15 12:36:03
938
原创 蓝桥杯第十二届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组题解
思路:这个问题要求找出在满足给定条件(每位同学获得两张可能相同也可能不同的卡片,且没有任何两位同学获得完全相同的一组卡片)的前提下,小蓝需要准备的最少卡片种数。代码采用了一个直接的遍历方法来寻找解决方案。### 代码解释代码首先读入一个整数 `n`,表示班上同学的人数。接下来,它使用一个循环来遍历可能的卡片种数 `k`。对于每一个 `k`,它计算在当前的卡片种数下,能够产生的不同卡片组合总数。
2024-04-11 17:05:27
1106
原创 蓝桥杯第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组题解
这段代码使用动态规划(DP)来解决一个特定的问题,涉及到一系列的题目,每道题目答对可以获得10分,答错分数归零。目标是计算所有可能的得分方式中,最终得分为70分的总方案数。思路:dfs,枚举三种情况,不选当前瓜,选当前瓜的一半,选当前瓜。代码妙在将需要求的目标和每个瓜的值先乘2,免去了整除的尴尬。这是动态规划的基础,从这些初始条件开始,可以计算出后续所有的情况。这种使用动态规划的方法高效地遍历了所有可能的答题方案,计算出了满足条件的总方案数。题后所有可能得分(0到90分,每隔10分)的方案数之和。
2024-04-07 20:02:31
1253
2
原创 论文阅读-多级检查点重新启动MPI应用的共同设计
论文名称:摘要—高性能计算(HPC)系统继续通过包含更多硬件组件来支持更大的应用部署来扩展。关键是,这种扩展往往会减少故障之间的平均时间,从而使容错成为一个越来越重要的挑战。在HPC中容错的标准做法是检查点/重新启动。已经有一些重要但独立的工作来创建快速的应用层检查点恢复技术和MPI层的快速恢复技术。然而,这些技术是独立操作的,虽然它们彼此预设,但它们并没有被设计成共同优化端到端的应用恢复。
2024-03-30 16:00:59
1479
1
原创 文档翻译-NVIDIA DALI Getting Started
让我们从为分类任务定义一个非常简单的管道开始,该任务确定一张图片中是否包含狗还是小猫。我们准备了一个包含狗和小猫图片的目录结构在我们的代码库中。我们的简单管道将从这个目录中读取图片,解码它们,并返回(图片,标签)对。创建管道最简单的方法是使用pipeline_def装饰器。在simple_pipeline函数中,我们定义要执行的操作以及它们之间的计算流程。使用fn.readers.file来从硬盘读取jpeg(编码图像)和标签。使用fn.decoders.image操作将图像从jpeg解码为RGB。
2024-03-29 10:08:03
1051
原创 文档翻译-NVIDIA DALI Pipeline
文档地址:在DALI中,任何数据处理任务都有一个称为Pipeline的中心对象。Pipeline对象nvidia.dali.Pipeline或其派生类的实例。Pipeline封装了数据处理图和执行引擎。
2024-03-21 20:47:27
898
原创 win10安装Ubuntu22.04LTS及深度学习相关配置详细教学
由于之前Ubuntu系统硬盘空间分配的不够,又去看了一下发现扩容很很麻烦。加以发现自己前面安装的深度学习环境版本与实际要用的不符,所以当机立断决定直接重装系统。
2024-03-13 15:40:56
1487
原创 论文阅读-高效构建检查点
高效构建检查点/快照是训练和诊断深度学习模型的关键工具。在本文中,我们提出了一种适用于检查点构建的有损压缩方案(称为LC-Checkpoint)。LC-Checkpoint同时最大化了压缩率并优化了恢复速度,假设使用SGD来训练模型。LC-Checkpoint使用量化和优先级提升来存储SGD恢复所需的最关键信息,然后使用霍夫曼编码来利用梯度尺度的非均匀分布。我们广泛的实验证明,LC-Checkpoint相对于最先进的算法(SCAR),实现了高达28倍的压缩率和高达5.77倍的恢复加速。
2024-03-03 21:13:53
1314
1
原创 论文阅读-Hydra: 用于持久内存和RDMA网络的分散文件系统
新兴的字址持久内存(PM)有可能颠覆内存和存储之间的边界。结合高速RDMA网络,分布式基于PM的存储系统提供了通过紧密耦合PM和RDMA特性来实现存储性能大幅提升的机会。然而,现有的分布式文件系统采用为传统磁盘设计的传统集中式客户端-服务器架构,导致访问延迟过高、可扩展性有限且恢复开销高。本文提出了一种完全去中心化的基于PM的文件系统——Hydra。通过利用本地PM的性能优势,Hydra利用数据访问局部性实现高性能。为加速Hydra节点间的文件传输,文件元数据和数据通过单边RDMA读取进行分离更新。
2024-02-19 18:24:37
1104
原创 吴恩达深度学习-L1 神经网络和深度学习总结
吴恩达《深度学习专项》第一阶段总结与第二阶段预览 - 知乎 (zhihu.com)自我感觉达到文章里Level3的水平了,对于计算中的某些细节还有些不清楚,比如导数的计算,怎么来的,反向传播的过程中的cache存储等。%5Calpha。
2024-02-17 20:52:36
1264
原创 论文阅读-PIM-tree:一种面向内存处理的抗偏移索引
当今的内存索引性能受到内存延迟/带宽瓶颈的限制。Processing-in-memory (PIM) 是一种新兴的方法,可能通过实现低延迟内存访问,其聚合内存带宽随 PIM 节点数量扩展,来缓解这种瓶颈。然而,在工作负载偏斜的情况下,PIM 系统在最小化节点间通信和实现负载平衡之间存在固有的张力。本文介绍了 PIM-tree,一种针对 PIM 系统的有序索引,它通过在数据和查询中实现加载平衡,实现了低通信成本和高负载平衡。我们的抗偏移索引基于主机 CPU 和 PIM 节点之间的劳动分工,利用各自的优势。
2024-02-15 22:32:24
1616
1
原创 论文阅读-面向机器学习的云工作负载预测模型的性能分析
由于异构服务类型和动态工作负载的高变异性和维度,资源使用的精确估计是一个复杂而具有挑战性的问题。在过去几年中,资源使用和流量的预测已受到研究界的广泛关注。许多基于机器学习的工作负载预测模型通过利用其计算能力和学习能力得以发展。本文提出了第一篇系统调查、基于性能分析的比较研究,涉及多样化的基于机器学习的云工作负载预测模型。从预测资源管理的重要性开始讨论,接着介绍了这些工作负载预测模型的框架描述、操作设计、动机和挑战。将不同预测方法的分类和分类法分为五个不同类别。
2024-02-14 21:37:32
2935
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
912
原创 论文阅读-Pegasus:通过网络内一致性目录容忍分布式存储中的偏斜工作负载
高性能分布式存储系统面临着由于偏斜和动态工作负载引起的负载不平衡的挑战。本文介绍了Pegasus,这是一个利用新一代可编程交换机ASIC来平衡存储服务器负载的新型存储系统。Pegasus使用数据存储中最受欢迎的对象的选择性复制来分配负载。通过使用一种新颖的网络内一致性目录,Pegasus交换机跟踪和管理复制对象的位置。这使得它能够实现对复制键的负载感知转发和动态再平衡,同时仍然保证数据的一致性和一致性。Pegasus设计的实施是切实可行的,因为它只在交换机数据平面中存储转发元数据。
2024-02-13 23:12:55
1553
1
原创 论文阅读-One for All : 动态多租户边缘云平台的统一工作负载预测
多租户边缘云平台中的工作负载预测对于高效的应用部署和资源供给至关重要。然而,在多租户边缘云平台中,异构的应用模式、可变的基础设施性能以及频繁的部署给准确和高效的工作负载预测带来了重大挑战。基于聚类的动态多租户边缘云平台建模方法往往因需要维护大量数据聚类和模型而产生过高的成本。现有的端到端时间序列预测方法在动态多租户边缘云平台中难以提供一致的预测性能。本文提出了一个具有全局池化和静态内容感知的端到端框架 DynEformer,为动态多租户边缘云平台提供了统一的工作负载预测方案。
2024-02-12 18:50:18
2261
2
原创 论文阅读-GROUP:一种聚焦于工作负载组行为的端到端多步预测方法
首先,我们为云原生应用程序定义工作负载组行为。假设容器 ci 的原始工作负载数据序列从 t0 到 tN是。为了识别容器的工作负载组行为,我们将每个容器的工作负载特征建模为包含以下四个组成部分,这些部分代表了每个容器的数据、趋势、季节和细节方面的工作负载变化。数据分量D 表示工作负载系列的原始数据值,直接描述工作负载的数据变化关系。趋势分量T 表示工作负载系列的长期活动,排除季节和不规则影响,并可以近似表示原始工作负载系列。季节分量S 指定定期发生的模式,由至少一个或多个间隔组成。
2024-02-07 21:07:24
1739
3
原创 6.824-Lab 1: MapReduce
在这个实验中,你将构建一个MapReduce系统。你将实现一个工作进程(worker process),调用应用程序的Map和Reduce函数,并处理文件的读写,以及一个主进程(master process),分配任务给工作进程并处理失败的工作进程。你将构建的系统与MapReduce论文中描述的相似。
2024-02-07 13:14:37
1375
原创 论文阅读-面向公平性的分布式系统负载均衡机制
因此,策略配置 (x2A;x2B) 是纳什均衡。然而,纳什均衡 (x2A;x2B) 也是一个帕累托最优策略。备注 6。我们的。
2024-02-06 21:43:19
2238
2
原创 论文阅读-通过云特征增强的深度学习预测云工作负载转折点
云工作负载转折点要么是代表工作负载压力的局部峰值点,要么是代表资源浪费的局部谷值点。预测这些关键点对于向系统管理者发出警告、采取预防措施以实现高资源利用率、服务质量(QoS)和投资收益至关重要。现有研究主要只关注于工作负载未来点值的预测,而没有考虑基于趋势的转折点预测。此外,在预测过程中最关键的挑战之一是,传统的趋势预测方法在金融和工业领域等方面虽然取得了成功,但它们表示云特征的能力较弱,这意味着它们无法描述高度变化的云工作负载时间序列。本文提出了一种基于云特征增强的深度学习的新型云工作负载转折点预测方法。
2024-02-05 21:13:53
1191
1
原创 论文阅读-CARD:一种针对复制元数据服务器集群的拥塞感知请求调度方案
复制元数据服务器集群(RMSC)在分布式文件系统中非常高效,同时面对数据驱动的场景(例如,大规模分布式机器学习任务)。然而,考虑到成本效益和系统利用率,实践中通常会限制集群规模。在这种情况下,由于客户端对拥塞不知情的行为和非智能选择策略(即,集群中的服务器被间歇性地优先选择然后避开),集群中的服务器开始在更高的系统利用率下遭受负载波动。负载波动带来的后果在一定程度上降低了整个系统的总体性能。解决这个问题的一个方案是让客户端分担部分责任,并为了稳定性更明智地行事。因此,在本文中,我们提出了一种。
2024-02-04 19:28:54
1351
1
原创 论文阅读-在分布式数据库环境中对哈希算法进行负载均衡基准测试
现代高负载应用使用多个数据库实例存储数据。这样的架构需要数据一致性,并且确保数据在节点之间均匀分布很重要。负载均衡被用来实现这些目标。几乎所有负载均衡系统的核心都是哈希算法。自经典一致性哈希引入以来,已经为此目的设计了许多算法。负载均衡器的一个目的是确保存储集群的可扩展性。在节点添加或移除期间尽可能少地转移数据记录对整个系统的性能至关重要。负载均衡器中的哈希算法对这一过程影响最大。在本文中,我们通过模拟和真实系统实验评估了几种用于负载均衡的哈希算法。
2024-02-03 18:03:14
1290
原创 论文阅读-一种用于大规模分布式文件系统中基于深度强化学习的自适应元数据管理方案
在一个典型的分布式元数据系统中,有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
1413
1
原创 算法基础课-数学知识Creating a fairy tale is a wonderful way to spark creativity and imagination. While I can‘
知识点:质数、约数、欧拉函数、快速幂、扩展欧几里得算法、中国剩余定理、高斯消元、组合计数、容斥原理、简单博弈论等
2024-02-03 15:23:02
929
原创 论文阅读-一个用于云计算中自我优化的通用工作负载预测框架
准确地预测未来的工作负载,如作业到达率和用户请求率,对于云计算中的资源管理和弹性非常关键。然而,设计一个通用的工作负载预测器,并使其适用于各种类型的工作负载,具有很大的挑战性,因为工作负载的种类繁多且随着时间动态变化。由于这些挑战,现有的工作负载预测器通常是手动调优的,以便在最大程度上提高精度,针对特定(类型的)工作负载。这种需要个体调整预测器的必要性,也使得从先前研究中复现结果变得非常困难,因为预测器的设计与工作负载之间存在强烈的依赖关系。在本论文中,
2024-02-01 18:06:48
1915
1
原创 论文阅读-基于计算网格的并行工作负载预测的作业调度算法
一般来说,计算网格由大量的计算节点组成,其中一些由于计算需求的地理分布不均而处于空闲状态。这可能会导致工作负载不平衡问题,影响大规模计算网格的性能。为了平衡计算需求和计算节点,我们提出了一种基于计算节点工作负载预测的作业调度算法。我们首先分析了工作负载不平衡的原因和重新分配计算资源的可行性。其次,我们通过结合先前设计的工作负载预测模型,设计了一种应用和工作负载感知的调度算法(AWAS)。为了降低AWAS算法的复杂性,我们提出了一种基于计算节点工作负载预测的并行作业调度方法。
2024-01-31 18:54:38
1267
1
原创 论文阅读-MapReduce
在过去的五年里,Google的作者和许多其他人已经实现了数百个专用计算,处理大量原始数据,例如爬取的文档、Web请求日志等,以计算各种派生数据,比如倒排索引、Web文档图结构的各种表示形式、每个主机爬取页面数的摘要、给定日期中最频繁查询的集合等。大多数这样的计算在概念上都很简单。然而,输入数据通常很大,计算必须分布在数百或数千台机器上,才能在合理的时间内完成。并行化计算、分发数据和处理故障的问题使得我们需要编写大量复杂的代码来解决这些问题。
2024-01-30 21:55:32
1662
2
原创 算法基础课-数据结构
需要注意的点在于理解ne[idx] = head,idx表示当前的点,意思是将当前的点链到头结点的后面,再将头结点链在当前idx的前面。
2024-01-26 16:10:43
1725
2
原创 算法基础课-基础算法
因为假如当前区间是倒数第二个区间,遇到以下三种情况时,1和2情况会更新y值,但不会将当前区间加入结果数组,3情况会更新x,y值,会将当前区间加入结果数组,但是最后一个区间不会加入到结果数组,所以需要在循环外添加进结果数组。
2024-01-24 17:09:44
894
原创 acwing-蓝桥杯C++ AB组辅导课-模拟、枚举与排序
题意:题目给定一个区间,问有多少个子区间,满足在区间内的数字是连续的,比如像1,2,3就是连续的,1,2,4,就是断开的,从3这里断开。思路:暴力做法是枚举区间长度,查看区间是否满足要求,显然复杂度过大。挖掘题目信息,发现题目给出的数字是一个排列,那么意味着数字不会重复,所以对于一段区间,只需要知道其最小值和最大值,并计算出差值就可以判断区间是否连续。
2024-01-17 16:06:08
998
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人