跳转至

写作与绘图约定

这套知识库的价值来自“可检索、可验证、可演进”。每篇内容都应把模型、编译器与硬件中的至少两层连接起来,而不是简单复制规格或论文摘要。

页面模板

# 主题

一句话说明它解决什么问题,以及位于软硬件栈的哪一层。

## 核心结构/模型

架构层次、数据流、公式或关键伪代码。

## 软件到硬件映射

- 软件抽象: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 的普通箭头暗示物理包含。

```mermaid
flowchart LR
    SW[Software] --> ISA[ISA]
    ISA --> CORE[Core]
    CORE <--> MEM[Memory]
```

不在一张图里塞满所有细节

  • 整体架构、Core 微架构、访存层次和编程模型分别画图。
  • 当理解整体架构必须同时看到包含和资源连接时,可以合在一个 figure 中,但要分区、分线型并提供图例;不要让同一条线兼任“包含”和“访问”。
  • 图中只放稳定结构;解释、例外和版本差异放正文/表格。
  • 不用连线交叉表示“复杂”;必要时拆成数据面和控制面。
  • Mermaid 自动布局不适合端口级版图;此时使用可复现的 Graphviz/D2/SVG 源流程。
  • Unicode 框线图只用于固定宽度草图或命令行内容,不作为复杂架构图的默认格式。

维护规则

  • 术语首次出现时给中英文全称,之后统一缩写。
  • 架构(规则)、微架构(实现)和产品(启用规格)不要混写。
  • 容量用 GB/GiB、带宽用单向/双向聚合时必须标明口径。
  • 峰值算力注明数据类型、Dense/Sparse、是否 Tensor/Matrix Core。
  • “加速”同时报告质量、Kernel 命中与端到端指标。
  • 命令中的账号、Token、IP、公司信息使用占位符。

发布前检查

  • scripts\build.ps1 严格构建通过。
  • 导航已由同步脚本更新,内部 Markdown/图片链接有效。
  • Mermaid 在明暗主题和窄屏下仍可读。
  • 数字口径、产品形态、单位和来源清楚。
  • 结论区分官方事实、实测与推断。
  • 没有真实 Token、邮箱、公司域名、内网地址或客户数据。