$ 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。
  • 环境变量配置有误PATHLD_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

FlashAttention安装失败的一种可能的原因,nvcc -V与nvidia-smi显示的CUDA版本号不一样的更多相关文章

  1. win下sass安装失败的一种可能

    首先声明,本篇转自CSDN的LZGS_4. 今天我也遇到这个问题,就把文章擅自转载了,方便自己也方便更多的人吧. 因为sass和compass依赖于ruby环境,所以装之前先确认装了ruby.可到官网 ...

  2. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  3. Microsoft Visual Studio Web 创作组件安装失败的解决方法

    在网上查一下说是Office2007的问题.我把Office2007卸载了还是不行. 然后用Windows Install Clean Up工具清理,还是不行. 郁闷了.然后在安装包中的下面路径下找到 ...

  4. Windows Service 之 安装失败后的删除

    一个windows服务在卸载之后并不会马上从服务列表中消失掉,而是在服务列表中会显示服务被禁用:这样在你需要再次安装同名服务时,就装不了了,会被提示同名的服务已经存在.如果是在本地安装,这种情况很容易 ...

  5. 安装.NET Framework组件时,电脑意外重启后再次安装失败

    因为软件运行环境需要安装.Net Framework,我安装的是2.0sp版本,可以安装过程中计算机意外关闭,重新打开后再次安装却出现安装失败的提示,具体内容是: 产品: Microsoft .NET ...

  6. RHEL 6.3使用CentOS yum源 (redhat yum安装失败)

    由于Redhat的yum在线更新是收费的,如果没有注册的话是不能使用的,即不能在线安装软件.所以yum install 命令每次都安装失败 下面介绍一种更改yum源的方式: 系统说明: 系统:Red ...

  7. myeclipse egit 安装失败 org.eclipse.e4.ui.css.swt.theme 0.0.0

    [前言] 首先确保您可能会被安装在阅读本文之前,myeclipse egit, 见文章:http://blog.csdn.net/uikoo9/article/details/17247405 事实上 ...

  8. MySql入门(2-1)windows下安装mysql的两种方式

    一.下载mysql 1.下载解压MySQL 登录oracle主页,需要用户名和口令: lshengqi@netease.com/1wsx**** 下载路径:: https://dev.mysql.co ...

  9. linux下依赖库的版本问题引起的安装失败:libssl-dev版本问题无法安装 :libssl-dev : 依赖: libssl1.0.0 (= 1.0.1-4ubuntu3) 但是 1.0.1-4ubuntu5.31 正要被安装

    依赖库版本问题引起的安装失败解决方法如下有两种: 1.是由于源需要更新,如下操作: libssl-dev : 依赖: libssl0.9.8 (= 0.9.8o-1ubuntu4) 但是 0.9.8o ...

  10. Visual Studio 2008 安装失败(“Web 创作组件”无法安装)(转)

    今天安装VS2008时出现了问题,怎么都无法安装成功.装了好几次都在“Visual Studio Web 创作组件(Visual Studio Authoring Component)”的安装的时候失 ...

随机推荐

  1. Linux系统查看CPU使用率、内存使用率、磁盘使用率

    一.查看CPU使用率1. top 命令[root@sss ~]# toptop - 16:54:38 up 7 days,  5:13,  3 users,  load average: 0.00, ...

  2. BUUCTF---古典密码知多少

    题目 知识 一共给出四种古典密码,分别是:猪圈密码.圣堂武士密码.标准银河字母.栅栏密码 猪圈之前有介绍 圣: 标准银河字母 更多加密方式 解题 对照解密 FGCPFLIRTUASYON 再使用栅栏 ...

  3. MySQL-删除数据和count(*)原理

    delete删除数据原理 在InndoDB存储引擎中,delete删除操作是把需要删除的数据或者页标记为已删除,后面如果有需要,直接复用即可.这些被标记为已经删除的数据,看起来就像空洞一样.所以看起来 ...

  4. 【Git】工作流

    Git 工作流 概念 在项目开发过程中使用 Git 的方式 分类 集中式工作流 像 SVN 一样,集中式工作流以中央仓库作为项目所有修改的单点实体.所有 修改都提交到 Master 这个分支上. 这种 ...

  5. 学习unigui【22】unistringGrid的标题栏双击事件

    第一步:在TuniStringGrid的ClientEvents.ExtEvents中定义Ext.grid.Panel的reconfigure事件: function reconfigure(send ...

  6. 舵机SG90详解

    舵机,也叫伺服电机,在嵌入式开发中,舵机作为一种常见的运动控制组件,具有广泛的应用.其中,SG90 舵机以其高效.稳定的性能特点,成为了许多工程师和爱好者的首选,无论是航模.云台.机器人.智能小车中都 ...

  7. X86-64位简易系统开发 - 从BIOS阶段开始

    最近回顾之前写的代码的时候, 发现了以前本科时还开发过一个64位的操作系统, 不过最终也只是开发到进程切换部分 这是一个涉及到汇编和C语言的一个偏底层偏硬核的项目, 而且为了能够学到更多东西, 使用的 ...

  8. 使用Python建模量子隧穿

    引言 量子隧穿是量子力学中的一个非常有趣且令人神往的现象.在经典物理学中,我们通常认为粒子必须克服一个势垒才能通过它.但是,在量子力学中,粒子有时可以"穿越"一个势垒,即使它的能量 ...

  9. 使用Python+SymPy求解微分方程

    引言 在学习微积分或者物理.工程相关的学科时,微分方程常常是我们需要解决的一个重要问题.微分方程是包含未知函数及其导数的方程,广泛应用于描述变化过程中的规律,如物理中的运动方程.化学中的反应速率.经济 ...

  10. 使用java代码获取JVM信息

    转载请注明出处: 最近在环境中定位服务问题,由于服务使用的docker部署的,且使用的docker镜像,在启动之后,容器内没有jdk相关的工具[jstat.jmap等等]:于是采用 在项目中使用jav ...