由于 trendforge.devlive.top 访问受限,请切换到 trendforge.devlive.org 域名

LeetCUDA 5分钟快速开始指南

在NVIDIA GPU上快速体验CUDA内核性能,运行HGEMM和FlashAttention基准测试。

环境要求

支持的操作系统

Linux

运行环境

CUDA Toolkit 12.0+ 必需
Python 3.8+ 必需
PyTorch 2.0+ 必需

所需工具

git

克隆项目仓库

必需
NVIDIA GPU

运行CUDA代码(支持Tensor Cores)

必需

操作步骤

1

克隆项目并进入目录

从GitHub获取LeetCUDA源代码。

克隆仓库
git clone https://github.com/xlite-dev/LeetCUDA.git
进入项目根目录
cd LeetCUDA

预期结果::成功创建LeetCUDA文件夹并进入。

确保git已安装。

2

安装Python依赖

安装项目运行所需的Python包(主要为PyTorch和相关工具)。

安装支持CUDA 12.1的PyTorch(根据你的CUDA版本调整)
pip install torch --index-url https://download.pytorch.org/whl/cu121
安装项目其他依赖(如果文件存在)
pip install -r requirements.txt

预期结果::显示成功安装torch等包。

请根据你系统实际安装的CUDA Toolkit版本选择正确的PyTorch安装命令。可以在`nvcc --version`中查看CUDA版本。

3

编译CUDA内核(可选,但推荐)

项目包含预编译的内核,但编译可确保兼容性。

尝试通过setup.py安装(如果存在)
python setup.py install
说明
echo '如果上述命令不存在,可直接跳过此步,项目已包含预编译库。'

预期结果::无错误输出,或显示安装成功。

此步可能因环境而异,若失败可跳过,直接尝试运行示例。

4

运行HGEMM基准测试示例

运行一个简单的HGEMM(半精度通用矩阵乘法)内核,查看性能。

运行HGEMM示例脚本(假设存在)
python hgemm_example.py
备选方案
echo '如果不存在,请尝试: python -m leetcuda.hgemm 或查看kernels/hgemm/目录下的具体脚本。'

预期结果::在终端输出HGEMM性能数据(如TFLOPS),并与cuBLAS进行比较,显示能达到98%~100%的性能。

如果没有特定的`hgemm_example.py`,请查看`kernels/hgemm/`或`examples/`目录下的其他示例脚本(如`toy_hgemm_example.py`)。

5

运行FlashAttention内核示例

运行一个基于MMA PTX的FlashAttention内核示例。

运行FlashAttention示例脚本(假设存在)
python flash_attn_example.py
备选方案
echo '如果不存在,请尝试: python -m leetcuda.flash_attn 或查看kernels/flash_attn/目录下的具体脚本。'

预期结果::在终端输出FlashAttention内核的运行结果和性能数据。

示例可能需要较大的GPU显存。如果内存不足,可以尝试减小示例中的序列长度或批量大小。

验证LeetCUDA运行成功

检查关键输出信息。

终端输出包含HGEMM的TFLOPS性能数据
终端输出显示与cuBLAS的性能比较(如98%~100%)
示例脚本无CUDA或Python错误地运行完成

快速提示

环境

确保你的NVIDIA驱动版本支持CUDA 12.x。

调试

如果遇到`torch.cuda.is_available()`返回False,请检查PyTorch与CUDA版本的匹配性。

学习路径

项目包含200+个内核,建议从`samples/`或`examples/`目录下的脚本开始探索。

常见问题

1

运行脚本时提示'CUDA out of memory'。

减小示例脚本中的张量大小(如矩阵维度M, N, K,序列长度)或批量大小。

2

`nvcc --version`命令未找到。

安装CUDA Toolkit并将其`bin`目录添加到系统`PATH`环境变量。

3

`pip install torch`后`import torch; print(torch.version.cuda)`输出为None。

卸载PyTorch并使用`--index-url`参数重新安装,明确指定CUDA版本(如cu121)。

下一步

浏览kernels目录

查看`kernels/`下的子目录,有`easy`、`medium`、`hard`等不同难度的CUDA内核实现。

阅读文档

查看`docs/`或项目根目录的PDF文件(如`interview/tex/notes-v2.pdf`)获取系统学习笔记。

尝试修改参数

修改示例脚本中的矩阵大小、数据类型等参数,观察性能变化,加深理解。

助手