Horovod
Horovod と HorovodRunner は非推奨になりました。 15.4 LTS ML より後のリリースには、このパッケージはプリインストールされません。 分散ディープラーニングの場合、Databricks では、PyTorch による分散トレーニングに TorchDistributor を使用するか、TensorFlow による分散トレーニングに tf.distribute.Strategy
API を使用することをお勧めします。
Horovod は、TensorFlow、Keras、PyTorch 用の分散トレーニング フレームワークです。 Databricks は、HorovodRunner と horovod.spark
パッケージを使用した分散型ディープラーニング トレーニングをサポートしています。 Keras または PyTorch を使用する Spark ML パイプライン アプリケーションの場合は、 horovod.spark
推定 API を使用できます。
必要条件
Databricks Runtime ML。
Horovodを使用する
次の記事では、 とHorovod パッケージの使用方法を示す とサンプル ノートブックを使用した分散ディープラーニングに関する一般的な情報を提供します。HorovodRunnerhorovod.spark
- HorovodRunner:Horovodによる分散ディープラーニング
- HorovodRunner の例
horovod.spark
: distributed ディープラーニング with Horovod
Horovodの別のバージョンをインストールする
HorovodMLクラスターにプリインストールされているバージョンから をアップグレードまたはダウングレードするには、次の手順に従ってHorovod を再コンパイルする必要があります。
- 現在のバージョンのHorovodをアンインストールします。
%pip uninstall -y horovod
- GPU アクセラレーション クラスターを使用している場合は、CUDAHorovod.互換性を確保するため、パッケージのバージョンは変更しないでください。
%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
- Horovodのソースコードの目的のバージョンをダウンロードし、適切なフラグを使用してコンパイルします。拡張機能 (
HOROVOD_WITH_PYTORCH
など) が必要ない場合は、これらのフラグを削除できます。
- CPU
- 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_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
%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
%pip
HorovodPython wheelを使用して、前のコマンドの出力から パスを指定して を再インストールします。この例では、0.21.3
を示しています。
%pip install --no-cache-dir /databricks/driver/horovod/dist/horovod-0.21.3-cp38-cp38-linux_x86_64.whl
Horovod インストールのトラブルシューティング
問題 : horovod.{torch|tensorflow}
のインポートでレイズが発生する ImportError: Extension horovod.{torch|tensorflow} has not been built
ソリューション : Horovod Databricks Runtime MLにプリインストールされているため、通常、このエラーは環境の更新がうまくいかない場合に発生します。 このエラーは、必要なライブラリ (PyTorch または TensorFlow) の前に Horovod がインストールされたことを示しています。Horovod はインストール中にコンパイルされるため、Horovod のインストール中にこれらのパッケージが存在しない場合、 horovod.{torch|tensorflow}
はコンパイルされません。この問題を解決するには、次の手順を実行します。
- Databricks Runtime MLクラスターを使用していることを確認します。
- PyTorch または TensorFlow パッケージがすでにインストールされていることを確認します。
- Horovod (
%pip uninstall -y horovod
) をアンインストールします。 cmake
(%pip install cmake
) をインストールします。horovod
を再インストールします。