Horovod
Důležité
Horovod a HorovodRunner jsou teď zastaralé. Verze po 15.4 LTS ML nebudou mít tento balíček předinstalovaný. Pro distribuované hluboké učení doporučuje Databricks používat TorchDistributor pro distribuované trénování pomocí PyTorchu nebo tf.distribute.Strategy
rozhraní API pro distribuované trénování pomocí TensorFlow.
Horovod je architektura pro distribuované trénování pro TensorFlow, Keras a PyTorch. Azure Databricks podporuje distribuované trénování hlubokého učení s využitím HorovodRunneru a balíčku horovod.spark
. Pro sparkové aplikace kanálu ML s využitím Keras nebo PyTorchu můžete využít horovod.spark
rozhraní API nástroje pro posouzení.
Požadavky
Databricks Runtime ML.
Použití Horovodu
V následujících článcích najdete obecné informace o distribuovaném hlubokém učení s využitím Horovodu a ukázkové poznámkové bloky, které ilustrují použití HorovodRunneru a balíčku horovod.spark
.
- HorovodRunner: distribuované hluboké učení s využitím Horovodu
- Příklady HorovodRunneru
horovod.spark
: distribuované hluboké učení s využitím Horovodu
Instalace jiné verze Horovodu
Pokud chcete upgradovat nebo downgradovat Horovod z předinstalované verze v clusteru ML, musíte horovod znovu zkompilovat pomocí následujících kroků:
- Odinstalujte aktuální verzi Horovodu.
%pip uninstall -y horovod
- Pokud používáte cluster s akcelerovaným gpu, nainstalujte vývojové knihovny CUDA potřebné ke kompilaci Horovodu. Pokud chcete zajistit kompatibilitu, ponechte verze balíčků beze změny.
%sh
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
dpkg -i ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
apt-get update
apt-get install --allow-downgrades --no-install-recommends -y \
cuda-nvml-dev-11-0=11.0.167-1 \
cuda-nvcc-11-0=11.0.221-1 \
cuda-cudart-dev-11-0=11.0.221-1 \
cuda-libraries-dev-11-0=11.0.3-1 \
libnccl-dev=2.11.4-1+cuda11.5\
libcusparse-dev-11-0=11.1.1.245-1
- Stáhněte si požadovanou verzi zdrojového kódu Horovodu a zkompilujte s příslušnými příznaky. Pokud nepotřebujete žádná rozšíření (například
HOROVOD_WITH_PYTORCH
), můžete tyto příznaky odebrat.
Procesor
%sh
HOROVOD_VERSION=v0.21.3 # Change as necessary
git clone --recursive https://github.com/horovod/horovod.git --branch ${HOROVOD_VERSION}
cd horovod
rm -rf build/ dist/
HOROVOD_WITH_MPI=1 HOROVOD_WITH_TENSORFLOW=1 HOROVOD_WITH_PYTORCH=1 \
# For Databricks Runtime 8.4 ML and below, replace with /databricks/conda/envs/databricks-ml/bin/python
sudo /databricks/python3/bin/python setup.py bdist_wheel
readlink -f dist/horovod-*.whl
GPU
%sh
HOROVOD_VERSION=v0.21.3 # Change as necessary
git clone --recursive https://github.com/horovod/horovod.git --branch ${HOROVOD_VERSION}
cd horovod
rm -rf build/ dist/
HOROVOD_GPU_ALLREDUCE=NCCL HOROVOD_CUDA_HOME=/usr/local/cuda HOROVOD_WITH_MPI=1 HOROVOD_WITH_TENSORFLOW=1 HOROVOD_WITH_PYTORCH=1 \
# For Databricks Runtime 8.4 ML and below, replace with /databricks/conda/envs/databricks-ml-gpu/bin/python
sudo /databricks/python3/bin/python setup.py bdist_wheel
readlink -f dist/horovod-*.whl
- Slouží
%pip
k přeinstalaci Horovodu zadáním cesty kola Pythonu z výstupu předchozího příkazu.0.21.3
je znázorněno v tomto příkladu.
%pip install --no-cache-dir /databricks/driver/horovod/dist/horovod-0.21.3-cp38-cp38-linux_x86_64.whl
Řešení potíží s instalací Horovodu
Problém: Import vyvolání horovod.{torch|tensorflow}
ImportError: Extension horovod.{torch|tensorflow} has not been built
Řešení: Horovod je předinstalovaný ve službě Databricks Runtime ML, takže k této chybě obvykle dochází v případě, že se aktualizace prostředí nepovede. Tato chyba indikuje, že Horovod byl nainstalovaný před požadovanou knihovnou (PyTorch nebo TensorFlow). Vzhledem k tomu, že Horovod se kompiluje během instalace, horovod.{torch|tensorflow}
se nezkompiluje, pokud tyto balíčky nejsou během instalace Horovodu k dispozici.
Pokud chcete tento problém vyřešit, postupujte následovně:
- Ověřte, že jste v clusteru Databricks Runtime ML.
- Ujistěte se, že balíček pro PyTorch nebo TensorFlow je už nainstalovaný.
- Odinstalujte Horovod (
%pip uninstall -y horovod
). - Nainstalujte
cmake
(%pip install cmake
). - Znovu nainstalujte
horovod
.