在应用程序运行时期间是否可以激活/取消激活Hyper-Q

时间:2014-12-17 16:59:16

标签: cuda gpu nvidia

如您所知,由于CUDA 5.5,Hyper-Q(在NVIDIA GPU上)允许多个MPI进程在单个GPU上同时运行并在资源可用时共享其资源。

在运行应用程序之前,可以通过驱动程序命令(即nvidia-cuda-mps-control -d)激活Hyper-Q。

考虑到Hyper-Q不一定有利于应用程序的性能(在某些情况下甚至会损害性能),无论如何通过插入一些驱动程序命令来停用Hyper-Q(甚至激活它)应用程序?换句话说,是否可以在程序中启动Hyper-Q(您知道的任何运行时/驱动程序命令)?

提前致谢, 伊曼

1 个答案:

答案 0 :(得分:1)

Hyper-Q无法打开/关闭。这是hardware feature of Kepler cc3.5 and newer GPUs

可以打开/关闭CUDA MPS服务器。打开和关闭它的方法在documentation的4.1.1节中描述。简而言之,摘录:

nvidia-cuda-mps-control -d # Start daemon as a background process.

echo quit | nvidia-cuda-mps-control # Shut the daemon down.

没有什么可以阻止您从非CUDA应用程序发出这些命令(例如通过system())。

关于CUDA应用程序:

在打开CUDA MPS服务器后,可以启动CUDA应用程序(或MPI进程)并将其“连接”到MPS服务器的实例。

启动这些应用程序(或MPI进程)并连接到MPS服务器后,不应关闭MPS服务器 ,直到这些应用程序/进程终止。

因此,已启动并连接到MPS服务器的应用程序不应该操纵该服务器的状态。