Öğ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 onay işareti IoT Edge 1.5 IoT Edge 1.4 onay işareti IoT Edge 1.4

Önemli

IoT Edge 1.5 LTS ve IoT Edge 1.4 LTS desteklenen sürümlerdir. IoT Edge 1.4 LTS, 12 Kasım 2024'te 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:

Ö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şlemeyi barındırmaz. 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.

  1. GitHub'da IoT Edge VM dağıtım şablonuna gidin: Azure/iotedge-vm-deploy.

  2. Azure portalında sizin için özel vm oluşturma işlemini başlatan Azure'a Dağıt düğmesini seçin.

  3. Ö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
    
  4. 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.

  1. Vm'nizi Azure portalında açın ve sol menüden Uzantılar + uygulamalar'ı seçin.

  2. Ekle'yi seçin ve listeden NVIDIA GPU Sürücü Uzantısı'nı ve ardından İleri'yi seçin.

  3. 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.

  4. 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.

  5. 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
    
  6. Bir NVIDIA modülü ile olarak da bilinen nvidia-smiNVIDIA 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ğiz nvidia-utils-515 . Yüklemede istendiğinde öğesini seçin Y .

    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ız nvidia-smi , bu liste konsolunuzda yazdırılır.

    Tüm 'nvidia-smi' sürümlerinin ekran görüntüsü.

  7. 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.

    NVIDIA sürücü tablosunun ekran görüntüsü.

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.

  1. Azure portalında IoT Hub'ınıza gidin ve Cihaz yönetimi menüsünün altında Cihazlar'ı seçin.

  2. IoT Edge cihazınızı seçerek açın.

  3. Üst kısımdaki Modülleri ayarla sekmesini seçin.

  4. IoT Edge Modülleri listesinde GPU kullanımı için etkinleştirmek istediğiniz modülü seçin.

  5. Yan panel açılır ve Kapsayıcı Oluşturma Seçenekleri sekmesini seçin.

  6. Bu HostConfig JSON dizesini kopyalayın ve Seçenekler oluştur kutusuna yapıştırın.

     {
         "HostConfig": {
             "DeviceRequests": 
             [
                 {
                     "Count": -1,
                     "Capabilities": [
                         [
                             "gpu"
                         ]
                     ]
                 }
             ]
         }
     }
    
  7. Güncelleştir'i seçin.

  8. Gözden geçir ve oluştur’u seçin. Yeni HostConfig nesne artık modülünüzün içinde settings görünür.

  9. Oluştur'u belirleyin.

  10. 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.

  1. IoT Hub'ınızın Cihazlar menüsünden Azure portalında IoT Edge cihazınızı seçin.

  2. Üst kısımdaki Modülleri ayarla sekmesini seçin.

  3. IoT Edge modülleri başlığı altında + Ekle'yi ve ardından IoT Edge Modülü'ne tıklayın.

  4. IoT Edge Modülü Adı alanına bir ad girin.

  5. Modül Ayarlar sekmesinin altında Görüntü URI'sialanına ekleyinnvidia/digits:6.0.

  6. Ortam Değişkenleri sekmesini seçin.

  7. değeriyle 0ortam 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. Ortam NVIDIA_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
  8. Ekle'yi seçin.

  9. Gözden geçir ve oluştur’u seçin. Dağıtım bildirimi özellikleriniz görüntülenir.

  10. Modülü oluşturmak için Oluştur'u seçin.

  11. 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.

  12. 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 runningolan modüllerin bir listesinde görmeniz gerekir.

    'iotedge list' komutunun sonucunun ekran görüntüsü.

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.