Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Horovod et HorovodRunner sont désormais déconseillés. Les versions postérieures à la 15.4 LTS ML n'auront pas ce package préinstallé. Pour le Deep Learning distribué, Databricks recommande d’utiliser TorchDistributor pour l’apprentissage distribué avec PyTorch ou l’API tf.distribute.Strategy pour l’apprentissage distribué avec TensorFlow.
Horovod est un framework d’entraînement distribué pour TensorFlow, Keras et PyTorch. Azure Databricks prend en charge l’entraînement de deep learning distribué avec HorovodRunner et le package horovod.spark. Pour les applications de pipeline Spark ML utilisant Keras ou PyTorch, vous pouvez utiliser l'horovod.sparkAPI d'estimateur.
Spécifications
Databricks Runtime ML.
Utiliser Horovod
Les articles suivants fournissent des informations générales sur le deep learning distribué avec Horovod et des exemples de notebook montrant comment utiliser HorovodRunner et le package horovod.spark.
- HorovodRunner : deep learning distribué avec Horovod
- Exemples de HorovodRunner
-
horovod.spark: deep learning distribué avec Horovod
Installer une autre version de Horovod
Pour passer à une version supérieure ou antérieure de Horovod à partir de la version préinstallée dans votre cluster ML, vous devez recompiler Horovod en suivant ces étapes :
- Désinstallez la version actuelle de Horovod.
%pip uninstall -y horovod
- Si vous utilisez un cluster accéléré par GPU, installez les bibliothèques de développement CUDA requises pour compiler Horovod. Pour garantir la compatibilité, laissez les versions du package inchangées.
%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
- Téléchargez la version souhaitée du code source d’Horovod et compilez avec les indicateurs appropriés. Si vous n’avez pas besoin d’une des extensions (par exemple
HOROVOD_WITH_PYTORCH), vous pouvez supprimer ces indicateurs.
UC
%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
processeur graphique
%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
- Permet
%pipde réinstaller Horovod en spécifiant le chemin de roue Python à partir de la sortie de la commande précédente.0.21.3est illustré dans cet exemple.
%pip install --no-cache-dir /databricks/driver/horovod/dist/horovod-0.21.3-cp38-cp38-linux_x86_64.whl
Résoudre les problèmes d’installation Horovod
Problème : l’importation de horovod.{torch|tensorflow} lève ImportError: Extension horovod.{torch|tensorflow} has not been built
Solution : Horovod est préinstallé sur Databricks Runtime ML, donc cette erreur se produit généralement si la mise à jour d’un environnement rencontre un problème. L’erreur indique que Horovod a été installé avant une bibliothèque requise (PyTorch ou TensorFlow). Étant donné que Horovod est compilé pendant l’installation, horovod.{torch|tensorflow} ne sera pas compilé si ces packages ne sont pas présents pendant l’installation d’Horovod.
Pour résoudre ce problème, effectuez les étapes suivantes :
- Vérifiez que vous êtes sur un cluster Databricks Runtime ML.
- Assurez-vous que le package PyTorch ou TensorFlow est déjà installé.
- Désinstallez Horovod (
%pip uninstall -y horovod). - Installez
cmake(%pip install cmake). - Réinstallez
horovod.