Skip to content

验证

本章节解释 为什么这个仓库的性能结论值得信任,以及信任在哪里停止

优化方法论回答的是:"我们如何提升性能?"验证回答的是不同的问题:"证据实际上证明了什么,又不能证明什么?"两个问题都重要,但只有第二个是诚实的。

验证模型

证据层次能证明什么不能证明什么
托管 CI + 仓库检查格式检查、CUDA 编译、文档结构、Pages 可构建性,以及路由/工作流健康检查GPU 运行时正确性、CUDA benchmark 数字或特定硬件加速比
GPU 机器上的本地 ctest --test-dir build在项目数值容差策略下,相对 cuBLAS oracle 的运行时正确性普遍性的性能主张或 GPU 型号无关性
本地 benchmark 执行在命名 GPU 上、使用命名命令和范围标签下的性能行为其他 GPU、其他 CUDA 版本,或无标签工作负载的结果

规范化验证页面

需求页面
了解正确性阈值和 oracle 策略正确性策略
解读 benchmark 标签和报告数字Benchmark 范围
负责任地复现一个结果可复现性
查看具有代表性的结果快照Benchmark 结果
理解加速背后的分析模型性能模型

托管 CI 能证明什么

托管 CI 被信任来证明仓库健康:CUDA 编译、文档结构、Pages 可构建性、格式检查以及文档测试/构建健康度。它保持公共界面的一致性。

托管 CI 不被信任来证明 CUDA 运行时行为或 benchmark 性能。这些主张需要真实的 GPU 机器。

只有本地 GPU 运行才能证明什么

本地 GPU 运行是以下方面的必要条件:

  • 基于 cuBLAS 的运行时正确性检查
  • Tensor Core 快速路径与回退行为
  • benchmark 数字,包括端到端与纯计算的差异
  • 关于占用率、staging 和内存行为的特定架构结论

如何阅读公布的数字

把本仓库中的每个数字视为有范围的证据,而不是普遍承诺。

  1. 先读 GPU 型号和 CUDA 背景。
  2. 再读 benchmark 标签。
  3. 再读 shape 集合。
  4. 只有这样才能把这个数字与另一个结果进行比较。

如果以上任何字段缺失,这个数字是提示,不是主张。

本项目刻意避免的常见呈现错误

  • 在没有 shape、转换和回退说明的情况下声称"Tensor Core 总是更快"。
  • 在没有 benchmark 标签或工作负载范围的情况下引用单个 GFLOPS 数字。
  • 忽略 FP32 与混合精度之间的数值容差差异。
  • 把托管 CI 成功当作 CUDA 运行时正确性或性能的证明。
  • 在没有明确标注的情况下跨不同 GPU 型号或 CUDA 版本比较结果。

信任层次结构

最可信

  ▼  [本地 GPU] cuBLAS oracle + ctest 正确性套件
  ▼  [本地 GPU] 带命名硬件、shape 和标签的 benchmark
  ▼  [托管 CI] 格式检查、CUDA 编译、结构、文档与工作流检查
  ▼  [分析性] 性能模型(roofline、代价模型)
  ▼  [定性] 架构原理与设计论证

最难证伪

验证章节在顶部两层运作。架构和学院章节在底部两层运作。这种分离是刻意的。

MIT Licensed