linux ubuntu 20.04安装mamba运行环境的相关问题。以及cuda、cudatoolkit、安装pytorch自带的cuda的区别。

安装mamba总结

mamba安装

conda环境下安装

conda create -n your_env_name python=3.10.13

conda activate your_env_name

conda install cudatoolkit==11.8 -c nvidia

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

conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc(这一行可以去掉。安装NVCC可以在install causal-conv1d时编译代码,但是会报缺少.h文件的错误,缺少的文件存在于/usr/local/cuda/include内。所以即便是codna安装方式,也需要在机器上安装cuda,并配置环境变量)

conda install packaging

pip install causal-conv1d==1.1.1

pip install mamba-ssm

原文链接:

Mamba 环境安装踩坑问题汇总及解决方法_runtimeerror: mamba_ssm is only supported on cuda -CSDN博客

【已解决】 fatal error: cuda_runtime.h: 没有那个文件或目录_fatal error: cuda_runtime_api.h: 没有那个文件或目录-CSDN博客

需要安装nvidia的cuda,才会有usr/local/cuda目录。没有usr/local/cuda目录会报缺少文件的错误。

远程安装报错时可以下载源码安装

$ git clone https://github.com/Dao-AILab/causal-conv1d.git

$ cd causal-conv1d

$ git checkout v1.1.1 # current latest version tag

CAUSAL_CONV1D_FORCE_BUILD=TRUE pip install .

$ (或者 python3 setup.py install

$ cd ..

$ git clone https://github.com/state-spaces/mamba.git

$ cd mamba

$ git checkout v1.1.1 # current latest version tag

$ pip install .

$ (或者python3 setup.py install

安装mamba_ssm如果使用这个命令"pip install ." 报错的话:

 Could not build wheels for mamba_ssm, which is required to install pyproject.toml-based projects

可以使用下面这个命令强制安装:

MAMBA_FORCE_BUILD=TRUE pip install .

原文链接:

运行Mamba项目时无法直接用pip install安装causal_conv1d和mamba_ssm_pip install causal-conv1d编译文件-CSDN博客

显卡驱动, nvcc, CUDA Drivercudatoolkit, cudnn

CUDA:英文全称是Compute Unified Device Architecture,是显卡厂商NVIDIA推出的运算平台。

NVCC:CUDA的编译器可以从CUDA Toolkit的/bin目录中获取,类似于gcc就是c语言的编译器。由于程序是要经过编译器编程成可执行的二进制文件,而cuda程序有两种代码,一种是运行在cpu上的host代码,一种是运行在gpu上的device代码,所以nvcc编译器要保证两部分代码能够编译成二进制文件在不同的机器上执行。是 CUDA Toolkit 中的一部分

CUDA Driver: 运行CUDA应用程序需要系统至少有一个具有CUDA功能的GPU与CUDA工具包兼容的驱动程序。CUDA Driver是向后兼容的,这意味着根据CUDA的特定版本编译的应用程序将继续在后续发布的Driver上也能继续工作。

cudnn:专门为深度学习计算设计的软件库,里面提供了很多专门的计算函数,如卷积等。还有很多其他的软件库和中间件,包括实现c++ STL的thrust、实现gpu版本blas的cublas、实现快速傅里叶变换的cuFFT、实现稀疏矩阵运算操作的cuSparse以及实现深度学习网络加速的cuDNN等等

CUDA Toolkit: (nvidia): CUDA完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。nvidia的cudaToolkit会安装对应显卡驱动,.deb安装包会默认安装,.run会询问是否安装。

CUDA Toolkit (Pytorch): CUDA不完整的工具安装包,其主要包含在使用 CUDA 相关的功能时所依赖的动态链接库。不会安装驱动程序。

注:CUDA Toolkit 完整和不完整的区别:在安装了CUDA Toolkit (Pytorch)后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,不需要重新进行编译过程。如需要为 Pytorch 框架添加 CUDA 相关的拓展时(Custom C++ and CUDA Extensions),需要对编写的 CUDA 相关的程序进行编译等操作,则需安装完整的 Nvidia 官方提供的 CUDA Toolkit

原文链接:

一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系-CSDN博客

显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么? - 知乎 (zhihu.com)

conda与nvidia官方提供的cudatoolkit的区别

Nvidia 官方提供的 CUDA Toolkit 是一个完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。使用 Nvidia 官网提供的 CUDA Toolkit 可以安装开发 CUDA 程序所需的工具,包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。

Nvidia 官方提供安装的 CUDA Toolkit 包含了进行 CUDA 相关程序开发编译、调试等过程相关的所有组件。但对于 Pytorch 之类的深度学习框架而言,其在大多数需要使用 GPU 的情况中只需要使用 CUDA 的动态链接库支持程序的运行( Pytorch 本身与 CUDA 相关的部分是提前编译好的 ),就像常见的可执行程序一样,不需要重新进行编译过程,只需要其所依赖的动态链接库存在即可正常运行。故而,Anaconda 在安装 Pytorch 等会使用到 CUDA 的框架时,会自动为用户安装 cudatoolkit,其主要包含应用程序在使用 CUDA 相关的功能时所依赖的动态链接库。在安装了 cudatoolkit 后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,而不需要安装完整的 Nvidia 官方提供的 CUDA Toolkit .

通过 Anaconda 安装的应用程序包位于安装目录下的 /pkg 文件夹中,如笔者的目录即为 /home/xxx/anaconda3/pkgs/ ,用户可以在其中查看 conda 安装的 cudatoolkit 的内容,如下图所示。可以看到 conda 安装的 cudatoolkit 中主要包含的是支持已经编译好的 CUDA 程序运行的相关的动态链接库。

严格说Linux 下面其实没有动态连接库一说,Windows 下面是 DLL 文件(dynamic link library),而 Linux 下面类似的概念是 SO 文件(sharing object)

原文链接:

Pytorch 使用不同版本的 cuda - yhjoker - 博客园 (cnblogs.com)

cuda安装(多版本切换)

除了软连接,还可以通过配置环境变量(CUDA_PATH )来实现版本切换。

当本机上安装有多个版本cuda时可以通过一下步骤进行管理/版本切换,比如我们要切换使用cuda11.8:

sudo vim ~/.bashrc加入以下的内容:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64

export PATH=$PATH:/usr/local/cuda-11.8/bin

修改完毕,保存,并执行"source ~/.bashrc"

使用 LD_LIBRARY_PATH 来控制适用不同版本的 CUDA runtime。 anaconda 也是用 LD_LIBRARY_PATH 来控制CUDA版本的。

在使用 CMake 等编译和运行的过程中,可以根据 CUDA_HOME 或 CUDA_PATH

 这个环境变量选择CUDA 版本,而不需要删除、创建软连接

原文链接:

显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么? - 知乎 (zhihu.com)

理清GPU、CUDA、CUDA Toolkit、cuDNN关系以及下载安装_cudatoolkit-CSDN博客

pytorch寻找可用CUDA的过程:

查找可用的cuda路径

1、环境变量CUDA_HOME 或 CUDA_PATH

  1. /usr/local/cuda。(这是软连接)

:h3c服务器中软连接已删除,如有要自己在用户家目录(.bashrc 中)配置CUDA环境变量(路径:usr/local/cuda-11.8或usr/local/cuda-12.3)

3、which nvcc的上级上级目录

(which nvcc 会在环境变量PATH中找)

4、如果上述都不存在,则torch.utils.cpp_extension.CUDA_HOME为None,会使用conda安装的cudatoolkit,其路径为cudart 库文件目录的上级目录(此时可能是通过 conda 安装的 cudatoolkit,一般直接用 conda install cudatoolkit,就是在这里搜索到 cuda 库的)。

原文链接:

一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系-CSDN博客

Pytorch 使用不同版本的 cuda - yhjoker - 博客园 (cnblogs.com)

显卡驱动与cuda版本关系

每个cuda都有一个最低要求的显卡驱动版本。

每个显卡驱动有一个最高支持的cuda版本。

nvidia-smi命令显示的cuda版本是该驱动最高支持的cuda版本。(安装显卡驱动后就可以执行nvidia-smi命令)

查看使用的cuda版本:

torch.version.cuda 是位于 torch/version.py 中的一个变量, Pytorch 在基于源码进行编译时,通过 tools/setup_helpers/cuda.py 来确定编译 Pytorch 所使用的 cuda 的安装目录和版本号。并不一定是 Pytorch 在实际系统上运行时使用的 cuda 版本,而是编译该 Pytorch release 版本时使用的 cuda 版本

torch.utils.cpp_extension.CUDA_HOME  #输出 Pytorch 运行时使用的 cuda

  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值