说在前面
前段时间尝试要用到的最近大火的SSM模型,Mamba模型。环境配置是当然是第一个难关,参考了github链接配置,但是因为很多环境什么的报了一堆奇怪的错,其实到最后发现和cuda环境有很大的关系。正好最近有个朋友也想用mamba,他在环境上也有一些问题,所以我就计划写一篇博客来大概说明一下我的环境是怎么配置的。What can I say?
官方教程
下面这张图,主要的几个要求。
首先很简单的是我们可以通过pip直接安装,非常方便,其次有几点要求
- Linux
- NVIDIA GPU
- PyTorch 1.12+
- CUDA 11.6+
上面两点应该大家服务器都是这样的,主要的就是PyTorch版本和CUDA版本是很关键的。
小灰的过程
下载python库
其实可以一键pip下载,但是其实pip会匹配很多东西,比如说你的系统版本,cuda版本什么的。这里不推荐直接pip,可以去mamba库的release里面去下载,然后下载对应的pytorch版本和cuda版本,以及python版本 ,这样确保我们的是可以使用的。最近的到小灰写博客的时候已经是2.2.4版本了,小灰使用的是2.2.2,也推荐使用这个版本,因为我当时使用2.2.4的时候配置不太成功。在2.2.2中,又cuda为12.2的和11.8的两个版本之分,这里推荐使用11.8,好吧是因为11.8中我成功了。所以不能参考官方readme中说11.6+即可,如果你的版本12.2那么可以试试12.2的,如果既不是11.8也不是12.2的cuda版本,你需要下载一个新的cuda版本。选择一个你喜欢的python版本和torch版本,下载好对应的whl文件到你的服务器上,本地pip安装,这一步我相信大家应该都知道怎么操作。
下载cuda版本
首先如何查看你的电脑中当前运行的cuda版本,有很多教程会说你运行
bash
nvidia-smi
得到一个界面,我得到的是这样的,然后红框框里面是你的cuda版本。其实不是这样的,这个cuda版本是你的nvidia驱动目前支持的最高cuda运行版本,而不是当前运行版本。
如果你想要查看cuda版本,你需要运行这个命令,这个v要记得是大写的。
bash
nvcc -V
你会得到下面的一行输出,我的是cuda11.8。所以其实并不是那样的。
具体的下载cuda11.8版本的cuda怎么下载,我这里也不过多说明了,这种博客网上一搜一大堆。这里想要说明的一点是,你服务器的cuda版本可能不太方便更改,因为可能还有其他的程序,其实你可以安装多个cuda版本,并且是可以切换的,可以通过这条命令
bash
vim ~/.bashrc
查看当前指向的是哪个版本的cuda,像我的就是我更改过的是这样的,如果你需要其他版本的,你可以指向另外一个文件的路径。具体的可以参考这篇博客:https://blog.csdn.net/deersonglzx/article/details/132103228
下载python版本和pytorch版本
其实到这一步大家其实会比较熟悉多了,基本上用anaconda这种包管理器,我们创建一个新的python版本,也就是你之前下载的那个whl文件里描述的python版本。然后就是pytorch版本,这里也要说明一下的是,也建议pytorch直接去对应的网站去下载cuda和python对应版本的pytorch,当然这个torch 的版本和之前mamba whl文件里面描述的也是一样的。所以基本上就是找whl文件对应的cuda和对应的python版本和对应的torch版本。
一些小问题
1.在mamba中会使用到causal-conv1d这个库,这个库你可能需要自己安装,可能会遇到一些问题,搜索一下应该可以解决。
2.在运行中,会遇到一些奇怪的报错,这些报错其实大多都是属于版本安装不太对,你需要校验包括cuda版本,torch版本,以及mamba安装的是否对应。也可以去github的issue去检索一下,基本上能找到一些端倪。
最后
小灰祝你安装顺利,实验结果漂亮,论文accepted!