هل يمكن لعدة حاويات وسائط مشاركة وحدة معالجة رسومات واحدة دون تعارضات في الأجهزة؟

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

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

لا تستحوذ الحاويات عادةً على وحدة معالجة الرسومات حصريًا بالطريقة التي تفعلها آلة افتراضية مع تمرير كامل للجهاز. يوفّر Intel Quick Sync وAMD VA-API عادةً أجهزة عرض مشتركة، بينما يمكن لحاويات NVIDIA مشاركة حزمة برنامج تشغيل واحدة ووحدة معالجة الرسومات نفسها، وفقًا لقيود العتاد وبرنامج التشغيل وبرنامج الترميز والذاكرة والجلسات. وتنشأ التعارضات عندما يخصّص نظام التنسيق الجهاز حصريًا، أو تختلف الأذونات، أو تتضمن الحاويات مكتبات غير متوافقة، أو تتجاوز عمليات التحويل المتزامنة السعة العملية لوحدة معالجة الرسومات.

تأكد من أن المضيف يدعم أحمال وحدة معالجة الرسومات المتزامنة

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

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

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

اكشف الجهاز الصحيح لكل حاوية

بالنسبة إلى Intel وAMD، قارن بين عقد البطاقة وعقد العرض الممررة من /dev/dri إلى كل حاوية. وبالنسبة إلى NVIDIA، قارن بين طلب بيئة التشغيل أو الجهاز، ومتغيرات الأجهزة المرئية، وإمكانات برنامج التشغيل.

تصف حالة Jellyfin على NixOS كيف يمكن لوحدة معالجة الرسومات نفسها على المضيف أن تتصرف بشكل مختلف بين الحاويات بسبب تغيّر بيئة نظام التشغيل والجهاز. وهي توضّح لماذا يكون تطابق كشف الجهاز والمكتبات أهم من نسخ سطر واحد من Compose.

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

طابق الأذونات ومجموعات المستخدمين بين الحاويات

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

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

اختبر كل حاوية بمفردها باستخدام الملف وبرنامج الترميز نفسيهما. واجعل إصلاحات الأذونات صريحة في Compose حتى لا تزيلها تحديثات الصور البرمجية أو عمليات إعادة الإنشاء.

-15% OFF

تحقق من توافق برامج الترميز وبرنامج التشغيل وبيئة التشغيل

قارن بين برامج الترميز والمرشحات التي يطلبها كل تطبيق لتشغيلها على وحدة معالجة الرسومات، بما في ذلك H.264 وHEVC وAV1، وتعيين النطاقات اللونية، والترجمات، وتغيير الحجم، ومرشحات OpenCL أو CUDA. فقد يتطلب أحد أحمال العمل إمكانات لا يستخدمها الآخر.

يشدد دليل حديث لتمرير وحدة معالجة الرسومات إلى Jellyfin على مطابقة إعداد الحاوية مع Intel QSV أو NVIDIA NVENC أو AMD VA-API، بدل اعتبار جميع مسارات التسريع العتادي متبادلة. يجب أن تتوافق بيئة التشغيل مع عائلة وحدة معالجة الرسومات.

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

قِس حدود الجلسات المتزامنة والذاكرة والحرارة

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

يصف إعداد في مجتمع Proxmox عدة مثيلات من Jellyfin تجري عمليات تحويل في الوقت نفسه، مع التحقق من النشاط من المضيف. كما يوضح أن للجلسات المتزامنة حدودًا عملية يفرضها العتاد والبرمجيات.

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

حافظ على مسارات إعداد وتحويل منفصلة مع مشاركة وحدة معالجة الرسومات

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

يساعد دليل ZimaSpace حول عزل تبعيات الحاويات على التمييز بين تعارض وحدة معالجة الرسومات وفشل قاعدة البيانات أو الذاكرة المؤقتة أو الشبكة أو نقطة التحميل.

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

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

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

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.