DataLoader

class dgl.graphbolt.DataLoader(datapipe, num_workers=0, persistent_workers=True, overlap_feature_fetch=True, overlap_graph_fetch=False, max_uva_threads=6144)[source]

Bases: DataLoader

多进程数据加载器。

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

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

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

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

  • persistent_workers (bool, optional) – 如果为True,数据加载器在数据集被消耗一次后不会关闭工作进程。这使得可以保持工作进程实例存活。

  • overlap_feature_fetch (bool, optional) – 如果为True,数据加载器将通过使用替代的CUDA流来重叠UVA特征获取操作与其他操作。默认值为True。

  • overlap_graph_fetch (bool, optional) – 如果为True,数据加载器将使用一个替代的CUDA流来重叠UVA图获取操作与其他操作。默认值为False。

  • max_uva_threads (int, optional) – 限制用于UVA复制的CUDA线程数量,以便其余计算可以与其同时运行。将其设置得过高会限制重叠量,而设置得过低可能会导致PCI-e带宽无法充分利用。手动调整的默认值为6144,意味着大约3-4个流式多处理器。