Sdílet prostřednictvím


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.

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ů:

  1. Odinstalujte aktuální verzi Horovodu.
%pip uninstall -y horovod
  1. 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
  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
  1. 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ě:

  1. Ověřte, že jste v clusteru Databricks Runtime ML.
  2. Ujistěte se, že balíček pro PyTorch nebo TensorFlow je už nainstalovaný.
  3. Odinstalujte Horovod (%pip uninstall -y horovod).
  4. Nainstalujte cmake (%pip install cmake).
  5. Znovu nainstalujte horovod.