المضاربة من أجل المحاكاة. الابتكار في التحقق

المضاربة من أجل المحاكاة. الابتكار في التحقق

عقدة المصدر: 2547459

هذه فكرة مثيرة للاهتمام ، باستخدام التوازي التخميني المدعوم بالأجهزة لتسريع المحاكاة ، مع تطور يتطلب أجهزة مخصصة. بول كننغهام (نائب أول للرئيس / مدير عام ، التحقق في Cadence) ، راؤول كامبوسانو (Silicon Catalyst ، رائد أعمال ، CTO سابق لشركة Synopsys والآن Silvaco CTO) وأواصل سلسلتنا حول أفكار البحث. كما هو الحال دائما ، نرحب بالتعليقات.

المضاربة من أجل المحاكاة

الابتكار

اختيار هذا الشهر هو كرونوس: التوازي المضاربة الفعال للمسرعات. قدم المؤلفون الورقة في مؤتمر 2020 حول الدعم المعماري للغات البرمجة وأنظمة التشغيل وهم من معهد ماساتشوستس للتكنولوجيا.

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

نقطة أخرى ملحوظة هنا. تدعم هذه الطريقة المحاكاة القائمة على التأخير ، على عكس معظم تقنيات تسريع الأجهزة.

رأي بول

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

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

يتم توزيع المهام في قائمة الانتظار على عناصر معالجة متعددة (PEs) بالتوازي - مما يعني أن Chronos ينفذ بشكل مضارب المهام المستقبلية قبل اكتمال المهمة الحالية. إذا كانت المهمة الحالية تبطل أي مهام مستقبلية يتم تنفيذها بشكل تخميني ، فسيتم "التراجع" عن إجراءات تلك المهام المستقبلية ويتم إعادة وضعها في قائمة الانتظار. لا يعد تطبيق هذا المفهوم بشكل صحيح في الأجهزة أمرًا سهلاً ، ولكنه أمر جميل بالنسبة للمستخدم الخارجي: تقوم فقط بتشفير الخوارزمية الخاصة بك كما لو أن قائمة انتظار المهام يتم تنفيذها بشكل متسلسل على PE واحد. لا حاجة لكود أي كائنات المزامنة أو القلق بشأن الجمود.

قام المؤلفون بتطبيق Chronos في SystemVerilog وتجميعها إلى FPGA. تم تخصيص جزء كبير من الورقة لشرح كيفية قيامهم بتنفيذ قائمة انتظار المهام وأي عمليات فتح ضرورية في الأجهزة لتحقيق أقصى قدر من الكفاءة. يتم قياس أداء Chronos من خلال أربع خوارزميات مناسبة تمامًا للبنية القائمة على قائمة انتظار المهام. يتم تنفيذ كل خوارزمية بطريقتين: أولاً باستخدام PE مخصص للخوارزمية ، وثانيًا باستخدام وحدة المعالجة المركزية RISC-V مفتوحة المصدر ذات المصدر المفتوح 32 بت مثل PE. ثم تتم مقارنة أداء Chronos بتطبيقات البرامج متعددة الخيوط للخوارزميات التي تعمل على خادم Intel Xeon بسعر مماثل لـ FPGA المستخدم في Chronos. النتائج مثيرة للإعجاب - مقياس Chronos يقيس 3x إلى 15 ضعفًا أفضل من استخدام خادم Xeon. ومع ذلك ، فإن مقارنة الجدول 3 بالشكل 14 يجعلني أشعر بالقلق قليلاً لأن معظم هذه المكاسب جاءت من PEs الخاصة بالخوارزمية بدلاً من بنية Chronos نفسها.

نظرًا لأن هذه مدونة للتحقق ، قمت بشكل طبيعي بتكبير مقياس المحاكاة على مستوى البوابة. استثمرت صناعة EDA بكثافة لمحاولة محاكاة المنطق بشكل متوازي وثبت أنه من الصعب رؤية مكاسب كبيرة تتجاوز عدد قليل من حالات الاستخدام المحددة. هذا يرجع أساسًا إلى أداء معظم عمليات المحاكاة الواقعية التي تهيمن عليها تعليمات التحميل / التخزين المفقودة في ذاكرة التخزين المؤقت L3 والخروج إلى DRAM. لا يوجد سوى حقيبة اختبار واحدة تم اختبارها في هذه الورقة وهي عبارة عن أداة حفظ صغيرة بحجم 32 بت. إذا كنت تقرأ هذه المدونة وستكون مهتمًا بإجراء بعض المقارنة المعيارية الأكثر شمولاً ، فيرجى إبلاغي بذلك - إذا كان بإمكان Chronos حقًا التوسع بشكل جيد في محاكاة العالم الحقيقي ، فستكون لها قيمة تجارية ضخمة!

رأي راؤول

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

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

كرونوس تم تنفيذ النظام في إطار عمل AWS FPGA كنظام مكون من 16 مربعًا ، لكل منها 4 عناصر معالجة خاصة بالتطبيق (PE) ، تعمل بتردد 125 ميجا هرتز. تتم مقارنة هذا النظام بخط أساس يتكون من 20-core / 40-thread 2.4 جيجا هرتز Intel Xeon E5-2676v3 ، تم اختياره على وجه التحديد لأن سعره قابل للمقارنة مع FPGA واحد (حوالي 2 دولار / ساعة). تشغيل مهمة واحدة على PE واحد ، فإن Chronos أسرع 2.45 مرة من خط الأساس. مع زيادة عدد المهام المتزامنة ، يتدرج تطبيق Chronos إلى تسريع نسبي ذاتي قدره 44.9x على 8 مربعات ، وهو ما يقابل تسريع 15.3x على تنفيذ وحدة المعالجة المركزية. قاموا أيضًا بمقارنة التنفيذ على أساس RISC-V للأغراض العامة بدلاً من PEs الخاصة بالتطبيق ؛ كانت PEs أسرع 5 مرات من RISC-V.

لقد وجدت الورقة مثيرة للإعجاب لأنها تغطي كل شيء من المفهوم إلى تعريف نموذج تنفيذ SLOT إلى تنفيذ الأجهزة والمقارنة التفصيلية مع وحدة المعالجة المركزية Xeon التقليدية لـ 4 تطبيقات. الجهد كبير ، Chronos هو أكثر من 20,000 سطر من SystemVerilog. والنتيجة هي متوسط ​​5.4x (من التطبيقات الأربعة) على الإصدارات المتوازية من البرامج ، بسبب المزيد من التوازي والمزيد من استخدام التنفيذ التخميني. الورقة تستحق القراءة أيضًا للتطبيق على مهام غير محاكاة ؛ تتضمن الورقة ثلاثة أمثلة.

شارك هذا المنشور عبر:

الطابع الزمني:

اكثر من سيميويكي