会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
CQzhangyu
------知识就是力量------
首页
新随笔
管理
2025年9月24日
NCCL论文阅读
摘要: NCCL论文阅读 目录NCCL论文阅读前言概述NCCL API多GPU管理数据传输通信通道通信层节点内通信节点间通信底层通信协议集合通信算法算法和协议支持通信原语迭代执行模型执行模型对应GPU架构集合通信算法分析总结 前言 NCCL作为当下最为主流的GPU通信库,它的很多系统设计被后续工作(如Dee
阅读全文
posted @ 2025-09-24 11:03 CQzhangyu
阅读(202)
评论(0)
推荐(0)
2025年6月24日
[Pytorch] Transformer Engine报错:RuntimeError: The specified pointer resides on host memory and is not registered with any CUDA device.
摘要: [Pytorch] Transformer Engine报错:RuntimeError: The specified pointer resides on host memory and is not registered with any CUDA device. 问题描述 有一天,我用Megat
阅读全文
posted @ 2025-06-24 14:50 CQzhangyu
阅读(172)
评论(4)
推荐(0)
2025年4月18日
[CMake] 用CMake编译C++程序为Python库
摘要: [CMake] 用CMake编译C++程序为Python库 我有一些c++代码,想要将其编译成Python可调用的库,应该怎么做呢? 这里有2种做法 一种是使用python的setuptools,参见[CUDA] 手写一个PyTorch的算子。不过setuptools的API跟make比较像,如果你
阅读全文
posted @ 2025-04-18 10:28 CQzhangyu
阅读(330)
评论(0)
推荐(0)
2025年3月6日
[Linux] 通过反向代理让远端服务器使用本地的代理
摘要: [Linux] 通过反向代理让远端服务器使用本地的代理 很多时候,我们在本地有稳定的代理,但是在远端服务器上并没有配置代理。这时,我们可能希望远端的服务器能够使用我们本地的代理。为此,我们可以使用linux的反向代理。 反向代理的用法如下: ssh -R <远程端口>:<目标地址>:<目标端口> <
阅读全文
posted @ 2025-03-06 11:12 CQzhangyu
阅读(478)
评论(0)
推荐(0)
2025年2月27日
[MoE] Deepseek的All-to-all通信: DeepEP代码解读
摘要: [MoE] Deepseek的All-to-all通信: DeepEP代码解读 前言 最近,Deepseek开源了一系列MoE的优化技术,让我们看到了AI infra的强大之处。其中,第二天发布的DeepEP则是针对MoE中EP的all-to-all通信进行了优化。 我最近也在关注MoE和all-t
阅读全文
posted @ 2025-02-27 18:04 CQzhangyu
阅读(9967)
评论(2)
推荐(4)
2025年2月14日
[MoE] Tutel源码解读
摘要: [MoE] Tutel源码解读 前言 最近MoE变得火了起来。但我在和别人讨论MoE时,总有一些说不清楚地方,就算读了论文也一知半解。于是我决定还是要看一看具体的代码,看看每个细节究竟都是怎么实现的。 作为实现参考,Tutel这篇工作就很不错。最近的工作基本都拿Tutel作为Baseline比较,于
阅读全文
posted @ 2025-02-14 00:12 CQzhangyu
阅读(574)
评论(0)
推荐(0)
2025年2月9日
[PyTorch] DDP源码阅读
摘要: [PyTorch] DDP源码阅读 PyTorch的DistributedDataParallel (DDP) 允许多台机器,多台GPU之间的数据并行。本文简单讲解DDP的流程,并从代码层面理解DDP如何访问底层的通信框架。 DDP使用单机多进程来控制多个GPU。模型需要能放入单个GPU中。 参考了
阅读全文
posted @ 2025-02-09 15:45 CQzhangyu
阅读(225)
评论(0)
推荐(0)
[CUDA] 手写一个PyTorch的算子
摘要: [CUDA] 手写一个PyTorch的算子 (其实是本人之前上过的分布式机器学习课程的一个作业,这里简单记录一下) 我们都知道,PyTorch里的算子是跑在GPU上的。虽然最外层的接口是python,最内部的实现其实是CUDA。那么,一个python代码是如何一步步的调用内层的CUDA代码的呢?这里
阅读全文
posted @ 2025-02-09 00:21 CQzhangyu
阅读(525)
评论(0)
推荐(0)
2025年2月7日
[LLM] ZeRO-DP技术简析
摘要: [LLM] ZeRO-DP技术简析 本文对ZeRO: Memory Optimizations Toward Training Trillion Parameter Models中提出的ZeRO-DP进行简要总结。相关的讲解其实网上也有很多了,不过只看网上的终究还是有点走马观花,所以我还是决定自己写
阅读全文
posted @ 2025-02-07 12:42 CQzhangyu
阅读(238)
评论(0)
推荐(0)
2024年12月28日
[RDMA] UD模式下ibv_post_send返回ENOMEM,但sq并没有满
摘要: [RDMA] UD模式下ibv_post_send返回ENOMEM,但sq并没有满 我创建了一个RDMA的UD qp,其max_send_wr和max_recv_wr都是32。在实际使用中,我保证最多只有16个已发送但对端未接受到的消息。然而,在我发送32个消息后,ibv_post_send报错,返
阅读全文
posted @ 2024-12-28 16:33 CQzhangyu
阅读(100)
评论(0)
推荐(0)
2024年10月14日
[RDMA] RDMA的不同操作是否保证顺序?
摘要: [RDMA] RDMA的不同操作是否保证顺序? 结论:不保证。 例子: 对同一个地址,连续进行READ和WRITE。READ返回的结果可能是WRITE之后的内容。
阅读全文
posted @ 2024-10-14 17:02 CQzhangyu
阅读(98)
评论(0)
推荐(0)
2024年9月10日
[DPDK] dumpcap报错EAL init failed: is primary process running?解决办法
摘要: [DPDK] dumpcap报错EAL init failed: is primary process running?解决办法 问题 我写了一个DPDK程序,现在想要用DPDK自带的dpdk-dumpcap工具来抓包测试。根据官网描述,我们需要先启动我们的程序为主进程,然后启动dpdk-dumpc
阅读全文
posted @ 2024-09-10 17:05 CQzhangyu
阅读(404)
评论(0)
推荐(0)
2024年8月31日
[DPDK] Docker容器内安装DPDK
摘要: Docker安装DPDK 参考:容器安装DPDK。 确认版本兼容性 我使用的是Mellanox-5网卡。为了确认支持的DPDK版本,请先确认自己的OFED和frimware版本。 查看firmware版本: $ ibstat CA 'mlx5_0' CA type: MT4119 Firmware
阅读全文
posted @ 2024-08-31 10:31 CQzhangyu
阅读(596)
评论(0)
推荐(0)
2024年5月13日
Mellanox网卡开启SR-IOV
摘要: Mellanox网卡开启SR-IOV SR-IOV是网卡虚拟化的一个重要功能。本文讲介绍如何在Mellanox网卡上开启SR-IOV,并创建一些VF。 参考:Mellanox网卡开启SR-IOV方法简介-天翼云开发者社区 - 天翼云 (ctyun.cn) 在BIOS中开启IOMMU 先查看是否已经开
阅读全文
posted @ 2024-05-13 15:19 CQzhangyu
阅读(3738)
评论(0)
推荐(0)
2024年5月12日
[Mellanox] 安装MLNX_OFED
摘要: [Mellanox] 安装MLNX_OFED 虽然已经安装过很多遍了,但是这里还是再次写一遍安装过程,方便以后查阅。 Mellanox的这堆东西其实每个安装起来都不难,难点在于版本要匹配。所以最重要的是我们要知道1.我们需要哪个版本的驱动;2.这些软件的版本对应关系。 查看当前的各种配置版本 MLN
阅读全文
posted @ 2024-05-12 17:28 CQzhangyu
阅读(7780)
评论(0)
推荐(0)
下一页
公告