DeepGEMM 项目使用与配置教程

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),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值