配置多个 GPU
除非在限制非常多的情况下,否则在单个系统中使用多个 GPU 不会减少 Deep Learning 工具的训练或处理时间。多个 GPU 优势如下:
- 应用程序使用多线程同时处理图像时,可以提高系统吞吐量。
- 允许同时训练多个工具,提高训练效率。
如果要设置多个 GPU,则所有 GPU 均应具有相同的类型和规格。例如,如果要设置 3 个包含 1 RTX 3080 10GB 的 GPU,则此组 GPU 应为 RTX 3080 10GB / RTX 3080 10GB / RTX 3080 10GB。这适用于所有 NVIDIA GeForce® 系列。
为多个 GPU 配置主机系统时,请记住以下几点:
- 机箱电源可能需要高达 2KW。
- NVIDIA RTX / Quadro® 和 Tesla 显卡为多显卡安装提供更好的冷却配置。
- 确保 PCIe 配置为每个 GPU 提供 16 个 PCIe 通道。
- 不要启用可扩展链接接口 (SLI)。
多个 GPU 优化
VisionPro Deep Learning3.0 支持使用多个 GPU 进行训练和处理。本主题解释了 2 种基本操作模式和多个 GPU 的使用情况。为方便本页进一步说明,此处的高细节模式和聚焦模式均包含以下工具。在高细节模式系列中包含高细节快速模式的该定义仅适用于此文档中的此页面。
高细节模式
-
红色分析高细节
-
绿色分类高细节
-
绿色分类高细节快速
聚焦模式
-
红色分析聚焦监督
-
红色分析聚焦无监督
-
蓝色读取
-
蓝色定位
-
绿色分类聚焦
操作模式
为 VisionPro Deep Learning 使用一个或多个 GPU 时,可能的 GPU 操作模式如下:
- SingleDevicePerTool(默认设置)– 使用单个 GPU 训练和处理图像。
- NoGPUSupport – 说明不会使用 GPU。
这些 GPU 模式可以在库初始化时通过 C 和 .NET API 指定,也可以通过在启动时可与 VisionPro Deep Learning GUI 一起用于库初始化的命令行参数指定。
使用多个 GPU 进行训练
当使用多个 GPU 进行训练时,无论使用聚焦模式还是高细节模式,都是仅在单个 GPU 上训练单个工具。
如果有
-
N 个 GPU,可以同时运行 N 个训练作业。
-
N 个 GPU,可以同时训练 N 个工具。
这意味着如果您有 N 个 GPU 和 N 个训练作业(N 个要训练的工具),1 个训练作业仅由 1 个 GPU 执行。换句话说,1 个 GPU 一次训练 1 个工具(要训练的工具的所有图像)。
另一个流或另一个工作区中的训练作业可以被系统中注册的多个 GPU 访问,因此也可以使用多个 GPU 同时执行这些作业。
使用多个 GPU 进行处理
当使用多个 GPU 进行处理时,情况有所不同。
-
聚焦模式
-
在系统中注册的所有可用 GPU 上同时处理一个工具。
-
-
高细节模式
-
仅在单个 GPU 上处理单个工具。
-
这说明了几个重要问题:
-
对于聚焦模式的处理,如果有
-
N 个 GPU 并运行 1 个处理作业(处理 1 个聚焦模式工具),可以在这 N 个 GPU 上以分布式的方式运行此作业。
-
N 个 GPU 并运行 N 个处理作业(处理 N 个聚焦模式工具),可以在这 N 个 GPU 上以并行方式运行这 N 个作业。
-
-
高细节模式的处理和训练基本相同。如果有
-
N 个 GPU,可以同时运行 N 个处理作业。
-
N 个 GPU,可以同时处理 N 个工具。
-
对于聚焦模式工具的处理,这意味着此工具的所有图像可以分布在 N 个 GPU 上(1 个图像在 1 个 GPU 上,一次一个)。如果有 N 个聚焦模式工具和 N 个 GPU,工作方式仍然相同,因此 N 个 GPU 的使用方式为每个 GPU 一次处理一个图像,而不是一次处理一个工具。
对于高细节模式工具的处理,这意味着此工具的图像不能分布在 N 个 GPU 上,并且此工具的所有图像只能由 1 个 GPU 处理(1 个工具在 1 个 GPU 上,一次一个)。但是,如果有 N 个高细节模式工具和 N 个 GPU,则可以同时使用 N 个 GPU,即每个 GPU 一次处理一个工具(一个工具的所有图像),而不是一次处理一个图像。
同样,对于聚焦和高细节模式,另一个流或另一个工作区中的处理作业可以被系统中注册的多个 GPU 访问,因此也可以使用多个 GPU 同时执行这些作业。