Share via


GPU özellikli işlem

Not

Bazı GPU özellikli örnek türleri Beta sürümündedir ve işlem oluşturma sırasında sürücü ve çalışan türlerini seçtiğinizde açılan listede bu şekilde işaretlenir.

Genel bakış

Azure Databricks, grafik işleme birimleri (GPU) ile işlem hızlandırmayı destekler. Bu makalede GPU özellikli örneklerle işlem oluşturma ve bu örneklerde yüklü GPU sürücüleri ve kitaplıkları açıklanmaktadır.

GPU özellikli işlemde derin öğrenme hakkında daha fazla bilgi edinmek için bkz . Derin öğrenme.

GPU işlem oluşturma

GPU işlemi oluşturmak, herhangi bir işlem oluşturmaya benzer. Aşağıdakileri aklınızda bulundurmanız gerekir:

  • Databricks Runtime Sürümü, Çalışma Zamanı 13.3 LTS ML (GPU, Scala 2.12.15, Spark 3.4.1) gibi GPU özellikli bir sürüm olmalıdır.
  • Çalışan Türü ve Sürücü Türü GPU örneği türleri olmalıdır.

Desteklenen örnek türleri

Azure Databricks aşağıdaki örnek türlerini destekler:

  • NC örnek türü serisi: Standard_NC12, Standard_NC24
  • NC v3 örnek türü serisi: Standard_NC6s_v3, Standard_NC12s_v3, Standard_NC24s_v3
  • NC T4 v3 örnek türü serisi: Standard_NC4as_T4_v3, Standard_NC8as_T4_v3, Standard_NC16as_T4_v3, Standard_NC64as_T4_v3
  • NC A100 v4 örnek türü serisi: Standard_NC24ads_A100_v4, Standard_NC48ads_A100_v4, Standard_NC96ads_A100_v4
  • ND A100 v4 örnek türü serisi: Standard_ND96asr_v4
  • NV A10 v5 örnek türü serisi: Standard_NV36ads_A10_v5, Standard_NV36adms_A10_v5, Standard_NV72ads_A10_v5
    • Standard_NV72ads_A10_v5 PyTorch 2.0+ ile uyumlu değildir ve çoklu GPU iş yüklerini çalıştırırken CUDA hatası oluşturur. Databricks Runtime ML 14.0 ve üzeri PyTorch 2.0+'ı önceden yüklediğinden, Databricks Runtime ML 13.x kullanmanızı veya çok GPU'lu iş yüklerinde PyTorch çalıştırıyorsanız el ile çalıştırmanızı pip install torch==1.13.1 öneririz.

Desteklenen GPU örneği türlerinin ve kullanılabilirlik bölgelerinin güncel listesi için bkz . Azure Databricks Fiyatlandırması . GPU özellikli işlemi başlatmak için Azure Databricks dağıtımınızın desteklenen bir bölgede bulunması gerekir.

GPU zamanlaması

Databricks Runtime, Apache Spark 3.0'dan GPU kullanan zamanlamayı destekler. Azure Databricks bunu GPU işlemde önceden yapılandırıyor.

GPU zamanlaması tek düğümlü işlemde etkin değildir.

spark.task.resource.gpu.amount , GPU kullanan zamanlamayla ilgili değiştirmeniz gerekebilecek tek Spark yapılandırmasıdır. Varsayılan yapılandırma, tüm GPU düğümlerini kullanıyorsanız dağıtılmış çıkarım iş yükleri ve dağıtılmış eğitim için ideal olan görev başına bir GPU kullanır. Dağıtılmış eğitim sırasında iletişim yükünü azaltmaya yardımcı olan bir düğüm alt kümesi üzerinde dağıtılmış eğitim yapmak için Databricks, işlem Spark yapılandırmasında çalışan düğümü başına GPU sayısını ayarlamanızı spark.task.resource.gpu.amount önerir.

Azure Databricks, PySpark görevleri için atanan GPU'ları otomatik olarak 0, 1, ... dizinleriyle yeniden eşler. Görev başına bir GPU kullanan varsayılan yapılandırma altında kodunuz, göreve hangi GPU'nun atandığını denetlemeden varsayılan GPU'ları kullanabilir. Görev başına birden çok GPU ayarlarsanız (örneğin 4), kodunuz atanan GPU'ların dizinlerinin her zaman 0, 1, 2 ve 3 olduğunu varsayabilir. Atanan GPU'ların fiziksel dizinlerine ihtiyacınız varsa, bunları ortam değişkeninden CUDA_VISIBLE_DEVICES alabilirsiniz.

Scala kullanıyorsanız, göreve atanan GPU'ların dizinlerini kaynağından TaskContext.resources().get("gpu")alabilirsiniz.

Databricks Runtime 7.0'ın altındaki sürümlerde, aynı GPU'yı kullanmaya çalışan birden çok Spark görevi arasındaki çakışmaları önlemek için Azure Databricks, düğüm başına en fazla bir çalışan görev olacak şekilde GPU işlemini otomatik olarak yapılandırır. Bu şekilde görev, diğer görevlerle çakışmalar yaşamadan düğümdeki tüm GPU'ları kullanabilir.

NVIDIA GPU sürücüsü, CUDA ve cuDNN

Azure Databricks, Spark sürücüsünde ve çalışan örneklerinde GPU'ları kullanmak için gereken NVIDIA sürücüsünü ve kitaplıklarını yükler:

  • CUDA Araç Seti, altında /usr/local/cudayüklüdür.
  • cuDNN: NVIDIA CUDA Derin Sinir Ağı Kitaplığı.
  • NCCL: NVIDIA Kolektif İletişim Kitaplığı.

Dahil edilen NVIDIA sürücüsünün sürümü CUDA 11.0'ı destekleyen 535.54.03 sürümüdür. NV A10 v5 örnek türü serisi için, dahil edilen NVIDIA sürücüsünün sürümü şeklindedir525.105.17.

Dahil edilen kitaplıkların sürümleri için, kullandığınız belirli Databricks Runtime sürümünün sürüm notlarına bakın.

Not

Bu yazılım, NVIDIA Corporation tarafından sağlanan kaynak kodunu içerir. Özellikle GPU'ları desteklemek için Azure Databricks CUDA Örneklerinden kod içerir.

NVIDIA Son Kullanıcı Lisans Sözleşmesi (EULA)

Azure Databricks'te GPU özellikli bir "Databricks Runtime Sürümü" seçtiğinizde CUDA, cuDNN ve Tesla kitaplıkları ve NCCL kitaplığı için NVIDIA Son Kullanıcı Lisans Sözleşmesi (NCCL Eki ile) ile ilgili olarak NVIDIA EULA'da belirtilen hüküm ve koşulları örtük olarak kabul etmiş olursunuz.

GPU işlemde Databricks Container Services

Önemli

Bu özellik Genel Önizlemededir.

Özelleştirilmiş kitaplıklarla taşınabilir derin öğrenme ortamları oluşturmak için GPU'larla işlem üzerinde Databricks Container Services'i kullanabilirsiniz. Yönergeler için bkz . Databricks Container Service ile kapsayıcıları özelleştirme.

GPU işlem için özel görüntüler oluşturmak için GPU için Databricks Runtime ML yerine standart bir çalışma zamanı sürümü seçmeniz gerekir. Kendi Docker kapsayıcınızı kullan'ı seçtiğinizde standart çalışma zamanı sürümüne sahip GPU işlemini seçebilirsiniz. GPU için özel görüntüler, GPU için Databricks Runtime ML'den farklı olan resmi CUDA kapsayıcılarını temel alır.

GPU işlemi için özel görüntüler oluşturduğunuzda, ana makinedeki sürücü sürümüyle eşleşmesi gerektiğinden NVIDIA sürücü sürümünü değiştiremezsiniz.

databricksruntimeDocker Hub, GPU özelliğine sahip örnek temel görüntüler içerir. Bu görüntüleri oluşturmak için kullanılan Dockerfile'lar, örnek görüntülerin ne sağladığına ve nasıl özelleştirileceğine ilişkin ayrıntıları da içeren github örnek kapsayıcıları deposunda bulunur.