云计算百科
云计算领域专业知识百科平台

Ubuntu24.04深度学习服务器满足多人使用配置经验(多用户+conda)

服务器配置内容

实验室购入了一台服务器,包括2张3090(很贫穷了属于是),但为了尽可能让大家都用到,因此学习了一下如何配置,最终决定采用设置不用的用户组和用户结合miniconda的方式实现独立环境的配置的方式,因为若采用LXD或者docker进行彻底的环境隔离学习成本较高,操作较为复杂,因此暂未采用。本文记录了一下配置过程中的经验和流程,希望能给大家一些帮助。

相关信息

管理员账户:admin

子账户1:user1

子账户2:user2

多用户创建

用户是系统中实际使用资源和执行操作的个体,每个用户都有唯一的用户名和用户 ID(UID),可以登录系统、运行程序、访问文件

只有有root权限的用户才可以创建,新建用户名按照每个人的姓名全称创建,目前,创建了admin、user1和user2 三个用户,其中,只有admin有root权限

!!!非必要禁止使用root权限更改文件!!!

除此之外,设置了用户组,用于方便对具有相同权限需求的用户进行统一管理。每个用户组有唯一的组名和组 ID(GID)

使用cat /etc/group 命令查看当前用户组,目前主要用户组包括:

root:x:0:
sudo:x:27:admin
users:x:100:admin,user1,user2
admin:x:1001:
user1:x:1002:
user2:x:1000:
students:x:1003: user1, user2

按照以下方式创建:

一定要用adduser的方式创建,而不是useradd!!!useradd会有很多问题

sudo adduser user1 #新建用户

sudo passwd user1 #输入用户密码

#sudo userdel -r user1 #删除用户

sudo groupadd groupname # 新建用户组

sudo usermod -aG groupname user1 # 添加用户到组

Miniconda安装

思路:每个用户在自己用户环境下安装miniconda,从而不干扰系统/他人的环境,实现严格意义上的环境隔离,目前,已为user1和user2安装了最新的miniconda

su – username #切换为不同的用户
wget <https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh>
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh #Enter/输入yes

source ~/.bashrc #刷新环境变量

conda –version #应显示版本号

CUDA多版本

由于每个 CUDA 版本都有显卡驱动版本号限制,低版本的显卡驱动是不支持高版本 CUDA 的,反之是兼容的。因此建议安装一个较新版本的显卡驱动(至少要支持你想运行的最高版本的 CUDA),这样系统中将要安装的多个 CUDA 版本就都能正常运行了。

  • 当前系统的显卡支持的最高驱动版本可使用nvidia-smi指令查询
  • 查看已安装的CUDA版本,可以使用以下命令:nvcc -V

其中

  • CUDA:为“GPU通用计算”构建的运算平台。
  • cudnn:为深度学习计算设计的软件库。
  • CUDA Toolkit (nvidia): CUDA完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。
  • CUDA Toolkit (Pytorch): CUDA不完整的工具安装包,其主要包含在使用 CUDA 相关的功能时所依赖的动态链接库。不会安装驱动程序。
  • (NVCC 是CUDA的编译器,只是 CUDA Toolkit 中的一部分)

安装流程

1. 检查是否有显卡驱动和支持的CUDA最高版本

使用nvidia-smi 检查当前的驱动版本和支持的CUDA最高版本,目前已安装NVIDIA Driver

2.确保安装Anaconda或者Miniconda

针对服务器环境,要求所有人通过conda来管理环境,包括pytorch版本、CUDA版本以及各种包和库

  • 环境隔离:每个conda环境可以独立安装不同版本的CUDA工具包(如CUDAtoolkit)和对应版本的cuDNN,环境之间完全隔离,互不干扰。
  • 无需修改系统变量:conda通过修改环境的PATH和LD_LIBRARY_PATH等变量,优先使用当前环境内的CUDA版本,不影响系统全局配置。

3. 安装CUDA

对于3090来说,只支持CUDA11.0以上的CUDA版本

💡使用conda进行安装,一般不会带头文件,如果需要做编译,则需要更换方法,但对于目前的使用任务来说,暂时不需要。同时,由于普通用户不给root权限,也只能安装CUDA toolkit,无法安装NVIDIA Driver

以在user1用户下创建CUDA为例

#在base环境下直接installCUDAtoolkit
(base) user1@asus-MS-7E06:~$ conda install -c nvidia cuda-toolkit=11.8
(base) user1@asus-MS-7E06:~$ nvcc -V
nvcc: NVIDIA (R) CUDA compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Apr__9_19:24:57_PDT_2025
CUDA compilation tools, release 12.9, V12.9.41
Build CUDA_12.9.r12.9/compiler.35813241_0
(base) user1@asus-MS-7E06:~$ conda create -n test
(test) user1@asus-MS-7E06:~$ nvcc -V
找不到命令 “nvcc”,但可以通过以下软件包安装它:
apt install nvidia-CUDA-toolkit
请联系您的管理员。

此时,在每个用户的环境下通过nvcc -V,即可看到相关信息,如果切换了环境,则仍无法看到相关信息

值得注意的是,不同用户环境是被隔离的,因此如果仅在user1和user2两个用户中通过conda安装了CUDA工具包,而admin管理员用户没有安装,那么在admin用户下直接执行nvcc -V是会提示找不到命令。

也就是说,为了防止CUDA版本冲突,并没有安装系统级CUDA,而是每个用户在自己的conda环境下安装用户级CUDA,仅在当前用户的 shell 会话中激活该 conda 环境后才会被加载。这样做对于绝大多数的深度学习任务而言足够了,只要不牵扯到编译CUDA算子等,是一个十分简单高效的方法。

SSH创建

ssh是为了可以实现用户远程连接到服务器,前提:同一个局域网下!!不在同一个局域网下需要进行内网穿透,目前暂未配置,曲线救国的方案是:向日葵远程连接实验室电脑,用实验室电脑ssh到服务器。

在admin用户下检查ssh是否可用(目前是可用状态):

sudo systemctl status ssh

为新用户创建ssh,以用户user1为例:

su – user1
ssh-keygen -t rsa -b 4096 #直接回车就好

检查当前ip地址:

ifconfig

另一台主机上连接至user1

ssh user1@服务器IP
# 输入 user1 用户的密码(如果没有配置免密登录)

免密登陆(可选)

如果觉得每次输密码很麻烦,可以参考以下免密登陆设置:

同样的,以user1用户为例,服务器端:

su – user1
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

客户端(以windows为例):

先有密状态下连接ssh到服务器:

ssh user1@服务器IP

打开服务器端中的.ssh文件夹,打开刚刚创建的authorized_keys

打开客户端(windows)文件夹中C:\\\\Users\\\\你的用户名\\\\.ssh\\\\id_rsa.pub ,全文复制,粘贴到服务器端中的authorized_keys 中

重新ssh连接,发现已经可以免密登陆了!

文件管理

共享文件

思路:用root权限创建文件夹,然后给文件夹分配用户组的权限,然后把所有需要访问这个文件夹的用户加到这个用户组当中来

创建了share共享文件目录,用于存放公共数据

sudo mkdir -p /share # 公共目录
sudo chown admin:users /share # admin用户拥有所有权
sudo chmod 775 /share # users组内用户可读写

文件传输

如果需要服务器端和客户端之间的数据传输,推荐使用FileZilla:免费、全平台(Mac、Linux、Windows)。

在Windows上下载filezilla:客户端 – FileZilla中文网

点击左上角文件,点击站点管理器,添加新站点

选择SFTP传输协议,主机为服务器ip地址,端口为ssh开放的端口地址,用户和密码输入自己的用户和密码,点击连接,即可读取文件列表,进行文件传输

赞(0)
未经允许不得转载:网硕互联帮助中心 » Ubuntu24.04深度学习服务器满足多人使用配置经验(多用户+conda)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!