محلية NUMA للذكاء الاصطناعي المحلي: لماذا يغيّر تموضع الذاكرة معدل تغذية المسرّع

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

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

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

يجعل NUMA المسافة إلى ذاكرة المضيف قابلة للرصد

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

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

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

تربط طوبولوجيا PCIe المسرّع بعقد محددة لوحدة المعالجة المركزية

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

تتضمن إرشادات CUDA الخاصة بـ NUMA من NVIDIA توصيات بشأن NUMA، وتحذّر من أن الموازنة التلقائية قد تؤدي إلى تراجع أداء تطبيقات GPU في بعض الحالات. وتوصي بفحص الطوبولوجيا وضبط السياسة للعقدة الفعلية بدلًا من افتراض أرقام العقد.

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

قد يضرّ الربط عندما يستخدم عبء العمل أكثر من عقدة

قد يؤدي ربط الذاكرة بصرامة بعقدة واحدة إلى استنفاد نطاقها الترددي أو سعتها، بينما تبقى العقد الأخرى خاملة. قد يستخدم خط الأنابيب وحدة GPU قريبة من أحد المقابس، لكنه يستخدم أيضًا بطاقة التقاط أو جهاز NVMe أو مسرّعًا ثانيًا قريبًا من مقبس آخر. وقد يحسّن توزيعٌ ما عمليات النقل، لكنه يبطئ المعالجة المسبقة أو التخزين.

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

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

اختبر الطوبولوجيا، لا المسرّع وحده

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

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

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

مركز التكنولوجيا والذكاء الاصطناعي

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

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.