我怎么知道我的 GPU 默认支持多处理?

How do I know my GPU supports multiprocessing by default?

我遇到了这个 post:

但是当我 运行 ./mps_run 在启动 MPS 之前,我得到了

kernel duration: 4.999370s
kernel duration: 5.012310s

当我在 5 秒内查看 nvidia-smi 时:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.102.04   Driver Version: 450.102.04   CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla P100-PCIE...  Off  | 00000001:00:00.0 Off |                    0 |
| N/A   28C    P0    38W / 250W |    508MiB / 16280MiB |    100%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

看起来我使用的 GPU 以某种方式支持多处理,

当我运行nvidia-smi -i 2 -c EXCLUSIVE_PROCESS,结果No devices were found

这很奇怪。

我怎么知道我的 GPU 是否支持多处理?

我使用的显卡:Tesla P100 (GP100GL)

在您链接的 post 中,在我回答的 UPDATE 部分,我指出 GPU 调度程序在 Pascal 及更高版本中发生了变化(您的 Tesla P100 是帕斯卡 GPU)。

所有当前的 NVIDIA GPU 都支持 MPS。

您得到的结果是预期的(在非 MPS 情况下),因为 GPU 调度程序允许两个内核以时间片方式 运行。当前支持的所有 CUDA GPU 都支持多处理(在默认计算模式下)。然而,较旧的 GPU(例如开普勒)会 运行 来自一个进程的内核,然后是来自另一个进程的内核。 Pascal 和较新的 GPU 将 运行 一个进程的内核持续一段时间,然后是另一个进程一段时间,然后是第一个进程,以循环时间片方式等。