كيف نحن فيركلوكيد CAD COMPASS-3D → الجزء 1

لقد مرت 20 سنة منذ إصدار أول نسخة ثلاثية الأبعاد من KOMPAS - V5.11. خلال هذا الوقت ، أدركنا أن احتياجات مستخدمينا تتناسب مع قدرات KOMPAS-3D ، تمامًا كما تتوسع وظيفة KOMPAS بما يتناسب مع احتياجات المستخدمين. عقبة واحدة فقط: بناء الجزء التكنولوجي لسنوات عديدة ، واجهنا مشكلة الأداء عند العمل مع المشاريع الكبيرة المعقدة. الآن تم التغلب على هذا الخط ، ونحن مستعدون لمعرفة كيف تمكنا من تسريع KOMPAS-3D في أكثر من 30 عملية أساسية.



لا يمكن تسريع الصبر


كيف نفهم أن الوقت قد حان "لتسريع"؟


إذا كان هناك ما يكفي من العمل منذ 12 عامًا مع مجموعات مكونة من عدة آلاف من المكونات ، فإن مستخدمي KOMPAS يريدون الآن القيام بمشروعات معقدة تشتمل على 300000 عنصر في التجمع ، وسيكون عددهم قليلًا.



تطور مشاريع مستخدمي KOMPAS-3D: على اليسار معدات الطحن والدوران لإزالة الثلج للجرارات K-700A ، K-703MBA ، على يمين Steam-Gas Installation PGU-410 MW . إذا كان من الصعب رؤيتها ، انقر على الصورة.

في ServiceDesk - الدعم الفني - تلقينا طلبات بأسلوب "لا يمكنني فتح المصنع الخاص بي في الصباح" و "تم فتح النموذج ، لكنه لا يتم تدويره".

هناك استنتاج واحد فقط - يتطلب COMPAS مراجعة جادة.

التغييرات الأولى


المهمة الأساسية هي زيادة أداء النظام عند العمل مع التجميعات الكبيرة. وزيادة ليس بنسبة 10-30 ٪ مشروطة ، ولكن عدة مرات.

لحل هذه المشكلات ، في عام 2015 ، شكلنا مجموعة عمل لتسريع KOMPAS-3D. نوع من فريق الاستجابة السريعة للمبرمجين والمُختبرين والمحللين.

فريق السرعة لدينا

المساعدة: لقد عملنا على التسارع من قبل - فهذه هي التحسينات والوظائف الجديدة التي تتيح لنا حل بعض المشاكل عند العمل مع التجميعات الكبيرة. ومع ذلك ، لم تكن المهام طموحة كما هي الآن ، ولم يكن العمل ضخمًا.


كيف اخترت معايير التسارع؟


لقد اخترنا 5 اتجاهات للتسارع:

  • التجسيد (دوران وحركة وتصغير صورة النموذج) ،
  • إضافة مكونات إلى مجموعة كبيرة
  • افتتاح التجمع
  • التحرير في المجالس ،
  • الإسقاط.

عند اختيار هذه المناطق ، اعتمدنا على عدة مصادر:

  • التجربة والبحوث الخاصة ،
  • تحليل طلبات الدعم الفني وتحليل قاعدة الخطأ (في أدواتنا هناك تسمية خاصة "الأداء" ، حيث تتم الإشارة إلى المشاكل الحرجة للأداء) ،
  • نتائج مسح المستخدم (عادة ما يقوم المستخدمون بملء هذه الاستبيانات في أحداث ASCON) ،
  • القوى العليا .


نحن هنا نناقش شيئا.

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

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

"أتمتة العمليات بفضل النظام الذي تم تقديمه - نقاط الاهتمام (نقاط الاهتمام). هذه علامات خاصة موجودة في الكود المصدري. وفقًا لهم ، فإن تنفيذ البرامج النصية في KOMPAS-3D الموصوفة بلغة المستخدم ، يمكنك الحصول على تقرير مفهوم ليس فقط للمبرمج ، ولكن أيضًا للمحللين الذين لديهم اختبار ويساعد في معرفة ما يفعله KOMPAS-3D في لحظة معينة ومقدار الوقت المستغرق في ذلك. ثم يمكن معالجة هذه المعلومات تلقائيًا ومقارنتها بالبيانات المصدر. "


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


ما هي النماذج المستخدمة للمقارنة؟


قررنا التركيز على نماذج المستخدم الحقيقية التي تتوافق مع معايير "التجميعات الكبيرة".

كانت قاعدة بيانات نماذج مسابقة Aces ثلاثية الأبعاد على الكمبيوتر ذات فائدة كبيرة.

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

حافلة العربةوحدة البخار بالغاز CCP-410 MW
علبة التروس لمحطة الطاقة البحريةتركيب التكنولوجية فراغ


عندما كان من الضروري تحميل النظام أكثر من ذلك ، بالإضافة إلى هذه الطرز ، تم استخدام ميزة "hodgepodge الجاهزة" الخاصة أيضًا ، على سبيل المثال:



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

حول التنمية والنتائج المحققة


رسم


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

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

وهذه أبعد ما تكون عن جميع الحالات التي يتم فيها استخدام نظام التصور الفرعي. لذلك ، من الواضح لماذا أصبح تقديم التسريع أولوية بالنسبة لنا.

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

كانت نتيجة العمل تنفيذ خيارين للتقديم:
  • Basic - تمكين امتدادات GL 2.0 المفتوحة. أقل تطلبا على أداء بطاقة الفيديو. يعطي تسريع تقديم جيد ،
  • "محسّن" - يستخدم الامتدادات الحديثة لبرنامج OpenGL 4.5. الطلب على خصائص بطاقة الفيديو. يعطي أقصى سرعة تقديم على الخرائط الحديثة


تلميح:

تقديم الإعدادات ل v18.

بشكل افتراضي ، "الكشف التلقائي" يعمل - يتم تحديد الخيار المطلوب بناءً على امتدادات OpenGL المدعومة.


يوري كورتشين ، مبرمج:

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

هناك مشكلة أخرى مرتبطة بعدد كبير من مكالمات السحب (مكالمات إلى OpenGL API ، والتي تؤدي إلى إخراج الهندسة إلى المخزن المؤقت للإطار).

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

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

كانت الخطوة الأولى هي استخدام ذاكرة الفيديو للتخزين المؤقت لبيانات الرسم (التثليث ، السلكي ، الوجوه). عن طريق نقل هذه البيانات إلى GPU ، تمكنا من الحصول على زيادة 2-3 أضعاف في FPS.

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

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

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

المفسد: حول التثليث

حدده نيكيتا باتيانوف ، وهو مهندس تحليلي:

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

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

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

"يمكننا رسم كائنات أصغر بالنسبة إلى أبعاد النموذج بأكمله ، بينما نبالغ قليلاً في عدد المثلثات."


يوري كورتشين ، مبرمج:

"حسنًا ، لقد أصبح عرض النموذج أسرع ، ولكن ليس بقدر ما نود. في هذه المرحلة ، أدركنا أنه لا يمكننا الحصول على المزيد من هذا النهج.

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

ثم بدأت المتعة ... "


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

وبالنسبة للحلوى ، فقد تركوا مقطع فيديو لك لمقارنة سرعة التقديم أثناء الدوران ، والتغيير والتحول في المخفض لمحطة طاقة بحرية.



نهاية الجزء الاول. أن تستمر .

Source: https://habr.com/ru/post/ar444714/


All Articles