conda环境下使用nvcc,但由于并非root用


前言

缘起

 实验室的学弟问我为什么他使用nvcc命令报错,起先我以为他用的是老师给的root账户,按照参考文献1便可以解决问题。
 但由于并非root用户,/usr/local下没有cuda,于是便无法按照参考1中的方法去做。
 这里提供一种方法,其实是参考了文献2,但似乎是歪打正着,因为2要解决的问题和我的不一样O_o。

问题

 使用nvcc -V报错如下

解决方法

 报错原因在于当前conda环境没有安装nvcc,于是使用如下命令安装即可

conda install -c nvidia cuda-nvcc

 补充:执行上述命令后会默认安装cuda-nvcc的最新版本,于是这里涉及到cuda-nvcc版本号的确定问题,需要根据实际情况确定,下面我举一个例子。
 我在安装apex时有遇到如下报错

 此时需要重新安装cuda-nvcc,版本号需要与安装pytorch的cuda版本号一致,以上图为例,需要安装cuda-nvcc11.3的版本,执行如下命令即可,不需要卸掉之前的cuda-nvcc,安装时会自动进行cuda-nvcc版本迁移。

conda install -c "nvidia/label/cuda-11.3.0" cuda-nvcc

 安装其他版本的cuda-nvcc命令参照官网。
 再次使用nvcc -V,成功啦!^ _ ^

 补充:上面我用的我的pruner环境,安装了nvcc,因为不想动base环境~此外,上图中的cuda-nvcc版本号是12.1,这是我直接执行conda install -c nvidia cuda-nvcc的结果。
 后面我重新安装了cuda-nvcc11.3版本,执行conda install -c "nvidia/label/cuda-11.3.0" cuda-nvcc
 cuda-nvcc的版本号为11.3,结果如下所示

参考文献

  1. 解决nvcc --version显示command not found问题
  2. TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

评论关闭