DataLoader

class dgl.graphbolt.DataLoader(datapipe, num_workers=0, persistent_workers=True, max_uva_threads=10240)[source]

基类: MiniBatchTransformer

多进程 DataLoader。

通过子进程迭代数据管道中特征获取之前的所有部分(即 dgl.graphbolt.FeatureFetcher),并在主进程中处理特征获取之后的所有部分。因此,datapipe 会被就地修改。

当 copy_to 操作被放置在数据管道中较早的位置时,num_workers 参数必须为 0,因为不支持在多个工作进程中利用 CUDA。

参数:
  • datapipe (DataPipe) – 数据管道。

  • num_workers (int, optional) – 工作进程的数量。默认为 0。

  • persistent_workers (bool, optional) – 如果为 True,数据加载器在使用完数据集后不会关闭工作进程。这可以保持工作进程实例的活跃状态。

  • max_uva_threads (int, optional) – 限制用于 UVA 复制的 CUDA 线程数量,以便其余计算可以同时运行。设置过高会限制重叠量,而设置过低可能会导致 PCI-e 带宽未被充分利用。手动调整的默认值为 10240,大约相当于 5-7 个 Streaming Multiprocessors。