Dask-CUDA

Dask-CUDA 是一个扩展了 Dask.distributed 的单机 LocalClusterWorker 的库,用于分布式 GPU 工作负载。 它是 RAPIDS 开源软件库套件的一部分,用于 GPU 加速的数据科学。

动机

虽然Distributed可以通过诸如cuDFCuPyNumba等库来利用GPU工作负载,但Dask-CUDA提供了Distributed所不具备的几项独特功能:

  • 自动实例化每个GPU的工作器 – 使用Dask-CUDA的LocalCUDACluster或dask cuda worker CLI将自动为执行节点上的每个可用GPU启动一个工作器,避免了显式选择GPU的需要。

  • 自动设置CPU亲和性 – 每个GPU的CPU亲和性设置是自动完成的,防止内存传输采取次优路径。

  • 自动选择InfiniBand设备 – 当在InfiniBand上启用UCX通信时,Dask-CUDA会自动为每个GPU选择最佳的InfiniBand设备(有关配置UCX通信的说明,请参见UCX集成)。

  • GPU内存溢出 – 对于内存密集型工作负载,当GPU达到默认或用户指定的内存利用率限制时,Dask-CUDA支持从GPU溢出到主机内存。

  • GPU内存分配 – 当使用UCX通信时,可以使用RAPIDS内存管理器为每个GPU分配内存池,以避免否则需要的高成本内存缓冲区映射。

目录