SIMD والتعليمات المتجهية
عملية واحدة تطبّق على قيم متعددة موزعة على مسارات متجهية.
الحساب الأوسع مفيد فقط حين تستطيع بياناتك تغذيته.
يحفظ عناصر مجمعة.
فرّع حزمة تنفيذ
if (lane < 16) A(); else B();ترسل المجموعة المتفرعة كل فرع بقناع نشاط. في هذا المثال متساوي الكلفة، يستخدم التفرع نصف خانات المسارات المرسلة.
حدود هذا النموذج
مجموعة SIMT توضيحية من ٣٢ مسارًا وفرعين متساويين، لكل فرع عملية. لا يحاكي إعادة الالتقاء أو إخفاء التأخر أو جدولة بنية بعينها.
ما الذي يحدث في الداخل
توزيع العمل على المسارات
تعمل SIMD على عناصر متعددة في سجل متجهي. قد يحتوي سجل ١٢٨ بت أربع قيم FP32، لكن صيغ التعليمات والعروض تختلف. تدعم بعض البنى طولًا متجهيًا قابلًا للتوسع. تحدد الأقنعة المسارات النشطة، وتنقل عمليات التبديل والتجميع القيم أو تجمعها.
مساعدة المترجم على رؤية الاستقلال
تساعد المصفوفات المتجاورة وقواعد مشاركة العناوين المعروفة واستقلال التكرارات على المتجهة. تدعم gather/scatter العناوين غير المنتظمة بكلفة. قد يخدم تخطيط مصفوفة لكل حقل العمل على الحقل، بينما يخدم صف من البنى العمل على كائن كامل. تحتاج العناصر المتبقية قناعًا أو تنفيذًا عدديًا.
ما أثر ذلك في برنامجك
مهندس الأنظمة والعتاد
افحص تقارير المتجهة والمحاذاة وتحليل مشاركة العناوين ودعم التعليمات. قد تغير المتجهات الأوسع التردد أو ضغط الذاكرة على بعض الأهداف.
مطوّر البرمجيات
ابدأ ببيانات متجاورة وحلقات بسيطة. متجهة عمل مقيد بالذاكرة قد لا تحسن كثيرًا ما لم تقلل النقل أيضًا.
اقرأ المواصفات الأصلية
توضح هذه المراجع العقود الأساسية وتفاصيل التنفيذ. الرسومات هنا نماذج تعليمية مبسطة.