بث مباشر 18.11 · الدفعة 318 نوفمبر، 19:00 بتوقيت موسكو — ورشة عملية مجانية لوكلاء الذكاء الاصطناعي · الدفعة 3 تبدأ 23.11ورشة 18 نوفمبر ←الدفعة 3 (23.11)
بنية تحتيةتحليل · على الرادارMeta Engineering→ المصدر

Meta تعلّم مصحّح LLDB النظر داخل GPU: المعالج والمسرّع في جلسة واحدة

أضافت Meta إلى lldb-server بنية إضافات (plugins) للمسرّعات. في السابق كان لا بد من تصحيح الشيفرة على CPU وGPU بأدوات مختلفة ولصق الصورة يدويًا. أما الآن فيُمثَّل CPU وGPU كعمليتين منفصلتين في المصحّح، لكن المستخدم يتعامل معهما في جلسة واحدة. وقد فُصلت البنية التحتية المشتركة عن الشيفرة الخاصة بكل عتاد.

معالج بواسطة الذكاء الاصطناعي من Meta Engineering؛ بتحرير Hamidun News
Meta تعلّم مصحّح LLDB النظر داخل GPU: المعالج والمسرّع في جلسة واحدة
المصدر: Meta Engineering. كولاج: Hamidun News.
استمع للمقال
بطاقة الحقائق والأرقام
المعيارالتفاصيل
المصدر الأصليMeta Engineering ↗
رئيس التحرير
الإضافات غير مرتبطة بمصنّع معيّنهيكل واحد لمسرّعات مختلفة
حقيقة رئيسية #2CPU وGPU عمليتان منفصلتان في المصحّح ضمن جلسة موحّدة
حقيقة رئيسية #3الجزء المشترك مفصول عن إدارة الجهاز المحدّد

المشكلة: الشيفرة تعيش في عالمين

نادرًا ما يُنفَّذ تطبيق الذكاء الاصطناعي الحديث في مكان واحد. فغلاف Python وتحضير البيانات يعملان على المعالج، بينما تنتقل الحسابات الثقيلة إلى GPU أو مسرّع آخر. وحين يتعطل شيء ما، يجد المطوّر نفسه بين نارين: للمضيف مصحّح مألوف، أما النواة على المسرّع فلها أداة منفصلة، غالبًا مغلقة وتابعة للمصنّع. ولفهم سبب عدم تطابق قيمة على GPU مع المتوقع، يضطر المطوّر إلى وضع عبارات الطباعة، وتصفّح السجلات، وتركيب الصورة في ذهنه.

وصف مهندسو Meta كيف حلّوا هذه المشكلة في LLDB، المصحّح الذي ينتمي إلى منظومة LLVM. فقد بنوا في lldb-server، وهو الجزء الخادم من المصحّح الذي يدير العملية قيد التصحيح، بنية إضافات للمسرّعات محايدة تجاه المصنّعين.

كيف يعمل ذلك

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

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

ولماذا تكتسب هذه الصيغة أهميتها؟ لو دُمج دعم GPU في نواة LLDB لمصنّع واحد، لتطلّب كل مسرّع جديد إعادة كتابة نصف المصحّح. أما نموذج الإضافات فيتيح لمصنّع العتاد تنفيذ جزئه فقط: كيفية التحكم بالجهاز وقراءة سجلاته وذاكرته.

ماذا يعني ذلك عمليًا

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

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

القيود

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

ما العمل

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

القصة

أسئلة وأجوبة حول الخبر

ما أبرز التفاصيل حول المشكلة: الشيفرة تعيش في عالمين؟

نادرًا ما يُنفَّذ تطبيق الذكاء الاصطناعي الحديث في مكان واحد. فغلاف Python وتحضير البيانات يعملان على المعالج، بينما تنتقل الحسابات الثقيلة إلى GPU أو مسرّع آخر. وحين يتعطل شيء ما، يجد المطوّر نفسه بين نارين: للمضيف مصحّح مألوف، أما النواة على المسرّع فلها أداة منفصلة، غالبًا مغلقة وتابعة للمصنّع. ولفهم سبب عدم تطابق قيمة على GPU مع المتوقع، يضطر المطوّر إلى وضع عبارات الطباعة، وتصفّح السجلات، وتركيب الصورة في ذهنه. وصف مهندسو Meta كيف حلّوا هذه المشكلة في LLDB، المصحّح الذي ينتمي إلى منظومة LLVM.

ما أبرز التفاصيل حول كيف يعمل ذلك؟

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

ما أبرز التفاصيل حول ماذا يعني ذلك عمليًا؟

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

ZK
جمال حميدون — مدير المنتجات في Alpina Digital ومدير منتج AlpinaGPT. يبني منتجات الذكاء الاصطناعي منذ 2019. بدأ Hamidun News كمشروع شخصي ثم أصبح مُجمِّعًا إنتاجيًا بأكثر من 6000 قارئ.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
ما رأيك؟
جارٍ تحميل التعليقات…