FlashAttention安装失败的一种可能的原因,nvcc -V与nvidia-smi显示的CUDA版本号不一样
$ pip install flash-attn --no-build-isolation
报错
RuntimeError: FlashAttention is only supported on CUDA 11.7 and above.  Note: make sure nvcc has a supported version by running nvcc -V.
  torch.__version__  = 2.0.1+cu117
使用nvidia-smi看CUDA版本没有问题
$ nvidia-smi
Tue Apr  1
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI              Driver Version:      CUDA Version: 12.4     |
使用nvcc -V查看,发现版本与nvidia-smi不一样
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
使用以下操作可以解决
从 nvidia-smi 输出能够了解到,系统里安装了 NVIDIA 显卡驱动,版本是 550.144.03,并且支持的 CUDA 版本为 12.4。 nvcc -V 时显示的 CUDA 版本是 10.1,这表明系统里安装了多个 CUDA 版本,而当前 nvcc 指向的是旧版本的 CUDA。
可能的原因
- 多版本 CUDA 共存:系统中同时安装了多个 CUDA 版本,并且环境变量指向了旧版本的 CUDA。
- 环境变量配置有误:PATH和LD_LIBRARY_PATH环境变量没有正确指向新版本的 CUDA。
解决办法
1. 确认新版本 CUDA 的安装路径
一般情况下,新版本的 CUDA 会安装在 /usr/local/cuda-<version> 目录,这里的 <version> 是你安装的 CUDA 版本号,例如 /usr/local/cuda-12.4。
2. 修改环境变量
编辑 ~/.bashrc 或者 ~/.zshrc 文件,将环境变量指向新版本的 CUDA:
# 打开文件
nano ~/.bashrc
# 或者
nano ~/.zshrc
在文件中添加或修改以下内容:
export PATH=/usr/local/cuda-12.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH
保存并退出文件,然后使配置生效:
source ~/.bashrc
# 或者
source ~/.zshrc
3. 验证 CUDA 版本
再次执行 nvcc -V 命令,确认 CUDA 版本是否已经更新为 12.4:
nvcc -V
4. 重新安装 flash_attn
确认 CUDA 版本符合要求后,重新尝试安装 flash_attn:
pip install flash-attn --no-build-isolation
能够将 nvcc 指向新版本的 CUDA,并且成功安装 flash_attn。
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号