Horovod
Belangrijk
Horovod en HorovodRunner zijn nu afgeschaft. Releases na 15.4 LTS ML hebben dit pakket niet vooraf geïnstalleerd. Voor gedistribueerde deep learning raadt Databricks aan om TorchDistributor te gebruiken voor gedistribueerde training met PyTorch of de tf.distribute.Strategy
API voor gedistribueerde training met TensorFlow.
Horovod is een framework voor gedistribueerde training voor TensorFlow, Keras en PyTorch. Azure Databricks ondersteunt gedistribueerde Deep Learning-training met behulp van HorovodRunner en het pakket horovod.spark
. Voor Spark ML-pijplijntoepassing met Keras of PyTorch kunt u de estimator-API horovod.spark
gebruiken.
Vereisten
Databricks Runtime ML.
Horovod gebruiken
De volgende artikelen bieden algemene informatie over gedistribueerde Deep Learning met Horovod en voorbeeldnotebooks waarin wordt gedemonstreerd hoe u HorovodRunner en het pakket horovod.spark
gebruikt.
- HorovodRunner: gedistribueerd Deep Learning met Horovod
- HorovodRunner-voorbeelden
horovod.spark
: gedistribueerd Deep Learning met Horovod
Een andere versie van Horovod installeren
Als u Horovod wilt upgraden of downgraden van de vooraf geïnstalleerde versie in uw ML-cluster, moet u Horovod opnieuw compileren door de volgende stappen uit te voeren:
- Verwijder de huidige versie van Horovod.
%pip uninstall -y horovod
- Als u een met GPU versneld cluster gebruikt, installeert u CUDA-ontwikkelbibliotheken die nodig zijn om Horovod te compileren. Laat de pakketversies ongewijzigd om compatibiliteit te garanderen.
%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
- Download de gewenste versie van de broncode van Horovod en compileer met de juiste vlaggen. Als u geen extensies nodig hebt (zoals
HOROVOD_WITH_PYTORCH
), kunt u deze vlaggen verwijderen.
CPU
%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
- Gebruik
%pip
dit om Horovod opnieuw te installeren door het Python-wielpad op te geven uit de uitvoer van de vorige opdracht.0.21.3
wordt weergegeven in dit voorbeeld.
%pip install --no-cache-dir /databricks/driver/horovod/dist/horovod-0.21.3-cp38-cp38-linux_x86_64.whl
Problemen met de installatie van Horovod oplossen
Probleem: Het importeren horovod.{torch|tensorflow}
treedt op ImportError: Extension horovod.{torch|tensorflow} has not been built
Oplossing: Horovod is vooraf geïnstalleerd op Databricks Runtime ML, dus deze fout treedt meestal op als het bijwerken van een omgeving fout gaat. De fout geeft aan dat Horovod is geïnstalleerd voor een vereiste bibliotheek (PyTorch of TensorFlow). Aangezien Horovod tijdens de installatie wordt gecompileerd, wordt horovod.{torch|tensorflow}
niet gecompileerd als die pakketten niet aanwezig zijn tijdens de installatie van Horovod.
Volg deze stappen om het probleem op te lossen:
- Controleer of u zich in een Databricks Runtime ML-cluster bevindt.
- Zorg ervoor dat het PyTorch- of TensorFlow-project al is geïnstalleerd.
- Verwijder Horovod (
%pip uninstall -y horovod
). - Installeer
cmake
(%pip install cmake
). - Installeer
horovod
opnieuw.