Rust in Everything
基于 burn 0.22.1

导读

开始读源码之前,先把两件事讲清楚:

  1. 怎么读这一卷:为什么是这三个版本;0.22 把后端从 Tensor 的类型参数挪到 Device 的值里(#4717),旧写法报什么错;算子、求导、训练三条主线每一步落在哪个函数、哪一页讲;默认 feature 不含任何后端,却会顺带打开 fusion 和 autotune;feature 最终在 burn-dispatch 的构建脚本里变成 backend_enabled、cube_backend、executing_backend 三个 cfg;阅读路线。
  2. 源码地图:burn 工作区 38 个 crate 和 cubecl、cubek 按层分组(用户 API、分派、后端接口、装饰器、实现),每层的入口文件和行数;burn-dispatch 是依赖图的腰;只开 flex 和开 metal 各拉进多少个包。
flowchart TB
  read[怎么读这一卷] --> ver[锁定版本]
  read --> redesign["0.22 的大改"]
  read --> lines[三条主线]
  read --> cfg["feature 与 cfg"]
  map[源码地图] --> layers[按层分组]
  map --> entry[各层入口]
  map --> deps["依赖树大小"]

💬 关联讨论

发起讨论
加载中...