conda虚拟环境中安装cuda方法、遇到的问题
文章目录
前言
CUDA11.8、CUDA12.5指的就是CUDA Toolkit的版本。
本篇文章写于安装mamba、causal-conv1d时遇到的问题。mamba要求CUDA>=11.6,而服务器是CUDA11.3,又没有root权限。
用conda安装的cuda是精简版的,而精简版的cuda没有办法编译,会缺少头文件(这正是「cuda.h和cuda_runtime.h」部分提到的缺少的头文件)。而NVIDIA原版的CUDA Toolkit是完整版的CUDA,可以进行编译,且不缺少头文件。
而mamba之所以效率高是因为mamba使用cuda进行重新编译(并不是纯pytorch实现),而精简版的cuda没有办法编译,于是在conda虚拟环境中安装了cuda后运行项目会一直报编译错误(g++版本错误、缺少头文件等等错误)。【好消息: Mamba2已经出了,源码依旧在Mamba的库中。Mamba2提出的SSD不需要cuda编译了,并行化纯pytorch实现】
安装mamba、causal-conv1d;不使用root权限,在服务器上安装NVIDIA原版的CUDA Tookkit方法见 视频:【Mamba安装】99%的人都出错!带你手把手解决selective_scan_cuda冲突问题。对应文档 Mamba安装-基于mamba源码进行cuda编译。
如果是其他项目基于纯pytorch实现,不需要使用CUDA进行编译,那么可以在conda的虚拟环境中使用conda安装对应版本的CUDA。
conda虚拟环境中安装cuda
参考文章:使用conda管理CUDA。
在跑深度学习项目时,很多时候CUDA版本没达到要求,重新安装 CUDA 太麻烦,更何况一般都没有 root 权限。因此,需要调用 conda 自己安装的 CUDA 版本。
- 创建 conda 环境,并激活
# 创建虚拟环境环境
conda create -n 自己输入名称 python=版本号
# 激活虚拟环境
conda activate 名称
- 安装指定 CUDA 版本,例如 11.8:
conda install cudatoolkit==11.8 -c nvidia
- 安装支持 CUDA 的 PyTorch(需要去PyTorch官网找到对应版本),例如 2.4