Dask-CUDA
Dask-CUDA 是一个库,扩展了 Dask.distributed 的单机版 LocalCluster 和 Worker,用于分布式 GPU 工作负载。它是 RAPIDS 开源软件库套件的一部分,用于 GPU 加速数据科学。
动机
虽然 Distributed 可以通过诸如 cuDF、CuPy 和 Numba 等库来利用 GPU 工作负载,但 Dask-CUDA 提供了一些 Distributed 不具备的独特功能:
每 GPU worker 的自动实例化 – 使用 Dask-CUDA 的 LocalCUDACluster 或
dask cuda worker
CLI 将自动为执行节点上可用的每个 GPU 启动一个 worker,避免了显式选择 GPU 的需要。CPU 亲和性的自动设置 – 自动为每个 GPU 设置 CPU 亲和性,防止内存传输走次优路径。
InfiniBand 设备的自动选择 – 在通过 InfiniBand 启用 UCX 通信时,Dask-CUDA 会自动为每个 GPU 选择最优的 InfiniBand 设备(参见 UCX 集成 获取配置 UCX 通信的说明)。
从 GPU 溢出内存 – 对于内存密集型工作负载,当 GPU 达到默认或用户指定的内存利用率限制时,Dask-CUDA 支持将数据从 GPU 溢出到主机内存。
GPU 内存分配 – 使用 UCX 通信时,可以使用 RAPIDS Memory Manager 分配每 GPU 内存池,以避免 otherwise 会需要的昂贵的内存缓冲区映射。
目录
附加功能