مجموعة خيوط جلسات الاستدلال لا تتحدد من عدد أسماء الجلسات وحده. يوثق ONNX Runtime إمكانية مجموعة intra-op عامة بدلا من التنافس بين مجموعات الجلسات. [1] نقرأ ملكية المورد في خريطة مؤلفة دون إنشاء جلسة.
الخلاصة السريعة
لا نفترض استقلال المجموعة؛ نراجع إعدادها وحدود اشتراك الجلسات فيها، ثم نميز عدد هويات الموارد من عدد الجهات التي تستعملها.
- intra-op يوازي الحساب داخل العملية، ويوثق ONNX Runtime مجموعة عامة له؛ inter-op يخص العمليات المختلفة ويتطلب وضع تنفيذ متوازيا. [1]
- نعلن جلستين ومجموعتين مستقلتين، لكل منهما عاملان مختلفا الهوية؛ لدينا أربعة عوامل في خريطة الورقة، لا مجرد الرقمين نفسيهما.
- في فرع آخر تشترك الجلستان في العاملين و 1 وو 2؛ الاتحاد يحوي عاملين فقط، رغم أن كليهما يظهر في بطاقة كل جلسة. لا تعد المشاركة نسخا مستقلة.
- هذه هويات افترضناها وليست قيمة خيار ORT؛ لا نحسب خيوط الاستدعاء الأخرى أو نسبة تسريع، ونحتاج إعدادا وقياسا فعليين للحكم على الأداء.
عن أي مستوى من التوازي نسأل؟
يميز التوثيق intra-op داخل العملية عن inter-op بين عمليات الرسم؛ لا تنشأ مجموعة inter-op إلا مع وضع التنفيذ المتوازي. كما يتيح مجموعة intra-op عامة. [1]
هذا يجعل كلمة «خيوط» وحدها وصفا ناقصا. نحدد المجموعة التي نتحدث عنها وما الجهات التي تستخدمها، ولا ننقل إعدادا بين المستويين كما لو كانا حقلا واحدا. موضوعنا ملكية مورد جلسة، لا عدد أشجار غابة أو عدد أمثلة الدفعة.
ولا نختار وضع تشغيل للجهاز من هذه الفقرة. قد يختلف دعم الإعداد وكيفية استعماله بحسب الواجهة والإصدار. الخريطة التعليمية التالية تفترض ملكية صريحة، ولا تقوم مقام وصف إعداد جلسة فعلية.
جلستان بمجموعتين مستقلتين
نعلن جلسة أ وجلسة ب. في الفرع الأول تخص أ العاملين أ 1 وأ 2، وتخص ب العاملين ب 1 وب 2. نعلن أن الهويات الأربع مختلفة، وأننا نعد هذه العوامل فقط.
مجموعة هويات أ عددها اثنان، ومجموعة ب عددها اثنان، واتحادهما أربعة لأنهما لا تتداخلان. إذا كتب تقريرنا اثنين لكل جلسة ثم قال «المجموع أربعة»، فالاستنتاج صحيح تحت هذا الاستقلال المعلن.
لا يعني ذلك أن تشغيل جلستين حقيقيتين يخلق بالضرورة أربع خيوط إضافية. لم نستخدم قيمة إعداد ORT لهذا العدد؛ قد تدخل خيوط استدعاء أو موارد أخرى في حساب كامل. العدد يخص قائمة الهويات التي رسمناها فقط.
ماذا يختلف إذا كانت المجموعة مشتركة؟
في فرع ثان نعلن مجموعة عامة فيها و 1 وو 2. كلا الجلستين يستعمل هذه المجموعة نفسها؛ بطاقة أ تشير إلى و 1 وو 2، وبطاقة ب تشير إلى و 1 وو 2 أيضا.
جمع مرات ظهور الأسماء في البطاقتين يعطي أربع إشارات، بينما اتحاد الهويات يعطي عاملين. كتابة الاسم نفسه في بطاقة أخرى لا تنشئ عاملا جديدا. هذا فرق في العد والملكية، لا حكم بأن كل عامل ينفذ مهمتين في اللحظة نفسها.
وإذا كانت إحدى الجلستين لم توصل فعليا بالمجموعة المشتركة، فلا تكفي بطاقة مقترحة لاعتبارها مشتركة. نحتاج عند التطبيق دليلا على الإعداد الذي تحقق، لا مجرد اختيار اسم «عام» في ملف وصف.
ما الذي بقي خارج خريطة الملكية؟
سجل نوع المجموعة والجهات المشتركة وهوية المورد والإصدار، ثم افصل ذلك عن توقيت الأعمال. لا تستخرج من عاملين مقابل أربعة نسبة تسريع، لأن الخريطة لا تحتوي كلفة العمليات أو شروط الجدولة.
كذلك لا نساوي العدد المعلن بعدد الأنوية أو بحد أعلى لجميع خيوط العملية. لم نحصر موارد النظام أو الخيوط المستعملة خارج المجموعة المحددة. وقد يتغير السؤال إذا كان المراد عد الموارد المتاحة لا الجهات التي تطلبها.
الرسم يربط جلستين بمجموعة واحدة مؤلفة. لم ننشئ InferenceSession أو نفحص خيوط نظام. يوضح فقط لماذا تحتاج مراجعة استدلال متعدد الجلسات إلى بيان الاستقلال أو المشاركة قبل جمع الأعداد أو تقييم الأداء.
المصادر ومتابعة القراءة
- ONNX Runtime: Thread management (يفتح في نافذة جديدة)onnxruntime.ai
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
