/ docs / zh / quick-start.md
quick-start.md
  1  # 快速开始指南
  2  
  3  在 10-15 分钟内搭建开发环境并运行首个基准测试。
  4  
  5  ## 📋 需求概览
  6  
  7  ### 硬件要求
  8  
  9  | 模块 | 最低 GPU | 推荐 GPU | 额外说明 |
 10  |------|---------|---------|----------|
 11  | **01 TVM** | SM70+ (V100) | A100 | 需要 CUDA 12.x |
 12  | **02 ORT** | SM70+ (V100) | A100 | 需要 CUDA 12.x |
 13  | **03 CUTLASS** | SM80 (A100) | H100 | Hopper 特性需 SM90 |
 14  | **04 cuTile** | 无 | — | 仅 CPU 的概念模块 |
 15  
 16  ### 软件要求
 17  
 18  - **Python**: 3.10 或更高版本
 19  - **CUDA Toolkit**: 12.x(模块 03 需要 12.2+)
 20  - **CMake**: 3.18 或更高版本
 21  - **GCC**: 9+ 或 Clang 10+
 22  
 23  ## 🐳 方式一:Docker(推荐)
 24  
 25  无需手动安装依赖,最快速的入门方式。
 26  
 27  ### CUDA 12.x 环境
 28  
 29  ```bash
 30  # 构建 Docker 镜像
 31  docker build -f docker/Dockerfile.cuda12 -t ai-opt:cuda12 .
 32  
 33  # 使用 GPU 支持运行并挂载当前目录
 34  docker run --gpus all -it -v $(pwd):/workspace ai-opt:cuda12
 35  
 36  # 验证 TVM 模块正常工作
 37  python 01_TVM_End2End_Optimization/1_import_and_baseline.py
 38  ```
 39  
 40  ### 可用 Docker 镜像
 41  
 42  | 镜像 | CUDA 版本 | 支持的模块 |
 43  |------|----------|-----------|
 44  | `ai-opt:cuda12` | 12.2 | TVM, ORT, CUTLASS |
 45  | `ai-opt:cuda13` | 12.4 (cuTile 占位) | 全部 (cuTile 模块) |
 46  
 47  ## 💻 方式二:本地安装
 48  
 49  ### 步骤 1:克隆仓库
 50  
 51  ```bash
 52  git clone https://github.com/LessUp/ai-system-optimization-series.git
 53  cd ai-system-optimization-series
 54  ```
 55  
 56  ### 步骤 2:创建虚拟环境
 57  
 58  ```bash
 59  python -m venv venv
 60  source venv/bin/activate  # Linux/macOS
 61  # venv\Scripts\activate  # Windows
 62  ```
 63  
 64  ### 步骤 3:安装开发依赖
 65  
 66  ```bash
 67  pip install -r requirements-dev.txt
 68  ```
 69  
 70  ### 步骤 4:安装模块特定依赖
 71  
 72  ```bash
 73  # TVM 模块
 74  pip install -r 01_TVM_End2End_Optimization/requirements.txt
 75  
 76  # ORT 模块
 77  pip install -r 02_ORT_Custom_CUDA_Op/requirements.txt
 78  
 79  # cuTile 模块
 80  pip install -r 04_CuTile_NextGen_CUDA/requirements.txt
 81  ```
 82  
 83  ### 步骤 5:构建 C++/CUDA 组件
 84  
 85  #### ONNX Runtime 自定义算子
 86  
 87  ```bash
 88  cd 02_ORT_Custom_CUDA_Op
 89  mkdir -p build && cd build
 90  cmake .. -DONNXRUNTIME_ROOT=/path/to/onnxruntime
 91  make -j$(nproc)
 92  cd ../..
 93  ```
 94  
 95  #### CUTLASS GEMM
 96  
 97  ```bash
 98  cd 03_CUTLASS_Hopper_GEMM
 99  mkdir -p build && cd build
100  cmake .. -DCUTLASS_PATH=/path/to/cutlass
101  make -j$(nproc)
102  cd ../..
103  ```
104  
105  ## 🚀 运行示例
106  
107  ### 模块 01:TVM 端到端优化
108  
109  ```bash
110  # 基线对比
111  python 01_TVM_End2End_Optimization/1_import_and_baseline.py
112  
113  # 自动调度器调优(快速测试,100 次试验)
114  python 01_TVM_End2End_Optimization/2_auto_scheduler_tuning.py --num_trials 100
115  
116  # TensorIR 手动调度
117  python 01_TVM_End2End_Optimization/3_tensorir_manual_schedule.py --target cuda --size 1024
118  ```
119  
120  ### 模块 02:ORT 自定义 CUDA 算子
121  
122  ```bash
123  # 运行全部 ORT 测试
124  python -m pytest 02_ORT_Custom_CUDA_Op/tests/ -v
125  ```
126  
127  ### 模块 03:CUTLASS Hopper GEMM
128  
129  ```bash
130  cd 03_CUTLASS_Hopper_GEMM/build
131  ./hopper_gemm_benchmark
132  ./test_gemm_correctness
133  ```
134  
135  ### 模块 04:cuTile 下一代 CUDA
136  
137  ```bash
138  # 运行 tile GEMM 示例
139  python 04_CuTile_NextGen_CUDA/tile_gemm.py
140  
141  # 运行 Triton 对比
142  python 04_CuTile_NextGen_CUDA/comparison_triton.py
143  ```
144  
145  ## 🧪 测试
146  
147  ### 运行全部测试
148  
149  ```bash
150  # Linux/macOS
151  bash scripts/run_tests.sh
152  
153  # Windows
154  powershell scripts/run_tests.ps1
155  
156  # 直接使用 pytest
157  pytest -v
158  ```
159  
160  ### 使用硬件特定标记运行
161  
162  ```bash
163  # 仅 CUDA 测试
164  pytest -m requires_cuda -v
165  
166  # 排除硬件依赖测试
167  pytest -m "not requires_cuda and not requires_tvm and not requires_ort" -v
168  
169  # 跳过慢速测试
170  pytest -m "not slow" -v
171  ```
172  
173  ## 📊 运行基准测试
174  
175  ### 运行全部基准测试
176  
177  ```bash
178  # Linux/macOS
179  bash scripts/run_all_benchmarks.sh
180  
181  # Windows
182  powershell scripts/run_all_benchmarks.ps1
183  ```
184  
185  结果将以 Markdown 和 JSON 格式保存到 `reports/` 目录。
186  
187  ## 🔧 快速问题排查
188  
189  | 问题 | 解决方案 |
190  |------|---------|
191  | TVM 安装失败 | `pip install apache-tvm` 或从源码构建 |
192  | 找不到 CUTLASS | 克隆到 `/opt/cutlass` 或设置 `CUTLASS_PATH` |
193  | CUDA 版本不匹配 | 使用 `nvcc --version` 和 `nvidia-smi` 检查 |
194  | 测试大部分被跳过 | 正常,如果依赖不可用;只关注 FAILED |
195  | 找不到 ORT 自定义算子 | 构建 C++ 组件(见步骤 5) |
196  | 权限被拒绝(Linux) | `chmod +x scripts/*.sh` |
197  
198  ## 📖 后续步骤
199  
200  1. **理解架构** — 阅读 [architecture.md](./architecture) 了解模块如何交互
201  2. **跟随学习路线** — 查看 [learning-path.md](./learning-path) 获取结构化学习计划
202  3. **探索 API** — 查看 [api-reference.md](./api-reference) 获取详细函数文档
203  
204  ## 💡 专业提示
205  
206  1. **如果不确定依赖**,从 Docker 开始
207  2. **任何 Python 脚本使用 `--help`** 查看命令行选项
208  3. **查看 `reports/` 目录中的日志** 获取详细基准输出
209  4. **遇到问题时开启讨论** — 在 GitHub 上开 issue
210  
211  ---
212  
213  *详细安装说明请参阅 [前置要求](./prerequisites)。*