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

Built for Speed: ~10ms Latency, Even Under Load
Blazingly fast way to build, track and deploy your models!
- Handles 350+ RPS on just 1 vCPU — no tuning needed
- Production-ready with full enterprise support
نظرة عامة
أدت ثورة الذكاء الاصطناعي التوليدي (GenAI) إلى زيادة هائلة في الطلب على وحدات معالجة الرسوميات (GPUs) في جميع أنحاء الصناعة. ترغب الشركات في تدريب النماذج اللغوية الكبيرة (LLMs) وضبطها ونشرها بكميات هائلة. وقد أدى ذلك إلى انخفاض التوفر وارتفاع أسعار أحدث وحدات معالجة الرسوميات. عانت الشركات التي تشغل أعباء العمل على السحابة العامة من ارتفاع الأسعار وزيادة عدم اليقين بشأن توفر وحدات معالجة الرسوميات.
هذه الحقائق الجديدة تجعل القدرة على استخدام وحدات معالجة الرسوميات المتاحة إلى أقصى حد أمرًا بالغ الأهمية. يساعد تقسيم أو مشاركة وحدة معالجة رسوميات واحدة بين عمليات متعددة في تحقيق ذلك. يمنحنا تطبيق ذلك على Kubernetes مزيجًا رابحًا حيث نحصل على التوسع التلقائي وجدولة متطورة للمساعدة في تحسين استخدام وحدة معالجة الرسوميات.
خيارات مشاركة وحدات معالجة الرسوميات
لمشاركة وحدة معالجة رسوميات واحدة مع أعباء عمل متعددة في Kubernetes، هذه هي الخيارات المتاحة لدينا -
MIG
تتيح تقنية Multi-Instance GPU (MIG) تقسيم وحدات معالجة الرسوميات المستندة إلى معمارية NVIDIA Ampere (مثل NVIDIA A100) بشكل آمن إلى مثيلات GPU منفصلة لتطبيقات CUDA. كل قسم معزول تمامًا من حيث الذاكرة والحوسبة ويمكن أن يوفر إنتاجية وزمن انتقال يمكن التنبؤ بهما.
يمكن تقسيم وحدة معالجة رسوميات NVIDIA A100 واحدة إلى ما يصل إلى 7 مثيلات GPU معزولة. يظهر كل قسم كوحدة معالجة رسوميات منفصلة للبرامج التي تعمل على عقدة مقسمة. وحدات معالجة الرسوميات الأخرى المدعومة بتقنية MIG وعدد الأقسام المدعومة مدرجة هنا.
مزيد من المعلومات هنا
الإيجابيات
- عزل كامل للحوسبة والذاكرة يمكن أن يدعم زمن انتقال وإنتاجية يمكن التنبؤ بهما
nvidia-device-pluginلـ Kubernetes يدعم MIG بشكل أصلي
السلبيات
- مدعوم فقط لوحدات معالجة الرسوميات الحديثة مثل A100 و H100 و A30. وهذا يحد من الخيارات المتاحة.
- عدد الأقسام له حد أقصى صارم يبلغ 7 لمعظم البنى. وهذا قليل جدًا إذا كنا نشغل أعباء عمل أصغر بمتطلبات ذاكرة ومعالجة محدودة.
تقسيم الوقت
يتيح تقسيم الوقت جدولة أعباء عمل متعددة على نفس وحدة معالجة الرسوميات (GPU). يتم مشاركة وقت المعالجة بين العمليات المتعددة وتتداخل العمليات زمنيًا. يمكن لمسؤول المجموعة تهيئة مجموعة أو عقدة للإعلان عن عدد معين من النسخ المتماثلة/وحدة معالجة الرسوميات، مما يعيد تهيئة العقد وفقًا لذلك.
المزايا
- لا يوجد حد أقصى لعدد الحاويات (pods) التي يمكنها مشاركة وحدة معالجة رسوميات واحدة
- يمكن أن يعمل مع الإصدارات الأقدم من وحدات معالجة الرسوميات من NVIDIA
العيوب
- لا يوجد عزل للذاكرة أو الأخطاء. لا توجد طريقة مدمجة للتأكد من أن عبء العمل لا يتجاوز الذاكرة المخصصة له.
- يوفر تقسيم الوقت وقتًا متساويًا لجميع العمليات الجارية. يمكن لحاوية (pod) تشغل عمليات متعددة أن تستحوذ على وحدة المعالجة المركزية (CPU) أكثر بكثير مما هو مقصود.
هناك خيارات أخرى متاحة لنا لمشاركة وحدة معالجة الرسوميات مثل MPS وvGPUs، لكنها لا تحظى بدعم أصلي في `nvidia-device-plugin` ولن نناقشها هنا.
عرض توضيحي لتقسيم الوقت
دعنا نستعرض بإيجاز كيفية الاستفادة من مشاركة الوقت على خدمة Azure Kubernetes. نبدأ بمجموعة Kubernetes موجودة بالفعل.
1. أضف تجمع عقد (node pool) يدعم وحدات معالجة الرسوميات (GPU) في المجموعة
سيؤدي هذا إلى إضافة تجمع عقد جديد بعقدة واحدة إلى مجموعة AKS الموجودة مع وحدة معالجة رسوميات NVIDIA T4 واحدة. يمكن التحقق من ذلك بتشغيل ما يلي
2. قم بتثبيت عامل تشغيل وحدة معالجة الرسوميات (GPU operator)
3. بمجرد تثبيت عامل التشغيل، نقوم بإنشاء تهيئة لتقسيم الوقت ونهيئ المجموعة بأكملها لتقسيم موارد وحدة معالجة الرسوميات حيثما تكون متاحة
4. تحقق من أنه قد تم إعادة تكوين العقدة الموجودة بنجاح.
5. يمكننا التحقق من التكوين عن طريق إنشاء نشر (deployment) بـ 4 نسخ متماثلة، تطلب كل منها 2 من موارد nvidia.com/gpu.
تحقق من أن جميع حاويات (pods) هذا النشر قد بدأت العمل على نفس العقدة التي تم إنشاؤها بالفعل وأنها كانت قادرة على استيعابها.
الخاتمة
لقد غيرت ثورة الذكاء الاصطناعي التوليدي (GenAI) مشهد متطلبات وحدات معالجة الرسوميات (GPU) وجعلت المسؤولية في استخدام الموارد أكثر أهمية من أي وقت مضى. هناك أوجه قصور في كلا النهجين الموضحين هنا، ولكن لا مفر من التحلي بالمسؤولية فيما يتعلق بتكاليف وحدات معالجة الرسوميات (GPU) في السيناريو الحالي.
TrueFoundry AI Gateway delivers ~3–4 ms latency, handles 350+ RPS on 1 vCPU, scales horizontally with ease, and is production-ready, while LiteLLM suffers from high latency, struggles beyond moderate RPS, lacks built-in scaling, and is best for light or prototype workloads.
The fastest way to build, govern and scale your AI





















.png)
.webp)










.webp)






