win10系统完美配置mamba-ssm全整合方案
好久没瞎写东西了,刚好最近遇到一个逆天需求:要在win10平台上配置可用的mamba-ssm环境。由于这个环境原版以及相关依赖都是仅适配linux的,即使是依赖conda环境直接拿来往windows系统上装也全是bug,网上大量的垃圾教程也都是错的,能安装成功但是不能正常使用。花了一段时间,找到一个可行的方案,并且实际踩了坑之后总算是成功运行起来了。
安装包版本:causal-conv1d 1.4.0、mamba-ssm 2.2.2、triton 3.1.0(这三个包我放在github仓库:https://github.com/divertingPan/mamba-for-windows内了,使用方法在下文)
前期准备:win10系统(其他版本不确定,win10实测是可以的)、anaconda、N卡(至少10系显卡算力6.1起步:查询https://developer.nvidia.com/cuda-gpus)
参考链接:
Windows 下安装 triton 教程:
https://blog.csdn.net/yyywxk/article/details/144868136
Windows 下Mamba2 / Vim / Vmamba 环境安装问题记录及解决方法终极版(无需绕过triton):
https://blog.csdn.net/yyywxk/article/details/145018635
下面开始步骤详解
1)首先给系统安装cuda 12.4.0,点击下面链接里的download:https://developer.nvidia.com/cuda-12-4-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exe_local
2)准备安装triton-windows。这一步是最关键的,因为大量教程都忽略了这部分,导致安装了原版triton,里面很多命令是linux版的,用在windows上就跑不通。首先第一步,参考Windows 下安装 triton 教程进行准备,下载安装Visual Studio Installer:https://aka.ms/vs/17/release/vs_BuildTools.exe。安装好后打开,在窗口上部找到“单个组件”,搜索MSVC v143,勾选最新版本的(我所安装完毕的版本是14.43.34808),搜索Windows 10 SDK,选最大的版本号(或者选择和我一致的号,尽量保持环境一致)
3)修改环境变量,右键“此电脑”-在“属性”里面找到最后面,点击高级系统设置,右下角“环境变量”,修改系统变量里面的部分。注意如果版本号和我的不一样,修改版本号为你自己的版本再粘贴
- 选择 Path ,添加:
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\bin\Hostx64\x64 C:\Program Files (x86)\Windows Kits\10\bin\10.0.20348.0\x64
- 新建 LIB,添加3条:
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\lib\x64; C:\Program Files (x86)\Windows Kits\10\Lib\10.0.20348.0\ucrt\x64; C:\Program Files (x86)\Windows Kits\10\Lib\10.0.20348.0\um\x64
- 新建 INCLUDE,添加6条:
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\include; C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\ucrt; C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\um; C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\winrt; C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\cppwinrt; C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\shared
4)打开一个cmd窗口,输入cl
,输出以下内容即为成功。
5)以防万一,下载https://aka.ms/vs/17/release/vc_redist.x64.exe并安装,如果按钮显示是修复,则点一下修复,以防系统缺失依赖文件。运行到这里时,重启一下电脑再继续。
6)创建虚拟环境,执行以下内容
conda create -n mamba python=3.10
conda activate mambapip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu124conda install nvidia/label/cuda-12.4.0::cuda-nvcc
7)安装pip install triton-3.1.0-cp310-cp310-win_amd64.whl
,运行验证脚本triton_test.py,如果输出没有报错即完成这部分安装。
8)打开目录C:\Program Files (x86)\Windows Kits\10\bin\10.0.20348.0\x64
找到“rc.exe”和“rcdll.dll”拷贝至以下目录
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\bin\Hostx64\x64
(若你的版本号不一致,找到你对应的号)
9)准备编译安装causal-conv1d,首先在环境里面安装
conda install nvidia/label/cuda-12.4.0::cuda-cccl
pip install ninja
pip install setuptools==68.2.2
conda install packaging
然后下载我提供的文件,进入到causal-conv1d-1.4.0的目录,这个目录下有一个setup.py文件,在此目录下执行
set CAUSAL_CONV1D_FORCE_BUILD=TRUE
python setup.py install
若最终输出没有出现error字样,则成功安装,运行pip list
应看到causal-conv1d的版本号为1.4.0(原本应该是可以pip install .
的,但不知道为什么我用这个命令就会报错什么No .egg-info directory found,只能使用python setup.py install
才能安装)
10)准备编译安装mamba-ssm,首先在环境里面安装
pip install einops transformers
然后下载我提供的文件,进入到mamba-2.2.2的目录,这个目录下有一个setup.py文件,在此目录下执行
set MAMBA_FORCE_BUILD=TRUE
python setup.py install
若最终输出没有出现error字样,则成功安装,运行pip list
应看到mamba-ssm的版本号为2.2.2
【备注:下载原版的软件包后,需要对应修改代码中的很多位置,如Windows 下Mamba2 / Vim / Vmamba 环境安装问题记录及解决方法终极版(无需绕过triton)中所示,我的这个包已经修改好了对应位置,直接下载之后编译安装即可。另外由于mamba要求GPU高于10系,这部分的兼容修改也已经改好,10系的卡也可以用了。老潘的测试环境是1080ti实测没问题】
11)运行验证脚本mamba_test.py,如果输出没有报错即完成所有安装。
(不知道原因,首次运行一个脚本会生成一些c编译的文件,但是删掉这些文件再次运行之后就不会生成了,不太懂原理是什么)
我使用我原本的项目实测,没有问题