You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用LocalCUDACluster双GPU训练时CPU亲和性插件初始化失败求助

解决Dask-CUDA CPUAffinity插件初始化错误及多GPU分配问题

直接解决方案

在初始化LocalCUDACluster时添加cpu_affinity=False参数,禁用CPU亲和性插件即可解决错误,同时保证每个Worker分配独立GPU:

from dask_cuda import LocalCUDACluster
from dask.distributed import Client

if __name__ == "__main__":
    with LocalCUDACluster(n_workers=2, cpu_affinity=False) as cluster:
        with Client(cluster) as client:
            # 你的模型训练代码
            ...

问题原因

出现CPUAffinity插件初始化失败,是因为Dask默认会尝试给每个Worker绑定专属CPU核心(优化GPU-CPU数据传输效率),但学校服务器通常有严格的资源管控:

  • 可能没有权限修改CPU亲和性设置
  • 服务器的CPU核心分配策略限制了这类操作
  • 多用户共享环境下,核心资源被其他进程占用

禁用CPU亲和性后,Worker会使用系统默认的CPU调度,虽然可能损失一点性能,但能绕过权限/资源限制,同时LocalCUDACluster仍会自动为每个Worker分配独立GPU,不会出现LocalCluster的GPU共用问题。

进阶优化(可选)

如果需要更精准地控制GPU分配,可以手动指定每个Worker对应的GPU设备:

with LocalCUDACluster(
    n_workers=2,
    cpu_affinity=False,
    devices=[0, 1]  # 明确指定使用第0、1号GPU
) as cluster:

这样能确保每个Worker绑定到指定GPU,避免自动分配时的潜在问题。

内容的提问来源于stack exchange,提问作者Danilo Caputo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 14:21:02