Skip to content

Commit a1e30ed

Browse files
feat(docs): elevate public presentation for interview and community impact
Unify README and GitHub Pages around an evidence-first narrative with mirrored EN/ZH structure, dedicated highlights/interview/reference surfaces, and a refined lightweight NVIDIA-inspired visual system. This makes project value, validation boundaries, and technical lineage clearer for reviewers. Also adds an OpenSpec change that codifies interview-readiness and traceable reference expectations for project-presentation requirements. Generated with [Devin](https://cli.devin.ai/docs) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1 parent 90e136b commit a1e30ed

17 files changed

Lines changed: 1160 additions & 142 deletions

File tree

README.md

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@
88

99
English | [简体中文](README.zh-CN.md)
1010

11-
A compact CUDA SGEMM learning project that walks from a readable baseline kernel to Tensor Core WMMA, with cuBLAS verification and a CMake-first build.
11+
A CUDA SGEMM engineering notebook designed for both deep learning and interview presentation: from readable FP32 baselines to guarded Tensor Core WMMA, with cuBLAS-backed verification and explicit benchmark boundaries.
1212

13-
## What makes it useful
13+
## Why this project stands out
1414

15-
- **One optimization ladder**: naive -> tiled -> bank-conflict-free -> double-buffer -> Tensor Core.
16-
- **Comparable kernel interfaces**: every FP32 kernel uses the same `(A, B, C, M, K, N, stream)` launcher shape.
17-
- **Verification-first harness**: kernel output is checked against cuBLAS with separate tolerances for FP32 and Tensor Core paths.
18-
- **Learning-oriented docs**: GitHub Pages carries the full walkthrough instead of duplicating it in the README.
15+
- **Progressive kernel ladder**: naive -> tiled -> bank-conflict-free -> double-buffer -> Tensor Core.
16+
- **Evidence-first reporting**: performance claims are paired with correctness policy and scope labels.
17+
- **Comparable interfaces**: FP32 kernels share a unified `(A, B, C, M, K, N, stream)` launcher contract.
18+
- **Interview-ready narrative**: dedicated pages for project highlights, interview walkthrough, and references.
19+
- **Bilingual mirrored docs**: English and Chinese public pages stay aligned.
1920

2021
## Quick start
2122

@@ -31,15 +32,26 @@ ctest --test-dir build
3132

3233
Runtime tests and benchmarks require a CUDA-capable local machine. Hosted CI is limited to compile-time, formatting, repository-structure, OpenSpec, and Pages checks.
3334

34-
## Start here
35+
## Start here (GitHub Pages)
3536

3637
| Goal | Entry point |
3738
|------|-------------|
38-
| Use the project site | [GitHub Pages](https://lessup.github.io/sgemm-optimization/) |
39-
| Build and run once | [Getting Started](docs/getting-started.md) |
40-
| Follow the kernel ladder | [Learning Path](docs/learning-path.md) |
41-
| Inspect the source layout | [Architecture](docs/architecture.md) |
42-
| Read the normative specs | [Specifications](specs.md) |
39+
| Open English home | [Docs Home](https://lessup.github.io/sgemm-optimization/en/) |
40+
| Open Chinese home | [中文首页](https://lessup.github.io/sgemm-optimization/zh/) |
41+
| Build and run once | [Getting Started](https://lessup.github.io/sgemm-optimization/en/getting-started) |
42+
| Understand differentiation | [Project Highlights](https://lessup.github.io/sgemm-optimization/en/project-highlights) |
43+
| Prepare interview explanation | [Interview Playbook](https://lessup.github.io/sgemm-optimization/en/interview-playbook) |
44+
| Trace technical lineage | [References](https://lessup.github.io/sgemm-optimization/en/references) |
45+
| Read normative specs | [OpenSpec Specs](openspec/specs/) |
46+
47+
## Validation boundary
48+
49+
| Environment | What to trust |
50+
|-------------|---------------|
51+
| Hosted CI | Formatting, compile validity, OpenSpec structure, Pages buildability |
52+
| Local CUDA GPU | Runtime correctness verification and benchmark performance |
53+
54+
This split is deliberate. CI keeps repository health; real GPU hardware validates runtime behavior and speed claims.
4355

4456
## Source map
4557

README.zh-CN.md

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@
88

99
[English](README.md) | 简体中文
1010

11-
这是一个紧凑的 CUDA SGEMM 学习项目:从最容易读懂的 baseline kernel 出发,逐步推进到 Tensor Core WMMA,并用 cuBLAS 做正确性对照
11+
这是一个面向学习与面试展示的 CUDA SGEMM 工程化项目:从可读的 FP32 baseline kernel 演进到带保护回退的 Tensor Core WMMA,并通过 cuBLAS 对照建立可信验证
1212

13-
## 为什么值得看
13+
## 为什么它更有竞争力
1414

1515
- **优化链条完整**:naive -> tiled -> bank-conflict-free -> double-buffer -> Tensor Core。
16-
- **接口保持一致**:FP32 kernel 都使用统一的 `(A, B, C, M, K, N, stream)` launcher 形态。
17-
- **验证先行**:所有 kernel 与 cuBLAS 对照,FP32 与 Tensor Core 使用不同容差。
18-
- **文档职责清晰**:README 只做仓库入口,完整学习路线放在 GitHub Pages。
16+
- **证据优先表达**:性能结论与正确性策略、测量范围一起呈现。
17+
- **接口保持一致**:FP32 kernel 使用统一 `(A, B, C, M, K, N, stream)` launcher 契约。
18+
- **面试友好叙事**:提供项目亮点、面试手册、参考文献三类高价值入口。
19+
- **中英文镜像文档**:公开页面结构保持一致,便于传播与复用。
1920

2021
## 快速开始
2122

@@ -31,15 +32,26 @@ ctest --test-dir build
3132

3233
运行时测试和 benchmark 需要本地 CUDA GPU。托管 CI 只覆盖编译、格式、仓库结构、OpenSpec 与 Pages 构建检查。
3334

34-
## 从哪里开始
35+
## 推荐入口(GitHub Pages)
3536

3637
| 目标 | 入口 |
3738
|------|------|
38-
| 打开项目站点 | [GitHub Pages](https://lessup.github.io/sgemm-optimization/zh/) |
39-
| 编译运行一次 | [快速上手](zh/docs/getting-started.md) |
40-
| 跟随优化路线 | [学习路径](zh/docs/learning-path.md) |
41-
| 查看源码结构 | [架构概览](zh/docs/architecture.md) |
42-
| 阅读稳定规范 | [规范索引](zh/specs.md) |
39+
| 打开中文首页 | [中文首页](https://lessup.github.io/sgemm-optimization/zh/) |
40+
| 打开英文首页 | [Docs Home](https://lessup.github.io/sgemm-optimization/en/) |
41+
| 编译运行一次 | [快速上手](https://lessup.github.io/sgemm-optimization/zh/getting-started) |
42+
| 了解项目差异化 | [项目亮点](https://lessup.github.io/sgemm-optimization/zh/project-highlights) |
43+
| 准备面试表达 | [面试手册](https://lessup.github.io/sgemm-optimization/zh/interview-playbook) |
44+
| 追溯技术来源 | [参考文献](https://lessup.github.io/sgemm-optimization/zh/references) |
45+
| 阅读规范源 | [OpenSpec 规范](openspec/specs/) |
46+
47+
## 验证边界
48+
49+
| 环境 | 可以信任什么 |
50+
|------|--------------|
51+
| 托管 CI | 格式、编译有效性、OpenSpec 结构、Pages 可构建性 |
52+
| 本地 CUDA GPU | 运行时正确性与 benchmark 性能 |
53+
54+
这种拆分是刻意设计:CI 负责仓库健康,真实 GPU 负责运行时与性能结论。
4355

4456
## 源码地图
4557

@@ -48,8 +60,7 @@ src/kernels/ CUDA SGEMM kernel 实现
4860
src/utils/ CUDA RAII、验证与 benchmark 工具
4961
src/main.cu benchmark CLI
5062
tests/ 基于 cuBLAS 的 Google Test 覆盖
51-
docs/ 英文学习文档与 Pages 内容
52-
zh/docs/ 中文学习文档与 Pages 内容
63+
docs/ 中英文 Pages 文档(含 /en 与 /zh)
5364
openspec/ 稳定 specs 与变更工作流
5465
```
5566

docs/.vitepress/config.ts

Lines changed: 56 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,13 @@ const base = rawBase
1111

1212
export default withMermaid(defineConfig({
1313
base,
14-
title: 'SGEMM Optimization',
15-
description: 'Bilingual CUDA SGEMM optimization tutorial and reference implementation',
14+
title: 'SGEMM Optimization Lab',
15+
description: 'Interview-grade CUDA SGEMM engineering notebook from naive FP32 to guarded Tensor Core WMMA',
16+
17+
head: [
18+
['meta', { name: 'theme-color', content: '#76b900' }],
19+
['meta', { property: 'og:type', content: 'website' }],
20+
],
1621

1722
ignoreDeadLinks: [
1823
// External links that VitePress can't verify at build time
@@ -24,29 +29,34 @@ export default withMermaid(defineConfig({
2429
label: 'English',
2530
lang: 'en-US',
2631
link: '/en/',
27-
title: 'SGEMM Optimization',
28-
description: 'CUDA SGEMM optimization tutorial from naive kernels to Tensor Core WMMA',
32+
title: 'SGEMM Optimization Lab',
33+
description: 'CUDA SGEMM project with benchmark discipline, interview storytelling, and research references',
2934
themeConfig: {
3035
nav: [
31-
{ text: 'Guide', link: '/en/getting-started', activeMatch: '/en/' },
32-
{ text: 'Architecture', link: '/en/architecture' },
33-
{ text: 'Learning Path', link: '/en/learning-path' },
36+
{ text: 'Home', link: '/en/', activeMatch: '^/en/$' },
37+
{ text: 'Quick Start', link: '/en/getting-started' },
38+
{ text: 'Highlights', link: '/en/project-highlights' },
39+
{ text: 'Interview', link: '/en/interview-playbook' },
3440
{ text: 'Kernels', link: '/en/kernel-naive', activeMatch: '/en/kernel-' },
35-
{ text: 'Reference', link: '/en/cuda-memory-cheatsheet', activeMatch: '/en/' },
41+
{ text: 'Benchmark', link: '/en/benchmark-results' },
42+
{ text: 'References', link: '/en/references' },
3643
],
3744
sidebar: {
3845
'/en/': [
3946
{
40-
text: 'Getting Started',
47+
text: 'Project Brief',
4148
items: [
42-
{ text: 'Introduction', link: '/en/getting-started' },
43-
{ text: 'Learning Path', link: '/en/learning-path' },
49+
{ text: 'Home', link: '/en/' },
50+
{ text: 'Getting Started', link: '/en/getting-started' },
51+
{ text: 'Project Highlights', link: '/en/project-highlights' },
52+
{ text: 'Interview Playbook', link: '/en/interview-playbook' },
4453
{ text: 'Architecture', link: '/en/architecture' },
4554
],
4655
},
4756
{
48-
text: 'Kernel Optimizations',
57+
text: 'Kernel Ladder',
4958
items: [
59+
{ text: 'Learning Path', link: '/en/learning-path' },
5060
{ text: 'Naive Kernel', link: '/en/kernel-naive' },
5161
{ text: 'Tiled Kernel', link: '/en/kernel-tiled' },
5262
{ text: 'Bank Conflict Free', link: '/en/kernel-bank-free' },
@@ -55,12 +65,18 @@ export default withMermaid(defineConfig({
5565
],
5666
},
5767
{
58-
text: 'Reference',
68+
text: 'Performance & Ops',
5969
items: [
60-
{ text: 'CUDA Memory Cheatsheet', link: '/en/cuda-memory-cheatsheet' },
70+
{ text: 'Benchmark Results', link: '/en/benchmark-results' },
6171
{ text: 'Optimization Playbook', link: '/en/optimization-playbook' },
6272
{ text: 'Performance Casebook', link: '/en/performance-casebook' },
63-
{ text: 'Benchmark Results', link: '/en/benchmark-results' },
73+
{ text: 'CUDA Memory Cheatsheet', link: '/en/cuda-memory-cheatsheet' },
74+
],
75+
},
76+
{
77+
text: 'Research References',
78+
items: [
79+
{ text: 'Papers & Repositories', link: '/en/references' },
6480
],
6581
},
6682
],
@@ -71,29 +87,34 @@ export default withMermaid(defineConfig({
7187
label: '简体中文',
7288
lang: 'zh-CN',
7389
link: '/zh/',
74-
title: 'SGEMM 优化',
75-
description: 'CUDA SGEMM 优化教程,从朴素内核到 Tensor Core WMMA',
90+
title: 'SGEMM 优化实验室',
91+
description: '面向面试展示与社区传播的 CUDA SGEMM 项目文档:从朴素内核到 Tensor Core WMMA',
7692
themeConfig: {
7793
nav: [
78-
{ text: '指南', link: '/zh/getting-started', activeMatch: '/zh/' },
79-
{ text: '架构', link: '/zh/architecture' },
80-
{ text: '学习路径', link: '/zh/learning-path' },
81-
{ text: '内核', link: '/zh/kernel-naive', activeMatch: '/zh/kernel-' },
82-
{ text: '参考', link: '/zh/cuda-memory-cheatsheet', activeMatch: '/zh/' },
94+
{ text: '首页', link: '/zh/', activeMatch: '^/zh/$' },
95+
{ text: '快速开始', link: '/zh/getting-started' },
96+
{ text: '项目亮点', link: '/zh/project-highlights' },
97+
{ text: '面试手册', link: '/zh/interview-playbook' },
98+
{ text: '内核阶梯', link: '/zh/kernel-naive', activeMatch: '/zh/kernel-' },
99+
{ text: '基准验证', link: '/zh/benchmark-results' },
100+
{ text: '参考文献', link: '/zh/references' },
83101
],
84102
sidebar: {
85103
'/zh/': [
86104
{
87-
text: '入门指南',
105+
text: '项目总览',
88106
items: [
89-
{ text: '入门介绍', link: '/zh/getting-started' },
90-
{ text: '学习路径', link: '/zh/learning-path' },
107+
{ text: '首页', link: '/zh/' },
108+
{ text: '快速上手', link: '/zh/getting-started' },
109+
{ text: '项目亮点', link: '/zh/project-highlights' },
110+
{ text: '面试手册', link: '/zh/interview-playbook' },
91111
{ text: '架构概述', link: '/zh/architecture' },
92112
],
93113
},
94114
{
95-
text: '内核优化',
115+
text: '内核阶梯',
96116
items: [
117+
{ text: '学习路径', link: '/zh/learning-path' },
97118
{ text: '朴素内核', link: '/zh/kernel-naive' },
98119
{ text: '分块内核', link: '/zh/kernel-tiled' },
99120
{ text: '消除 Bank Conflict', link: '/zh/kernel-bank-free' },
@@ -102,12 +123,18 @@ export default withMermaid(defineConfig({
102123
],
103124
},
104125
{
105-
text: '参考资料',
126+
text: '性能与工程',
106127
items: [
107-
{ text: 'CUDA 内存速查表', link: '/zh/cuda-memory-cheatsheet' },
128+
{ text: 'Benchmark 结果', link: '/zh/benchmark-results' },
108129
{ text: '优化手册', link: '/zh/optimization-playbook' },
109130
{ text: '性能案例集', link: '/zh/performance-casebook' },
110-
{ text: '基准测试结果', link: '/zh/benchmark-results' },
131+
{ text: 'CUDA 内存速查表', link: '/zh/cuda-memory-cheatsheet' },
132+
],
133+
},
134+
{
135+
text: '论文与引用',
136+
items: [
137+
{ text: '论文与仓库索引', link: '/zh/references' },
111138
],
112139
},
113140
],

0 commit comments

Comments
 (0)