Ubuntu下VMamba环境1080ti显卡踩坑问题和解决

前言

        Mamba应用在视觉领域的衍生的模型层出不穷,诸如 Vmamba 和Vision Mamba等。笔者在配置相关环境(版本安装要求:PyTorch 1.12+;CUDA 11.6+)时,发现按照他们给的安装方法安装时会遇到非常多的bug,原因都是版本兼容问题,特此记录。

        笔者的设备如下:

  • 设备一:笔者自己的笔记本显卡是 RTX 4060ti,cuda版本是 12.3,nvcc版本是 12.4。
  • 设备二:笔者的实验室继承设备显卡 GTX 1080ti, cuda版本是 10.1,nvcc版本是 10.1。

        由此可知,笔者继承的设备的配置不满足VMamba环境配置的最低要求,因此在配置环境之前需要进行升级,本文会给出详细步骤。

 

        因此,在开始之前你需要检查你的设备是否满足VMamba环境配置的最低要求!打开终端,依次输入以下命令行:

nvidia-smi
nvcc -V

        如图所示。

        如果你的设备满足要求,那么你可以跳过更新步骤了。

        如果你的设备不满足要求,在这里有几点注意事项:

        首先我建议驱动版本和nvcc都设置为11.8,因为根据笔者经验,很多教程都是在11.8版本的基础上写的,并且11.8可能会比12.0版本以上更不容易出现问题。

配置VMamba环境

  • 下载源码

        打开终端,输入以下命令:

git clone https://github.com/MzeroMiko/VMamba.git

        这一步用git指令将该项目文件下载下来,你会得到一个名为VMamba的文件夹,其中包括这个项目的所有代码。

  • 配置环境

        这一步至关重要,笔者在这一步也是遇到了种种问题。请你在终端依次输入如下指令。

1.创建虚拟环境

        切记不要在base环境里进行操作,以防出现各种问题,很麻烦。因此创建一个名为vmamba的虚拟环境,你的一切操作都在该环境中,不会对base环境有任何影响。

conda create -n vmamba python=3.10

   2. 激活该环境

conda activate vmamba

3.安装cudatoolkit

        这一步是原项目中没有的。我认为加上还是很有必要,否则容易出现后续版本不对应的问题。

conda install cudatoolkit==11.8

4.安装pytorch

pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118

5.

pip install setuptools==68.2.2
conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc

6.安装各种依赖包

        进入你刚刚下载的VMamba文件夹,下载该项目所需的各种依赖包。

cd VMamba
pip install -r requirements.txt

7.最后一步 安装selective_scan包

        前面一般不会有什么问题,问题基本都集中在此。在这里会运行一个setup.py文件,如果运行成功,则表明你已经成功安装该包。

cd kernels/selective_scan && pip install .

问题

        虽然显示成功安装该包,但是会出现各种各样的问题j。基本都是由于pytorch版本与cuda版本不对应导致。

        笔者反复尝试卸载安装不同版本的pytorch,但都无济于事。在运行train.py文件时报如下错误:

        由于笔者之前给笔记本(4060ti)以及租用的服务器(3080ti)都配过该环境,并且可以成功运行,因此考虑是否是显卡型号导致的与pytorch版本不对应。

        通过查阅资料,可知确实如猜测一样,10系列显卡最好使用2.0版本以前的torch。但是pytorch官网显示,2.0版本以前的torch最高支持cuda版本为11.7,然而我的cuda版本为11.8,这就又会导致版本不对应的问题。

        幸运的是,该帖子为问题的解决提供了思路。https://blog.csdn.net/qq_57433916/article/details/138139534

        该帖子在算力角度对该问题进行解决,使用的是1070显卡。通过查阅资料显示,我的1080ti算力为6.1,selective_scan包同样不支持该算力的设备。

        因此,借鉴该文章思路,首先使用如下命令行对原来安装的selective_scan包进行卸载:

pip uninstall selective_scan

        卸载完成后,在VMamba文件夹中找到kernels文件夹,再找到selective_scan文件夹,其中有一个名为setup.py的文件,打开,找到如下代码部分:

       在if CUDA_HOME is not None:下,添加如下两行代码:

cc_flag.append("-gencode")
cc_flag.append("arch=compute_60,code=sm_60")

        添加完成后,关闭该setup.py文件。

        打开终端,激活环境,进入对应目录,重新输入:

cd kernels/selective_scan && pip install .

        成功安装。

        回到项目中,运行train.py文件,成功运行,无报错。

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值