win10下cuda12.1 +troch2.4.1+vs2022环境下编译安装flash-attn

news/2024/10/4 7:20:51 标签: flash_attn, python, 深度学习

步骤一 下载项目
先下载 https://github.com/Dao-AILab/flash-attention,然后在conda环境中进入项目目录

步骤二 安装依赖项
执行以下命令,安装cutlass库,该库为编译flash-attn的必须依赖

conda update --force conda 
conda install conda-forge::cutlass

conda下查找: https://anaconda.org/conda-forge/

步骤三 设置include目录
在flash-attention项目下,setup.py,第300行,添加 "c:/Users/Administrator/miniconda3/Library/include",这里为自己conda环境下的include目录,该命令下有conda安装的库文件,如cutlass。
在这里插入图片描述
具体修改效果如下
在这里插入图片描述

步骤四 突破vs2022与cuda版本限制
在cuda v12.1\include\crt\host_config.h下,表明不支持vs2022,强制进行编译会输出以下报错

error -- unsupported Microsoft Visual Studio version! Only the versions between 2017 and 2022 (inclusive) are supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk

参考:https://blog.csdn.net/lishiyu93/article/details/114599859,修改_MSC_VER的版本范围 原先是1940,被博主修改成了2940
在这里插入图片描述

在C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\yvals_core.h中,表明只支持cuda12.4以上的版本,将原来的代码参考 https://blog.csdn.net/weixin_55361556/article/details/141465456 ,修改为 #if __CUDACC_VER_MAJOR__ < 10 || (__CUDACC_VER_MAJOR__ == 10 && __CUDACC_VER_MINOR__ < 1)

在这里插入图片描述

步骤五 进行编译
执行 python setup.py build,进行编译
在这里插入图片描述

步骤六 生成whl文件
执行python .\setup.py bdist_wheel生成whl文件,命令行输出如下
在这里插入图片描述
生成的whl文件在dist目录下
在这里插入图片描述
博主编译好的whl文件下载地址: https://download.csdn.net/download/a486259/89839302

步骤七 安装包
执行 pip install .\flash_attn-2.6.3-cp38-cp38-win_amd64.whl 安装包
在这里插入图片描述


http://www.niftyadmin.cn/n/5689671.html

相关文章

Java中的顺序控制、分支控制、嵌套分支if-else

if-else 顺序控制分支控制if-else单分支1.基本语法2.说明&#xff1a;3.案例说明4.流程图 双分支1.基本语法2.说明&#xff1a;3.案例说明4.流程图5.练习 多分支1.基本语法2.说明&#xff1a;3.流程图4.练习 嵌套分支1.基本介绍2.基本语法3.练习 顺序控制 1.介绍&#xff1a;程…

VS Code 图形化合并工具

VS Code 图形化合并工具能够帮助你更直观地进行代码合并和解决冲突 1. VS Code 内置的 Git 合并工具 VS Code 自带的 Git 支持已经非常强大&#xff0c;能够在合并冲突时提供直观的图形化界面&#xff0c;帮助你轻松解决冲突。以下是使用内置功能的步骤&#xff1a; 步骤一&…

在Ubuntu 20.04中安装CARLA

0. 引言 CARLA (Car Learning to Act) 是一款开源自动驾驶模拟器&#xff0c;其支持自动驾驶系统全管线的开发、训练和验证&#xff08;Development, Training, and Validation of autonomous driving systems&#xff09;。Carla提供了丰富的数字资产&#xff0c;例如城市布局…

国庆刷题(day2)

C语言刷题&#xff1a; C刷题&#xff1a;

【信号与系统第四章】10、离散傅里叶变换的性质

一、线性性质 1、例题 &#xff08;1&#xff09; 二、时移性质 1、证明 三、频移性质 1、证明 四、时域差分 五、时域扩展 1、证明 2、例题 六、频域微分 1、证明 2、例题 &#xff08;1&#xff09; 七、时域卷积性质 1、证明 2、例题 &#xff08;1&#xff09; &#xf…

1000题-计算机网络系统概述

术语定义与其他术语的关系SDU&#xff08;服务数据单元&#xff09;相邻层间交换的数据单元&#xff0c;是服务原语的表现形式。在OSI模型中&#xff0c;SDU是某一层待传送和处理的数据单元&#xff0c;即该层接口数据的总和。 - SDU是某一层的数据集&#xff0c;准备传递给下一…

Android SystemUI组件(11)SystemUIVisibility解读

该系列文章总纲链接&#xff1a;专题分纲目录 Android SystemUI组件 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节持续迭代之前章节思维导图&#xff0c;主要关注左侧最上方SystemUiVisibility解读部分即可。 本章节主要讲解SystemUiVisibility的概念及其相…

Java后端配置中心实现:Spring Cloud Config详解

Java后端配置中心实现&#xff1a;Spring Cloud Config详解 大家好&#xff0c;我是微赚淘客返利系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在微服务架构中&#xff0c;配置管理是一个复杂的问题&#xff0c;因为随着服务数量…