在安装flash_attn
的过程中,遇到了FlashAttention is only supported on CUDA 11.6 and above
问题,即 CUDA 版本不匹配,但是通过nvidia-smi
的指令,又能从界面上看到版本是 12.2
所以重新梳理了一下,大概是这样的:
- Falsh attn 对CUDA版本(即
CUDA Tookit
)有要求,且是 11.6 及以上 - Nvidia-smi 看到的版本是 gpu driver 的适配版本,不是CUDA实际版本,实际版本以
nvcc -V
指令的显示为准(这里是在~ ./bashrc
文件中中进行了映射了的) - 所以根据报错,需要重新安装
CUDA Tookit
即可,驱动目前是符合的,不需要重新安装
那么,
修复方式:
1.重新安装CUDA,推荐流程: CUDA的正确安装/升级/重装/使用方式
2.重新 nvcc -V
指令查看,
3.重新安装 flash_attn
(没装ninja需要安装这个,:pip install ninja -i https://pypi.tuna.tsinghua.edu.cn/simple
)
4.(发现后续还遇到了问题…)
Building wheel for flash-attn 太久了,查了下,应该跟版本有关系,自己手动选配一下版本:https://github.com/Dao-AILab/flash-attention/releases/
比如我的:
复制下载地址:
wget https://github.com/Dao-AILab/flash-att_xxxx-linux_x86_64.whl
替换一下
然后 pip install xxxx.whl
手动安装,完成
其他相关
- 驱动下载地址:https://developer.nvidia.com/cuda-toolkit-archive
- CUDA Toolkit 和 Driver Versions对应表:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
- 【CUDA】nvcc和nvidia-smi显示的版本不一致? https://blog.csdn.net/u013250861/article/details/135300026
- flash_attn安装