Öğretici: GPU için IoT Edge modülünü yapılandırma, bağlama ve doğrulama
Şunlar için geçerlidir: IoT Edge 1.5
Önemli
IoT Edge 1.5 LTS desteklenen sürümdür. IoT Edge 1.4 LTS, 12 Kasım 2024 itibarıyla kullanım ömrü sona erer. Önceki bir sürümdeyseniz bkz. IoT Edge’i güncelleştirme.
Bu öğreticide GPU özellikli bir sanal makine (VM) oluşturma gösterilmektedir. VM'de, modüllerinden birinden GPU'nuza iş ayıran bir IoT Edge cihazının nasıl çalıştırıldığını göreceksiniz.
Azure portalını, Azure Cloud Shell'i ve VM'nizin komut satırını kullanarak şunları yapacağız:
- GPU özellikli bir VM oluşturma
- VM'ye NVIDIA sürücü uzantısını yükleme
- Gpu'ya iş ayırmak için IoT Edge cihazında modül yapılandırma
Önkoşullar
Azure hesabı - ücretsiz hesap oluşturma
Azure IoT Hub - IoT Hub oluşturma
Azure IoT Edge cihazı
Henüz bir IoT Edge cihazınız yoksa ve hızlı bir şekilde bir cihaz oluşturmanız gerekiyorsa aşağıdaki komutu çalıştırın. Azure portalında bulunan Azure Cloud Shell'i kullanın. için
<DEVICE-NAME>
yeni bir cihaz adı oluşturun ve IoT'yi<IOT-HUB-NAME>
kendi cihaz adınızla değiştirin.az iot hub device-identity create --device-id <YOUR-DEVICE-NAME> --edge-enabled --hub-name <YOUR-IOT-HUB-NAME>
IoT Edge cihazı oluşturma hakkında daha fazla bilgi için bkz . Hızlı Başlangıç: İlk IoT Edge modülünüzü bir sanal Linux cihazına dağıtma. Bu öğreticinin ilerleyen bölümlerinde IoT Edge cihazımıza bir NVIDIA modülü ekleyeceğiz.
GPU için iyileştirilmiş sanal makine oluşturma
GPU için iyileştirilmiş bir sanal makine (VM) oluşturmak için doğru boyutu seçmek önemlidir. Tüm VM boyutları GPU işlemeye uygun değildir. Ayrıca, farklı iş yükleri için farklı VM boyutları vardır. Daha fazla bilgi için bkz. GPU için iyileştirilmiş sanal makine boyutları veya Sanal makineler seçicisini deneyin.
GitHub'da Azure Resource Manager (ARM) şablonuyla bir IoT Edge VM oluşturalım ve gpu için iyileştirilmiş olacak şekilde yapılandıralım.
GitHub'da IoT Edge VM dağıtım şablonuna gidin: Azure/iotedge-vm-deploy.
Azure portalında sizin için özel vm oluşturma işlemini başlatan Azure'a Dağıt düğmesini seçin.
Özel dağıtım alanlarını Azure kimlik bilgileriniz ve kaynaklarınız ile doldurun:
Özellik Açıklama veya örnek değer Abonelik Azure hesabı aboneliğinizi seçin. Kaynak grubu Azure kaynak grubunuzu ekleyin. Bölge East US
GPU VM'leri tüm bölgelerde kullanılamaz.Dns Etiketi Ön Eki VM'niz için bir ad oluşturun. Yönetici Kullanıcı Adı adminUser
Alternatif olarak, kendi kullanıcı adınızı oluşturun.Cihaz Bağlantı Dizesi IoT Edge cihazınızdan bağlantı dizesi kopyalayın ve buraya yapıştırın. VM boyutu Standard_NV6
Authentication type Parolayı veya SSH Ortak Anahtarı'nı seçin, ardından gerekirse bir parola veya anahtar çifti adı oluşturun. İpucu
Her bölgede hangi GPU VM'lerinin desteklendiğine bakın: Bölgeye göre kullanılabilir ürünler.
Azure aboneliğinizin izin verdiği bölgeyi denetlemek için Azure portalından bu Azure komutunu deneyin. in
N
,Standard_N
GPU özellikli bir VM olduğu anlamına gelir.az vm list-skus --location <YOUR-REGION> --size Standard_N --all --output table
Alttaki Gözden Geçir + oluştur düğmesini ve ardından Oluştur düğmesini seçin. Dağıtımın tamamlanması bir dakika sürebilir.
NVIDIA uzantısını yükleme
GPU için iyileştirilmiş bir VM'miz olduğuna göre Şimdi Azure portalını kullanarak VM'ye NVIDIA uzantısını yükleyelim.
Vm'nizi Azure portalında açın ve sol menüden Uzantılar + uygulamalar'ı seçin.
Ekle'yi seçin ve listeden NVIDIA GPU Sürücü Uzantısı'nı ve ardından İleri'yi seçin.
Gözden geçir ve oluştur'u ve ardından Oluştur'u seçin. Dağıtımın tamamlanması 30 dakika kadar sürebilir.
Azure portalında yüklemeyi onaylamak için VM'nizdeki Uzantılar + uygulamalar menüsüne dönün. adlı
NvidiaGpuDriverLinux
yeni uzantı uzantılar listenizde olmalı ve Durum bölümünde Sağlama başarılı ifadesini göstermelidir.Azure Cloud Shell kullanarak yüklemeyi onaylamak için uzantılarınızı listelemek için bu komutu çalıştırın.
<>
Yer tutucuları değerlerinizle değiştirin:az vm extension list --resource-group <YOUR-RESOURCE-GROUP> --vm-name <YOUR-VM-NAME> -o table
Bir NVIDIA modülü ile olarak da bilinen
nvidia-smi
NVIDIA Sistem Yönetimi Arabirimi programını kullanacağız.Cihazınızdan
nvidia-smi
paketi Ubuntu sürümünüz temelinde yükleyin. Bu öğretici için Ubuntu 20.04 sürümünü yükleyeceğiznvidia-utils-515
. Yüklemede istendiğinde öğesini seçinY
.sudo apt install nvidia-utils-515
Tüm
nvidia-smi
sürümlerin listesi aşağıdadır. Önce yüklemeden çalıştırırsanıznvidia-smi
, bu liste konsolunuzda yazdırılır.Yüklemeden sonra, yüklendiğini onaylamak için şu komutu çalıştırın:
nvidia-smi
Bu tabloya benzer bir onay tablosu görüntülenir.
Not
NVIDIA uzantısı, NVIDIA sürücülerini yüklemenin basitleştirilmiş bir yoludur, ancak daha fazla özelleştirmeye ihtiyacınız olabilir. N serisi VM'lerde özel yüklemeler hakkında daha fazla bilgi için bkz . Linux çalıştıran N serisi VM'lere NVIDIA GPU sürücüleri yükleme.
GPU hızlandırma ile modül etkinleştirme
IoT Edge modülünü etkinleştirmek için farklı yollar vardır ve bu sayede işlem için GPU kullanır. Bunun bir yolu, cihazınızdaki mevcut bir IoT Edge modülünü GPU hızlandırmalı olacak şekilde yapılandırmaktır. Bir diğer yol da önceden yüklenmiş bir kapsayıcı modülü kullanmaktır. Örneğin, GPU için iyileştirilmiş NVIDIA DIGITS modülü. Şimdi her iki yöntemin de nasıl yapıldığını görelim.
DeviceRequests kullanarak mevcut modülde GPU'yu etkinleştirme
IoT Edge cihazınızda mevcut bir modül varsa, dağıtım bildiriminde createOptions
kullanarak DeviceRequests
bir yapılandırma eklemek modülü GPU için iyileştirilmiş hale getirir. Mevcut bir modülü yapılandırmak için bu adımları izleyin.
Azure portalında IoT Hub'ınıza gidin ve Cihaz yönetimi menüsünün altında Cihazlar'ı seçin.
IoT Edge cihazınızı seçerek açın.
Üst kısımdaki Modülleri ayarla sekmesini seçin.
IoT Edge Modülleri listesinde GPU kullanımı için etkinleştirmek istediğiniz modülü seçin.
Yan panel açılır ve Kapsayıcı Oluşturma Seçenekleri sekmesini seçin.
Bu
HostConfig
JSON dizesini kopyalayın ve Seçenekler oluştur kutusuna yapıştırın.{ "HostConfig": { "DeviceRequests": [ { "Count": -1, "Capabilities": [ [ "gpu" ] ] } ] } }
Güncelleştir'i seçin.
Gözden geçir ve oluştur’u seçin. Yeni
HostConfig
nesne artık modülünüzün içindesettings
görünür.Oluştur'u belirleyin.
Yeni yapılandırmanın çalıştığını onaylamak için vm'nizde şu komutu çalıştırın:
sudo docker inspect <YOUR-MODULE-NAME>
Konsoldaki JSON çıktısında belirttiğiniz
DeviceRequests
parametreleri görmeniz gerekir.
Not
Parametresini DeviceRequests
daha iyi anlamak için kaynak kodunu görüntüleyin: moby/host_config.go
Önceden oluşturulmuş bir NVIDIA modülünde GPU'ları etkinleştirme
IoT Edge cihazına bir NVIDIA DIGITS modülü ekleyelim ve ardından ortam değişkenlerini ayarlayarak modüle bir GPU ayıralım. Bu NVIDIA modülü zaten bir Docker kapsayıcısında.
IoT Hub'ınızın Cihazlar menüsünden Azure portalında IoT Edge cihazınızı seçin.
Üst kısımdaki Modülleri ayarla sekmesini seçin.
IoT Edge modülleri başlığı altında + Ekle'yi ve ardından IoT Edge Modülü'ne tıklayın.
IoT Edge Modülü Adı alanına bir ad girin.
Modül Ayarları sekmesinin altında Görüntü URI'si alanına ekleyin
nvidia/digits:6.0
.Ortam Değişkenleri sekmesini seçin.
değeriyle
0
ortam değişkeni adınıNVIDIA_VISIBLE_DEVICES
ekleyin. Bu değişken, uç cihazda çalışan kapsayıcılı uygulama için hangi GPU'ların görünür olduğunu denetler. OrtamNVIDIA_VISIBLE_DEVICES
değişkeni, sistemdeki fiziksel GPU'lara karşılık gelen, virgülle ayrılmış bir cihaz kimlikleri listesine ayarlanabilir. Örneğin, sistemde cihaz kimlikleri 0 ve 1 olan iki GPU varsa, değişken "NVIDIA_VISIBLE_DEVICES=0,1" olarak ayarlanabilir ve her iki GPU da kapsayıcıda görünür hale getirilebilir. Bu makalede, VM'de yalnızca bir GPU olduğundan ilk (ve yalnızca) gpu'ları kullanacağız.Adı Tür Değer NVIDIA_VISIBLE_DEVICES Metin 0 Ekle'yi seçin.
Gözden geçir ve oluştur’u seçin. Dağıtım bildirimi özellikleriniz görüntülenir.
Modülü oluşturmak için Oluştur'u seçin.
Modül listenizi güncelleştirmek için Yenile'yi seçin. Modülün Çalışma Zamanı durumunda çalıştığınıgöstermesi birkaç dakika sürer, bu nedenle cihazı yenilemeye devam edin.
Cihazınızdan bu komutu çalıştırarak yeni NVIDIA modülünüzün mevcut olduğunu ve çalıştığını doğrulayın.
iotedge list
NVIDIA modülünüzü IoT Edge cihazınızda durumu
running
olan modüllerin bir listesinde görmeniz gerekir.
Not
NVIDIA DIGITS kapsayıcı modülü hakkında daha fazla bilgi için Derin Öğrenme Basamakları Belgeleri'ne bakın.
Kaynakları temizleme
Diğer IoT Edge öğreticileriyle devam etmek istiyorsanız, bu öğretici için oluşturduğunuz cihazı kullanabilirsiniz. Aksi takdirde, ücretlerden kaçınmak için oluşturduğunuz Azure kaynaklarını silebilirsiniz.
Sanal makinenizi ve IoT hub'ınızı yeni bir kaynak grubunda oluşturduysanız, bu grubu silebilirsiniz; bu da ilişkili tüm kaynakları siler. Saklamak istediğiniz bir şey olmadığından emin olmak için kaynak grubunun içeriğini bir kez daha denetleyin. Grubun tamamını silmek istemiyorsanız tek tek kaynakları (sanal makine, cihaz veya GPU modülü) silebilirsiniz.
Önemli
Silinen kaynak grupları geri alınamaz.
Azure kaynak grubunuzu kaldırmak için aşağıdaki komutu kullanın. Kaynak grubunun silinmesi birkaç dakika sürebilir.
az group delete --name <YOUR-RESOURCE-GROUP> --yes
Kaynak gruplarının listesini görüntüleyerek kaynak grubunun kaldırıldığını onaylayabilirsiniz.
az group list
Sonraki adımlar
Bu makale, sanal makinenizi ve IoT Edge cihazınızı GPU hızlandırmalı olacak şekilde ayarlamanıza yardımcı oldu. Benzer bir kuruluma sahip bir uygulamayı çalıştırmak için Microsoft Azure ile NVIDIA DeepStream geliştirmesi için öğrenme yolunu deneyin. Learn öğreticisi, birden çok video, görüntü ve ses kaynağı tüketebilen iyileştirilmiş Akıllı Video Uygulamaları geliştirmeyi gösterir.