SIMD ومعالجات المتجهات
تستغل معالجات SIMD والمتجهات التوازي على مستوى البيانات من خلال تطبيق تعليمة واحدة على العديد من عناصر البيانات في وقت واحد، مما يسرع العمليات الحسابية المنتظمة والمتكررة مثل وسائط الإعلام المتعددة، والعمليات العلمية، ونواة التعلم الآلي.
Definition
SIMD (تعليمة واحدة، بيانات متعددة) ومعالجة المتجهات هي تقنيات معمارية تقوم فيها تعليمة واحدة بتنفيذ نفس العملية على عناصر بيانات متعددة في وقت واحد، محفوظة في سجلات متجهات واسعة أو ممرات SIMD، مستغلةً التوازي على مستوى البيانات.
Scope
يغطي هذا الموضوع التنفيذ أحادي التعليمة متعدد البيانات (SIMD): معالجات المتجهات الكلاسيكية ذات سجلات المتجهات والممرات الأنبوبية، وامتدادات SIMD في وحدات المعالجة المركزية التجارية، والإخفاء والتنبؤ، والظروف التي يكون فيها توازي البيانات مربحًا. ويتناول بنية الأجهزة المتوازية للبيانات. ويستثني التوازي على مستوى الخيوط عبر النوى (المعالجات متعددة النوى ومعالجات الرقائق المتعددة) ونموذج وحدات معالجة الرسوميات ذات النوى الكثيرة جدًا (بنية وحدات معالجة الرسوميات)، والتي تتداخل معها.
Core questions
- كيف يحقق تطبيق تعليمة واحدة على العديد من عناصر البيانات تسريعًا متوازيًا؟
- كيف تختلف معالجات المتجهات عن امتدادات SIMD في وحدات المعالجة المركزية التجارية؟
- كيف يتم التعامل مع العمليات الشرطية باستخدام الإخفاء والتنبؤ؟
- ما أنواع العمليات الحسابية التي تستفيد أكثر من التنفيذ المتوازي للبيانات؟
Key concepts
- تعليمة واحدة، بيانات متعددة (SIMD)
- سجلات وممرات المتجهات
- طول المتجه وتقسيم الشرائط
- الإخفاء والتنبؤ
- التجميع/التشتيت
- امتدادات SIMD لوحدة المعالجة المركزية
- التوازي على مستوى البيانات
- التنفيذ الموجه نحو الإنتاجية
Key theories
- التوازي على مستوى البيانات عبر تعليمة واحدة، بيانات متعددة
- عندما تنطبق نفس العملية بشكل مستقل عبر العديد من عناصر المصفوفة، يمكن لتعليمة واحدة أن تدفع العديد من الممرات المتوازية أو وحدة متجهات أنبوبية، مما يقلل من تكلفة جلب التعليمات والتحكم في البيانات الكبيرة ويحقق إنتاجية عالية للعمليات الحسابية المنتظمة.
Mechanisms
يحتوي معالج المتجهات على مصفوفات من العناصر في سجلات المتجهات ويعالجها من خلال وحدات وظيفية أنبوبية أو مكررة، مع تعليمة واحدة تحدد عملية على المتجه بأكمله؛ وتتم معالجة المتجهات الطويلة على دفعات (تقسيم الشرائط). توفر امتدادات SIMD في وحدات المعالجة المركزية سجلات ذات عرض ثابت تعمل على مستوى العنصر. يتيح الإخفاء التنفيذ الشرطي لكل عنصر، وتتعامل عمليات التجميع/التشتيت مع الوصول غير المتجاور للذاكرة.
Clinical relevance
توفر الأجهزة المتوازية للبيانات جزءًا كبيرًا من أقصى إنتاجية للمعالجات الحديثة. تسرع امتدادات SIMD برامج ترميز الوسائط، ومعالجة الصور، والفيزياء، والجبر الخطي الكثيف الذي يقوم عليه التعلم العميق، بينما تدعم معماريات المتجهات الحوسبة الفائقة. يعتمد الاستخدام الفعال على المترجمين والمبرمجين الذين يكشفون عن العمليات الحسابية المنتظمة والقابلة للمتجهات.
History
كانت معالجة المتجهات رائدة في أجهزة الكمبيوتر العملاقة مثل CDC STAR-100 وخاصة Cray-1 في السبعينيات. عاد توازي البيانات إلى وحدات المعالجة المركزية التجارية من خلال امتدادات SIMD (MMX، SSE، AVX، NEON) اعتبارًا من أواخر التسعينيات، وقد جددت امتدادات المتجهات القابلة للتطوير وعودة أعباء العمل العددية الكثيفة الاهتمام بمعماريات المتجهات.
Key figures
- Seymour Cray
- Michael J. Flynn
- John L. Hennessy
- David A. Patterson
Related topics
Seminal works
- hennessy2019
- patterson2020
Frequently asked questions
- ما الفرق بين امتدادات SIMD ومعالج المتجهات؟
- تضيف امتدادات SIMD سجلات ذات عرض ثابت (على سبيل المثال 128 أو 256 بت) إلى وحدة معالجة مركزية تقليدية، وتعمل على عدد محدد من العناصر لكل تعليمة. بينما يتم بناء معالج المتجهات حول سجلات المتجهات والتعليمات التي تعمل على متجهات طويلة، غالبًا ما تكون متغيرة الطول، عادةً من خلال ممرات أنبوبية عميقة.
- لماذا لا تستفيد جميع البرامج من SIMD؟
- تسرع SIMD العمليات الحسابية التي تطبق نفس العملية على العديد من عناصر البيانات المستقلة مع وصول منتظم للذاكرة. أما البرامج التي تهيمن عليها التفرعات، أو تبعيات البيانات غير المنتظمة، أو الوصول المتناثر للذاكرة، فلا تستفيد كثيرًا، لأنه لا يمكن إبقاء الممرات المتوازية مشغولة بشكل مفيد.