没合适的组合wheel包,就自行编译flash_attn吧

不知道是不是也有很多小伙伴像我一样,经常一装机就把最新的cuda安装上去了。等装到组件时,才发现cuda和其它组件各种不适配。这次把nvcc直接装到12.8了,然后发现flash attn没有合适的wheel,就只能自己编译了。下面记录下我的编译过程:

我的环境是ubuntu 24.04, ubuntu 22下也是一样的。

设置环境:

export CUDA_HOME=/usr/local/cuda-12.8 # 替换 <version> 为你的CUDA版本号

export PATH=CUDA_HOME/bin:PATH

export CPATH=CUDA_HOME/include:CPATH # 对于GCC, Clang等C/C++编译器

export LD_LIBRARY_PATH=CUDA_HOME/lib64:LD_LIBRARY_PATH

安装编译器:

pip install ninja

安装编译工具链:

apt-get update && sudo apt-get install -y nvidia-cuda-toolkit

pip install --upgrade pip setuptools wheel

下载 flash atten源码:

git clone https://github.com/Dao-AILab/flash-attention.git

准备编译:

cd flash-attention

python setup.py bdist_wheel

开始编译:

MAX_JOBS=1 python setup.py install

上面为的MAX_JOBS根据你的内存来设置,我的32G内存,默认3个JOB会OOM,被kill导致编译不过。所以就设置了1个并发编译

相关推荐
外收内放5 小时前
面向对象高级(实战案例)
开发语言·python·学习
专业程序开发源5 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
FPGA小迷弟6 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整实践指南
c++·python·ai·plotly·django·ai编程·claude
卷无止境6 小时前
面向arm64桌面客户端开发全景:语言、框架与生态
后端·python
fanruitian6 小时前
python else用法
开发语言·python
程序员-King.6 小时前
【ROS1】Noetic 开发工作流程与常用命令
c++·ubuntu·ros
Thinker QAQ6 小时前
并发编程(十一):Shared Memory 与 Message Passing——关系与组合使用
java·python·go·并发编程·shared memory·message passing
用户8356290780517 小时前
如何使用 Python 对 Excel 数据进行分组和分级显示
后端·python
vx_Biye_Design7 小时前
django房屋租赁推荐系统78455-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·express
学Linux的语莫8 小时前
python中类的常见写法
开发语言·python·状态模式