DeepGEMM 项目使用与配置教程
1. 项目目录结构及介绍
DeepGEMM 项目是一个为 Hopper 架构优化的 FP8 GEMM 核心库。以下是项目的目录结构及各部分的介绍:
DeepGEMM/
├── deep_gemm/ # 包含 DeepGEMM 库的核心实现
│ ├── __init__.py # 初始化 deep_gemm 模块
│ └── gemm_fp8.py # 实现 FP8 GEMM 的核心代码
├── figures/ # 包含可视化图表和图形
├── tests/ # 包含测试代码
│ ├── __init__.py # 初始化 tests 模块
│ ├── test_jit.py # 测试 JIT 编译
│ └── test_core.py # 测试所有 GEMM 实现
├── third-party/ # 包含第三方库,如 CUTLASS 和 CuTe
├── .gitignore # 指定 Git 忽略的文件和目录
├── .gitmodules # 指定包含的子模块
├── LICENSE # 项目的 MIT 许可证文件
├── README.md # 项目描述文件
├── setup.py # 设置文件,用于安装和开发 DeepGEMM
└── requirements.txt # 项目依赖文件
2. 项目的启动文件介绍
项目的启动主要是通过 setup.py
文件进行。该文件定义了如何安装 DeepGEMM 库以及如何将库开发环境与系统的 Python 环境关联。
python setup.py install
:用于安装 DeepGEMM 库,使其可以在 Python 项目中导入使用。python setup.py develop
:用于在开发模式下安装库,任何对库的更改都会立即反映在环境中,无需重新安装。
安装后,可以通过导入 deep_gemm
模块来使用 DeepGEMM 的功能。
3. 项目的配置文件介绍
DeepGEMM 使用了一些环境变量来配置编译和运行时的行为。以下是一些主要的配置环境变量:
DG_CACHE_DIR
:字符串,指定编译后的内核存储的缓存目录,默认为$HOME/.deep_gemm
。DG_NVCC_COMPILER
:字符串,指定 NVCC 编译器的路径。如果未设置,将默认从torch.utils.cpp_extension.CUDA_HOME
获取。DG_DISABLE_FFMA_INTERLEAVE
:0 或 1,用于禁用 FFMA 交错优化。DG_PTXAS_VERBOSE
:0 或 1,用于显示 PTXAS 编译器的详细输出。DG_PRINT_REG_REUSE
:0 或 1,用于打印 FFMA 交错优化的详细信息。DG_JIT_PRINT_NVCC_COMMAND
:0 或 1,用于打印 NVCC 编译命令。DG_JIT_DEBUG
:0 或 1,用于打印更多调试信息。
可以通过设置这些环境变量来调整 DeepGEMM 的行为,以适应不同的编译和运行时需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考