【发布时间】:2011-05-03 22:18:57
【问题描述】:
我们希望扩展批处理系统以支持 GPU 计算。
问题在于,从批处理系统的角度来看,GPU 是一种资源。我们可以很容易地统计使用的资源,但我们也需要限制对它们的访问。
对于 GPU,这意味着每个作业都只要求一个 GPU(当请求 GPU 时)。
据我所知,在作业之间共享 GPU 是一个非常糟糕的主意(因为作业的 GPU 部分可能会被随机终止)。
所以,我需要一些方法来限制对 CUDA 和 OpenCL 的 GPU 的访问。批处理系统具有 root 权限。我可以使用cgroups 限制对/dev/ 中设备的访问,但我认为在这种情况下这还不够。
理想状态是,作业只能看到它请求的 GPU 数量,并且任何其他作业都无法访问这些 GPU。
【问题讨论】:
-
为什么不能在 /dev/nvidiax 设备上运行作业时更改其所有权,并在尝试在那里运行之前检查谁拥有它?跨度>
-
@Marm 我可以很容易地禁止该工作访问
/dev/something。够了吗? -
将所有权更改为 /dev/nvidia 的其他用户,然后在运行作业之前对所有权进行检查就足够了 - 我通过网络使用 nvidia GPU,有时人们在本地登录这些机器- 当他们更改所有权并且我无法访问 nvidia 设备时。您可能希望以 sudo 访问 chown /dev/nvidia 的非特权用户身份运行作业 - 这可以工作。