هل يمكن لـ Immich مشاركة وحدة معالجة رسومات أو مُسرّع مع حاوية أخرى؟

إيفا وونغ هي كاتبة تقنية و ومهندسة هاوية في ZimaSpace. مهووسة بالتكنولوجيا مدى الحياة ولديها شغف بالمختبرات المنزلية والبرمجيات مفتوحة المصدر، تتخصص في تبسيط المفاهيم التقنية المعقدة إلى أدلة عملية وسهلة الفهم. تؤمن إيفا بأن الاستضافة الذاتية يجب أن تكون ممتعة وليست مخيفة. من خلال دروسها، تمكّن المجتمع من تبسيط إعدادات الأجهزة، بدءًا من بناء أول نظام تخزين شبكي NAS وحتى إتقان حاويات Docker.

نعم، يمكن لـ Immich مشاركة وحدة معالجة رسومات أو مُسرّع مع حاوية أخرى عندما تسمح بيئة تشغيل المضيف بالوصول المتزامن، وتبقى أعباء العمل ضمن حدود الجهاز العملية.

لا تضمن مشاركة الجهاز العزل أو تساوي الأداء. قد يستخدم Immich التسريع لتحويل ترميز الفيديو أو للاستدلال بتعلّم الآلة، بينما تعمل خدمة أخرى على ترميز الوسائط أو تشغيل استدلال بالذكاء الاصطناعي أو استخدام عقدة العرض نفسها. اعرض الجهاز عن قصد، واختبر كل عبء عمل بمفرده، ثم شغّل التداخل الفعلي وراقب الذاكرة ووقت الاستجابة والحرارة أو أعطال برنامج التشغيل.

أثبت أولًا أن كل حاوية يمكنها استخدام المُسرّع بمفردها

قبل اختبار المشاركة، تحقّق من برنامج تشغيل المضيف وبيئة تشغيل الحاويات باستخدام عبء عمل واحد في كل مرة. بالنسبة إلى Immich، شغّل الوظيفة المسرّعة التي تنوي استخدامها فعلًا، وتحقّق من استخدام الجهاز ومن خلو سجلات التطبيق من الأخطاء. كرّر ذلك مع الحاوية الثانية باستخدام عبء عملها المعتاد.

يوضح مثال بيئة تشغيل حاويات NVIDIA الخاص بـ حاويات متعددة مزوّدة بوصول إلى وحدة معالجة الرسومات إمكانية تشغيل حاويات متعددة مع الوصول إلى وحدة معالجة الرسومات. وهذا يثبت نموذج بيئة التشغيل، لكنه لا يثبت أن كل زوج من التطبيقات سيتشارك بعدل أو سيتسع له جهاز واحد.

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

اعرض لكل عبء عمل الجهاز الذي يحتاج إليه فقط

في الأنظمة التي تحتوي على مُسرّعات متعددة، عيّن جهازًا محددًا متى أمكن بدلًا من عرض كل وحدات معالجة الرسومات لكل حاوية. في الرسومات المدمجة من Intel أو AMD، تحقّق من جهاز العرض المقصود ومن أذونات المجموعة. وفي NVIDIA، تأكّد من الجهاز الظاهر الذي تختاره العملية فعليًا.

تشير إجابة حديثة في منتدى NVIDIA حول مشاركة وحدة معالجة رسومات واحدة بين الحاويات إلى أن عمليات الحاويات العادية يمكنها الوصول إلى وحدة معالجة الرسومات نفسها عند عرضها لكلا الحاويتين. والنقطة التشغيلية المهمة هي أن حدود الحاويات لا تنشئ تلقائيًا حصة أداء ثابتة.

يجب أن تكون رؤية الأجهزة قابلة لإعادة الإنتاج بعد إعادة إنشاء الحاوية. أعد تشغيل كل خدمة وتحقّق من ظهور الجهاز نفسه بالأذونات نفسها. إذا عاد أحد التطبيقين بصمت إلى استخدام وحدة المعالجة المركزية بعد إعادة التشغيل، فأصلح التعيين قبل قياس الأداء المشترك.

قِس التنافس في أعباء العمل التي تتداخل فعلًا

شغّل Immich بمفرده وسجّل معدل المعالجة ووقت الاستجابة التفاعلي واستخدام وحدة معالجة الرسومات وذاكرة الجهاز والانتقال إلى وحدة المعالجة المركزية ودرجة الحرارة. شغّل الحاوية الأخرى بمفردها باستخدام المقاييس نفسها. ثم شغّل المهمتين النموذجيتين بالتزامن وقارن التغيّر بدلًا من الاعتماد على معدل النقل النظري الأقصى.

تطرح مناقشة أحدث في NVIDIA حول سلوك مشاركة وحدة معالجة الرسومات بين الحاويات سؤالًا عمّا إذا كان بإمكان حاويتين اختيار الأجهزة نفسها والتنافس عليها. وهذا هو الحد الذي ينبغي اختباره بالضبط: فالرؤية المشتركة تعني الوصول المشترك، لا التحكم التلقائي في القبول أو سعة مضمونة.

اقبل المشاركة عندما يظل عبئا العمل مسرّعين، ويكتملان بصورة صحيحة، ويبقيان ضمن أهداف وقت الاستجابة والحرارة. وإذا استنفدت إحدى المهمتين ذاكرة VRAM أو أجبرت الأخرى على استخدام وحدة المعالجة المركزية أو تسببت في فشل تخصيص المُرمّز أو أدت إلى توقفات ملحوظة للمستخدم، فقلّل التزامن أو جدولة المهام الثقيلة في أوقات منفصلة أو عيّن أجهزة مستقلة.

-15% OFF

افصل ضغط تحويل الترميز عن ضغط تعلّم الآلة

يمكن أن يفرض Immich ضغطًا مختلفًا على المُسرّع بحسب ما إذا كان يرمّز الفيديو أو يشغّل استدلال تعلّم الآلة. وقد تستخدم الحاوية الأخرى أيضًا محركات الترميز أو وحدات الحساب أو الذاكرة المشتركة بطرق مختلفة. وقد يخفي إجمالي «استخدام وحدة معالجة الرسومات» المحرك المشبع فعليًا.

يوفر دليل ZimaSpace حول التحقق من مشاركة وحدة معالجة الرسومات بين الحاويات نمط اختبار مفيدًا للخوادم المنزلية: أكّد برنامج التشغيل والتعيين أولًا، ثم زد الجلسات المتزامنة النموذجية تدريجيًا مع مراقبة ذاكرة الجهاز ودرجة الحرارة والأخطاء وسلوك الانتقال إلى وحدة المعالجة المركزية.

إذا كان تحويل ترميز الفيديو واستدلال تعلّم الآلة نادرًا ما يتداخلان، فقد تكون الجدولة أبسط من تقسيم الأجهزة. أما إذا كان كلاهما حساسًا لوقت الاستجابة طوال اليوم، فقد يوفر مُسرّع ثانٍ أو مضيف منفصل حدًا أوضح للفشل. وتعتمد البنية الصحيحة على فترة التداخل، لا على ما إذا كان Docker يسمح للحاويتين بفتح الجهاز فحسب.

تحقّق من المشاركة عبر إعادة التشغيل وأسوأ ذروة طبيعية

أنشئ ذروة قابلة للتكرار، مثل تحويل ترميز فيديو واحد في Immich، إضافة إلى دفعة من معالجة البحث الذكي أو المعالجة المتعلقة بالوجوه، بينما تنفذ الحاوية الثانية مهمتها المسرّعة الطبيعية الأكثر انشغالًا. سجّل معدلات الإكمال ووقت الاستجابة في الذيل واستخدام الذاكرة ودرجة الحرارة والأخطاء وما إذا كانت أي من الخدمتين تنتقل إلى وحدة المعالجة المركزية.

أعد تشغيل الحاويات بالترتيبين كليهما وكرّر الاختبار. يجب ألا يعتمد الإعداد المتين على الخدمة التي استحوذت على المُسرّع أولًا، إلا إذا كانت هذه الأولوية خيارًا تصميميًا مقصودًا. تحقّق أيضًا من بقاء عقد الأجهزة وتعيينات بيئة التشغيل مستقرة بعد إعادة تشغيل المضيف.

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

الدعم والنصائح

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.