Alibaba Cloud Container Compute Service (ACS), konteynerler için sunucusuz işlem gücü sağlar. GPU kaynaklarını kullanırken ACS, örneklerde GPU modellerini ve desteklenen sürücü sürümlerini bildirmenize olanak tanır. Bu özellik, altyapı yönetimi ve işletme maliyetlerini önemli ölçüde azaltır. Bu konuda, bir örnek oluştururken GPU modeli ve sürücü sürümünün nasıl belirtileceği açıklanmaktadır.
GPU modelleri
ACS birden fazla GPU modelini destekler. Bu modelleri kapasite rezervasyonları ile kullanabilir veya bir örnek oluştururken isteğe bağlı olarak talep edebilirsiniz. Kullandığınız yöntem hesaplama sınıfına bağlıdır.
-
Yüksek performanslı ağ için GPU
Yalnızca düğüm rezervasyonu talep edebilirsiniz. Rezervasyonları satın aldıktan sonra her birini kümenizle ilişkilendirmeniz gerekir. Her rezervasyon kümede bağımsız bir sanal düğüm olarak çalışır. Daha fazla bilgi için bkz. GPU-HPN Kapasite Rezervasyonu.
-
GPU örnekleri
GPU kaynaklarını isteğe bağlı olarak kullanabilir veya kapasite rezervasyonlarını yapılandırabilirsiniz. Bir örnek oluşturduktan sonra ACS, GPU kaynaklarını kapasite rezervasyonunuzdan otomatik olarak düşer.
Desteklenen GPU modellerinin listesini görüntülemek için bir destek talebi gönderin.
Bir örnek için GPU modeli belirtin
GPU-HPN için yalnızca düğüm rezervasyonu talep edebilirsiniz. Her rezervasyon kümede bir sanal düğüm olarak çalışır. Sanal düğüm etiketi GPU modelini içerir. Örnekleri bu sanal düğüme zamanlamak için düğüm benzeşimi zamanlamasını kullanabilirsiniz. Daha fazla bilgi için bkz. Örnekleri özellik etiketleriyle GPU-HPN sanal düğümlerine zamanlama.
GPU hızlandırmalı örnekler için GPU modelini örneğin labels ve nodeSelector alanlarında açıkça belirtmeniz gerekir.
Hesaplama sınıfı | Protokol alanı | Örnek |
Yüksek performanslı ağ GPU örnek türleri | spec.nodeSelector | |
GPU örnek türü | metadata.labels[ alibabacloud.com/gpu-model-series] | |
Sürücü sürümleri
GPU uygulamaları genellikle NVIDIA tarafından 2007 yılında piyasaya sürülen paralel bilişim platformu ve programlama modeli Compute Unified Device Architecture (CUDA) üzerine kuruludur. Aşağıdaki şekil CUDA mimarisini göstermektedir. CUDA yazılım yığınındaki sürücü API'si ve çalışma zamanı API'si aşağıdaki şekillerde farklılık gösterir.
Sürücü API'si: Tam işlevsellik sunar ancak kullanımı karmaşıktır.
Çalışma Zamanı API'si: Sürücü API'sinin bir kısmını sarar ve bazı sürücü başlatma adımlarını gizler. Kullanımı daha kolaydır.
CUDA Sürücü API'si NVIDIA sürücüsü paketinde yer alır. CUDA Kitaplığı ve CUDA Çalışma Zamanı ise CUDA Toolkit paketinde bulunur.

Bir ACS kümesinde GPU uygulamalarını çalıştırırken aşağıdakilere dikkat edin:
Konteyner görüntünüzde CUDA Toolkit'i yüklemek için NVIDIA tarafından sağlanan CUDA temel görüntülerini kullanın. Bu temel görüntüler zaten CUDA Toolkit'i içerir. Ardından uygulamanızın gerektirdiği belirli CUDA Toolkit sürümüyle eşleşen bir temel görüntü üzerine uygulama görüntünüzü doğrudan oluşturabilirsiniz.
Bir örnek oluştururken sürücü sürümü belirtmek için bkz. Bir örnek için sürücü sürümü belirtme.
CUDA Toolkit ile NVIDIA sürücüleri arasındaki uyumluluk hakkında bilgi için resmi NVIDIA belgesi CUDA Toolkit Sürüm Notları bölümüne bakın.
Uygulamanızın kullandığı CUDA çalışma zamanı API'si sürümü, konteyner görüntüsünü oluşturmak için kullanılan CUDA temel görüntüsünün sürümüyle eşleşmelidir. Örneğin konteyner görüntünüz NVIDIA/CUDA:12.2.0-base-Ubuntu20.04 CUDA temel görüntüsünden oluşturulduysa uygulamanız CUDA çalışma zamanı API'si 12.2.0 sürümünü kullanır.
Bir örnek için sürücü sürümü belirtin
Uygulamanız GPU kaynaklarını kullanırken ACS, örnek etiketlerini kullanarak sürücü sürümü belirtmenize olanak tanır. Aşağıdaki tabloda gösterilen formatı kullanın.
Hesaplama sınıfı | Protokol alanı | Örnek |
GPU Örnekleri | metadata.labels[alibabacloud.com/gpu-driver-version] | |
Yüksek Performanslı Ağlı GPU Örneği | |
GPU sürücü sürümleri
Belirttiğiniz sürücü sürümünün ACS tarafından desteklendiğinden emin olun. Daha fazla bilgi için bkz. Desteklenen GPU sürücü sürümleri.
Örnekler için varsayılan GPU sürücü sürümü
ACS, kuralları kullanarak belirli örnek niteliklerini yapılandırmanıza olanak tanır. Varsayılan sürücü sürümü ihtiyaçlarınızı karşılamıyorsa belirli GPU örnek türlerine farklı GPU sürücü sürümleri atamak için kube-system/acs-profile ConfigMap'e aşağıdaki yapılandırmayı ekleyin. Daha fazla bilgi için bkz. Seçicileri yapılandırma.
Aşağıdaki yapılandırma kümedeki tüm GPU-HPN örnekleri için sürücü sürümünü 1.5.0 olarak ayarlar.
apiVersion: v1
kind: ConfigMap
metadata:
name: acs-profile
namespace: kube-system
data:
# Keep other system configurations unchanged.
selectors: |
[
{
"name": "gpu-hpn-driver",
"objectSelector": {
"matchLabels": {
"alibabacloud.com/compute-class": "gpu-hpn"
}
},
"effect": {
"labels": {
"alibabacloud.com/gpu-driver-version": "1.5.0"
}
}
}
]
Örnek
-
gpu-pod-with-model-and-driver.yamladlı bir dosya oluşturun ve aşağıdaki YAML içeriğini dosyaya ekleyin. Bu dosyagpuhesaplama sınıfına sahip bir örnek tanımlar. Örnekexample-modelmodeline ve535.161.08sürücü sürümüne sahip bir GPU talep eder.apiVersion: v1 kind: Pod metadata: name: gpu-pod-with-model-and-driver labels: # Set the compute class to gpu. alibabacloud.com/compute-class: "gpu" # Set the GPU model to example-model, such as T4. alibabacloud.com/gpu-model-series: "example-model" # Set the driver version to 535.161.08. alibabacloud.com/gpu-driver-version: "535.161.08" spec: containers: - image: registry.cn-beijing.aliyuncs.com/acs/tensorflow-mnist-sample:v1.5 name: tensorflow-mnist command: - sleep - infinity resources: requests: cpu: 1 memory: 1Gi nvidia.com/gpu: 1 limits: cpu: 1 memory: 1Gi nvidia.com/gpu: 1 -
gpu-pod-with-model-and-driver.yamldosyasını kümenize dağıtmak için aşağıdaki komutu çalıştırın.kubectl apply -f gpu-pod-with-model-and-driver.yaml -
Örnek durumunu kontrol etmek için aşağıdaki komutu çalıştırın.
kubectl get podBeklenen çıktı:
NAME READY STATUS RESTARTS AGE gpu-pod-with-model-and-driver 1/1 Running 0 87s -
Örnekteki GPU bilgilerini kontrol etmek için aşağıdaki komutu çalıştırın.
NotÖrnekteki
/usr/bin/nvidia-smikomutu örnek konteyner görüntüsünde önceden yapılandırılmıştır.kubectl exec -it gpu-pod-with-model-and-driver -- /usr/bin/nvidia-smiBeklenen çıktı:
+---------------------------------------------------------------------------------------+ | NVIDIA-SMI xxx.xxx.xx Driver Version: 535.161.08 CUDA Version: xx.x | |-----------------------------------------+----------------------+----------------------+ ... |=========================================+======================+======================| | x NVIDIA example-model xx | xxxxxxxx:xx:xx.x xxx | x | | xxx xxx xx xxx / xxxx | xxxx / xxx| x% xxxxxxxx| | | | xxx | +-----------------------------------------+----------------------+----------------------+Çıktı örnek tanımındaki etiketlerle eşleşen
example-modelGPU modelini ve535.161.08sürücü sürümünü gösterir.ÖnemliGösterilen çıktı yalnızca referans amaçlıdır. Gerçek sonuçlar ortamınıza bağlı olarak değişiklik gösterebilir.