当前位置: 首页 > news >正文

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编译的文件,但是删掉这些文件再次运行之后就不会生成了,不太懂原理是什么)

我使用我原本的项目实测,没有问题

http://www.xdnf.cn/news/22177.html

相关文章:

  • 爱普生RX8010SJ实时时钟模块在安防监控设备中的应用
  • 守护进程编程以及ssh反向代理
  • AUTOSAR图解==>AUTOSAR_SWS_CryptoInterface
  • 淘宝商品搜索爬虫:Python 实现教程
  • 江苏广电HC2910-创维代工-Hi3798cv200-2+8G-海美迪安卓7.0-强刷包
  • 深度学习-torch,全连接神经网路
  • 软硬链接与动静态库基本概念(快速回顾)
  • 浅析数据库面试问题
  • `get_peft_model` 是 `peft` 库什么方法
  • 【CPP】死锁产生、排查、避免
  • 国内主要半导体厂家
  • Java 接入deepseek(非流式)
  • 数据资产登记导则详解 | 企业如何规范化登记与管理数据资产?
  • 机械臂速成小指南(二十五):机械臂与人工智能的有机结合
  • 基于 S2SH 架构的企业车辆管理系统:设计、实现与应用
  • OOM 未触发 JVM 崩溃的可能原因
  • 椰汁椰肉生产车间设计
  • 怎么隐藏QTabWidget内的页面
  • Git 解决“Filename too long”问题
  • 企业应用大模型报告:如何应对变革,构建专属“我的AI”
  • 生物化学笔记:医学免疫学原理22 肿瘤及肿瘤治疗
  • vue3+vite 实现.env全局配置
  • 大模型时代:AI应用的变革与挑战
  • 冰箱在储存各种疫苗时要经过多少道程序又会面临哪些风险?
  • linux获取cpu使用率(sy%+us%)
  • 文件二进制读写和文本读写以及编码解码
  • Android 12系统静态壁纸深度定制指南
  • day2-小白学习JAVA---java第一个程序
  • 电力资源配置逐步从计划模式转向市场驱动
  • 内存函数和动态内存管理