Rust in Everything
基于 candle-core 0.11.0

导读

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

  1. 怎么读这一卷:为什么是 0.11.0;算子、求导、推理三条主线每一步落在哪个函数、哪一页讲;metal、cuda、cudnn、nccl、accelerate、mkl、ug 这些 feature 各打开什么,没开 metal / cuda 时编进来的 dummy 后端在运行期返回什么错误;candle-core 的错误风格:连 &a + &b 都返回 Result;阅读路线。
  2. 源码地图:工作区的 crate 怎么分层,各自多少行;candle-core/src 按目录分;candle-metal-kernels 的 Rust 一半和 .metal 一半,.metal 源码 include_str! 进二进制、第一次用到时在运行期编译;只依赖 candle-core 时依赖树里有多少个包,其中 40 个是 tokenizers 带进来的。
flowchart TB
  read[怎么读这一卷] --> ver[锁定版本]
  read --> lines[三条主线]
  read --> feat["feature 与 dummy 后端"]
  read --> errs["Result 风格"]
  map[源码地图] --> crates["crate 分层"]
  map --> core["candle-core 目录"]
  map --> metal["metal 源码怎么加载"]

💬 关联讨论

发起讨论
加载中...