不是
workers_per_gpu
和num_workers
是不同的参数,它们有各自的用途。
-
num_workers
:- 这是 PyTorch DataLoader 的一个参数,用于控制数据加载的并行度。
- 它表示使用多少个工作进程(worker)来并行加载数据。
- 通常情况下,将
num_workers
设置为 CPU 核心数可以获得最佳性能。
-
workers_per_gpu
:- 这是一个自定义的参数,并不是 PyTorch DataLoader 的标准参数。
- 它表示在多卡GPU环境下,每个GPU使用多少个工作进程来加载数据。
- 这个参数主要用于在多GPU环境下,平衡每个GPU的数据加载工作负载。
简单来说:
num_workers
控制整个数据加载过程中使用的并行进程数量。workers_per_gpu
控制在多GPU环境下,每个GPU使用的并行进程数量。
它们可以配合使用来实现更加高效的数据加载。例如在4卡GPU环境下,可以设置 num_workers=16
和 workers_per_gpu=4
,这样就可以充分利用系统资源来加速数据加载。
总之,workers_per_gpu
是一个自定义参数,用于优化多GPU环境下的数据加载,而num_workers
是 PyTorch 标准的参数,用于控制整体的数据加载并行度。
pyskl/pyskl/datasets/builder.py at main · kennymckormick/pyskl · GitHub