起始缘由
今天在GitHub上下载一个新的项目并运行,发现又是一堆环境问题。
所以我决定今后对于每个项目,都创建一个新的conda环境。因为不同的项目之间的环境依赖不一样,会产生严重的相互污染。
现在我这个项目是SpQR. 链接
项目环境需求
从SpQR的主页上看到它的环境依赖:
To run SpQR with falcon make sure that you have torch>=2.0.0 with CUDA support.
所以我要安装torch>=2.0.0对应的python和conda。
创建conda环境
首先,用nvidia-smi命令查看服务器的conda version为11.2,所以就安装对应的pytorch框架。
- 创建conda环境,命名为SpQR:
conda create --name SpQR python=3.9
conda activate SpQR
- 安装对应的pytorch:
conda install pytorch torchvision torchaudio cudatoolkit=11.2 -c pytorch
这是chatgpt提供的。安了一通报错,提示似乎找不到对应的pytorch。
然后chatgpt告诉我可以安装cudatoolkit=11.1或者11.2都行。
师兄说直接安装,不用指定版本,它会自己安排的,所以我就这么安装:
conda install pytorch torchvision torchaudio -c pytorch
安装完之后给出的pytorch版本:
import torch
print(torch.__version__)
给出:2.0.1,就暂且相信它安装好了吧。
运行requirements.txt
进入SpQR文件夹(不是SpQR的conda环境)之后,执行以下命令:
pip install -r requirements.txt
开始运行项目
这时候出现了一个问题:
libcublas.so.11: symbol cublasLtGetStatusString, version libcublasLt.so.11 not defined in file libcublasLt.so.11 with link time reference,然后我去查,是requirements.txt文件中有一条指令是安装torch1.13, 它会自动安装:
nvidia_cublas_cu11,nvidia_cuda_nvrtc_cu11,nvidia_cuda_runtime_cu11 and nvidia_cudnn_cu11.
而由于我已经安装了cudatoolkit,所以报错。解决方法是:pip uninstall nvidia_cublas_cu11
值得一提的是我在powershell执行了pip uninstall命令之后,在vscode上面运行还是报错,然后我到终端运行又不报错,可能是vscode更新不及时,需要重启。