摘要:
[MoE] Deepseek的All-to-all通信: DeepEP代码解读 前言 最近,Deepseek开源了一系列MoE的优化技术,让我们看到了AI infra的强大之处。其中,第二天发布的DeepEP则是针对MoE中EP的all-to-all通信进行了优化。 我最近也在关注MoE和all-t 阅读全文
摘要:
[MoE] Tutel源码解读 前言 最近MoE变得火了起来。但我在和别人讨论MoE时,总有一些说不清楚地方,就算读了论文也一知半解。于是我决定还是要看一看具体的代码,看看每个细节究竟都是怎么实现的。 作为实现参考,Tutel这篇工作就很不错。最近的工作基本都拿Tutel作为Baseline比较,于 阅读全文
摘要:
[PyTorch] DDP源码阅读 PyTorch的DistributedDataParallel (DDP) 允许多台机器,多台GPU之间的数据并行。本文简单讲解DDP的流程,并从代码层面理解DDP如何访问底层的通信框架。 DDP使用单机多进程来控制多个GPU。模型需要能放入单个GPU中。 参考了 阅读全文
摘要:
[CUDA] 手写一个PyTorch的算子 (其实是本人之前上过的分布式机器学习课程的一个作业,这里简单记录一下) 我们都知道,PyTorch里的算子是跑在GPU上的。虽然最外层的接口是python,最内部的实现其实是CUDA。那么,一个python代码是如何一步步的调用内层的CUDA代码的呢?这里 阅读全文
摘要:
[LLM] ZeRO-DP技术简析 本文对ZeRO: Memory Optimizations Toward Training Trillion Parameter Models中提出的ZeRO-DP进行简要总结。相关的讲解其实网上也有很多了,不过只看网上的终究还是有点走马观花,所以我还是决定自己写 阅读全文
摘要:
[RDMA] UD模式下ibv_post_send返回ENOMEM,但sq并没有满 我创建了一个RDMA的UD qp,其max_send_wr和max_recv_wr都是32。在实际使用中,我保证最多只有16个已发送但对端未接受到的消息。然而,在我发送32个消息后,ibv_post_send报错,返 阅读全文
摘要:
[RDMA] RDMA的不同操作是否保证顺序? 结论:不保证。 例子: 对同一个地址,连续进行READ和WRITE。READ返回的结果可能是WRITE之后的内容。 阅读全文
摘要:
[DPDK] dumpcap报错EAL init failed: is primary process running?解决办法 问题 我写了一个DPDK程序,现在想要用DPDK自带的dpdk-dumpcap工具来抓包测试。根据官网描述,我们需要先启动我们的程序为主进程,然后启动dpdk-dumpc 阅读全文
摘要:
Docker安装DPDK 参考:容器安装DPDK。 确认版本兼容性 我使用的是Mellanox-5网卡。为了确认支持的DPDK版本,请先确认自己的OFED和frimware版本。 查看firmware版本: $ ibstat CA 'mlx5_0' CA type: MT4119 Firmware 阅读全文
摘要:
Mellanox网卡开启SR-IOV SR-IOV是网卡虚拟化的一个重要功能。本文讲介绍如何在Mellanox网卡上开启SR-IOV,并创建一些VF。 参考:Mellanox网卡开启SR-IOV方法简介-天翼云开发者社区 - 天翼云 (ctyun.cn) 在BIOS中开启IOMMU 先查看是否已经开 阅读全文
摘要:
[Mellanox] 安装MLNX_OFED 虽然已经安装过很多遍了,但是这里还是再次写一遍安装过程,方便以后查阅。 Mellanox的这堆东西其实每个安装起来都不难,难点在于版本要匹配。所以最重要的是我们要知道1.我们需要哪个版本的驱动;2.这些软件的版本对应关系。 查看当前的各种配置版本 MLN 阅读全文
摘要:
参考资料: Quality of Service (QoS) - NVIDIA Docs 【RDMA】RoCE网络QoS|应用层设置PFC等级|Tos|Priority|TC_cma_roce_tos-CSDN博客 【RDMA】mellonx流控配置工具mlnx_qos|PFC-CSDN博客 前言 阅读全文
摘要:
# [DPDK] rte_eth_dev_start()出现段错误 一天我运行DPDK时,它在`rte_eth_dev_start()`时发生段错误。 ``` Thread 1 "my_dpdk" received signal SIGSEGV, Segmentation fault. 0x0000 阅读全文
摘要:
# [犯病记] DPDK报错Symbol `rte_eth_devices' has different size in shared object, consider re-linking > 背景:有一天,我犯了个病,试图在一个机器上安装DOCA,然后安装程序就下了一堆库,把机器上的环境搞得一团 阅读全文
摘要:
[HiBench] 安装HiBench,测试在Spark上跑PageRank与修改源码测试 背景:我想在HiBench上测试在Spark上跑PageRank性能,并想要修改PageRank的源码进行测试。本来,HiBench在README里写的已经挺清楚的了,直接照着做就行。奈何我用的服务器没有珂学 阅读全文