非root用户在多台gpu服务器上统一自己的CUDA版本

问题描述

  • 遇到的问题:

    • 运行某篇文章的代码时需要编译并安装第三方库(detectron2),该库仅支持到CUDA 11.1, 而5台GPU服务器中4台默认的cuda (即/usr/local/cuda/)版本是11.6, 另一台gpu5是10.1.
    • 因此,创建了conda环境env1,并在gpu5上成功安装了detectron2 (pytoch 1.5 + cuda 10.1版本)
    • 但问题是,env1无法在gpu1-4上运行,原因是cuda版本不对
  • 且无root权限

解决方法

要解决的问题本质上是 如何在无root权限的情况下为5台GPU统一CUDA版本为10.1.

  • 只需要将某版本的cuda安装到自己的目录下,并添加到PATH即可
  • 下述链接介绍的很详细: https://zhuanlan.zhihu.com/p/198161777
  • 大致步骤可总结如下:
    • Step1: wget命令从官网上下载想要安装的cuda版本 (.run格式)
    • Step2: 安装,并选择合适的安装选项,重点是改变Toolkit和libarary的安装路径
    • Step3: 修改~/.bashrc中的环境变量 , 如
export PATH=$PATH:/home/xxx/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xxx/cuda/lib64
  • Step4: 利用nvcc -V验证是否安装成功
### 安装配置 NVIDIA SMI 工具 对于希望在 root 用户环境下安装并配置 NVIDIA SMI 工具的情况,通常面临一定挑战因为许多操作需要管理员权限。然而,可以通过特定方法实现这一目标。 #### 方法一:通过容器化环境使用 NVIDIA SMI 利用 Docker 或者 Singularity 这样的容器技术可以在不拥有主机系统 root 权限的情况下运行带有 GPU 支持的应用程序以及访问 `nvidia-smi` 命令。这依赖于宿主机已经正确设置了 NVIDIA 容器工具包[^1]。 - **Docker 方式** 如果所在环境中允许使用 Docker 并且已由管理员预先配置好支持 GPU 的镜像,则可以直接拉取官方 CUDA 镜像来获取包含 `nvidia-smi` 功能的环境: ```bash docker pull nvcr.io/nvidia/cuda:latest-runtime-ubuntu20.04 ``` 接着启动一个交互式的 shell: ```bash docker run --gpus all -it nvcr.io/nvidia/cuda:latest-runtime-ubuntu20.04 /bin/bash ``` 此时,在这个容器内部就可以正常使用 `nvidia-smi` 查看 GPU 状态了。 - **Singularity 方式** 对于某些科研机构可能更倾向于使用 Singularity 容器。如果本地有可用的 Singularity 版本并且存在预构建好的 CUDA/Singularity 镜像文件(.sif),那么也可以轻松获得类似的体验。 #### 方法二:借助远程服务器上的现有设置 假如个人计算机无法满足需求,还可以考虑租用云服务提供商(如 AWS, Azure)提供的按需付费虚拟机实例来进行开发工作。这些平台往往提供了多种预装了最新版驱动及库函数的 AMI (Amazon Machine Image) 或 VM 映像供选择,从而绕过了本地机器上缺乏适当权限的问题。 需要注意的是,上述两种方案都假定了有一个具备合适配置的工作站作为基础;如果没有这样的条件,最根本的办法还是寻求 IT 管理员的帮助以正式申请必要的软件部署许可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不再更新,请勿购买!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值