用多个用户pipe理多个GPU
我有一个服务器(Ubuntu 16.04)与4个GPU。 我的团队分享这个,我们目前的方法是容纳我们所有与Docker的工作,并使用$ NV_GPU=0 nvidia-docker run -ti nvidia/cuda nvidia-smi
来限制容器到GPU。 当我们非常清楚谁在使用哪个GPU时,这个效果很好,但是我们的团队已经发展壮大了,我想要一个更强大的监控GPU使用的方法,并禁止在GPU使用时访问GPU。 nvidia-smi
是“GPU-Util”的一个信息通道,但是有时GPU在某个时刻可能有0%的GPU-Util,而当前它是由在容器中工作的人保留的。
你有什么build议:
- 当用户运行
$ NV_GPU='gpu_id' nvidia-docker run
时跟踪 - 当另一个用户运行
$ NV_GPU='same_gpu_id' nvidia-docker run
时发生错误 - 保持一个更新的日志,这是沿着{'gpu0':'user_name或free',。 。 。'gpu3':'user_name or free'},其中每个gpu标识使用该gpu运行活动docker容器的用户,或者说它是'free'。 实际上,说明用户和连接到GPU的容器将是可取的。
- 当用户closures正在使用gpu的容器时更新日志
我可能也在想这个错误的方式,所以对其他想法敞开心扉。 谢谢!