Win10 下 Vision Mamba(Vim-main)的环境配置(libcuda.so文件无法找到,windows系统运行失败)

本文主要是介绍Win10 下 Vision Mamba(Vim-main)的环境配置(libcuda.so文件无法找到,windows系统运行失败),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1、下载NVIDIA 驱动程序、cuda11.8、cudnn8.6.0

2、在Anaconda中创建环境并激活

3、下载gpu版本的torch

4、配置环境所需要的包

5、安装causal_conv1d和mamba-1p1p1

安装causal_conv1d

安装mamba-1p1p1

6、运行main.py失败  


请直接拉到最后查看运行失败的原因,如有解决方案欢迎讨论

1、下载NVIDIA 驱动程序、cuda11.8、cudnn8.6.0

参考另一篇博客【win10+cuda11.8+cudnn8.6.0安装】

2、在Anaconda中创建环境并激活

  • 创建环境

环境名:vim,python版本:3.10.13

conda create -n vim python=3.10.13
  • 激活环境
conda activate vim

3、下载gpu版本的torch

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

4、配置环境所需要的包

如果安装过程中,有部分包指定的版本安装失败,则直接【pip install package】,不指定版本安装即可。

pip install -r vim/vim_requirements.txt
  • 官方提供的triton包只支持Linux系统,请查看windows安装triton的教程链接。

5、安装causal_conv1d和mamba-1p1p1

这两个包作者提供的源码里面有,目录结构如下:

  • 安装causal_conv1d

进入VIm-main项目文件夹的causal-conv1d文件夹后,利用-e参数安装。

cd causal-conv1d
pip install -e .

安装caucal_conv1d的时候,报错:

error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/

解决方案参考:【已解决】error: Microsoft Visual C++ 14.0 or greater is required

后来发现安装完的版本是1.0.0,但是要求>=1.1.0,所以重新自己下载1.1.3版本之后再安装

causal_conv1d的1.1.3版本的下载链接:GitCode - 开发者的代码家园

下载完之后,进入causal_conv1d文件夹,输入命令【pip install -e .】安装即可。

安装完后,使用命令【pip list】查看如下:

  • 安装mamba-1p1p1

windows无法使用【MAMBA_FORCE_BUILD=TRUE pip install .】命令安装 mamba-ssm, 需要把Vim-main/mamba-1p1p1/setup.py文件中的两个变量改成 False(原因:改成False后才能强制利用已经下载的本地文件进行编译)。修改的内容如下:

修改完后,在cmd进入mamba-1p1p1文件下,执行安装。

cd mamba-1p1p1
pip install -e .

安装成功的话,显示如下

报错:【ModuleNotFoundError: No module named 'selective_scan_cuda'】

解决办法:

找到文件 mamba-1p1p1/mamba_ssm/ops/selective_scan_interface.py,修改三处内容

第一处,注释import语句

# import selective_scan_cuda

第二处,将原来的return语句注释掉,更换成新的return语句

# 将原来的return语句注释掉,更换成新的return语句
def selective_scan_fn(u, delta, A, B, C, D=None, z=None, delta_bias=None, delta_softplus=False,return_last_state=False):"""if return_last_state is True, returns (out, last_state)last_state has shape (batch, dim, dstate). Note that the gradient of the last state isnot considered in the backward pass."""# return SelectiveScanFn.apply(u, delta, A, B, C, D, z, delta_bias, delta_softplus, return_last_state)return selective_scan_ref(u, delta, A, B, C, D, z, delta_bias, delta_softplus, return_last_state)  # here

 第三处,将原来的return语句注释掉,更换成新的return语句

# 将原来的return语句注释掉,更换成新的return语句
def mamba_inner_fn(xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight,out_proj_weight, out_proj_bias,A, B=None, C=None, D=None, delta_bias=None, B_proj_bias=None,C_proj_bias=None, delta_softplus=True
):# return MambaInnerFn.apply(xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight,#                           out_proj_weight, out_proj_bias,#                           A, B, C, D, delta_bias, B_proj_bias, C_proj_bias, delta_softplus)return mamba_inner_ref(xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight,out_proj_weight, out_proj_bias,A, B, C, D, delta_bias, B_proj_bias, C_proj_bias, delta_softplus)  # here

6、运行main.py失败  

报错1:

File "D:\anaconda\install\envs\vim\lib\site-packages\triton\compiler.py", line 1093, in default_cache_dir return os.path.join(os.environ["HOME"], ".triton", "cache") File "D:\anaconda\install\envs\vim\lib\os.py", line 680, in __getitem__ raise KeyError(key) from None KeyError: 'HOME' 

尝试解决:

在D盘下新建了一个HOME目录,然后将HOME环境变量设置为D:\HOME。关闭PyCharm并重启,使环境变量生效。重新运行main.py之后,没有报这个错误,报了另一个error。


报错2:
  File "D:\anaconda\install\envs\vim\lib\site-packages\triton\runtime\autotuner.py", line 62, in 
  File "D:\anaconda\install\envs\vim\lib\site-packages\triton\compiler.py", line 1155, in _build
    cuda_lib_dirs = libcuda_dirs()
  File "D:\anaconda\install\envs\vim\lib\site-packages\triton\compiler.py", line 1134, in libcuda_dirs
    locs = subprocess.check_output(["whereis", "libcuda.so"]).decode().strip().split()[1:]
  File "D:\anaconda\install\envs\vim\lib\subprocess.py", line 421, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "D:\anaconda\install\envs\vim\lib\subprocess.py", line 503, in run
    with Popen(*popenargs, **kwargs) as process:
  File "D:\anaconda\install\envs\vim\lib\subprocess.py", line 971, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "D:\anaconda\install\envs\vim\lib\subprocess.py", line 1456, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] 系统找不到指定的文件。

原因分析: triton 库出现了问题,似乎是在尝试执行 whereis libcuda.so 命令时发生了问题,因为在 Windows 系统中并不存在 libcuda.so 文件。待解决...

这篇关于Win10 下 Vision Mamba(Vim-main)的环境配置(libcuda.so文件无法找到,windows系统运行失败)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/879223

相关文章

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发