我正在设计一个服务器,它将运行学生的 cuda/c++ 代码。该服务器将有多个 GPU 卡,以便可以同时运行多个程序。我想将计算机分成几个沙箱,每个沙箱只包含一个 GPU(例如使用虚拟机或 chroot 或其他东西)。我读到过虚拟机只模拟 GPU,因此您无法在真实硬件上运行 cuda。有没有其他方法可以做到这一点。我还希望能够限制沙箱中的其他内容,但我将在找到一种适用于 GPU 的方法后尝试解决这个问题。
总的来说,我会尝试限制学生只能访问一个 GPU,并且只能访问当前未运行其他人代码的 GPU。我会设置一个队列,以便仅在 GPU 空闲时运行他们的程序。