以下列举我对实验室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虚拟环境实现多用户共享访问
前言: 本文根据 知乎 扩充而来
本文将实现:
- root用户安装
- root共享环境
- 多用户自行创建环境且隔离
软件下载与安装
我喜欢下载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
。
挂载机械硬盘
一些大数据文件在这上面,有利于节省固态硬盘的空间
-
通过
df -T -h
查看什么盘,比如是 /dev/sda1 -
创建挂载点,
mkdir /data
-
挂载硬盘
mount /dev/sda1 /data
-
df -h
查看结果 -
查看硬盘id,
sudo blkid /dev/sda1
,复制UUID -
开机启动自动挂载
vim /etc/fstab
\#加入
UUID=15b8a971-c3a1-40c5-8c99-92c3b67266a0 /data ext4 defaults 0 0
-
sudo mount -a
-
sudo rebot
有了机械硬盘,我们可以把conda虚拟环境都搬上面
我们修改 安装目录的.condarc 文件
envs_dirs:
- /data/conda/envs
- /opt/miniconda3/envs
pkgs_dirs: