(base) sh@sh:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Thu_Jun_11_22:26:38_PDT_2020
Cuda compilation tools, release 11.0, V11.0.194
Build cuda_11.0_bu.TC445_37.28540450_0
(base) sh@sh:~$ sudo su wangshouyi
[sudo] password for sh:
Sorry, try again.
[sudo] password for sh:
Sorry, try again.
[sudo] password for sh:
(base) wangshouyi@sh:/home/sh$
(base) wangshouyi@sh:/home/sh$ nvcc -V
Command 'nvcc' not found, but can be installed with:
sudo apt install nvidia-cuda-toolkit
(base) wangshouyi@sh:/home/sh$ sudo su
[sudo] password for wangshouyi:
(base) root@sh:/home/sh# nvcc -V
Command 'nvcc' not found, but can be installed with:
apt install nvidia-cuda-toolkit
(base) root@sh:/home/sh#
出现不同用户获取的nvcc命令输出不一样的情况,通常是因为环境变量的差异。特别是PATH环境变量,它告诉shell在哪里查找执行命令时所需的程序。
当你作为sh用户时,很可能你的用户配置(比如在你的.bashrc、.profile、或者其他shell初始化文件中)包含了指向CUDA安装位置的路径。这使得你能够成功执行nvcc命令。
当切换到wangshouyi用户或root用户时,如果这些用户的环境变量没有包含CUDA的安装路径,就会导致无法找到nvcc命令,因此会提示该命令不存在。
解决方案
为了确保所有用户都能访问nvcc命令,你需要将CUDA的bin目录添加到全局PATH环境变量中,或者为每个需要的用户手动设置。
为所有用户设置PATH
-
编辑
/etc/environment:这是一个全局环境变量文件,对所有用户有效。sudo nano /etc/environment -
添加CUDA路径:在文件中添加或修改
PATH变量,包含你的CUDA bin目录。假设CUDA安装在/usr/local/cuda/bin,则添加如下(保持文件中其他路径不变):PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/cuda/bin"确保使用你实际的CUDA安装路径。
-
保存并退出编辑器。
-
重新登录或重启:更改后需要重新登录或重启系统,以使环境变量更改生效。
为特定用户设置PATH
如果你只想为特定用户添加CUDA到PATH,可以编辑该用户的~/.bashrc或~/.profile文件,添加如下行:
export PATH=/usr/local/cuda/bin:$PATH
然后,让更改生效,可以通过运行source ~/.bashrc或重新登录。
这样设置后,无论是wangshouyi用户还是root用户,都应该能够通过命令行访问nvcc了。确保你的CUDA安装路径与实际情况相符,上面的/usr/local/cuda/bin只是一个常见的示例路径。
文章讲述了nvcc命令在不同用户环境下找不到的问题,主要原因是PATH环境变量未包含CUDA安装路径。提供了两种解决方案:一是全局设置CUDA的bin目录到/etc/environment,二是为特定用户在~/.bashrc或~/.profile中添加CUDA路径。
1049

被折叠的 条评论
为什么被折叠?



