Clusters compatibles GPU GPU-enabled clusters

Notes

Certains types d’instances compatibles GPU sont en version bêta et sont marqués comme tels dans la liste déroulante lorsque vous sélectionnez les types de pilote et de travail lors de la création du cluster.Some GPU-enabled instance types are in Beta and are marked as such in the drop-down list when you select the driver and worker types during cluster creation.

Vue d’ensembleOverview

Azure Databricks prend en charge les clusters accélérés avec des unités de traitement graphique (GPU).Azure Databricks supports clusters accelerated with graphics processing units (GPUs). Cet article explique comment créer des clusters avec des instances compatibles GPU et décrit les bibliothèques et les pilotes GPU installés sur ces instances.This article describes how to create clusters with GPU-enabled instances and describes the GPU drivers and libraries installed on those instances.

Pour en savoir plus sur l’apprentissage profond sur les clusters GPU, consultez formation profonde.To learn more about deep learning on GPU-enabled clusters, see Deep learning.

Créer un cluster GPUCreate a GPU cluster

La création d’un cluster GPU est similaire à la création d’un cluster Spark (voir clusters).Creating a GPU cluster is similar to creating any Spark cluster (See Clusters). Gardez à l’esprit les points suivants :You should keep in mind the following:

  • La version de Databricks Runtime doit être une version compatible GPU, telle que Runtime 6,6 ml (GPU, Scala 2,11, Spark 2.4.5).The Databricks Runtime Version must be a GPU-enabled version, such as Runtime 6.6 ML (GPU, Scala 2.11, Spark 2.4.5).
  • Le type de Worker et le type de pilote doivent être des types d’instance GPU.The Worker Type and Driver Type must be GPU instance types.
  • Pour les flux de travail sur un seul ordinateur sans Spark, vous pouvez définir le nombre de Workers sur zéro.For single-machine workflows without Spark, you can set the number of workers to zero.

Azure Databricks prend en charge la série de types d’instances NC : NC12 et NC24 et la série de types d’instances NCv3 : NC6s_v3, NC12s_v3et NC24s_v3.Azure Databricks supports the NC instance type series: NC12 and NC24 and the NCv3 instance type series: NC6s_v3, NC12s_v3, and NC24s_v3. Consultez Azure Databricks tarification pour obtenir une liste à jour des types d’instances GPU pris en charge et de leurs régions de disponibilité.See Azure Databricks Pricing for an up-to-date list of supported GPU instance types and their availability regions. Votre déploiement de Azure Databricks doit résider dans une région prise en charge pour lancer des clusters compatibles GPU.Your Azure Databricks deployment must reside in a supported region to launch GPU-enabled clusters.

Planification de GPUGPU scheduling

Databricks Runtime 7,0 ML et versions ultérieures prennent en charge la planification compatible GPU à partir de Apache Spark 3,0.Databricks Runtime 7.0 ML and above support GPU-aware scheduling from Apache Spark 3.0. Azure Databricks le préconfigure sur les clusters GPU pour vous.Azure Databricks preconfigures it on GPU clusters for you.

spark.task.resource.gpu.amount est la seule configuration Spark relative à la planification sensible au GPU que vous devrez peut-être modifier.spark.task.resource.gpu.amount is the only Spark config related to GPU-aware scheduling that you might need to change. La configuration par défaut utilise un GPU par tâche, ce qui est idéal pour les charges de travail d’inférence distribuées et la formation distribuée, si vous utilisez tous les nœuds GPU.The default configuration uses one GPU per task, which is ideal for distributed inference workloads and distributed training, if you use all GPU nodes. Si vous souhaitez effectuer une formation distribuée sur un sous-ensemble de nœuds, ce qui permet de réduire la surcharge de communication pendant la formation distribuée, Databricks recommande spark.task.resource.gpu.amount de définir le nombre de GPU par nœud Worker dans la configuration du cluster Spark.If you want to do distributed training on a subset of nodes, which helps reduce communication overhead during distributed training, Databricks recommends setting spark.task.resource.gpu.amount to the number of GPUs per worker node in the cluster Spark configuration.

Pour les tâches PySpark, Azure Databricks remappe automatiquement les GPU (s) attribués aux index 0, 1,....For PySpark tasks, Azure Databricks automatically remaps assigned GPU(s) to indices 0, 1, …. Dans la configuration par défaut qui utilise un GPU par tâche, votre code peut simplement utiliser le GPU par défaut sans vérifier le GPU qui est affecté à la tâche.Under the default configuration that uses one GPU per task, your code can simply use the default GPU without checking which GPU is assigned to the task. Si vous définissez plusieurs GPU par tâche, par exemple 4, votre code peut supposer que les index des GPU attribués sont toujours 0, 1, 2 et 3.If you set multiple GPUs per task, for example 4, your code can assume that the indices of the assigned GPUs are always 0, 1, 2, and 3. Si vous avez besoin des index physiques des GPU attribués, vous pouvez les récupérer à partir de la CUDA_VISIBLE_DEVICES variable d’environnement.If you do need the physical indices of the assigned GPUs, you can get them from the CUDA_VISIBLE_DEVICES environment variable.

Si vous utilisez Scala, vous pouvez récupérer les index des GPU affectés à la tâche à partir de TaskContext.resources().get("gpu") .If you use Scala, you can get the indices of the GPUs assigned to the task from TaskContext.resources().get("gpu").

Pour les versions Databricks Runtime inférieures à 7,0, afin d’éviter les conflits entre plusieurs tâches Spark tentant d’utiliser le même GPU, Azure Databricks configure automatiquement les clusters GPU de sorte qu’il y ait au plus une tâche en cours d’exécution par nœud.For Databricks Runtime releases below 7.0, in order to avoid conflicts among multiple Spark tasks trying to use the same GPU, Azure Databricks automatically configures GPU clusters such that there is at most one running task per node. Dans ce cas, la tâche peut utiliser tous les GPU sur le nœud sans entrer en conflit avec d’autres tâches.In this case, the task can use all GPUs on the node without running into conflicts with other tasks.

Pilote GPU NVIDIA, CUDA et cuDNN NVIDIA GPU driver, CUDA, and cuDNN

Azure Databricks installe le pilote NVIDIA et les bibliothèques nécessaires à l’utilisation des GPU sur les instances de Worker et de pilote Spark :Azure Databricks installs the NVIDIA driver and libraries required to use GPUs on Spark driver and worker instances:

  • CUDA Toolkit, installé sous /usr/local/cuda .CUDA Toolkit, installed under /usr/local/cuda.
  • cuDNN: bibliothèque de réseau neuronal profond NVIDIA CUDA.cuDNN: NVIDIA CUDA Deep Neural Network Library.
  • NCCL: bibliothèque de communications collectives NVIDIA.NCCL: NVIDIA Collective Communications Library.

La version du pilote NVIDIA incluse est 440,64.The version of the NVIDIA driver included is 440.64. Pour les versions des bibliothèques incluses, consultez les notes de publication correspondant à la version de Databricks Runtime spécifique que vous utilisez.For the versions of the libraries included, see the release notes for the specific Databricks Runtime version you are using.

Notes

Ce logiciel contient le code source fourni par NVIDIA Corporation.This software contains source code provided by NVIDIA Corporation. Plus précisément, pour prendre en charge les GPU, Azure Databricks comprend le code des exemples CUDA.Specifically, to support GPUs, Azure Databricks includes code from CUDA Samples.

Contrat de licence utilisateur final (CLUF) NVIDIANVIDIA End User License Agreement (EULA)

Lorsque vous sélectionnez une « version de Databricks Runtime » compatible GPU dans Azure Databricks, vous acceptez implicitement les conditions générales décrites dans le CLUF NVIDIA en ce qui concerne les bibliothèques CUDA, CuDNN et Tesla, ainsi que le contrat de licence utilisateur final NVIDIA (avec supplément NCCL) pour la bibliothèque NCCL.When you select a GPU-enabled “Databricks Runtime Version” in Azure Databricks, you implicitly agree to the terms and conditions outlined in the NVIDIA EULA with respect to the CUDA, cuDNN, and Tesla libraries, and the NVIDIA End User License Agreement (with NCCL Supplement) for the NCCL library.

Databricks Container Services sur clusters GPUDatabricks Container Services on GPU clusters

Important

Cette fonctionnalité est disponible en préversion publique.This feature is in Public Preview.

Vous pouvez utiliser les services de conteneur Databricks sur des clusters avec des GPU pour créer des environnements d’apprentissage profond portables avec des bibliothèques personnalisées.You can use Databricks Container Services on clusters with GPUs to create portable deep learning environments with customized libraries. Pour obtenir des instructions, consultez personnaliser des conteneurs avec les services de conteneur Databricks .Refer to Customize containers with Databricks Container Services for instructions.

L’Databricks Runtime hub d’ancrage contient des exemples d’images de base avec la fonctionnalité GPU.The Databricks Runtime Docker Hub contains example base images with GPU capability. Les fichiers dockerfile utilisés pour générer ces images se trouvent dans le référentiel d’exemples de conteneurs GitHub, qui contient également des détails sur les exemples d’images et sur la manière de les personnaliser.The Dockerfiles used to generate these images are located in the example containers GitHub repository, which also has details on what the example images provide, and how to customize them.

Lorsque vous créez des images personnalisées pour les clusters GPU, vous ne pouvez pas modifier la version du pilote NVIDIA.When creating custom images for GPU clusters, you cannot change the NVIDIA driver version. La version du pilote NVIDIA doit correspondre à la version du pilote sur l’ordinateur hôte, qui est 440,64.The NVIDIA driver version must match the driver version on the host machine, which is 440.64. Cette version ne prend pas en charge CUDA 11.This version does not support CUDA 11.