تعليمة واحدة، خيوط متعددة
تُعدّ تقنية SIMT ( تعليمات واحدة، خيوط متعددة ) نموذج تنفيذ يُستخدم في الحوسبة المتوازية ، حيث تقوم وحدة تحكم مركزية واحدة ببثّ تعليمة إلى وحدات معالجة متعددة، لتتمكن جميعها من تنفيذ تلك التعليمة بشكل متزامن ومستقل تمامًا. تمتلك كل وحدة معالجة سجلات بيانات وعناوين مستقلة، وذاكرة مستقلة، ولكن لا تحتوي أي وحدة معالجة في المصفوفة على عداد برنامج . في تصنيف فلين لعام 1972، يُعتبر هذا الترتيب نوعًا من أنواع SIMD يُطلق عليه معالج المصفوفة .

تم تطبيق نموذج تنفيذ SIMT على العديد من وحدات معالجة الرسومات وهو ذو صلة بالحوسبة للأغراض العامة على وحدات معالجة الرسومات (GPGPU)، على سبيل المثال، تجمع بعض الحواسيب العملاقة بين وحدات المعالجة المركزية ووحدات معالجة الرسومات: في ILLIAC IV كانت وحدة المعالجة المركزية Burroughs B6500 .
لا يزال نموذج تنفيذ SIMT مجرد وسيلة لعرض مفهوم SIMD الأساسي للمبرمج. يجب تصميم البرامج مع مراعاة SIMD الأساسي. وبما أن إصدار التعليمات (كبث متزامن) يتم بواسطة وحدة تحكم واحدة، فإن SIMT لا يسمح، بحكم تصميمه، بتفرع الخيوط (PEs، المسارات) عن طريق التفرع، لأن وحدة التحكم وحدها هي التي تمتلك عداد البرنامج. لذا، يُفضل تجنب التفرع قدر الإمكان. [ 2 ] [ 3 ]
الاختلافات عن النماذج الأخرى
أبسط طريقة لفهم SIMT هي تخيل نظام متعدد النوى ( MIMD )، حيث تحتوي كل نواة على ملف تسجيل خاص بها، ووحدات حساب ومنطق خاصة بها (SIMD وscalar) وذاكرة تخزين مؤقتة للبيانات خاصة بها، ولكن على عكس نظام متعدد النوى قياسي يحتوي على ذاكرات تخزين مؤقتة للتعليمات ووحدات فك تشفير مستقلة متعددة، بالإضافة إلى سجلات عداد برنامج مستقلة متعددة، يتم بث التعليمات بشكل متزامن إلى جميع نوى SIMT من وحدة واحدة مع ذاكرة تخزين مؤقتة واحدة للتعليمات ووحدة فك تشفير واحدة للتعليمات تقرأ التعليمات باستخدام عداد برنامج واحد.
يكمن الاختلاف الرئيسي بين مسارات SIMT وSIMD في أن كل وحدة معالجة في مصفوفة SIMT تمتلك ذاكرة محلية خاصة بها، وقد يكون لها مؤشر مكدس مختلف تمامًا (وبالتالي تُجري عمليات حسابية على مجموعات بيانات مختلفة تمامًا)، بينما لا تعرف وحدات الحساب والمنطق (ALUs) في مسارات SIMD شيئًا عن الذاكرة بحد ذاتها، ولا تحتوي على ملف سجلات . ويتضح هذا من خلال جهاز ILLIAC IV . كانت كل نواة SIMT تُسمى عنصر معالجة (PE)، وكان لكل عنصر معالجة ذاكرة منفصلة خاصة به (PEM). وكان لكل عنصر معالجة "سجل فهرس" يُمثل عنوانًا في ذاكرة PEM الخاصة به. [ 4 ] [ 1 ] في جهاز ILLIAC IV، كان معالج Burroughs B6500 يتولى بشكل أساسي عمليات الإدخال والإخراج، ولكنه كان يرسل أيضًا التعليمات إلى وحدة التحكم (CU)، التي كانت بدورها تتولى بثها إلى عناصر المعالجة. بالإضافة إلى ذلك، كان معالج B6500، في دوره كمعالج إدخال/إخراج، يتمتع بإمكانية الوصول إلى جميع ذاكرات PEM.
بالإضافة إلى ذلك، يمكن تفعيل أو تعطيل كل وحدة معالجة. إذا كانت وحدة معالجة معينة غير نشطة، فلن تنفذ التعليمات التي تبثها إليها وحدة التحكم، بل ستبقى في وضع الخمول حتى يتم تفعيلها. يمكن القول إن كل وحدة معالجة مُسندة .
من المهم أيضًا ملاحظة الفرق بين SIMT و SPMD - برنامج واحد وبيانات متعددة. يحتوي SPMD، مثل أنظمة المعالجات متعددة النوى القياسية، على عدادات برامج متعددة، بينما يحتوي SIMT على عداد واحد فقط: في وحدة التحكم (الواحدة).
تاريخ
في تصنيف فلين ، تشير أوراقه الأصلية إلى مثالين تاريخيين لمعالجات SIMT تُسمى "معالجات المصفوفة": سولومون وإيلياك 4. [ 1 ] قدمت شركة NVIDIA تقنية SIMT في بنية Tesla GPU الدقيقة مع شريحة G80. [ 5 ] [ 6 ] أصدرت شركة ATI Technologies ، التي تُعرف الآن باسم AMD ، منتجًا منافسًا في وقت لاحق، في 14 مايو 2007، وهو شريحة GPU "R600" القائمة على TeraScale 1 .
وصف
تُنفّذ معالجات SIMT عدة "خيوط" (أو "عناصر عمل" أو "سلسلة من عمليات مسار SIMD")، بشكل متزامن، تحت سيطرة وحدة مركزية واحدة. ويشترك هذا النموذج في سمات مشتركة مع مسارات SIMD . [ 7 ]
لقد وثّقت مجموعة ILLIAC IV بشكل موسع آلية "التفرع" الخاصة بها ، وهي السلف لتقنية إخفاء المسند الحديثة .
نظرًا لأن زمن الوصول لجميع أنواع ذاكرة الوصول العشوائي الشائعة (مثل DDR SDRAM و GDDR SDRAM و XDR DRAM وغيرها) لا يزال مرتفعًا نسبيًا، مما يُسبب ما يُعرف بـ" جدار الذاكرة" ، فقد ابتكر المهندسون فكرة لإخفاء زمن الاستجابة الذي يصاحب كل عملية وصول إلى الذاكرة. وكما هو موضح في تصميم معالج ILLIAC IV، تعمل وحدات المعالجة الفردية (PEs) بتردد ساعة أبطأ من وحدة المعالجة المركزية القياسية، ولكنها تُعوّض هذا النقص في تردد الساعة بتشغيل عدد هائل من هذه الوحدات بالتوازي. والنتيجة هي أن سرعة كل وحدة معالجة أبطأ تتناسب بشكل أفضل مع سرعة ذاكرة الوصول العشوائي. وتنجح هذه الاستراتيجية لأن أحمال عمل وحدة معالجة الرسومات (GPU) متوازية بطبيعتها، ومن الأمثلة على ذلك تقنية العرض المُجزّأ .
تهدف تقنية SIMT إلى الحد من زمن جلب التعليمات ، [ 8 ] أي زمن الوصول إلى الذاكرة، وتُستخدم في وحدات معالجة الرسومات الحديثة (مثل وحدات NVIDIA و AMD ) مع تقنية "إخفاء زمن الوصول" لتمكين تنفيذ عالي الأداء رغم زمن الوصول الكبير في عمليات الوصول إلى الذاكرة. وكما هو الحال مع تقنية SIMD، تتمثل إحدى المزايا الرئيسية الأخرى في مشاركة منطق التحكم بين العديد من مسارات البيانات، مما يؤدي إلى زيادة كثافة الحساب. إذ يمكن لكتلة واحدة من منطق التحكم إدارة N مسار بيانات، بدلاً من تكرار منطق التحكم N مرة.
من عيوب تنفيذ SIMT حقيقة أنه نظرًا لوجود عداد برنامج واحد فقط، فإن "إخفاء المسند" هو الاستراتيجية الوحيدة للتحكم في تنفيذ كل PE، مما يؤدي إلى ضعف الاستخدام في الخوارزميات المعقدة.
مصطلحات
| إنفيديا كودا | OpenCL | هينيسي وباترسون [ 9 ] |
|---|---|---|
| خيط | بند العمل | تسلسل عمليات مسار SIMD |
| الالتواء | المجموعة الفرعية | سلسلة تعليمات SIMD |
| حاجز | مجموعة العمل | جسم الحلقة المتجهة |
| شبكة | نطاق NDRange | حلقة متجهة |
تعتمد وحدات معالجة الرسومات من NVIDIA على مفهوم مجموعة الخيوط المعروفة باسم "اللفائف"، والتي تتألف من 32 خيطًا ماديًا تُنفذ بشكل متزامن. أما في وحدات معالجة الرسومات من AMD، فيُطلق على هذا المفهوم اسم "الجبهة الموجية" ، على الرغم من أنه يتألف من 64 خيطًا ماديًا. في OpenCL، يُطلق عليه اسم "المجموعة الفرعية" نسبةً إلى مصطلحي اللفائف والجبهة الموجية. كما توفر CUDA تعليمات خلط اللفائف التي تُسرّع تبادل البيانات المتوازي داخل مجموعة الخيوط، [ 10 ] وتتيح OpenCL دعمًا مشابهًا لهذه الميزة من خلال امتداد cl_khr_subgroups. [ 11 ]
انظر أيضاً
مراجع
- 1 2 3 "وصف تمهيدي لنظام الشريان الحرقفي الرابع" (ملف PDF) . مؤرشف من الأصل (ملف PDF) بتاريخ 27-04-2024.
- ↑ "نموذج SIMT - منصة رقاقة حوسبة للأغراض العامة مفتوحة المصدر - بلو بورسلين (GPGPU)" . gpgpuarch.org . تم الاطلاع عليه بتاريخ 30-07-2025 .
- ↑ "معمارية معالج الرسومات للأغراض العامة - الفصل 3 - نواة SIMT: تدفق بيانات التعليمات والسجلات (الجزء 1) | FANnotes" . www.fannotes.me . تاريخ الاسترجاع: 30 يوليو 2025 .
- ↑ "نظام الشريان الحرقفي الرابع" .
- ↑ "ورقة بيضاء حول بنية الحوسبة فيرمي من إنفيديا" (ملف PDF) . www.nvidia.com . شركة إنفيديا. 2009. تاريخ الاطلاع: 17 يوليو 2014 .
- ↑ ليندهولم، إريك؛ نيكولز، جون؛ أوبرمان، ستيوارت؛ مونتريم، جون (2008). "إنفيديا تسلا: بنية موحدة للرسومات والحوسبة". مجلة IEEE Micro . 28 (2): 6 (الاشتراك مطلوب) . Bibcode : 2008IMicr..28b..39L . doi : 10.1109/MM.2008.31 . S2CID 2793450 .
- ↑ مايكل ماكول؛ جيمس رايندرز؛ آرتش روبيسون (2013). البرمجة المتوازية المهيكلة: أنماط للحوسبة الفعالة . إلسيفير. ص 52.
- ↑ رول، شون؛ فانديريندونك، هانز؛ دهاين، جوريس؛ دي بوسشير، كوين (2010). دراسة تجريبية حول قابلية نقل أداء نواة OpenCL . ندوة مسرعات التطبيقات في الحوسبة عالية الأداء (SAAHPC). hdl : 1854/LU-1016024 .
- ↑ جون ل. هينيسي؛ ديفيد أ. باترسون (2019). هندسة الحاسوب: منهج كمي ( الطبعة السادسة). مورغان كوفمان. ص 314 وما بعدها. ISBN 9780128119051.
- ↑ "عمليات اختزال متوازية أسرع على معالجات كيبلر" . مدونة إنفيديا التقنية . 14 فبراير 2014.
- ↑ "cl_khr_subgroups(3)" . registry.khronos.org .
- فئات الحواسيب
- هندسة الحاسوب
- GPGPU
- الحوسبة المتوازية
- الحوسبة SIMD
- الخيوط (الحوسبة)
