一、租用合适的实例
二、连接远程服务器
- pycharm连接
- XShell连接
和pycharm过程大差不差
三、安装Mamba
1、使用nvidia-smi和nvcc -V来查看是否具有安装条件并且cuda版本是否为11.8
2、conda创建虚拟环境并且安装pytorch
conda create -n Mamba python=3.10
source activate
conda activate Mamba
conda install pytorch torchvision cudatoolkit=11.8 -c pytorch
3、验证GPU版本的torch是否可用
python
import torch
print(torch.cuda.is_available())
下图表示gpu版本的cuda不可用
则需要重新安装
conda remove pytorch torchvision cudatoolkit=11.8 -c pytorch
conda install pytorch== 2.2.1 torchvision== 0.17.1 torchaudio==2.2.1 pytorch-cuda=11.8 -c pytorch -c nvidia
pip install torch== 2.2.0 torchvision== 0.17.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu118 -i https://mirrors.aliyun.com/pypi/simple/
直到显示true
4、Mamba项目克隆和安装
4.1、创建存放项目的目录
(Mamba) root@autodl-container-1d0242a1d3-c28f8abb:~# mkdir chenruxu
(Mamba) root@autodl-container-1d0242a1d3-c28f8abb:~# ls
autodl-pub autodl-tmp chenruxu miniconda3 tf-logs
(Mamba) root@autodl-container-1d0242a1d3-c28f8abb:~# cd chenruxu/
(Mamba) root@autodl-container-1d0242a1d3-c28f8abb:~/chenruxu# ls
4.2、安装causal-conv1d
首先到官方仓库下载.whl文件,因为直接运行pip install causal-conv1d>=1.2.0会报错,所以我们选择先把文件下载到本地再安装
传输到服务器
传输之后在文件所在目录运行命令
pip install causal_conv1d-1.4.0+cu118torch2.0cxx11abiFALSE-cp310-cp310-linux_x86_64
4.3、克隆项目
git clone https://github.com/state-spaces/mamba.git
4.4、执行install命令(废弃:报错)
此步等待时间很长
版本一
- 若版本一报错则使用版本二强制安装
pip install . --no-build-isolation -i https://pypi.tuna.tsinghua.edu.cn/simple
版本二
git checkout v1.2.0 # current latest version tag
MAMBA_FORCE_BUILD=TRUE pip install .
这里我使用的是版本一的命令,但是等了很久,从下午6点半开始等到晚上12点,才下载完,第一次租赁服务器,体会到时间就是金钱了
等到晚上十一点结果报错了
后来直接使用现成的whl文件
- causal-conv1d包下载地址
https://github.com/Dao-AILab/causal-conv1d/releases
- mamba_ssm包下载地址
https://github.com/state-spaces/mamba/releases
5、测试是否安装成功
5.1、看是否能成功导包
5.2、一段测试代码
import torch
from mamba_ssm import Mamba
batch, length, dim = 2, 64, 16
x = torch.randn(batch, length, dim).to("cuda")
model = Mamba(
# This module uses roughly 3 * expand * d_model^2 parameters
d_model=dim, # Model dimension d_model
d_state=16, # SSM state expansion factor
d_conv=4, # Local convolution width
expand=2, # Block expansion factor
).to("cuda")
y = model(x)
assert y.shape == x.shape
print('success')