[已解决] flash-attn报错flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so: undefined symbol

报错信息

ImportError: /home/operationgpt/anaconda3/envs/lyj_py10_torch230/lib/python3.10/site-packages/flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZN3c104cuda9SetDeviceEi

解决方式:重装flash attention

  1. 卸载已有的flash-attn, 输入pip uninstall flash-attn, 然后输入y
  2. 查看自己对应的torch版本,cuda版本和python版本

查看torch版本

pip show torch

返回如下结果,可知torch版本为2.3.1
在这里插入图片描述

查看cuda版本

nvcc -V

在这里插入图片描述
cuda版本为V12.5.40

查看python版本

python --version
  1. flash attention官网下载安装包, 注意需要根据自己的torch版本,cuda版本(可以选择低于自己cuda版本的) 和python版本进行选择. 同时选择abiFALSE.

在这里插入图片描述
右键,复制链接, 在linux中使用wget + 链接进行whl安装包的下载:

wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.6.3/flash_attn-2.6.3+cu123torch2.3cxx11abiFALSE-cp310-cp310-linux_x86_64.whl

最后使用pip install whl路径,下载好flash-attn,大功告成!

### 如何重新安装 `flash_attn_2_cuda` 库 遇到类似于 `ImportError: /root/miniconda3/lib/python3.10/site-packages/flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZN3c104cuda9SetDeviceEi` 这样的错误通常意味着存在依赖关系问题,特别是当涉及 CUDA 或 PyTorch 的特定版本时。为了修复这个问题,可以按照如下方法操作: #### 卸载现有软件包 先移除当前已有的可能导致冲突的 `PyTorch` 和 `flash_attn` 版本。 ```bash pip uninstall torch flash_attn ``` #### 清理缓存文件 有时残留的编译文件也会引发问题,因此建议清理 pip 缓存: ```bash pip cache purge ``` #### 安装兼容版本的 PyTorch 考虑到 `_ZN3c104cuda9SetDeviceEi` 是 PyTorch 中的一部分,并且与 CUDA 密切关联,确保安装的是匹配硬件环境(如CUDA版本)以及操作系统需求的具体版次非常重要。这里提供了一个适用于 CUDA 12.1 的例子: ```bash pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 -f https://mirrors.aliyun.com/pytorch-wheels/cu121/ ``` #### 下载并安装指定版本的 `flash_attn` 对于 `flash_attn` 来说,如果需要特定版本,则可以直接通过 whl 文件来进行精确控制。下面是一个针对 Python 3.10, CUDA 12.2 并带有 cu++ ABI 支持的例子: ```bash pip install flash_attn-2.5.8+cu122torch2.3cxx11abiFALSE-cp310-cp310-linux_x86_64.whl ``` 完成上述步骤之后再次测试程序应该能够正常工作了[^1][^2]。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值