(交流可以用英文,本文档中文,保留这句)

近存计算和存内计算教程项目说明

项目目标

编写一份近存计算和存内计算浅入深的教程markdown,要包含大量的计算实例(能直接数学算就数学算,确要必要用 python 但不要一大段) 组织为 index.md + chapter1.md + ...

工具说明

当需要时,可以通过 gemini -p "深入回答:<要问的问题> -m gemini-2.5-pro" 来获取 gemini-2.5-pro 的参考意见(gemini 系只问 gemini-2.5-pro 不问别人) 当需要时,可以通过 `echo "<要问的问题>"|llm -m 4.1 来获取 gpt-4.1 的参考意见

教程编写待办清单

总体任务

  • [x] 创建index.md主页
  • [x] 创建synopsis.md大纲

第1章:为什么Transformer需要PIM?内存墙危机

  • [x] 创建chapter1.md
  • [x] 1.1 解码器瓶颈:单token生成与内存带宽
  • [x] 1.2 量化问题:Qwen-72B的Roofline分析
  • [x] 1.3 数据搬移成本:能耗分解(DRAM访问vs计算)
  • [x] 1.4 KV-Cache爆炸:随序列长度的扩展
  • [x] 1.5 传统解决方案及局限:HBM、缓存层次结构

第2章:PIM/NMC基础

  • [x] 创建chapter2.md
  • [x] 2.1 历史背景:简述演进(1990年代逻辑存储器到现代PIM)
  • [x] 2.2 分类体系:近数据vs存内、模拟vs数字
  • [x] 2.3 基本操作:存储器内矩阵向量乘法
  • [x] 2.4 简单示例:4x4矩阵计算详解
  • [x] 2.5 能耗和性能模型:基本方程

第3章:PIM存储技术

  • [x] 创建chapter3.md
  • [x] 3.1 基于DRAM的PIM:三星HBM-PIM架构
  • [x] 3.2 SRAM解决方案:近bank计算
  • [x] 3.3 新兴NVM:用于权重的ReRAM/PCM交叉阵列
  • [x] 3.4 模拟计算:交叉阵列和ADC/DAC开销
  • [x] 3.5 技术比较:密度、能耗、延迟权衡

第4章:Transformer负载分析

  • [x] 创建chapter4.md
  • [x] 4.1 注意力机制:QKV投影和softmax
  • [x] 4.2 FFN层:门控线性单元(SwiGLU)
  • [x] 4.3 内存访问模式:顺序解码分析
  • [x] 4.4 算术强度:逐层分解
  • [x] 4.5 案例研究:Qwen-72B完整模型分析

第5章:面向PIM的量化

  • [x] 创建chapter5.md
  • [x] 5.1 权重量化:W4A16、FP4及更低
  • [x] 5.2 离群值感知方法:处理激活尖峰
  • [x] 5.3 PIM特定约束:模拟噪声和数字精度
  • [x] 5.4 量化-架构协同设计:匹配位宽与硬件
  • [x] 5.5 性能影响:精度vs效率权衡

第6章:数字PIM架构

  • [x] 创建chapter6.md
  • [x] 6.1 近Bank计算:HBM-PIM深度剖析
  • [x] 6.2 DRAM内处理:UPMEM架构
  • [x] 6.3 位串行vs位并行:transformer权衡
  • [x] 6.4 多Bank协调:并行策略
  • [x] 6.5 案例研究:在HBM-PIM上实现注意力

第7章:面向Transformer的模拟PIM

  • [x] 创建chapter7.md
  • [x] 7.1 交叉阵列基础:欧姆定律计算
  • [x] 7.2 权重映射:从数字到电导
  • [x] 7.3 ADC/DAC设计:分辨率vs速度/能耗
  • [x] 7.4 噪声和变化:对transformer精度的影响
  • [x] 7.5 商业案例:Mythic、Syntiant架构

第8章:混合信号和混合方法

  • [x] 创建chapter8.md
  • [x] 8.1 两全其美:何时使用模拟vs数字
  • [x] 8.2 SRAM内计算:带模拟辅助的数字PIM
  • [x] 8.3 分层架构:结合不同技术
  • [x] 8.4 精度分配:不同层使用不同精度
  • [x] 8.5 能效优化:详细分析

第9章:编程模型和编译器

  • [x] 创建chapter9.md
  • [x] 9.1 抽象层:从PyTorch到PIM指令
  • [x] 9.2 内存分配:放置权重和激活
  • [x] 9.3 调度:重叠计算和数据搬移
  • [x] 9.4 API和框架:行业示例
  • [ ] 9.5 代码示例:注意力的简单内核

第10章:大模型优化

  • [ ] 创建chapter10.md
  • [ ] 10.1 模型并行:跨PIM芯片分割Qwen-72B
  • [ ] 10.2 流水线策略:隐藏芯片间通信
  • [ ] 10.3 推测解码:用于草稿模型的PIM
  • [ ] 10.4 稀疏模式:利用transformer稀疏性
  • [ ] 10.5 KV-Cache管理:PIM感知缓存

第11章:PIM上的专家混合模型

  • [x] 创建chapter11.md
  • [x] 11.1 MoE基础:200B参数模型,32B激活
  • [x] 11.2 专家放置:映射32个专家到内存
  • [x] 11.3 路由器实现:在哪计算门控
  • [x] 11.4 全对全优化:减少通信
  • [x] 11.5 负载均衡:动态专家分配

第12章:系统集成

  • [x] 创建chapter12.md
  • [x] 12.1 主机-PIM接口:PCIe、CXL、自定义协议
  • [x] 12.2 内存层次:集成PIM与缓存
  • [x] 12.3 多芯片系统:扩展到多个PIM设备
  • [x] 12.4 软件栈:驱动、运行时、框架
  • [x] 12.5 部署场景:边缘vs数据中心

第13章:性能评估

  • [x] 创建chapter13.md
  • [x] 13.1 指标:Tokens/秒/瓦、延迟、TCO
  • [x] 13.2 基准测试方法:公平比较
  • [x] 13.3 Roofline分析:PIM vs传统架构
  • [x] 13.4 能耗分解:逐组件分析
  • [x] 13.5 面积效率:mm²/TOP/s

第14章:商业版图

  • [x] 创建chapter14.md
  • [x] 14.1 三星HBM-PIM:产品和路线图
  • [x] 14.2 UPMEM:实际部署
  • [x] 14.3 创业生态:Mythic、Syntiant等
  • [x] 14.4 成本分析:不同方案的$/token
  • [x] 14.5 市场采用:障碍和机遇

第15章:新兴技术

  • [ ] 创建chapter15.md
  • [ ] 15.1 CXL连接的PIM:分解式内存计算
  • [ ] 15.2 光计算:光子矩阵乘法
  • [ ] 15.3 3D集成:用于PIM的晶圆键合
  • [ ] 15.4 新型存储:MRAM、FeRAM机遇
  • [ ] 15.5 量子交叉:经典-量子混合

第16章:未来方向和研究

  • [ ] 创建chapter16.md
  • [ ] 16.1 开放挑战:可靠性、可编程性、标准
  • [ ] 16.2 研究机会:算法-硬件协同设计
  • [ ] 16.3 标准化努力:OpenCAPI、CXL扩展
  • [ ] 16.4 预测:5年展望
  • [ ] 16.5 入门指南:构建你的第一个PIM系统

附录

  • [ ] 创建appendix_a.md:数学基础
  • [ ] 创建appendix_b.md:参考架构
  • [ ] 创建appendix_c.md:代码仓库
  • [ ] 创建appendix_d.md:术语表
  • [ ] 创建appendix_e.md:延伸阅读