没合适的组合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个并发编译

相关推荐
金銀銅鐵6 小时前
[Python] 借助图形化界面探索模n运算的规律
python·数学
Hesionberger6 小时前
快速求解完全平方数的最少数量
开发语言·数据结构·python·算法·leetcode·c#
xywww16811 小时前
大模型 API 选型实战:GPT、Gemini、Claude 接入时该看哪些指标?
运维·服务器·人工智能·python·gpt·langchain
夜雪一千15 小时前
Python enumerate() 函数完整详解:遍历同时获取索引,告别手动计数
服务器·windows·python
能有时光16 小时前
PyTorch KernelAgent 源码解读 ---(4)--- ExtractorAgent
人工智能·pytorch·python
_Jimmy_16 小时前
Python 协程库如何使用以及有哪些使用场景
python
aqi0017 小时前
15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能
人工智能·python·大模型·ai编程·ai应用
Felix-lxd17 小时前
Ubuntu 22.04 配置 Nginx
linux·nginx·ubuntu
第一程序员17 小时前
Rust Agent 子进程执行:Command 之前,先定义输入和超时
python·rust·github
skywalk816317 小时前
设计并实现段言的 C FFI 绑定机制 @Trae
c语言·开发语言·python·编程