البرنامج التعليمي: تكوين وحدة IoT Edge النمطية ل GPU والاتصال بها والتحقق منها

ينطبق على:علامة اختيار IoT Edge 1.5 IoT Edge 1.5 علامة اختيار IoT Edge 1.4 IoT Edge 1.4

هام

IoT Edge 1.5 LTS وIoT Edge 1.4 LTS هي إصدارات مدعومة. IoT Edge 1.4 LTS هو نهاية العمر الافتراضي في 12 نوفمبر 2024. إذا كنت تستخدم إصدارا سابقا، فشاهد تحديث IoT Edge.

يوضح لك هذا البرنامج التعليمي كيفية إنشاء جهاز ظاهري ممكن لوحدة معالجة الرسومات (VM). من الجهاز الظاهري، سترى كيفية تشغيل جهاز IoT Edge الذي يخصص العمل من إحدى وحداته النمطية إلى وحدة معالجة الرسومات الخاصة بك.

سنستخدم مدخل Microsoft Azure وAzure Cloud Shell وخط أوامر الجهاز الظاهري الخاص بك من أجل:

  • إنشاء جهاز ظاهري قادر على GPU
  • تثبيت ملحق برنامج تشغيل NVIDIA على الجهاز الظاهري
  • تكوين وحدة نمطية على جهاز IoT Edge لتخصيص العمل إلى وحدة معالجة الرسومات

المتطلبات الأساسية

  • حساب Azure - إنشاء حساب مجاني

  • Azure IoT Hub - إنشاء مركز IoT

  • جهاز Azure IoT Edge

    إذا لم يكن لديك جهاز IoT Edge بالفعل وتحتاج إلى إنشاء جهاز بسرعة، فقم بتشغيل الأمر التالي. استخدم Azure Cloud Shell الموجود في مدخل Microsoft Azure. أنشئ اسم جهاز جديدا ل <DEVICE-NAME> واستبدل IoT <IOT-HUB-NAME> باسمك الخاص.

    az iot hub device-identity create --device-id <YOUR-DEVICE-NAME> --edge-enabled --hub-name <YOUR-IOT-HUB-NAME>
    

    لمزيد من المعلومات حول إنشاء جهاز IoT Edge، راجع التشغيل السريع: نشر وحدة IoT Edge الأولى على جهاز Linux ظاهري. لاحقا في هذا البرنامج التعليمي، سنضيف وحدة NVIDIA إلى جهاز IoT Edge.

إنشاء جهاز ظاهري محسن لوحدة معالجة الرسومات

لإنشاء جهاز ظاهري محسن لوحدة معالجة الرسومات (VM)، يعد اختيار الحجم المناسب أمرا مهما. لن تستوعب جميع أحجام الأجهزة الظاهرية معالجة وحدة معالجة الرسومات. بالإضافة إلى ذلك، هناك أحجام مختلفة للجهاز الظاهري لأحمال العمل المختلفة. لمزيد من المعلومات، راجع أحجام الأجهزة الظاهرية المحسنة لوحدة معالجة الرسومات أو جرب محدد الأجهزة الظاهرية.

لننشئ جهازا ظاهريا ل IoT Edge باستخدام قالب Azure Resource Manager (ARM) في GitHub، ثم قم بتكوينه ليكون محسنا لوحدة معالجة الرسومات.

  1. انتقل إلى قالب توزيع IoT Edge VM في GitHub: Azure/iotedge-vm-deploy.

  2. حدد الزر Deploy to Azure، الذي يبدأ إنشاء جهاز ظاهري مخصص لك في مدخل Microsoft Azure.

  3. املأ حقول النشر المخصصة ببيانات اعتماد وموارد Azure:

    الخاصية الوصف أو قيمة العينة
    الاشتراك اختر اشتراك حساب Azure الخاص بك.
    مجموعة الموارد إضافة مجموعة موارد Azure.
    المنطقة East US
    لا تتوفر الأجهزة الظاهرية لوحدة معالجة الرسومات في جميع المناطق.
    بادئة تسمية Dns إنشاء اسم لجهازك الظاهري.
    اسم المستخدم المسؤول adminUser
    بدلا من ذلك، قم بإنشاء اسم المستخدم الخاص بك.
    سلسلة اتصال الجهاز انسخ سلسلة الاتصال من جهاز IoT Edge، ثم الصقها هنا.
    حجم الجهاز الظاهري Standard_NV6
    نوع المصادقة اختر كلمة المرور أو مفتاح SSH العام، ثم قم بإنشاء كلمة مرور أو اسم زوج مفاتيح إذا لزم الأمر.

    تلميح

    تحقق من الأجهزة الظاهرية لوحدة معالجة الرسومات المدعومة في كل منطقة: المنتجات المتوفرة حسب المنطقة.

    للتحقق من المنطقة التي يسمح بها اشتراك Azure، جرب أمر Azure هذا من مدخل Microsoft Azure. Standard_N في N يعني أنه جهاز ظاهري ممكن لوحدة معالجة الرسومات.

    az vm list-skus --location <YOUR-REGION> --size Standard_N --all --output table
    
  4. حدد الزر Review + create في الأسفل، ثم الزر Create. يمكن أن يستغرق النشر دقيقة واحدة لإكماله.

تثبيت ملحق NVIDIA

الآن بعد أن أصبح لدينا جهاز ظاهري محسن لوحدة معالجة الرسومات، دعنا نثبت ملحق NVIDIA على الجهاز الظاهري باستخدام مدخل Microsoft Azure.

  1. افتح الجهاز الظاهري في مدخل Microsoft Azure وحدد Extensions + applications من القائمة اليسرى.

  2. حدد إضافة واختر ملحق برنامج تشغيل NVIDIA GPU من القائمة، ثم حدد التالي.

  3. اختر مراجعة + إنشاء، ثم إنشاء. قد يستغرق النشر ما يصل إلى 30 دقيقة حتى يكتمل.

  4. لتأكيد التثبيت في مدخل Microsoft Azure، ارجع إلى قائمة Extensions + applications في الجهاز الظاهري الخاص بك. يجب أن يكون الملحق الجديد المسمى NvidiaGpuDriverLinux في قائمة الملحقات الخاصة بك ويظهر نجاح التزويد ضمن الحالة.

  5. لتأكيد التثبيت باستخدام Azure Cloud Shell، قم بتشغيل هذا الأمر لسرد الملحقات الخاصة بك. استبدل العناصر النائبة <> بقيمك:

    az vm extension list --resource-group <YOUR-RESOURCE-GROUP> --vm-name <YOUR-VM-NAME> -o table
    
  6. باستخدام وحدة NVIDIA، سنستخدم برنامج واجهة إدارة نظام NVIDIA، المعروف أيضا باسم nvidia-smi.

    من جهازك، قم بتثبيت الحزمة nvidia-smi استنادا إلى إصدار Ubuntu الخاص بك. لهذا البرنامج التعليمي، سنقوم بتثبيت nvidia-utils-515 ل Ubuntu 20.04. حدد Y عند مطالبتك في التثبيت.

    sudo apt install nvidia-utils-515
    

    فيما يلي قائمة بجميع nvidia-smi الإصدارات. إذا قمت بتشغيل nvidia-smi دون تثبيته أولا، فستتم طباعة هذه القائمة في وحدة التحكم الخاصة بك.

    لقطة شاشة لجميع إصدارات

  7. بعد التثبيت، قم بتشغيل هذا الأمر لتأكيد تثبيته:

    nvidia-smi
    

    سيظهر جدول تأكيد، مشابه لهذا الجدول.

    لقطة شاشة لجدول برنامج تشغيل NVIDIA.

إشعار

ملحق NVIDIA هو طريقة مبسطة لتثبيت برامج تشغيل NVIDIA، ولكن قد تحتاج إلى مزيد من التخصيص. لمزيد من المعلومات حول التثبيتات المخصصة على الأجهزة الظاهرية من السلسلة N، راجع تثبيت برامج تشغيل NVIDIA GPU على الأجهزة الظاهرية من السلسلة N التي تعمل بنظام Linux.

تمكين وحدة نمطية مع تسريع وحدة معالجة الرسومات

هناك طرق مختلفة لتمكين وحدة IoT Edge بحيث تستخدم وحدة معالجة الرسومات للمعالجة. تتمثل إحدى الطرق في تكوين وحدة IoT Edge موجودة على جهازك لتصبح مسرعة بوحدة معالجة الرسومات. طريقة أخرى هي استخدام وحدة حاوية مسبقة الصنع، على سبيل المثال، وحدة نمطية من NVIDIA DIGITS محسنة بالفعل لوحدة معالجة الرسومات . دعونا نرى كيف يتم تنفيذ كلا الطريقتين.

تمكين وحدة معالجة الرسومات في وحدة نمطية موجودة باستخدام DeviceRequests

إذا كان لديك وحدة نمطية موجودة على جهاز IoT Edge الخاص بك، فإن إضافة تكوين باستخدام DeviceRequests في createOptions بيان النشر يجعل الوحدة النمطية GPU محسنة. اتبع هذه الخطوات لتكوين وحدة نمطية موجودة.

  1. انتقل إلى مركز IoT في مدخل Microsoft Azure واختر الأجهزة ضمن قائمة إدارة الأجهزة.

  2. حدد جهاز IoT Edge لفتحه.

  3. حدد علامة التبويب Set modules في الأعلى.

  4. حدد الوحدة النمطية التي تريد تمكينها لاستخدام وحدة معالجة الرسومات في قائمة وحدات IoT Edge النمطية .

  5. يتم فتح لوحة جانبية، اختر علامة التبويب Container Create Options .

  6. انسخ سلسلة JSON هذه HostConfig والصقها في المربع إنشاء خيارات .

     {
         "HostConfig": {
             "DeviceRequests": 
             [
                 {
                     "Count": -1,
                     "Capabilities": [
                         [
                             "gpu"
                         ]
                     ]
                 }
             ]
         }
     }
    
  7. حدد تحديث.

  8. حدد "Review + create". الكائن الجديد HostConfig مرئي الآن في الوحدة النمطية settings الخاصة بك.

  9. حدد إنشاء.

  10. لتأكيد عمل التكوين الجديد، قم بتشغيل هذا الأمر في الجهاز الظاهري الخاص بك:

    sudo docker inspect <YOUR-MODULE-NAME>
    

    يجب أن تشاهد المعلمات التي حددتها في DeviceRequests النسخة المطبوعة JSON في وحدة التحكم.

إشعار

لفهم المعلمة DeviceRequests بشكل أفضل، اعرض التعليمات البرمجية المصدر: moby/host_config.go

تمكين وحدة معالجة الرسومات في وحدة NVIDIA مسبقة الصنع

دعونا نضيف وحدة NVIDIA DIGITS إلى جهاز IoT Edge ثم نخصص وحدة معالجة الرسومات إلى الوحدة النمطية عن طريق تعيين متغيرات البيئة الخاصة بها. هذه الوحدة النمطية NVIDIA موجودة بالفعل في حاوية Docker.

  1. حدد جهاز IoT Edge في مدخل Microsoft Azure من قائمة أجهزة IoT Hub.

  2. حدد علامة التبويب Set modules في الأعلى.

  3. حدد + إضافة ضمن عنوان وحدات IoT Edge واختر وحدة IoT Edge.

  4. أدخل اسما في حقل IoT Edge Module Name .

  5. ضمن علامة التبويب الإعدادات الوحدة النمطية، أضف nvidia/digits:6.0 إلى حقل Image URI.

  6. حدد علامة التبويب متغيرات البيئة.

  7. أضف اسم NVIDIA_VISIBLE_DEVICES متغير البيئة بالقيمة 0. يتحكم هذا المتغير في وحدات معالجة الرسومات المرئية للتطبيق الحاوي الذي يعمل على جهاز الحافة. NVIDIA_VISIBLE_DEVICES يمكن تعيين متغير البيئة إلى قائمة مفصولة بفواصل من معرفات الجهاز، والتي تتوافق مع وحدات معالجة الرسومات الفعلية في النظام. على سبيل المثال، إذا كان هناك اثنين من وحدات معالجة الرسومات في النظام مع معرفات الجهاز 0 و1، يمكن تعيين المتغير إلى "NVIDIA_VISIBLE_DEVICES=0،1" لجعل كل من وحدات معالجة الرسومات مرئية للحاوية. في هذه المقالة، نظرا لأن الجهاز الظاهري يحتوي على وحدة معالجة الرسومات واحدة فقط، فسنستخدم وحدة معالجة الرسومات الأولى (والوحية).

    Name نوع القيمة‬
    NVIDIA_VISIBLE_DEVICES النص 0
  8. حدد إضافة.

  9. حدد "Review + create". ستظهر خصائص بيان التوزيع.

  10. حدد Create لإنشاء الوحدة النمطية.

  11. حدد تحديث لتحديث قائمة الوحدة النمطية. ستستغرق الوحدة بضع دقائق لإظهار التشغيل في حالة وقت التشغيل، لذا استمر في تحديث الجهاز.

  12. من جهازك، قم بتشغيل هذا الأمر لتأكيد وجود الوحدة النمطية NVIDIA الجديدة وتشغيلها.

    iotedge list
    

    يجب أن تشاهد الوحدة النمطية NVIDIA في قائمة الوحدات النمطية على جهاز IoT Edge الخاص بك بحالة running.

    لقطة شاشة لنتيجة أمر

إشعار

لمزيد من المعلومات حول وحدة حاوية NVIDIA DIGITS ، راجع وثائق Deep Learning Digits.

تنظيف الموارد

إذا كنت ترغب في المتابعة مع البرامج التعليمية الأخرى ل IoT Edge، يمكنك استخدام الجهاز الذي أنشأته لهذا البرنامج التعليمي. وإلا، يمكنك حذف موارد Azure التي قمت بإنشائها لتجنب المصاريف.

إذا قمت بإنشاء الجهاز الظاهري ومركز IoT في مجموعة موارد جديدة، يمكنك حذف هذه المجموعة، والتي ستحذف جميع الموارد المقترنة. تحقق مرة أخرى من محتويات مجموعة الموارد للتأكد من عدم وجود شيء تريد الاحتفاظ به. إذا كنت لا تريد حذف المجموعة بأكملها، يمكنك حذف الموارد الفردية (الجهاز الظاهري أو الجهاز أو وحدة GPU) بدلا من ذلك.

هام

حذف مجموعة الموارد لا يمكن التراجع عنه.

استخدم الأمر التالي لإزالة مجموعة موارد Azure. قد يستغرق حذف مجموعة موارد بضع دقائق.

az group delete --name <YOUR-RESOURCE-GROUP> --yes

يمكنك تأكيد إزالة مجموعة الموارد عن طريق عرض قائمة مجموعات الموارد.

az group list

الخطوات التالية

ساعدتك هذه المقالة في إعداد جهازك الظاهري وجهاز IoT Edge ليكونا مسرعين بواسطة وحدة معالجة الرسومات. لتشغيل تطبيق بإعداد مشابه، جرب مسار التعلم لتطوير NVIDIA DeepStream باستخدام Microsoft Azure. يوضح لك البرنامج التعليمي Learn كيفية تطوير تطبيقات الفيديو الذكية المحسنة التي يمكن أن تستهلك مصادر فيديو وصور وصوت متعددة.