【问题标题】:How do I know my GPU supports multiprocessing by default?我怎么知道我的 GPU 默认支持多处理?
【发布时间】:2022-01-21 04:36:36
【问题描述】:

我看到这篇文章: How do I use Nvidia Multi-process Service (MPS) to run multiple non-MPI CUDA applications?

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

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 是否支持多处理?

我正在使用的 GPU:Tesla P100 (GP100GL)

【问题讨论】:

    标签: cuda gpu nvidia


    【解决方案1】:

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

    当前所有 NVIDIA GPU 都支持 MPS。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      • 1970-01-01
      相关资源
      最近更新 更多