分布式训练
如果可能,砖建议你训练的神经网络在单个机器上;分布式代码培训和推理是更复杂的比单机代码和慢由于通信开销。然而,您应该考虑分布式训练和推理如果你的模型或数据太大在单个机器上装入内存。对于这些工作负载,砖运行时毫升包括Horovod和spark-tensorflow-distributor包。
Horovod
Horovod是一个分布式TensorFlow培训框架,Keras, PyTorch。砖使用HorovodRunner和支持分布式深度学习培训horovod.spark
包中。火花毫升管道应用程序使用Keras或PyTorch,您可以使用horovod.spark
估计量的API。
安装一个不同版本的Horovod
从预装版本升级或降级Horovod毫升集群,您必须重新编译Horovod通过以下步骤:
Horovod卸载当前版本。
%皮普卸载- - - - - -yhorovod
如果使用GPU-accelerated集群,安装编译Horovod所需CUDA开发库。以确保兼容性,离开包版本不变。
%上海wgethttps:/ /开发人员。下载。英伟达。com/计算/cuda/回购/ubuntu1804/x86_64/cuda- - - - - -ubuntu1804。销mvcuda- - - - - -ubuntu1804。销/等/恰当的/首选项。d/cuda- - - - - -存储库- - - - - -销- - - - - -600年恰当的- - - - - -关键阿德- - -获取- - - - - -键https:/ /开发人员。下载。英伟达。com/计算/cuda/回购/ubuntu1804/x86_64/7fa2af80。酒吧添加- - - - - -恰当的- - - - - -存储库“黛比https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/”wgethttps:/ /开发人员。下载。英伟达。com/计算/机- - - - - -学习/回购/ubuntu1804/x86_64/英伟达- - - - - -机- - - - - -学习- - - - - -回购- - - - - -ubuntu1804_1.0.0- - - - - -1_amd64。黛比dpkg- - - - - -我。/英伟达- - - - - -机- - - - - -学习- - - - - -回购- - - - - -ubuntu1804_1.0.0- - - - - -1_amd64。黛比恰当的- - - - - -得到更新恰当的- - - - - -得到安装- - -允许- - - - - -降级- - -没有- - - - - -安装- - - - - -建议- - - - - -y\cuda- - - - - -nvml- - - - - -dev- - - - - -11- - - - - -0=11.0.167- - - - - -1\cuda- - - - - -学校网站- - - - - -11- - - - - -0=11.0.221- - - - - -1\cuda- - - - - -cudart- - - - - -dev- - - - - -11- - - - - -0=11.0.221- - - - - -1\cuda- - - - - -库- - - - - -dev- - - - - -11- - - - - -0=11.0.3- - - - - -1\libnccl- - - - - -dev=2.11.4- - - - - -1+cuda115\libcusparse- - - - - -dev- - - - - -11- - - - - -0=11.1.1.245- - - - - -1
Horovod下载所需的版本的源代码和编译与适当的旗帜。如果你不需要任何的扩展(如
HOROVOD_WITH_PYTORCH
),您可以删除这些旗帜。
% sh HOROVOD_VERSION = v0.21.3 #在必要时改变git克隆——递归https://github.com/horovod/horovod.git分支$ {HOROVOD_VERSION} cd horovod rm射频构建/ dist / HOROVOD_WITH_MPI = 1 HOROVOD_WITH_TENSORFLOW = 1 HOROVOD_WITH_PYTORCH = 1 \ #砖运行时的8.4毫升和下面,替换为/砖/ conda / env / databricks-ml / bin / python sudo /砖/ python3 / bin / python设置。py bdist_wheel指向- f dist / horovod - * .whl
% sh HOROVOD_VERSION = v0.21.3 #在必要时改变git克隆——递归https://github.com/horovod/horovod.git分支$ {HOROVOD_VERSION} cd horovod rm射频构建/ dist / HOROVOD_GPU_ALLREDUCE = NCCL HOROVOD_CUDA_HOME = / usr /地方/ cuda HOROVOD_WITH_MPI = 1 HOROVOD_WITH_TENSORFLOW = 1 HOROVOD_WITH_PYTORCH = 1 \ #砖运行时的8.4毫升和下面,替换为/砖/ conda / env / databricks-ml-gpu / bin / python sudo /砖/ python3 / bin / python设置。py bdist_wheel指向- f dist / horovod - * .whl
使用
%皮普
重新安装Horovod通过指定轮路径从前面的命令的输出。0.21.3
这个示例中所示。
%皮普安装- - -没有- - - - - -缓存- - - - - -dir/砖/司机/horovod/经销/horovod- - - - - -0.21.3- - - - - -cp38- - - - - -cp38- - - - - -linux_x86_64。whl
排除Horovod安装
问题:进口horovod。{火炬| tensorflow}
提出了ImportError:扩展horovod。{火炬| tensorflow}有不被建
解决方案:预装Horovod砖运行时毫升,所以常常会发生这种错误如果更新出现问题的环境。错误表明Horovod安装之前需要图书馆(PyTorch或TensorFlow)。由于Horovod编译安装期间,horovod。{火炬| tensorflow}
不会得到编译期间如果这些包不存在Horovod的安装。要修复这些问题,遵循这些步骤:
确认你砖集群运行时毫升。
确保PyTorch或者TensorFlow包已经安装。
卸载Horovod (
%皮普卸载可能是horovod
)。安装
cmake
(%皮普安装cmake
)。重新安装
horovod
。
spark-tensorflow-distributor
spark-tensorflow-distributor是一个开源本地包TensorFlow分布式训练与TensorFlow火花集群。BOB低频彩了解更多关于分布式训练TensorFlow 2。
TorchDistributor
TorchDistributor是一个开源的模块在PySpark帮助用户做分布式训练PyTorch火花集群,这允许您启动PyTorch培训工作引发的工作。底层,它初始化环境和员工之间的沟通渠道,充分利用了CLI命令torch.distributed.run
工作者节点运行分布式训练。BOB低频彩了解更多关于分布式训练TorchDistributor。