- 博客(1192)
- 资源 (45)
- 问答 (15)
- 收藏
- 关注
原创 【工具】开发工具红黑榜 (TCP测试/HTTP测试/SHELL工具/串口工具……)
SSH工具FinalShell (shell+文件传输+远程桌面)SSH/串口 工具MobaXtermXshell (缺点:收费)TCP/UDP测试工具红:USR-TCP232-Test(功能强大)http://www.usr.cn/Download/27.htmlSocketTool.exe (缺点:没有日志功能,点击发送后发送框内的数据被清除)灰:T............
2020-01-09 20:57:39
5895
4
原创 【计算机】寄存器是什么?
寄存器是计算机存储器的一个关键组件,它存储数据和指令以快速处理。它充当一个高效的临时存储区,信息可以在这里被快速访问和操作,以执行复杂任务。“寄存器是CPU里‘距离运算器最近、延迟最低、名字最短的存储’——它把‘存储’和‘控制’合二为一,让指令在纳秒级完成‘取-译-执-写回’的循环。
2025-12-13 14:40:26
739
原创 【】NVSHMEM 传输层ibgda,ibrc,libfabirc插件设计|软件插件设计
在// RMA和AMO操作函数指针// ... 其他操作。
2025-12-02 20:43:48
350
原创 【RDMA】一个例子说明Infiniband 的LID是什么
在同一个子网内的Inifiniband 网卡才能通信,ibstat 查看Base lid 就是网卡自己的LIDSM lid: 就是网卡所在的子网的ID (其实是该子网管理器的ID)。上面的信息输出表明当前节点接入两个子网:子网 261 mlx5_0,子网 189 mlx5_2~mlx5_3mlx5_0261属于的子网mlx5_10端口处于状态,未关联有效 SM189属于的子网。
2025-11-28 19:53:39
411
原创 【集群】slurm
Slurm(全称,即 “用于资源管理的简单 Linux 工具”)是一款开源、高度可扩展的集群作业调度与资源管理系统。Slurm作为集群工作负载管理器,Slurm具有三个关键功能。首先,它在一段时间内为用户分配对资源(计算节点)的独占和/或非独占访问权限,以便他们可以执行工作。其次,它为在分配的节点集上启动、执行和监控工作(通常是并行工作)提供了一个框架。最后,它通过管理待处理工作队列来仲裁资源的争用。
2025-11-25 19:54:20
891
原创 【NCCL】NCCL 中的channel 是什么概念?
(编译后生成nccl.h)和公开 API 中不直接暴露(内部实现),但上层通过ncclComm_t(通信对象)间接引用 Channel;内部结构体定义在,核心字段包括:int id;// Channel 唯一标识// 关联的通信对象(包含 Group 信息)// 发送缓冲区// 接收缓冲区// 缓冲区大小// 传输类型(PCIe/NVLink/IB)// 对端 GPU 信息(设备号、地址等)// 同步原语(信号量、事件等,确保传输有序)
2025-11-12 21:04:56
735
原创 【NCCL】Merged Device(合并设备)和bond的区别
在现代高性能计算环境中,节点可能有多个网络接口卡(NIC)或多个设备用于网络通信。NCCL 支持将这些设备合并为一个逻辑连接,以提高带宽和性能。因此,通信的两端都需要知道对方有多少个设备,这样才能正确地建立连接和分配资源。。NCCL 中将多个设备合并为一个逻辑连接,这种合并被称为"Merged Device"(合并设备)。
2025-11-04 17:33:22
675
翻译 【NCCL】什么是PXN
NVIDIA在NCCL 2.12版本中引入PXN架构优化all2all通信性能。该架构创新性地结合NVLink与PCIe通信,使GPU可通过NVLink将数据写入中间GPU缓冲区,再经PCIe交换机直接传输至目标网卡,避免了传统CPU间协议的带宽限制。PXN通过消息聚合机制将最多8条消息合并发送,显著提升消息速率;同时实现了节点内GPU到目标节点的连接共享,减少连接数量。测试显示该方案有效降低了网络拥塞,使all2all操作性能提升显著。该技术还解决了单GPU-NIC拓扑下的ring算法限制问题,为模型并行
2025-11-03 18:14:37
179
原创 【RDMA】mlx5dev mlx5dv_devx 接口
API 是一个抽象接口,不依赖于任何底层硬件的具体实现(意思是 RDMA 网卡不仅有 mellanox(MLX)、还有 intel 等厂商,这些厂商都遵循 OFED 的 verbs API 接口定义,针对自家网卡实现了 API 规定的功能)。DEVX API 利用 KABI(内核 ABI)机制,允许用户空间直接访问 mlx5 设备驱动,其主要目标是使用户态驱动尽可能独立于内核,从而在无需或仅需极少内核改动的情况下,启用未来设备的新功能和新命令。—— 通过 DEVX 接口修改 Verbs CQ(完成队列)
2025-10-30 20:39:55
1093
原创 【NCCL】Ring Allreduce
AllReduce主要目的是在所有处理器上收集并汇总数据,使得每个处理器都能获得全局数据的归约结果。AllReduce就像一个“班级大合唱的收票统计”:假设一个班有4个小组,每个小组算出了自己应该交的班费(比如A组10元,B组20元,C组30元,D组40元)。AllReduce的目标就是让每个小组都知道全班总共要交多少钱(10+20+30+40=100元),而不仅仅是知道自己小组的数额。为什么这个很重要?在深度学习(比如训练大模型)中:每个处理器(GPU)= 上面的一个“小组”每个处理器的数据。
2025-10-09 20:31:30
1220
原创 【RDMA】GDR和GDA的区别(GPUDirect Async vs GPU Direct RDMA)
GDA 通常是指 NVIDIA 的 GPUDirect Async 技术,它与 GDR(GPU Direct RDMA)都属于 NVIDIA GPUDirect 技术家族的成员。GDA 让 GPU 真正实现了 “数据发送 + 通信控制” 全自主,带来两大关键优势:1. 延迟更低:砍掉 CPU 参与的控制流程,减少上下文切换、队列等待的耗时;2. CPU 彻底解放:CPU 不再被通信控制绑定,能专注跑其他计算任务,提升系统整体效率。
2025-08-10 00:34:42
2077
原创 【RDMA】Adapters PRM Mellanox Adapters Programmer’s Reference mellanox网卡编程手册0.52
Mellanox 网卡程序员参考手册 (PRM) 文档。
2025-07-25 23:55:07
738
原创 【CUDA】warp洗牌shuffle:_shfl_sync、__shfl_up_sync、__shfl_down_sync 和 __shfl_xor_sync函数
# 使用场景- 广播数据- 数据偏移- 交错访问+ 累加树形求和// 获取相邻线程的值。
2025-07-17 00:31:24
1423
翻译 【NVSHMEM】NVSHMEM 3.0新增特性和兼容性
NVSHMEM是NVIDIA Magnum IO的一部分,基于OpenSHMEM, NVSHMEM为跨越多个gpu内存的数据创建了一个全局地址空间,可以通过细粒度的gpu发起的操作,cpu发起的操作和CUDA流上的操作来访问。NVSHMEM 3.0在IBGDA中增加了对一种称为cpu辅助IBGDA的新模式的支持,它作为基于代理的网络和传统IBGDA之间的中间模式。它还允许NIC助手在运行时动态选择CPU或GPU。相反,NVSHMEM使用异步的、GPU发起的数据传输,消除了CPU和GPU之间的同步开销。
2025-06-21 00:16:13
792
原创 【NCCL】DBT算法(double binary tree,双二叉树)
万卡集群通信优化算法双二叉树:https://www.bilibili.com/video/BV1zSpnezEB83.1 NCCL源码二叉树构建算法:https://www.bilibili.com/video/BV1DErsYwEhc/"double binary tree" 在并行计算/NCCL语境中特指一种用于高效集合通信的树形拓扑结构,由两个并行的二叉树组成。从 ring 算法到 tree 算法,把时间复杂度从 n 提升到了 logn。
2025-05-09 22:15:14
1458
原创 【vscode】vscode链接关联github/gitlab
注意,这里的gitlab.com应该替换为你的GitLab实例的URL(如果你的GitLab是私有的或自托管的)。将pub内容复制,登录github/gitlab上,点击头像,选择preference,在右侧“user setting”选择“SSH Keys”,将pub内容填入。完成以上步骤后,你应该能够在VSCode中使用Git功能时,通过SSH密钥进行身份验证,而无需每次输入用户名和密码。在弹出的输入框中粘贴你在GitLab上复制的项目地址,然后按回车。在弹出的窗口至选择代码存放的位置。
2025-04-15 06:36:41
3196
原创 【GPU】CUDA、OpenCL、OpenMP、OpenACC等并行运算框架区别
是一个类似于OpenMP的编程接口,专门为加速器(如GPU)设计。它通过使用编译制导语句来简化并行计算的编程工作,让开发者能够更容易地将计算任务迁移到加速器上执行。OpenACC的目标是降低使用加速器进行高性能计算的技术门槛,使非专家也能有效地利用这些资源。版本更新很快,但仅限N卡。OpenCL跨平台,社区貌似不太活跃,更新不如CUDA。:适合需要快速将CPU代码移植到GPU上的并行计算任务。主要是针对CPU,最近开始支持GPU了,SIMT(线程网格)
2025-04-15 06:20:42
1737
原创 【大模型】通信元语和相关概念|NCCL梯度|Allreduce|Scatter|Broadcast|Gather
ReduceReduce(归约) 是一种聚合操作,与“拆分”相反,它的核心逻辑是将多个数据元素合并成一个结果。拆分是 Map 的职责,而非 Reduce。Reduce 的“归约”本质是通过迭代合并,逐步缩小数据规模,最终得到全局结果。以下是关键要点:1.定义与功能Reduce通过一个二元操作(如加法、取最大值等)逐步合并数据,最终输出一个单一值。例如:对执行 Reduce(求和),结果为10。2.与 Map 的关系在MapReduce模型中:Map。
2025-03-24 05:33:20
3169
2
翻译 【RDMA】NUMA对RDMA单边操作影响的性能评估
RDMA允许节点直接访问远程机器上的内存,而多处理器架构使用NUMA来提升内存访问性能。本文首次探讨了这些配置,并提供了关于NUMA对基于RDMA系统性能影响的定量研究结果。研究表明,对于超快网络而言,NUMA本地性的影响在启用RDMA的分布式系统的性能影响更大。总之,远程可访问内存的NUMA本地性差可能导致自动20%的性能下降。此外,根据内存本地性的不同,操作远程可访问内存的本地工作负载可能会导致高达300%的性能差距。我们使用两代RDMA卡、一个合成基准测试和Memcached对我们的发现进行了验证。
2025-03-20 12:32:57
625
原创 【工具】VS code AI 代码助手
GitHub Copilot是由GitHub、OpenAI和微软Azure团队联合推出的AI编程助手,能够为开发者提供智能代码建议和自动补全功能,适用于多种编程语言和IDE,是目前市场上最受欢迎的AI编程工具之一。协作功能:帮助开发者实时补全代码、生成函数和模块,极大提升开发效率。产品价格GitHub Copilot目前提供30天免费试用期,个人开发者订阅费用约为10美元/月,企业版订阅则根据使用人数和规模定价。优点:提供高质量的代码建议,代码补全功能极其强大。
2025-03-19 11:07:13
3309
原创 【GPU】什么是 NVLink?
什么是 NVLink?| NVIDIA 英伟达博客 https://blogs.nvidia.cn/blog/what-is-nvidia-nvlink/NVLink就是英伟达(NVIDIA)开发并推出的一种总线及其通信协议,主要用于GPU之间或GPU与CPU、网络接口卡(NIC)等其他外设的连接,提供更高效的传输性能(高带宽,低延迟)。
2025-03-09 16:25:58
3279
1
原创 【GPU】什么是NCCL和Simple, LL, LL128通信协议
NCCL (NVIDIA Collective Communications Library) 是 NVIDIA 推出的一个用于 GPU 之间高性能通信的库。深度学习模型规模巨大,单个 GPU 无法满足训练需求,需要将模型或数据分割到多个 GPU 上进行并行训练,NCCL 就是为了解决这个场景而生的。NCCL确实提供了Simple、LL和LL128这三种通信协议,以满足不同应用场景下的性能需求。减少同步带来的延迟将数据排列组合成4B Data+4B Flag的形式进行传输,对端会对Flag值进行校验。
2025-03-09 15:48:48
4085
9
原创 【CUDA】什么是CUDA?什么是CUDA编程?
CUDA(Compute Unified Device Architecture,统一计算设备架构),是显卡厂商NVIDIA推出的一种并行计算平台和编程模型。概念中的重点是“统一”二字:“统一”的含义是指该架构将不同类型的计算设备(主要是CPU和GPU)整合到一个统一的编程模型中,开发者可以使用相同的编程语言和工具集,在CPU和GPU上执行计算任务,而无为 CPU 和 GPU 分别编写完全不同的代码(既同时开发 CPU 和 GPU 上的共同程序),这种统一性简化了并行计算的开发流程传统方式。
2025-03-09 05:21:29
5096
原创 【Linux】软件工程师的屠龙技—eBPF(编辑中)
eBPF(extended Berkeley Packet Filter),即“增强版伯克利数据包过滤器”或“伯克利数据包过滤器扩展版”,是一种在Linux内核中运行沙盒程序的技术。
2025-03-07 01:17:25
1097
原创 【C/C++】内存屏障概念、原理和用途
内存屏障通过限制指令重排序和确保内存可见性,保证多线程环境下的操作顺序和一致性,广泛应用于多线程编程、操作系统内核和硬件设备驱动中。是 CPU 指令内存屏障,由编译器生成特定的硬件指令。C++11 及更高版本提供了标准化的内存屏障支持,主要通过和实现。volatile不能替代内存屏障,仅用于防止编译器优化。
2025-02-17 20:06:29
1709
原创 【RDMA】 ZTR(Zero Touch RoCE)技术(无需配置PFC和ECN)
Zero Touch RoCE(ZTR)技术是NVIDIA开发的一种创新技术,它允许在不需要特殊交换机配置的情况下,部署RDMA(RoCE,RDMA over Converged Ethernet)。ZTR技术简化了RoCE网络的部署和管理,提高了数据中心的效率和灵活性。“Zero Touch”的含义可以解释为“零接触”或“无需人工干预”。
2025-01-13 19:15:12
1438
原创 【网络】CXL (Compute Express Link)高速互联技术
通过 CXL,可以在 CPU 和 DPU 之间创建单个共享内存域,使用 CXL 连接的设备内存(如 CXL.mem)作为 CPU+DPU 的共享内存,从而避免显式的数据移动。和数量庞大的基于PCIe运算加速器,每个上面都有很大的内存。传统的基于 PCIe 的 CPU+DPU 协同处理模式存在性能瓶颈,因为需要在 CPU 和 DPU 内存域之间进行多次数据移动,导致性能大幅下降。一个高性能存储系统中,CPU 需要处理大量的存储请求,而 DPU 负责执行具体的存储操作(如加密、压缩、解密、解压缩等)。
2025-01-02 01:54:18
2061
原创 【设计模式】命令模式
命令模式是一种行为型设计模式。它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、 延迟请求执行或将其放入队列中, 且能实现可撤销操作。例如你正在开发一款新的文字编辑器, 包含多个按钮的工具栏, 每个按钮对应编辑器的不同操作。你创建了一个非常简洁的按钮类, 可用于生成工具栏上的按钮, 还可用于生成各种对话框的通用按钮。
2024-12-27 02:05:20
731
原创 【设计模式】装饰器模式(Decorator Pattern)
装饰器模式(Decorator Pattern)是一种结构型设计模式。装饰器模式通过创建一个装饰类,包装原始对象,并在保持原始对象接口不变的情况下,扩展其功能。
2024-12-26 16:49:30
567
原创 【设计模式】适配器模式
• 解决方案:为使Target能够使用Adaptee类里的SpecificRequest方法,故提供一个中间环节Adapter类(包装了一个Adaptee的实例),把Adaptee的API与Target的API衔接起来(适配)。与类的适配器模式不同的是,对象的适配器模式不是使用继承关系连接到Adaptee类,而是使用委派关系连接到Adaptee类。与类的适配器模式相同,对象的适配器模式也是把适配的类的API转换成为目标类的API。类的适配器模式是把适配的类的API转换成为目标类的API。
2024-12-26 16:36:58
1197
原创 【C++】设计模式
为什么常用:定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新。备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。观察者(Observer):定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新。工厂方法让类的实例化推迟到子类。解释器(Interpreter):给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。
2024-12-25 18:27:07
884
原创 【网络】超以太网联盟 UEC|Ultra Ethernet|下一代 “RoCE” 协议--编辑中
Tail latency: 尾部延迟,(以通信阶段最后一条消息的到达时间为衡量标准)是系统性能的关键指标。UET: 超级以太传输协议。UEC: 超级以太联盟。
2024-12-22 16:01:16
2315
原创 【DAOS】CaRT初始化过程和数据发送代码
-----------completion_data_ptr = hg_atomic_queue_pop_mc(na_private_context->completion_queue)//从cq中取出完成的e。
2024-12-16 03:19:30
563
原创 【RDMA】RDMA read和write编程实例(IB verbs)
为简洁起见(并说明它们几乎相同),此示例的代码合并了上一组帖子中的许多客户端和服务器代码(common.c中),客户端 (rdma-client) 和服务器 (rdma-server) 继续运行不同的 RDMA 连接管理器循环处理事件(RDMA connection manager event loops),但它们相同的verbs 代码部分——轮询 CQ、发送消息、发布 RDMA 操作等共用一份代码。等待 MSG_DONE 是必要的,否则我们可能会在对等方(peer)的 RDMA 操作完成之前关闭连接。
2024-12-04 17:07:56
2819
原创 编译src.rpm源码包的方法
in `/root/rpmbuild/BUILD/mlnx-ofa_kernel-5.8/obj/default/compat 指示了config.log的位置。以rpm -ivh /tmp/mlnx-ofa_kernel-5.8-OFED.5.8.1.1.2.1.src.rpm 为例。把helloworld和helloworld.spec 都放入其中<----------------------这一步很关键。在/root/rpmbuild/RPMS目录下生成了rpm包。会显示让你看config.log。
2024-10-10 21:23:33
1010
原创 【RDMA】mlxlink检查和调试连接状态及相关问题--驱动工具
mlxlink工具用于检查和调试连接状态及相关问题。该工具可以用于不同的链路和电缆(包括被动、电动、收发器和背板)。属于mft工具套件的一个工具,固件工具 Firmware Tools (MFT):https://blog.csdn.net/bandaoyu/article/details/142427579警告为了确保mlxlink正常工作,请确保将固件版本更新到最新版本。mlxlink是为具备适当技术背景的高级用户设计的。
2024-09-22 11:10:05
3128
原创 【RDMA】mlxconfig修改和查询网卡(固件)配置--驱动工具
mlxconfig 工具允许用户在不重新烧录固件的情况下更改某些设备配置。配置在重启后仍然保留。默认情况下,mlxconfig 显示将在下次启动时加载的配置。对于第五代设备,还可以查询默认配置以及当前运行的固件所使用的配置。工具要求需要安装并启用 OFED/WinOF 驱动程序(针对 ConnectX-3 和 ConnectX-3 Pro)。通过 PCI 接口访问设备(pciconf/pci_cr)。ConnectX®-3/ConnectX-3 Pro:v2.31.5000 或更高版本。
2024-09-22 01:03:30
3568
1
基于可靠连接和高效资源共享的可扩展 RDMA RPC
2022-02-12
Argobots: A Lightweight Threading Framework for Massive Fine-Gra
2023-09-30
mellanox RDMA MLNX-OFED Documentation Rev 5.7-1.0.2.0-11-15-2022
2022-11-15
A Review of Lightweight Thread Approaches for High Performance
2022-09-18
DISTRIBUTED ASYNCHRONOUS OBJECT STORAGE (DAOS)
2022-09-10
大文件切割FileSplitter+CoolFormat3.4+Sublime Text 3
2022-08-17
DAOS_A_Scale-Out_High_Performance_Storage_Stack_fo.pdf
2022-08-15
连接服务器失败(错误原因:Connection refused) error 111 抓包结果
2022-01-25
mellanox OFED 驱动使用手册(含verbs、rdma-cm接口使用)(原版+AI翻译)-v23-10-2-1-3-1-lts.1 LTS
2025-12-20
mellanox OFED 驱动使用手册(含verbs、rdma-cm接口使用指导)v24.10-3.2.5.0 LTS
2025-12-20
MobaXterm、WindTerm、xshell、finalshell、soureCRT快捷指令工具cxtool-4.1.8
2025-04-15
Internal-Mellanox-Adapters-PRM-rev-0-53+Mellanox Adapters Programmer’s Reference0.40网卡编程手册
2025-07-25
咸鱼快捷指令-3.0.0快捷指令工具
2024-06-16
cxtool-3.2.2快捷指令工具-MobaXterm、WindTerm、xshell伴侣
2024-07-03
MobaXterm、WindTerm、xshell、finalshell、soureCRT快捷指令工具cxtool-3.2.5
2024-07-18
MobaXterm、WindTerm、xshell、finalshell、soureCRT快捷指令工具cxtool-3.8.0
2024-08-14
MobaXterm、WindTerm、xshell、finalshell、soureCRT快捷指令工具cxtool-4.0.0
2024-08-28
MobaXterm、WindTerm、xshell、finalshell、soureCRT快捷指令工具cxtool-4.1.5
2024-09-07
咸鱼快捷指令-1.5.0
2024-06-06
the-geek-in-the-corner-master.zip
2025-02-10
咸鱼快捷指令-1.2.0快捷指令工具
2024-06-05
自定义快捷指令工具 咸鱼快捷指令-2.0.0
2024-06-10
CP丢包对带宽性能的影响分析(Analysing TCP performance when link experiencing
2023-11-26
shell 脚本怎么删除 匹配字符之间的行?
2023-03-01
我写的IP转interface的shell脚本错哪里了呢?
2022-12-10
ifconfig 除了列出网口信息还有一堆不知道是什么?
2022-10-27
为什么程序能用getenv读到的环境变量我printenv打印不出来?
2022-09-23
find 后调用 -exec 执行多条语句的方法是?
2022-09-09
如何设置scons的环境变量?
2022-08-25
Gcc编译代码报错/usr/bin/ld: cannot find abt
2022-08-23
为什么popen没有执行里面的shell脚本?
2022-05-19
linux 的buff/cache有必要手动清除吗?
2021-12-06
linux怎么查看线程的父进程?
2021-10-26
C++11启动线程时怎么给线程分配名字?
2021-09-22
C++11的allocator::construct如何构造多参数对象?
2021-09-25
linux 的core file的时间戳怎么样才能变成日期格式
2018-02-26
shell怎么调用一个子脚本之后 让自己可以退出不必等子脚本
2017-05-20
如何实现子Div的大小随着父Div的大小动态的改变而改变
2017-09-24
Echart和WPF chart 比有什么优势吗?为什么Echart的JS库如此热门?
2017-06-22
如何实现点击页面上的图片改变服务器上某个文件的JSON数据?
2017-08-07
servlet应该放在哪个文件夹?servlet-class的根目录是哪里?
2017-10-19
关于protobuff,json等协议数据跨语言传输的一些问题
2017-11-09
pentaho,Kylin, Mondrian, Saiku之间到底是什么样的关系?
2017-07-16
shell函数内如何改变参数的值?类似于C语言一样参数指针传递
2017-05-21
linux 的core file的时间戳怎么样才能变成日期格式
2016-09-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅