安装flash-Attention报错的解决 编译flash-attn,python setup.py install

sudo docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:24.06-py3

sudo docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:24.06-py3 

sudo docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:24.06-py3
Unable to find image 'nvcr.io/nvidia/pytorch:24.06-py3' locally
24.06-py3: Pulling from nvidia/pytorch
a8b1c5f80c2d: Pulling fs layer
9c2a63d09670: Pulling fs layer
4f4fb700ef54: Pulling fs layer
c78c58a0000d: Waiting
ea63eb298c69: Waiting
aec371ddf6d1: Waiting
1925a16db8f6: Waiting
5767e2819d1e: Waiting
93fab9cd076a: Waiting
6bc5fc3bcef3: Waiting
a113fe9770cd: Waiting
aec371ddf6d1: Downloading [======>

编译flash-attn

[17/49] /usr/local/cuda/bin/nvcc --generate-dependencies-with-compile --dependency-output /data/zengzijian/Projects/InternVL-v2.0.0/flash-attention/build/temp.linux-x86_64-cpython-312/csrc/flash_attn/src/flash_fwd_split_hdim32_bf16_sm80.o.d -I/data/zengzijian/Projects/InternVL-v2.0.0/flash-attention/csrc/flash_attn -I/data/zengzijian/Projects/InternVL-v2.0.0/flash-attention/csrc/flash_attn/src -I/data/zengzijian/Projects/InternVL-v2.0.0/flash-attention/csrc/cutlass/include -I/home/apus/mambaforge/envs/Qwen_back/lib/python3.12/site-packages/torch/include -I/home/apus/mambaforge/envs/Qwen_back/lib/python3.12/site-packages/torch/include/torch/csrc/api/include -I/home/apus/mambaforge/envs/Qwen_back/lib/python3.12/site-packages/torch/include/TH -I/home/apus/mambaforge/envs/Qwen_back/lib/python3.12/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/apus/mambaforge/envs/Qwen_back/include/python3.12 -c -c /data/zengzijian/Projects/InternVL-v2.0.0/flash-attention/csrc/flash_attn/src/flash_fwd_split_hdim32_bf16_sm80.cu -o /data/zengzijian/Projects/InternVL-v2.0.0/flash-attention/build/temp.linux-x86_64-cpython-312/csrc/flash_attn/src/flash_fwd_split_hdim32_bf16_sm80.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O3 -std=c++17 -U__CUDA_NO_HALF_OPERATORS__ -U__CUDA_NO_HALF_CONVERSIONS__ -U__CUDA_NO_HALF2_OPERATORS__ -U__CUDA_NO_BFLOAT16_CONVERSIONS__ --expt-relaxed-constexpr --expt-extended-lambda --use_fast_math -gencode arch=compute_80,code=sm_80 -gencode arch=compute_90,code=sm_90 --threads 4 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=flash_attn_2_cuda -D_GLIBCXX_USE_CXX11_ABI=0
[18/49] /usr/local/cuda/bin/nvcc --generate-dependencies-with-compile --dependency-output /data/zengzijian/Projects/InternVL-v2.0.0/flash-attention/build/temp.linux-x86_64-cpython-312/csrc/flash_attn/src/flash_fwd_split_hdim192_bf16_sm80.o.d -I/data/zengzijian/Projects/InternVL-v2.0.0/flash-attention/csrc/flash_attn -I/data/zengzijian/Projects/InternVL-v2.0.0/flash-attention/csrc/flash_attn/src -I/data/zengzijian/Projects/InternVL-v2.0.0/flash-attention/csrc/cutlass/include -I/home/apus/mambaforge/envs/Qwen_back/lib/python3.12/site-packages/torch/include -I/home/apus/mambaforge/envs/Qwen_back/lib/python3.12/site-packages/torch/include/torch/csrc/api/include -I/home/apus/mambaforge/envs/Qwen_back/lib/python3.12/site-packages/torch/include/TH -I/home/apus/mambaforge/envs/Qwen_back/lib/python3.12/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/apus/mambaforge/envs/Qwen_back/include/python3.12 -c -c /data/zengzijian/Projects/InternVL-v2.0.0/flash-attention/csrc/flash_attn/src/flash_fwd_split_hdim192_bf16_sm80.cu -o /data/zengzijian/Projects/InternVL-v2.0.0/flash-attention/build/temp.linux-x86_64-cpython-312/csrc/flash_attn/src/flash_fwd_split_hdim192_bf16_sm80.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O3 -std=c++17 -U__CUDA_NO_HALF_OPERATORS__ -U__CUDA_NO_HALF_CONVERSIONS__ -U__CUDA_NO_HALF2_OPERATORS__ -U__CUDA_NO_BFLOAT16_CONVERSIONS__ --expt-relaxed-constexpr --expt-extended-lambda --use_fast_math -gencode arch=compute_80,code=sm_80 -gencode arch=compute_90,code=sm_90 --threads 4 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=flash_attn_2_cuda -D_GLIBCXX_USE_CXX11_ABI=0

3.5-Sonnet

Poe

这些命令是在编译 Flash Attention 库的 CUDA 代码。让我为你解释一下这个过程的主要部分:

  1. 使用的编译器:
    /usr/local/cuda/bin/nvcc - 这是 NVIDIA 的 CUDA 编译器。

  2. 输入文件:

    • flash_fwd_split_hdim32_bf16_sm80.cu
    • flash_fwd_split_hdim192_bf16_sm80.cu
      这些是 Flash Attention 的 CUDA 源文件。
  3. 输出文件:
    编译后的目标文件(.o 文件)被放置在 build/temp.linux-x86_64-cpython-312/ 目录下。

  4. 包含路径 (-I 选项):
    包括了 Flash Attention 的源代码路径、PyTorch 的头文件路径、CUDA 包含路径等。

  5. 编译选项:

    • -O3: 最高级别的优化
    • -std=c++17: 使用 C++17 标准
    • --expt-relaxed-constexpr: 允许在设备代码中使用更多的 constexpr 功能
    • --use_fast_math: 使用快速数学库,可能会轻微影响精度
    • -gencode arch=compute_80,code=sm_80 -gencode arch=compute_90,code=sm_90: 为特定的 GPU 架构(SM80 和 SM90)生成代码
  6. 定义的宏:
    包括 TORCH_EXTENSION_NAME=flash_attn_2_cuda,这定义了 PyTorch 扩展的名称。

  7. ABI 设置:
    -D_GLIBCXX_USE_CXX11_ABI=0 指定使用旧的 C++ ABI,这通常是为了与预编译的 PyTorch 二进制文件兼容。

  8. 多线程编译:
    --threads 4 指定使用 4 个线程进行编译,加快编译速度。

这个编译过程是为了将 Flash Attention 的 CUDA 代码编译成可以与 PyTorch 一起使用的扩展。它针对特定的 GPU 架构(SM80 和 SM90)优化,并使用了一些高级的 CUDA 编译选项来提高性能。

编译完成后,这些目标文件将被链接成一个 Python 可以导入的动态库,使得 Flash Attention 可以在 PyTorch 中高效运行。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI生成曾小健

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

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

抵扣说明:

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

余额充值