实验室的服务器是多用户共享物理机 ,但系统会给每个账号分配「独立的用户目录」(你的目录就是 /home/你的用户名/),所有用户之间互相隔离、互不影响:
- 别人装的 python/conda/pytorch,都在别人的
/home/xxx/目录下,你的账号完全访问不到; - 你自己装的所有软件,也只会存在于你的个人目录,别人看不到、用不了,也不会被别人的操作覆盖 / 搞崩;
- 你没有管理员权限 (没有
sudo命令),根本没法把软件装到服务器的「系统公用目录」(比如/usr/bin),只能装在自己目录里,这是服务器的安全规则。
1. nvidia-smi → 属于【NVIDIA 显卡驱动】,是服务器公用的
- 服务器物理机上,管理员已经装好了NVIDIA 显卡驱动 ,这个驱动是给所有用户共享的,只要显卡硬件在,所有账号都能执行
nvidia-smi查看显卡信息; - 显卡驱动是系统级的底层程序,负责让服务器识别显卡。
- 显卡驱动版本,决定了你能安装的「CUDA Toolkit 最高版本」
2. nvcc → 属于【CUDA Toolkit 工具包】,一般是没有的,需要自己装
nvcc是 CUDA 编译器 ,是CUDA Toolkit这个软件包里的核心命令,不是显卡驱动自带的;- 当服务器没有装系统级的 CUDA Toolkit ,系统找不到
nvcc这个命令,就会报command not found; - 解决方案:在个人目录下,装一个「私有版 CUDA Toolkit」,仅自己可用 ,支持在一台服务器上装多个版本 (比如
~/applications/cuda-11.8和~/applications/cuda-12.8共存)
3. 【PyTorch/k2 内置的 CUDA Runtime】→ 虚拟环境内、库级、和 Toolkit解耦(torch.version.cuda查这个)
- 命令:
python -c "import torch; print(torch.version.cuda)"→ 查的是这个 - 归属:属于每个 Python 虚拟环境的私有依赖 ,装在
conda env或venv里,不同环境可以完全不同版本
以安装CUDA Toolkit 12.8为例
从 CUDA 12.x 版本开始,默认不再提供 tar.gz 格式的离线包,仅保留 runfile 和 deb 格式
1. 创建用户安装目录
mkdir applications
2. 进入用户安装目录
cd applications
3. 下载CUDA Toolkit 12.8
wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux.run
4. 执行安装
sudo sh cuda_12.8.0_570.86.10_linux.run
输密码报错
xxx is not in the sudoers file.
账号没有服务器管理员权限(sudo 权限 ),完全不能用sudo执行任何命令
用已下载的.run包,无sudo
sh cuda_12.8.0_570.86.10_linux.run --silent --toolkit --no-drm --override --installpath=$HOME/applications/cuda-12.8
--silent:静默安装,无弹窗、无交互,一路自动安装;--toolkit:只装 CUDA Toolkit 工具包(包含 nvcc 编译器、核心库),不装显卡驱动、不装 samples,这是唯一需要的;--no-drm:跳过驱动相关的权限检查,普通用户必加;--override:跳过版本兼容性检查,解决普通用户目录的权限警告;--installpath=xxx:指定安装到个人目录,核心中的核心,无 sudo 的关键!
5. 配置环境变量
编辑~/.bashrc
vim ~/.bashrc
在末尾添加以下内容
# >>> CUDA >>>
export CUDA_HOME=~/applications/cuda-12.8
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
# <<< CUDA <<<
生效配置
source ~/.bashrc
6. 验证 nvcc
nvcc --version
还有一种安装方法
提取runfile内容(仅解压,不安装),指定提取路径为你的用户目录
./cuda_12.8.0_570.86.10_linux.run --extract=~/applications/cuda-12.8-extract
进入提取后的目录,找到cuda_toolkit目录(包含nvcc等工具)
cd ~/applications/cuda-12.8-extract
把toolkit文件复制到~/applications/cuda-12.8(统一路径)
mkdir -p ~/applications/cuda-12.8
cp -r ./cuda_toolkit/* ~/applications/cuda-12.8/