走进 TensorPlay(二):算子如何找到内核
从 a + b 到真正的加法指令,中间隔着契约、代码生成和运行时分发。两份 YAML 定义算子,生成器一次产出全部后端骨架,Dispatcher 用特化键定优先级,无锁分发表完成路由——新增一个算子只需落笔两处。
从 a + b 到真正的加法指令,中间隔着契约、代码生成和运行时分发。两份 YAML 定义算子,生成器一次产出全部后端骨架,Dispatcher 用特化键定优先级,无锁分发表完成路由——新增一个算子只需落笔两处。
Tensor 只是一块内存加上一串属性。TensorPlay 把它拆成 DataPtr / Storage / TensorImpl / Tensor 四层:move-only 的删除器、缓存分配器、版本号守卫与零拷贝视图,看清「底层字节共享、视图各自独立」这条主线如何落在代码里。
全章参考文献清单,以及三个附录:附录 A 源码索引(概念到文件路径与行号的对应表)、附录 B 测量脚本、附录 C 部分习题的提示与解答。
内容寻址缓存与并行编译、回退时的语义契约、错误的分层定位;与 PyTorch 2、XLA/MLIR 等系统的设计对比;测量的统计模型、融合收益分解、舍入误差与编译开销摊销;章末小结、习题与编程实验。
GPU 执行模型与 Triton 编程模型、逐元素与规约内核的三种形态、多规约融合、启动配置实测、矩阵乘模板与尾部融合、CUDA Graphs、注意力分块,以及符号形状与形状守卫。