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.
- 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ı
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/cuda
yü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.
databricksruntime
Docker 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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin