从一行 print 看 torch.compile 的 Graph Break
前置阅读:torch.compile 里 Inductor 是怎么把编译结果包进 CUDA Graph。这篇往前看一步:Inductor 收到的图,是 Dynamo 怎么捕获出来的。
给一个函数加上 torch.compile 后,代码能正常跑完,很容易以为整个函数已经交给编译器了。可以先看这段代码:
import torch
def f(x):
y = x.sin()
print("intermediate shape:", y.shape)
return y.cos() + 1
compiled = torch.compile(f)
compiled(torch.randn(8, 16))
中间只插了一行打印。默认配置下,Dynamo 通常...
顺着 FlashAttention 看 SM120 的实现
前置阅读:FlashAttention · Blackwell TMEM 与 tcgen05 MMA 深度解析
这次看 flash_fwd_sm120.py,注意到它没有自己实现 mainloop,而是继承了 FlashAttentionForwardSm80,然后在构造函数里写了一句 self.arch = Arch.sm_80。[1]
目标卡明明是 SM120,这个变量为什么要写成 80?先去父类查它的使用位置。
torch.compile 里 Inductor 是怎么把编译结果包进 CUDA Graph
1. Inductor 后端注册与调用链
1.1 注册点
torch/_dynamo/backends/inductor.py — 只有 32 行,是字符串 "inductor" 的绑定入口:
from torch._dynamo import register_backend
@register_backend # 把 "inductor" 注册到 _COMPILER_FNS 字典
def inductor(*args, **kwargs):
from torch._inductor.compile_fx import compile_fx # 懒加载
return compile_fx(*args, **kwargs)
1.2 查找机制
torc...
Blackwell TMEM 与 tcgen05 MMA 深度解析
Blackwell 数据中心 GPU(B200、GB200,SM100/SM103)围绕第五代 Tensor Core 引入了一块专用片上存储——TMEM(Tensor Memory)。本文整理 TMEM 的设计动机、tcgen05.mma 指令族的工作方式,以及从 Ampere 到 Blackwell 的 MMA 架构演进。
SSH 提示 Connection closed by remote host
排查一个 SSH 问题,现象看起来像服务端有问题,实际上是本机代理软件的 TUN 模式把 SSH 流量接管了
现象
ssh -vvv -i ~/Downloads/ssh-key-2026-05-17.key ubuntu@<公网ip>
关键报错:
kex_exchange_identification: Connection closed by remote host
Connection closed by <公网ip> port 22
连接在 SSH 握手早期就被关掉了,还没走到公钥认证阶段。
排除常见原因
私钥和端口
chmod 600 ~/Downloads/ssh-key-2026-05-17.key
ssh-keygen -lf...
《财富捷径》读书笔记
核心投资理念
1. 拥抱指数基金,放弃主动选股
唯一推荐的股市产品:大盘指数基金(如标普 500、纳斯达克 100)
个股风险极高:美国 6000 家上市公司每年有 180 家被摘牌(3%),40 年超半数公司破产
主动基金不堪一击:超过 90% 的主动基金在 30 年内关门,只有不到 3% 能超过最简单的指数基金
指数基金自动实现优胜劣汰:成分股公司衰落会被自动替换,从无大盘指数基金破产的先例
2. 基金定投:有钱就买,需钱即卖
核心策略:固定时间频率买入基金,完全忽视当下价格
优势:无脑简单、降低风险(平均成本法)、强制储蓄积累财富
把基金账户等同于存款账户
只在需要用钱时才卖出,不做择时
3. 长线投资,拒绝频繁交易
散户...
NVL72 架构解析:72 GPU 全互连拓扑
NVL72 是 NVIDIA GB200 系列中一个 72 GPU 的单机级 NVLink 交换网络。它不是简单的 72 张卡互联,而是一个精心设计的 全互连 (full crossbar) + 单级交换 (single switch stage) 拓扑。
硬件构成
整个系统由两个主要部分组成:
计算节点层
18 个计算托盘 (compute tray),每个托盘包含 4 个 Blackwell GPU,总计:
18 × 4 = 72 个 GPU
交换层
9 个 NVLink 交换托盘 (switch tray),每个托盘包含 2 个 NVSwitch 芯片,总计:
9 × 2 = 18 个 NVSwitch 芯片
连接拓扑
每个 GPU 的出线...
Megatron-FSDP 深度解析:从 ZeRO 到完全分片的工程实践
Megatron-LM 引入了一套自研的 FSDP 实现——Megatron-FSDP,替代了之前的custom_fsdp
位于 megatron/core/distributed/fsdp/src/megatron_fsdp/, 可以独立作为一个pip 包独立release
本文从v0.16的源码出发,深入分析它的设计取舍、与 PyTorch FSDP2 的差异、以及它如何与 Megatron m-core 体系深度集成。
v0.16(core_v0.16.1)
一、mFSDP的定位?
PyTorch FSDP2(torch.distributed.fsdp)虽然功能完善,但对 Megatron-LM 的需求存在几个痛点:
并行维度耦合:Megatron 同时使用 ...
共计 190 篇文章,24 页。