gpt4 book ai didi

linux - 限制对 Cuda 和 OpenCL 资源的访问

转载 作者:可可西里 更新时间:2023-11-01 11:50:48 38 4
gpt4 key购买 nike

我们希望扩展批处理系统以支持 GPU 计算。

问题在于,从批处理系统的角度来看,GPU 是一种资源。我们可以很容易地统计已使用的资源,但我们也需要限制对它们的访问。

对于 GPU,这意味着每个作业独占一个 GPU(在请求 GPU 时)。

据我所知,在作业之间共享 GPU 是一个非常糟糕的主意(因为作业的 GPU 部分可能会被随机终止)。

因此,我需要一些方法来限制对 CUDA 和 OpenCL 的 GPU 的访问。批处理系统具有root权限。我可以使用 cgroups 限制对 /dev/ 中设备的访问,但我想,在这种情况下这还不够。

理想状态是,如果该作业只能看到它请求的 GPU,并且其他任何作业都无法访问这些 GPU。

最佳答案

目前有两种相关机制:

  • 使用 nvidia-smi 将设备设置为独占模式,这样一旦一个进程拥有一个 GPU,其他进程就无法连接到同一 GPU。
  • 使用 CUDA_VISIBLE_DEVICES 变量来限制进程在寻找 GPU 时看到的 GPU。

后者当然会受到滥用,但现在只是一个开始。

From what I have been told, sharing GPUs between jobs is a very bad idea (because the GPU part of jobs might be killed randomly).

并非如此,共享 GPU 是一个坏主意的主要原因是它们将不得不竞争可用内存,并且进程可能全部失败,即使实际上其中一个进程可以继续进行。此外,它们竞争对 DMA 和计算引擎的访问权限,这可能导致整体性能不佳。

关于linux - 限制对 Cuda 和 OpenCL 资源的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4077790/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com