有什么方便的实验室共享 GPU 方案?

285 天前
 Cineray

实验室一台服务器大概有 10 多个人用,以前都是使用一个账号,大家合理分配时间。

现在老师要求各自建立自己的账号,但是有一个问题,因为大家的运行环境不一样,包括 cuda/python 版本等。

所以我想建立一个隔离环境,大家有一定的 sudo apt 权限,但是又不会因为环境冲突装坏系统。

目前看到的是有的用 docker/LCX ,感觉有些臃肿,求问有没有更好的方式?

如果有管理器就更好了,方便及时添加/删除用户。

另外我们有多台机器,有什么好的方法可以智能分配账号/算力资源吗?

4935 次点击
所在节点    程序员
38 条回复
dododada
285 天前
docker 。
我记得站里有个这种帖子的。
jiny2048
285 天前
装好必要的软件,不给 sudo 权限,每个人自己用 conda
多台服务器用 ansible 分发/管理帐号
gpu 没必要做分配/虚拟化,抢占式/商量着来就行了
litguy
285 天前
docker 或者 lxd
个人更喜欢后面这个,因为和虚拟机用起来差不多
hallDrawnel
285 天前
和 2 楼差不多,不给 sudo 权限,每个人自己用 conda 管理自己的环境就行,驱动管理员负责更新。
然后大家去抢就好了 10 个人。
retanoj
285 天前
要是想在操作系统级别支持自定义安装软件,那还是 docker / LCX 吧。
不是臃肿的问题,是你给了 sudo 一定滥用和冲突。
CheckTime
285 天前
硬盘够大就行,每个人登录在自己目录下面安装自己的 conda 环境。不用给 sudo 权限,有必须要装的系统包打申请
steveway
285 天前
https://github.com/shenuiuin/LXD_GPU_SERVER
目前在用是这个方案,确实如楼上朋友所说,需要硬盘够大。
但其实用下来,除了 lxc 完全隔离之外,小问题还是有不少的,如果实验室对 linux 都比较熟悉,直接分帐号使用就好了。
happyxhw101
285 天前
cuda 统一版本
每个人建自己的账户,/home/xxx ,用 conda 安装自己的 python 环境
不给 sudo 权限,需要安装软件的统一一个人负责
Busby
285 天前
Docker 大法好。非计算机专业很难保证每个人的水平,还是各玩各的好。
guoyijun163
285 天前
用 pve+container(LXC),pve 宿主机上装显卡的 kernel 驱动,container 里装运行时(不过这样驱动版本是需要一致匹配的)
大家各自拿着一个 container 有 root 权限,除了动不了 kernel ,换不了驱动版本外其他都能自己装
bjtujtonlyone
285 天前
CUDA 就装一个,包括一些臃肿的数据集都是在管理员目录,有命令可以软链接;其他的 python 环境用户自己 conda 虚拟。
bthulu
285 天前
一人买一台服务器不久好了
binarywizard
285 天前
可以使用英伟达的 MIG 方案,切分 GPU 卡
jacy
285 天前
hyper-v 开小鸡分给大家,虽然臃肿,但大家想怎么搞怎么搞
Woolaman
285 天前
不太理解。既然是服务器,当然每个人有自己的账号啊,不然怎么写代码、debug 、看数据?
至于计算资源的分配,用专门的资源调度软件管理不就行了吗,例如 slurm 、htcondor 。
你把作业提交上去,别人的作业结束了,你的任务就开始了啊,大家协商一下最大作业时间就行了,例如 48h 、72h 。
我是做物理的,蒙卡模拟啥的,要是说错了,勿喷!
dode
285 天前
Docker ,每个用户独立使用私钥登录,都加入到 docker 组
hiphooray
285 天前
遇到了同样的情况,4 个人用,而且并没有专人负责服务器的维护工作。
因此为了方便起见,每个人都申请自己独立的拥护,自己维护自己的开发环境,然后配上了足够大容量的硬盘。
GPU 分配就更粗暴了,在微信群里喊一声,用了哪张卡,要用多久,就行了。
Huelse
285 天前
不要给 sudu 权限,遇到不懂非要硬来的直接给你搞崩
Argon
284 天前
我这边用下来有个提醒。楼上说的 Docker 方案,假如 Docker 自身不是 rootless 的,那么有权限使用 docker 的用户实质上都能提权到 root 。我这边就遇到挂载 / 然后搞事的同学。
该帖其它楼的方案,比如 Proxmox VE 用 CT 共享 GPU 或者 LXD 共享,相比 Docker 的坏处是,对于缺少虚拟化经验的同学而言容易接触的资料不如 docker pull 来得多。但是话又说回来,写不明白 Dockerfile 只会连进容器内部敲命令的大有人在。搞不好他还会想装个 openssh-server ,这时候有着完整 systemd 支持的 LXC 容器,比 docker container 那就阳间太多了。
对于 LXD 有一个挺漂亮的 Web 面板,可以试试: https://lxdware.com/
kangyue9999
284 天前
几种办法
1.设备独享型,使用 openlava 配置一下,没人按需按时间抓机器丢任务去跑,优点:应用兼容性好。缺点:容易造成资源浪费(比如一个人跑的任务可能只用很少的 GPU ,但是整个机器都归他了)
2.vgpu 共享型,去买个 NVIDIA vgpu 的授权,然后每台服务器可以去配置资源分割。优点:不浪费 GPU ,缺点:应用程序支持可能有限。
3 VGPU+调度器型:算是 1,2 的合体,用 vgpu+opennebula 。缺点是一二缺点的集合体,再加上配置估计不简单。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1022926

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX