问题标签 [cuda-context]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
54 浏览

tensorflow - 使用 MPS 进行细粒度内核调度

我正在使用NVIDIA CUDA 多进程服务 (MPS)使用同一 GPU 运行多个 TensorFlow 推理作业。对于我的用例,当 GPU 被多个进程共享时,我有时需要优先执行一个进程的内核而不是另一个。这支持吗?

为了更详细地解释这个问题,考虑一个示例,其中我们有两个进程 p1 和 p2(每个进程只有一个内核执行流)共享一个 GPU。

场景:当 p1 和 p2 的就绪队列中有一个或多个内核时。

默认 MPS 行为(我的理解):

如果有足够的资源,从 p1 和 p2 同时执行多个内核。

期望的行为: 能够根据优先级做出决定,如果:

  • 先执行 p1 的内核,然后执行 p2。
  • 先执行 p2 的内核,然后执行 p1。
  • 如果有足够的资源,从 p1 和 p2 同时执行多个内核。

如果不支持这种自定义调度,如果有人可以指导需要哪些代码更改才能使其工作,那就太好了。

0 投票
1 回答
32 浏览

memory-management - 在一个 CUDA 上下文中 cuMemAlloc'ing 内存,并在另一个上下文中释放它 - 为什么会成功?

我创建了 2 个 cuda 上下文“ctx1”和“ctx2”并将当前上下文设置为“ctx1”并分配 8 字节的内存并将当前上下文切换到 ctx2。然后释放 ctx1 中的内存分配。为什么会返回CUDA_SUCCESS

而当我销毁 ctx1 然后释放内存时,会导致CUDA_INVALID_VALUE. 在我看来,每个上下文都包含其独特的资源,并且不允许其他上下文访问。有人可以解释这种行为吗?