CS 学生用 Rust 复刻 PyTorch:未改动 nanoGPT 逐位一致,体积仅 2MB

Mental-Feature-2377 · reddit · 2026-10-17

一名 CS 学生开发了 DenseCore——一个带 PyTorch 风格 Python API 的 Rust 深度学习框架,最硬核的成果是:把 import torch 指向它后,karpathy 的 nanoGPT 跑出与 PyTorch 逐位完全相同的结果——相同初始权重、loss、梯度和权重(50 步全对上,连 dropout 开着都一致),不是“接近”而是字面相同。

过程中踩到的坑很有信息量:PyTorch CPU attention 不是教科书公式而是 flash attention kernel、dropout 开启时切换路径;adam 因编译器尾循环融合在每线程 chunk 末尾几个元素上舍入不同;clipgradnorm 实际用 reciprocal() × maxnorm 而非除法。更意外的是 PyTorch 跨机器都不自一致:同版本 mac vs linux x86,26 个 op 里只有 1 个逐位相同,所以他的框架只在 Apple Silicon Mac 上逐位匹配。

体积约 2MB,对比 PyTorch 约 580MB。他在纠结方向:继续复刻、做成 serverless/CI 场景的轻量 CPU 替身,还是做成解释两次 PyTorch 运行为何结果不同的工具,征求社区毒舌意见。

原文链接 →

「研究」频道最新

更多「研究」频道 AI 资讯 →