我们想扩展我们的批处理系统以支持 GPU 计算。
问题在于,从批处理系统的角度来看,GPU 是一种资源。我们可以很容易地统计使用的资源,但我们也需要限制对它们的访问。
对于 GPU,这意味着每个作业都只要求一个 GPU(当请求 GPU 时)。
据我所知,在作业之间共享 GPU 是一个非常糟糕的主意(因为作业的 GPU 部分可能会被随机终止)。
所以,我需要一些方法来限制对 CUDA 和 OpenCL 的 GPU 的访问。批处理系统具有 root 权限。我可以限制对/dev/
使用设备的访问,cgroups
但我认为在这种情况下这还不够。
理想状态是,如果作业只能看到它请求的 GPU 数量,并且任何其他作业都无法访问这些 GPU。