写作与绘图约定¶
这套知识库的价值来自“可检索、可验证、可演进”。每篇内容都应把模型、编译器与硬件中的至少两层连接起来,而不是简单复制规格或论文摘要。
页面模板¶
# 主题
一句话说明它解决什么问题,以及位于软硬件栈的哪一层。
## 核心结构/模型
架构层次、数据流、公式或关键伪代码。
## 软件到硬件映射
- 软件抽象:Tensor、Op、IR、Thread、指令
- 硬件资源:Core、SRAM/Cache、NoC、HBM
- 限制条件:Shape、精度、容量、带宽、同步
## 性能与权衡
- 主要瓶颈
- 适用/不适用条件
- 可能的优化与副作用
## 如何验证
仿真配置、Profile Counter、微基准或端到端指标。
## 延伸阅读
- [官方文档/原始论文](https://example.com)
事实分级¶
- 官方规格:链接厂商 Datasheet、架构白皮书、ISA/编程指南,并写清具体产品形态。
- 论文结论:写明 Workload、Baseline、硬件和适用边界,不把论文峰值当普遍规律。
- 实测结果:记录代码/模型/工具版本、输入 Shape、Warmup、统计方法与原始数据。
- 推断:明确标为推断,并给出依据和可证伪实验。
版本敏感内容标出验证日期;博客可用于辅助理解,但关键事实尽量回到官方文档、规范、源码或原始论文。
绘图规范¶
按关系选择图形语法¶
图的目标是解释关系,不是装饰。优先选最小充分图:
| 关系 | 图形 |
|---|---|
| 芯片包含层次、Core 内部组成、与层次紧耦合的系统通路 | 响应式层叠卡片与路径组件(.hw-diagram) |
| 数据路径、控制流、编译 Lowering、软硬件映射 | Mermaid flowchart |
| 搬运、计算、同步的先后关系 | sequenceDiagram |
| 多种方案的固定字段比较 | Markdown 表格 |
| 周期波形与总线协议 | WaveDrom(后续引入对应构建支持) |
硬件图统一从外到内:系统/芯片 → Cluster/Core → 执行单元 → 存储层次。其中外框嵌套只表示包含,卡片层叠只表示同类资源重复,箭头只表示数据、控制或映射关系。数量用 ×N 并放在省略号附近,展开一个代表单元展示下一级;产品规格与完整 Die 分开标注。
例如 A100 使用 GPC 0(展开)→ … ×7 → GPC 6 的层叠卡片,并在展开的 GPC 内继续嵌套 TPC 与 SM;同图中的 Host 调度用紫色虚线,SM 到 L2/HBM 的数据访问用青色双向箭头。不要再用 GPC → TPC → SM 的普通箭头暗示物理包含。
不在一张图里塞满所有细节¶
- 整体架构、Core 微架构、访存层次和编程模型分别画图。
- 当理解整体架构必须同时看到包含和资源连接时,可以合在一个
figure中,但要分区、分线型并提供图例;不要让同一条线兼任“包含”和“访问”。 - 图中只放稳定结构;解释、例外和版本差异放正文/表格。
- 不用连线交叉表示“复杂”;必要时拆成数据面和控制面。
- Mermaid 自动布局不适合端口级版图;此时使用可复现的 Graphviz/D2/SVG 源流程。
- Unicode 框线图只用于固定宽度草图或命令行内容,不作为复杂架构图的默认格式。
维护规则¶
- 术语首次出现时给中英文全称,之后统一缩写。
- 架构(规则)、微架构(实现)和产品(启用规格)不要混写。
- 容量用 GB/GiB、带宽用单向/双向聚合时必须标明口径。
- 峰值算力注明数据类型、Dense/Sparse、是否 Tensor/Matrix Core。
- “加速”同时报告质量、Kernel 命中与端到端指标。
- 命令中的账号、Token、IP、公司信息使用占位符。
发布前检查¶
-
scripts\build.ps1严格构建通过。 - 导航已由同步脚本更新,内部 Markdown/图片链接有效。
- Mermaid 在明暗主题和窄屏下仍可读。
- 数字口径、产品形态、单位和来源清楚。
- 结论区分官方事实、实测与推断。
- 没有真实 Token、邮箱、公司域名、内网地址或客户数据。