当前位置:   article > 正文

【Anaconda】Windows 系统中 vision mamba环境配置教程_windows mamba环境安装

windows mamba环境安装

mamba-ssm安装需要Pytorch>1.12 CUDA>11.6

1.安装CUDA

按照链接博客就可以,我试过了
详细讲解如何在win10系统上安装多个版本的CUDA_如何同时安装cuda11.8 和 cuda12.0-CSDN博客

本人电脑环境

CUDA 11.8
cudnn 8302
Nvidia 2080Ti

1.1 电脑环境确认

查看CUDA环境是否正常
查看电脑所支持CUDA版本

打开终端:

nvidia-smi
  • 1

右上角CUDA version即为最高支持版本

整理CUDA安装位置

一般默认C盘

1.2 安装新CUDA

(1)下载CUDAcuDnn,注意两者版本需匹配
(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
  • 1
  • 2
打开终端,查看CUDA版本
nvcc -V
  • 1

一般默认添加

(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
  • 1
  • 2

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
  • 1
  • 2
  • 3

2.3 安装依赖库

2.3.1 Triton

有大神编译了Windows下二进制文件,下载到本地后,在anacoda终端中,切换到cd triton所在文件夹,输入:

pip install triton-2.0.0-cp310-cp310-win_amd64.whl
  • 1
2.3.2 causal-conv1d
  • 方法1:直接安装
pip install causal-conv1d==1.1.1 #存在报错可能性
  • 1
  • 方法2:本地编译安装:在causal-conv1d安装链接下载好对应版本的安装包(我用的1.1.1版本),下载到本地后解压,anaconda激活环境后进入该文件夹。输入:
pip install .
  • 1

或者
cd 到存储文件夹:

git clone https://github.com/Dao-AILab/causal-conv1d.git
cd causal-conv1d
git checkout v1.1.1 
  • 1
  • 2
  • 3

为什么要 v1.1.1 ,因为其是支持cu118的最高版本

2.3.3 mamba-ssm(编译安装)
(1)下载
git clone https://github.com/state-spaces/mamba.git
cd mamba
  • 1
  • 2
(2)在mamba源码 setup.py修改配置
FORCE_BUILD = os.getenv("MAMBA_FORCE_BUILD", "FALSE") == "FALSE"
SKIP_CUDA_BUILD = os.getenv("MAMBA_SKIP_CUDA_BUILD", "FALSE") == "FALSE"
  • 1
  • 2
(3)修改源码

1.在ops/selective_scan_interface.py 文件下,注释掉

# import selective_scan_cuda
  • 1

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

替换为:

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
(4)安装:在mamba文件夹下
pip install .
  • 1

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博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/851544?site
推荐阅读
相关标签
  

闽ICP备14008679号