083在多个 CPU 上高效训练
在多个 CPU 上高效训练¶
当在单个 CPU 上进行训练太慢时,我们可以使用多个 CPU。本指南重点介绍如何在裸机和 Kubernetes 上使用基于 PyTorch 的分布式数据并行(DDP)进行高效的 CPU 分布式训练。
Intel® oneCCL 绑定库 for PyTorch¶
Intel® oneCCL(集体通信库)是一个用于高效分布式深度学习训练的库,实现了诸如 allreduce、allgather、alltoall 等集体操作。有关 oneCCL 的更多信息,请参阅 oneCCL 文档 和 oneCCL 规范。
模块 oneccl_bindings_for_pytorch(1.12 版本之前称为 torch_ccl)实现了 PyTorch C10D ProcessGroup API,并且可以作为外部 ProcessGroup 动态加载,目前仅支持 Linux 平台。
更多详细信息请参阅 oneccl_bind_pt。
安装 Intel® oneCCL 绑定库 for PyTorch¶
以下 Python 版本提供了 wheel 文件:
| 扩展版本 | Python 3.7 | Python 3.8 | Python 3.9 | Python 3.10 | Python 3.11 |
|---|---|---|---|---|---|
| 2.5.0 | √ | √ | √ | √ | |
| 2.4.0 | √ | √ | √ | √ | |
| 2.3.0 | √ | √ | √ | √ | |
| 2.2.0 | √ | √ | √ | √ |
请运行 pip list | grep torch 来获取您的 pytorch_version。