cuda - 是否可以处理进程之间的 GPU 优先级

标签 cuda gpu thread-priority

我从 CUDA 5.5 知道可以有高优先级内核,但我知道这仅适用于 GPU 上相同上下文的调用问题,即它不会影响另一个进程的内核启动的优先级, 只要他们有足够的 CPU 时间就可以发出。

是否可以在 GPU 上拥有高优先级的应用程序,类似于如何将操作系统设置为特定线程的优先级?

谢谢

亨里克·安德烈森

最佳答案

从技术上讲,CUDA 5.5 添加了为计算能力 3.5 设备的 CUDA 工作调度系统设置各个流优先级的功能。这意味着 CUDA 驱动程序将允许较高优先级流中的任何 operation 内核抢占竞争性较低优先级流中操作的驱动程序级调度。 这可能包括启动内核、将操作和事件复制到设备。但是,我不认为一旦内核在设备本身上启动后,执行优先级就会有任何差异,它纯粹是驱动程序端流调度启发式控制。。当存在并发内核执行的条件时,这扩展到从设备上优先级较低的流中抢占正在运行的内核。

据我所知,目前无法将该机制扩展到单个上下文中的流之外,也无法影响竞争 GPU 访问权限的进程在驱动程序级别的优先级。我要补充的唯一警告是 CUDA 6 可能已经改变了这一点,我还没有机会看到那个版本中的所有新内容。

关于cuda - 是否可以处理进程之间的 GPU 优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21825074/

相关文章:

Tensorflow 看到 GPU,但仅使用 xla_cpu,并在被告知使用 xla_gpu 时崩溃

调用 cudaMemcpyToSymbol 时出现 cudaErrorInvalidValue 错误

java - 优先级较高的线程获得与优先级较低的线程相同的 CPU 数量?

java - Linux JVM 是否真的实现了线程优先级?

cuda - 从设备函数调用 Thrust device_vector

c# - 更改线程优先级

c++ - Golang 调用 CUDA 库

matlab - 如何使用 CUDA 在 GPU 上运行 MATLAB 代码?

opencv - 从 HWC 转换为 CHW 的 cudaMemcpy 图像数据

c++ - Cuda内存在每个线程中共享