构建指南

环境要求

  • CUDA Toolkit 11.0+
  • CMake 3.18+
  • C++17 兼容编译器(GCC 7+, Clang 5+, MSVC 2017+)
  • (可选) PyTorch >= 2.0.0,用于对比测试

使用 CMake Presets(推荐)

项目提供了预定义的 CMake Presets,简化构建流程:

# Debug 构建(含测试)
cmake --preset default
cmake --build --preset default
ctest --preset default

# Release 优化构建
cmake --preset release
cmake --build --preset release

# Release + fast math
cmake --preset release-fast-math
cmake --build --preset release-fast-math

# 最小构建(不含测试)
cmake --preset minimal
cmake --build --preset minimal

手动构建

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc)

指定 CUDA 路径

如果 CMake 找不到 CUDA,手动指定:

# Linux/macOS
cmake .. -DCUDAToolkit_ROOT=/usr/local/cuda \
         -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc

# Windows (PowerShell)
cmake .. -DCUDAToolkit_ROOT="$env:CUDA_PATH" `
         -DCMAKE_CUDA_COMPILER="$env:CUDA_PATH\bin\nvcc.exe"

跨平台说明

  • Linux: 共享库输出为 .so 文件
  • macOS: 共享库输出为 .dylib 文件
  • Windows: 共享库输出为 .dll 文件

Python 测试脚本会自动检测平台并加载对应库文件。

构建选项

选项 默认值 说明
BUILD_TESTS ON 构建 GoogleTest 测试套件
ENABLE_RAPIDCHECK OFF 启用 RapidCheck 属性测试
BUILD_SHARED_LIBS ON 构建共享库(供 C/C++ 使用;Python 集成测试会从 build/<preset>/ 查找产物)
BUILD_EXAMPLES ON 构建示例程序
ENABLE_FAST_MATH OFF 启用 --use_fast_math(加速 expf/logf,精度略降)

示例:

cmake .. -DCMAKE_BUILD_TYPE=Release \
         -DENABLE_FAST_MATH=ON \
         -DENABLE_RAPIDCHECK=ON

运行测试

# 使用 CMake Preset(推荐)
ctest --preset default --output-on-failure

# 或手动构建目录
ctest --test-dir build/default --output-on-failure

GoogleTest 通过 CMake FetchContent 自动下载,无需手动安装。

PyTorch 对比测试

确保以 BUILD_SHARED_LIBS=ON 构建,然后:

python tests/test_pytorch_comparison.py

该脚本会从 build/<preset>/(例如 build/default/build/release/)查找共享库,并与 PyTorch 的标准注意力实现对比数值精度。也可以通过环境变量 CUFLASH_LIB 显式指定共享库路径。

目标 GPU 架构

默认构建支持以下 CUDA 架构:

计算能力 架构 代表 GPU
sm_70 Volta V100
sm_75 Turing RTX 2080 Ti
sm_80 Ampere A100
sm_86 Ampere RTX 3090
sm_89 Ada Lovelace RTX 4090
sm_90 Hopper H100

如需仅编译特定架构以加速构建:

cmake .. -DCMAKE_CUDA_ARCHITECTURES=86

results matching ""

    No results matching ""