科研GPU环境配置-快让师兄弟们优雅地享受共享环境吧!

简介: 以下列举我对实验室4090的操作,目的是为了让实验室所有人都有隔离的沙盒环境,节省硬盘以及更方便一听说老师买了24G 4090,真的超级兴奋!!!
以下列举我对实验室4090的操作,目的是为了让实验室所有人都有隔离的沙盒环境,节省硬盘以及更方便一听说老师买了24G 4090,真的超级兴奋!!!

英伟达驱动安装

略,网上教程很多

CUDA和CuDNN安装

当我们安装好驱动,一般来说输入nvidia-smi就能看到支持的最高CUDA版本,在conda虚拟环境就可以任意安装最高CUDA以及以下版本

但是为了有时候可以直接使用,于是也在服务器安装了一个版本

CUDA安装教程跟随英伟达官网,so easy,如果有提示cp一个key,按照提示即可,然后就能安装。

接下来,我与网上处理方式不一样的是,我在/etc/bash.bashrc加入

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64
export PATH=$PATH:/usr/local/cuda-11.8/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.8

这样所有用户都能使用了。放在/etc/profile目录会造成非root无法读取。

输入nvcc -V验证

注意对应好版本对应关系!

CUDNN,我使用deb方式安装,这可比压缩包方便。

sudo dpkg -i cudnn-local-repo-${OS}-8.x.x.x_1.0-1_amd64.deb
# # # # Import the CUDA GPG key.
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
# # # # Refresh the repository metadata.
sudo apt-get update
# # # Install the runtime library.
sudo apt-get install libcudnn8=8.x.x.x-1+cudaX.Y
# # Install the developer library.
sudo apt-get install libcudnn8-dev=8.x.x.x-1+cudaX.Y
# Install the code samples and the cuDNN library documentation.
sudo apt-get install libcudnn8-samples=8.x.x.x-1+cudaX.Y

python pip国内源统一设置

/etc/pip.conf输入国内源的配置,这样以后所有用户都不用再单独配置了。

在ubuntu上安装miniconda虚拟环境实现多用户共享访问

前言: 本文根据扩充而来

本文将实现:

  1. root用户安装
  2. root共享环境
  3. 多用户自行创建环境且隔离

软件下载与安装

我喜欢下载miniconda,anaconda太大了,没有必要,建议通过清华软件源快速下载。

su root
sudo bash xxx.sh
  • 回车开始安装
  • 阅读并输入 yes
  • 指定安装目录,例如 /opt/miniconda3
  • 等待安装完成

使用vim编辑/etc/bash.bashrc

在末尾添加

export PATH=/opt/anaconda3/bin:$PATH
/opt/miniconda3/bin/conda init bash >/dev/null

然后source /etc/bash.bashrc更新

接下来给目录赋予权限

chmod 777 -R /opt/anaconda3
# 设置子继承,以后文件都是777
chmod -R g+s /opt/anaconda3

这直接让所有人都能够修改,我觉得个人用户环境被隔离,其它人不能修改就很🆗了,大家修改root环境也没啥事,大部分人也不使用root共享环境。

如果非要root共享环境不能被其他人修改,则如知乎一样创建一个用户组。

统一配置 conda设置

安装目录下新建.condarc文件并写入

envs_dirs:
  - /opt/miniconda3/envs
  - ~/.conda/envs
  # 国内源配置...

由root用户创建的环境会保存在/opt/miniconda3/envs中,所有anaconda组成员都可以访问。

用户自己创建的环境则会保存至~/.conda/envs中,但是所有下载的pkg会共享在/opt/miniconda3/pkgs中,即如果是别人装过的包(比如下载缓慢的PyTorch)则不用重新下载。

关于umask

前述的机制是通过组读写权限完成的,意味着 anaconda 的文件需要有用户组的读与写权限。普通用户的默认 umask 是 0002,提供了用户组写仅限,但 root 用户的0022并没有。因此在使用 root 用户创建共享环境前需要修改 umask。

umask 0002
conda create -n env_name python  # 示例
umask 0022  # 你可能会想恢复原值

否则会导致其它用户无权访问某些新下载的包的缓存等问题。在这种情况下,可以找到相应的文件并为其附加用户组写权限chmod g+w

挂载机械硬盘

一些大数据文件在这上面,有利于节省固态硬盘的空间
  1. 通过df -T -h查看什么盘,比如是/dev/sda1
  2. 创建挂载点,mkdir /data
  3. 挂载硬盘 mount /dev/sda1 /data
  4. df -h查看结果
  5. 查看硬盘id,sudo blkid /dev/sda1,复制UUID
  6. 开机启动自动挂载vim /etc/fstab
    \#加入
    UUID=15b8a971-c3a1-40c5-8c99-92c3b67266a0 /data ext4 defaults 0 0
  7. sudo mount -a
  8. sudo rebot

有了机械硬盘,我们可以把conda虚拟环境都搬上面

我们修改安装目录的.condarc文件

envs_dirs:
  - /data/conda/envs
  - /opt/miniconda3/envs
 pkgs_dirs:
  - /data/conda/pkgs

同时对/data/conda目录设置777权限和子文件权限继承

虽然这样移动到机械硬盘上了,但是都在envs文件,理论上用户环境隔离,可是同名文件夹还是会冲突,因此

建议每个新用户都在自己目录新建.condarc

cd ~
sudo vim .condarc
# 再增加一条这个,就不会冲突了
envs_dirs:
 - /data/conda/envs/<username>/envs

以一个用户名多一层目录,怎么样都不会冲突

内网穿透

使用我之前发的

创建新用户名

我之前喜欢一个CSDN博主提供的一个办法,但我发现他的办法还要往/etc/sudoers/写数据,写之前还要修改权限,太麻烦了,而且哪天要把毕业人的账号给删了,还要修改文件,权限…头大,这时候我发现了好办法,只需要三步:


切换root账号:su,或者不切换,用一个有sudo权限的用户,即可。


使用命令添加:adduser <yourname>


直接添加到sudo用户组即可,不用再配置文件了:adduser <yourname> sudo or usermod -aG sudo dyedd

8917f6ff23db4b26868a1edeaafaf827.png


其实还有第四步,也就是重新登录<yourname>用户。


最后附上我们伟大的4090显卡

3267136853.jpg


相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
3月前
|
Ubuntu 开发工具 Android开发
Repo下载AOSP源码:基于ubuntu22.04 环境配置,android-12.0.0_r32
本文介绍了在基于Ubuntu 22.04的环境下配置Python 3.9、安装repo工具、下载和同步AOSP源码包以及处理repo同步错误的详细步骤。
221 0
Repo下载AOSP源码:基于ubuntu22.04 环境配置,android-12.0.0_r32
|
3月前
|
并行计算 TensorFlow 算法框架/工具
Windows11+CUDA12.0+RTX4090如何配置安装Tensorflow2-GPU环境?
本文介绍了如何在Windows 11操作系统上,配合CUDA 12.0和RTX4090显卡,通过创建conda环境、安装特定版本的CUDA、cuDNN和TensorFlow 2.10来配置TensorFlow GPU环境,并提供了解决可能遇到的cudnn库文件找不到错误的具体步骤。
374 3
|
3月前
|
持续交付 测试技术 jenkins
JSF 邂逅持续集成,紧跟技术热点潮流,开启高效开发之旅,引发开发者强烈情感共鸣
【8月更文挑战第31天】在快速发展的软件开发领域,JavaServer Faces(JSF)这一强大的Java Web应用框架与持续集成(CI)结合,可显著提升开发效率及软件质量。持续集成通过频繁的代码集成及自动化构建测试,实现快速反馈、高质量代码、加强团队协作及简化部署流程。以Jenkins为例,配合Maven或Gradle,可轻松搭建JSF项目的CI环境,通过JUnit和Selenium编写自动化测试,确保每次构建的稳定性和正确性。
62 0
|
3月前
|
机器学习/深度学习 并行计算 TensorFlow
GPU加速TensorFlow模型训练:从环境配置到代码实践的全方位指南,助你大幅提升深度学习应用性能,让模型训练不再等待
【8月更文挑战第31天】本文以随笔形式探讨了如何在TensorFlow中利用GPU加速模型训练,并提供了详细的实践指南。从安装支持GPU的TensorFlow版本到配置NVIDIA CUDA及cuDNN库,再到构建CNN模型并使用MNIST数据集训练,全面展示了GPU加速的重要性与实现方法。通过对比CPU与GPU上的训练效果,突显了GPU在提升训练速度方面的显著优势。最后,还介绍了如何借助TensorBoard监控训练过程,以便进一步优化模型。
569 0
|
4月前
|
人工智能 Serverless 异构计算
[AI Cog] 想要运营AI业务,但没有GPU?环境搞不定?使用Cog帮您轻松将业务部署上云
[AI Cog] 想要运营AI业务,但没有GPU?环境搞不定?使用Cog帮您轻松将业务部署上云
|
5月前
|
机器学习/深度学习 Ubuntu Shell
深度学习环境配置(Ubuntu+Anaconda)
深度学习环境配置(Ubuntu+Anaconda)
122 3
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能平台PAI产品使用合集之进入DSW后,如何把工作环境切换为GPU状态
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6月前
|
并行计算 Shell Docker
【环境配置】Ubuntu16.04安装nvidia-docker
【环境配置】Ubuntu16.04安装nvidia-docker
190 2
|
6月前
|
机器学习/深度学习 并行计算 算法框架/工具
Anaconda+Cuda+Cudnn+Pytorch(GPU版)+Pycharm+Win11深度学习环境配置
Anaconda+Cuda+Cudnn+Pytorch(GPU版)+Pycharm+Win11深度学习环境配置
888 3
|
6月前
|
人工智能 弹性计算 安全
【Hello AI】GPU容器共享技术cGPU
GPU容器共享技术cGPU是阿里云基于内核虚拟GPU隔离的容器共享技术。即多个容器共享一张GPU卡,从而实现业务的安全隔离,提高GPU硬件资源的利用率并降低使用成本。
【Hello AI】GPU容器共享技术cGPU