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个流式多处理器。