mamba-ssm安装需要
Pytorch
>1.12CUDA
>11.6
1.安装CUDA
按照链接博客就可以,我试过了
详细讲解如何在win10系统上安装多个版本的CUDA_如何同时安装cuda11.8 和 cuda12.0-CSDN博客
本人电脑环境
CUDA 11.8
cudnn 8302
Nvidia 2080Ti
1.1 电脑环境确认
查看CUDA环境是否正常
查看电脑所支持CUDA版本
打开终端:
nvidia-smi
右上角CUDA version
即为最高支持版本
整理CUDA安装位置
一般默认C盘
1.2 安装新CUDA
(1)下载CUDA
和cuDnn
,注意两者版本需匹配
(2)安装CUDA
添加新CUDA到环境变量
一般会自动添加,如果没有则在Path
中添加下列环境变量
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vxx.x\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vxx.x\libnvvp
打开终端,查看CUDA版本
nvcc -V
一般默认添加
(3)cudnn安装
将下载到的压缩包解压到cuda
的安装路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vXXX
下并覆盖。
2.配置mamba-ssm环境
2.1 创建环境
conda create -n your_env_name python=3.10.13
conda activate your_env_name
2.2 安装cuda和Pytorch
conda install cudatoolkit==11.8 -c nvidia
pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118
conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc
2.3 安装依赖库
2.3.1 Triton
有大神编译了Windows下二进制文件,下载到本地后,在anacoda
终端中,切换到cd triton
所在文件夹,输入:
pip install triton-2.0.0-cp310-cp310-win_amd64.whl
2.3.2 causal-conv1d
- 方法1:直接安装
pip install causal-conv1d==1.1.1 #存在报错可能性
- 方法2:本地编译安装:在causal-conv1d安装链接下载好对应版本的安装包(我用的1.1.1版本),下载到本地后解压,
anaconda
激活环境后进入该文件夹。输入:
pip install .
或者
cd
到存储文件夹:
git clone https://github.com/Dao-AILab/causal-conv1d.git
cd causal-conv1d
git checkout v1.1.1
为什么要 v1.1.1 ,因为其是支持cu118的最高版本
2.3.3 mamba-ssm(编译安装)
(1)下载
git clone https://github.com/state-spaces/mamba.git
cd mamba
(2)在mamba源码 setup.py
修改配置
FORCE_BUILD = os.getenv("MAMBA_FORCE_BUILD", "FALSE") == "FALSE"
SKIP_CUDA_BUILD = os.getenv("MAMBA_SKIP_CUDA_BUILD", "FALSE") == "FALSE"
(3)修改源码
1.在ops/selective_scan_interface.py
文件下,注释掉
# import selective_scan_cuda
2.在ops/selective_scan_interface.py
文件下
将
def selective_scan_fn(u, delta, A, B, C, D=None, z=None, delta_bias=None, delta_softplus=False,
return_last_state=False):
"""if return_last_state is True, returns (out, last_state)
last_state has shape (batch, dim, dstate). Note that the gradient of the last state is
not considered in the backward pass.
"""
return SelectiveScanFn.apply(u, delta, A, B, C, D, z, delta_bias, delta_softplus, return_last_state)
def mamba_inner_fn(
xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight,
out_proj_weight, out_proj_bias,
A, B=None, C=None, D=None, delta_bias=None, B_proj_bias=None,
C_proj_bias=None, delta_softplus=True
):
return MambaInnerFn.apply(xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight,
out_proj_weight, out_proj_bias,
A, B, C, D, delta_bias, B_proj_bias, C_proj_bias, delta_softplus)
替换为:
def selective_scan_fn(u, delta, A, B, C, D=None, z=None, delta_bias=None, delta_softplus=False,
return_last_state=False):
"""if return_last_state is True, returns (out, last_state)
last_state has shape (batch, dim, dstate). Note that the gradient of the last state is
not considered in the backward pass.
"""
return selective_scan_ref(u, delta, A, B, C, D, z, delta_bias, delta_softplus, return_last_state)
def mamba_inner_fn(
xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight,
out_proj_weight, out_proj_bias,
A, B=None, C=None, D=None, delta_bias=None, B_proj_bias=None,
C_proj_bias=None, delta_softplus=True
):
return mamba_inner_ref(xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight,
out_proj_weight, out_proj_bias,
A, B, C, D, delta_bias, B_proj_bias, C_proj_bias, delta_softplus)
(4)安装:在mamba
文件夹下
pip install .
3.参考文献
CUDA安装
详细讲解如何在win10系统上安装多个版本的CUDA_如何同时安装cuda11.8 和 cuda12.0-CSDN博客
win10 64位 环境下安装CUDA 11.8和 cuDNN v8.6.0_cudnn8.6.0-CSDN博客
Windows 下 CUDA, cudnn, pytoch 卸载、更新、安装 - 个人文章 - SegmentFault 思否
mamba环境配置
windows系统下anaconda中配置Mamba官方代码环境_windows配置mamba-ssm-CSDN博客
Mamba 环境安装踩坑问题汇总及解决方法_runtimeerror: mamba_ssm is only supported on cuda -CSDN博客
(Windows傻瓜教程)Mamba安装以及问题汇总(Causal-Conv1d & Mamba-ssm)-CSDN博客
运行Mamba项目时无法直接用pip install安装causal_conv1d和mamba_ssm_pip install causal-conv1d-CSDN博客