كيفية تصميم رقائق GPU
Chapter 4 Gpu Memory System Design

الفصل 4: تصميم نظام ذاكرة وحدة المعالجة الرسومية

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

هياكل الذاكرة من المستوى الأول

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

ذاكرة المسح وذاكرة التخزين المؤقت للبيانات من المستوى الأول

ذاكرة المسح، والمعروفة أيضًا باسم الذاكرة المشتركة في نموذج برمجة CUDA من NVIDIA أو الذاكرة المحلية في OpenCL، هي مساحة ذاكرة منخفضة الإبطاء، يتم إدارتها من قبل البرنامج، ومشتركة بين جميع الخيوط داخل مصفوفة الخيوط التعاونية (CTA) أو مجموعة العمل. يتم تنفيذ ذاكرة المسح عادةً باستخدام هيكل SRAM مصرفي لتمكين الوصول المتوازي من قبل عدة خيوط.

يوضح الشكل 4.1 تنظيم ذاكرة التخزين المؤقت للبيانات من المستوى الأول والذاكرة المشتركة الموحدة، والذي يشبه التصميم المستخدم في معمارية Fermi وKepler من NVIDIA [Minkin et al., 2012].

                                    Address Crossbar
                                          |
                                          v
                        Data Array (Configurable as Scratchpad or Cache)
                                          |
                                          v  
                                    Data Crossbar
                                          |
                                          v
                                 Load/Store Uni
```هذا هو الترجمة العربية للملف الذي قدمته:

الشكل 4.1: تنظيم ذاكرة التخزين المؤقت للبيانات L1 والذاكرة المساعدة الموحدة.

المكونات الرئيسية لهذا التصميم هي:

1. **مصفوفة البيانات**: بنية SRAM مقسمة إلى عدة بنوك يمكن تكوينها إما كذاكرة مساعدة أو ذاكرة تخزين مؤقت للبيانات L1. كل بنك له عرض 32 بت وله فك تشفير خاص به للوصول المستقل.

2. **تقاطع العناوين**: يوزع عناوين الذاكرة من وحدة التحميل/التخزين على البنوك المناسبة في مصفوفة البيانات.

3. **تقاطع البيانات**: يوجه البيانات من البنوك إلى وحدة التحميل/التخزين، والتي تكتب البيانات إلى ملف السجل.

4. **وحدة التحميل/التخزين**: تحسب عناوين الذاكرة، وتطبق قواعد التجميع، وتقسم الوصول إلى الذاكرة إلى وصول مجمع فردي.

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

يتم استخدام ذاكرة التخزين المؤقت للبيانات L1 لتخزين جزء فرعي من مساحة عناوين الذاكرة العالمية. يتضمن الوصول إلى ذاكرة التخزين المؤقت للبيانات L1 البحث في الوسم لتحديد ما إذا كانت البيانات المطلوبة موجودة. حجم كتلة ذاكرة التخزين المؤقت هو عادة 128 بايت، والتي يمكن تقسيمها إلى قطاعات 32 بايت لتتوافق مع الحد الأدنى لحجم البيانات التي يمكن قراءتها من ذاكرة DRAM الرسومات (مثل GDDR5) في وصول واحد.

### ذاكرة التخزين المؤقت للنسيج L1

ذاكرة النسيج هي مساحة ذاكرة للقراءة فقط مُحسّنة للموضعية المكانية وتُستخدم بشكل شائع في أحمال العمل الرسومية. تم تصميم ذاكرة التخزين المؤقت للنسيج L1 لاستغلال الموضعية المكانية ثنائية الأبعاد الموجودة في وصول النسيج.

يوضح الشكل 4.2 تنظيم نموذجي لذاكرة التخزين المؤقت للنسيج L1.هذا هو الترجمة العربية للملف:

                                  |
                                  v
                           ترشيح النسيج
                                  |
                                  v
                           نسيج مرشح

الشكل 4.2: تنظيم ذاكرة التخزين المؤقت للنسيج L1.

المكونات الرئيسية لذاكرة التخزين المؤقت للنسيج L1 هي:

  1. تخصيص العنوان: يحول إحداثيات النسيج إلى عناوين ذاكرة التخزين المؤقت.

  2. مصفوفة العلامات: تخزن علامات كل سطر في ذاكرة التخزين المؤقت لتحديد ما إذا كانت البيانات المطلوبة موجودة.

  3. مصفوفة البيانات: تخزن بيانات النسيج الفعلية.

  4. ترشيح النسيج: يُجري عمليات التداخل والترشيح على بيانات النسيج المسترجعة لإنشاء نسيج مرشح نهائي.

عادةً ما تستخدم ذاكرة التخزين المؤقت للنسيج L1 تنظيمًا قائمًا على الرقع لاستغلال الموقعية المكانية. يتم تقسيم الذاكرة المؤقتة إلى رقع أصغر (على سبيل المثال، 4x4 أو 8x8 نسيج)، ويتم تخزين كل رقعة بطريقة متواصلة لتقليل عدد أسطر الذاكرة المؤقتة التي يتم الوصول إليها لاسترداد نسيج معين.

ذاكرة التخزين المؤقت الموحدة للبيانات والنسيج

قدمت المعمارية الحديثة للبطاقات الرسومية، مثل Maxwell و Pascal من NVIDIA، ذاكرة تخزين مؤقتة موحدة للبيانات والنسيج لتحسين استخدام الذاكرة المؤقتة وتقليل بصمة الذاكرة المؤقتة الإجمالية [Heinrich et al., 2017]. في هذا التصميم، تتم دمج ذاكرة التخزين المؤقتة للبيانات L1 وذاكرة التخزين المؤقتة للنسيج L1 في ذاكرة مؤقتة فيزيائية واحدة، مع القدرة على تخصيص السعة ديناميكيًا بين الاثنين بناءً على متطلبات الحمل الوظيفي.

يوضح الشكل 4.3 تنظيم ذاكرة التخزين المؤقتة الموحدة للبيانات والنسيج.

                                طلبات الذاكرة
                                       |
                                       v
                                  وحدة التحكم في الذاكرة المؤقتة
                                 /             \
                                /               \
                               /                 \
                              v                   v
                      قسم ذاكرة التخزين المؤقتة للبيانات   قسم ذاكرة التخزين المؤقتة للنسيج
                              |
```هذا هو الترجمة العربية للملف:

الشكل 4.3: تنظيم ذاكرة التخزين المؤقت الموحدة للبيانات والنسيج.

المكونات الرئيسية لتصميم ذاكرة التخزين المؤقت الموحدة هي:

1. **وحدة التحكم في ذاكرة التخزين المؤقت**: تستقبل طلبات الذاكرة وتحدد ما إذا كان ينبغي أن يتم خدمتها من قبل قسم ذاكرة التخزين المؤقت للبيانات أو قسم ذاكرة التخزين المؤقت للنسيج.

2. **قسم ذاكرة التخزين المؤقت للبيانات**: يتعامل مع الوصول إلى مساحة الذاكرة العالمية، مشابه لذاكرة التخزين المؤقت L1 للبيانات المستقلة.

3. **قسم ذاكرة التخزين المؤقت للنسيج**: يتعامل مع الوصول إلى ذاكرة النسيج، مشابه لذاكرة التخزين المؤقت L1 للنسيج المستقلة.

4. **مصفوفة البيانات**: مصفوفة بيانات مشتركة تخزن كل من بيانات الذاكرة العالمية وبيانات النسيج.

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

## شبكة الربط داخل الشريحة

شبكة الربط داخل الشريحة مسؤولة عن ربط أنوية وحدة المعالجة الرسومية (تُسمى أيضًا وحدات معالجة متعددة أو وحدات حساب) بوحدات تقسيم الذاكرة. يجب أن توفر الشبكة الداخلية نطاق ترددي عالي وانخفاض في زمن الوصول لدعم التوازي الهائل في أحمال عمل وحدة المعالجة الرسومية.

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

يوضح الشكل 4.4 مثالاً على شبكة شبكية في وحدة المعالجة الرسومية.|      |
        أساسي   أساسي   أساسي   أساسي
         |      |      |      |
        ——     ——     ——     ——  
         |      |      |      |
        أساسي   أساسي   أساسي   أساسي
         |      |      |      |
        ——     ——     ——     ——
         |      |      |      |  
        ذاكرة   ذاكرة   ذاكرة   ذاكرة
        جزء.  جزء.  جزء.  جزء.

الشكل 4.4: شبكة تداخل الشبكة في وحدة معالجة الرسومات.

تسمح شبكة التداخل بنقل البيانات بكفاءة بين الأنوية والأجزاء الذاكرية مع تقليل المساحة والطاقة المستهلكة. يتم استخدام خوارزميات توجيه متقدمة وآليات التحكم في التدفق لضمان الأداء العالي وتجنب الاختناقات.

وحدة تقسيم الذاكرة

تكون وحدة تقسيم الذاكرة مسؤولة عن معالجة طلبات الذاكرة من أنوية وحدة معالجة الرسومات وإدارة الذاكرة الخارجية DRAM. تتضمن كل وحدة تقسيم ذاكرة عادةً ذاكرة تخزين مؤقت L2 ، ودعم العمليات الذرية ، ومجدول الوصول إلى الذاكرة.

ذاكرة التخزين المؤقت L2

تعد ذاكرة التخزين المؤقت L2 ذاكرة مشتركة تقع بين أنوية وحدة معالجة الرسومات والذاكرة الخارجية DRAM. الغرض الرئيسي منها هو تقليل عدد الوصول إلى ذاكرة DRAM البطيئة والمكلفة من حيث الطاقة عن طريق تخزين البيانات التي يتم الوصول إليها بشكل متكرر.

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

يوضح الشكل 4.5 تنظيم ذاكرة التخزين المؤقت L2 في جزء ذاكرة وحدة معالجة الرسومات.

                            طلبات الذاكرة
                                   |
                                   v
                             وحدة تحكم ذاكرة التخزين المؤقت L2
                                   |
                                   v
                              مصفوفة العلامات
                                   |
                                   v
                              مصفوفة البيانات
                                   |
                                   v
                             مجدول الذاكرة
```هذا هو الترجمة العربية للملف:

الشكل 4.5: تنظيم ذاكرة التخزين المؤقت L2 في قسم ذاكرة وحدة معالجة الرسومات.

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

العمليات الذرية

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

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

يوضح الشكل 4.6 مثالاً على وحدة العمليات الذرية في قسم ذاكرة وحدة معالجة الرسومات.

                            طلبات ذرية
                                   |
                                   v
                          وحدة العمليات الذرية
                                   |
                                   v
                            ذاكرة التخزين المؤقت L2/ذاكرة الوصول العشوائي الديناميكية

الشكل 4.6: وحدة العمليات الذرية في قسم ذاكرة وحدة معالجة الرسومات.

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

جدولة الوصول إلى الذاكرة

تكون جدولة الوصول إلى الذاكرة مسؤولة عن إدارة تدفق


طلبات الذاكرة إلى ذاكرة الوصول العشوائي الخارجية (DRAM). الهدف الرئيسي هو تحقيق أقصى استفادة من عرض النطاق الترددي لذاكرة DRAM مع تقليل زمن الوصول إلى الذاكرة.

تستخدم جداول زمنية لذاكرة وحدة المعالجة الرسومية (GPU) خوارزميات جدولة وتحسينات مختلفة لتحقيق أداء عالٍ. بعض التقنيات الشائعة تشمل:

1. **الجدولة خارج الترتيب**: إعادة ترتيب طلبات الذاكرة لتحقيق أقصى عدد من إصابات منطقة الصف وتقليل تكلفة إعادة تحميل وتنشيط ذاكرة DRAM.

2. **التوازي على مستوى البنك**: استغلال التوازي المتاح عبر عدة بنوك DRAM لتمكين الوصول المتزامن إلى مناطق ذاكرة مختلفة.

3. **تحسين تحول الكتابة إلى القراءة**: تقليل عقوبة زمن الوصول عند التبديل بين عمليات الكتابة والقراءة في ذاكرة DRAM.

4. **تداخل العناوين**: توزيع عمليات الوصول إلى الذاكرة عبر قنوات وصفوف وبنوك مختلفة لتحقيق أقصى قدر من التوازي وتجنب التنافس.

الشكل 4.7 يوضح نظرة عامة على جدول زمني لوصول الذاكرة في قسم ذاكرة وحدة المعالجة الرسومية (GPU).

طلبات الذاكرة | v جدول زمني للذاكرة | v القناة القناة القناة القناة | | | | v v v v الصف الصف الصف الصف | | | | v v v v
البنك البنك البنك البنك

الشكل 4.7: جدول زمني لوصول الذاكرة في قسم ذاكرة وحدة المعالجة الرسومية (GPU).

يستقبل جدول زمني الذاكرة طلبات الذاكرة من ذاكرة التخزين المؤقت للمستوى الثاني (L2) ووحدات العمليات الذرية، ويقرر متى وبأي ترتيب إصدار هذه الطلبات إلى ذاكرة DRAM. من خلال جدولة عمليات الوصول إلى الذاكرة بعناية، يمكن للجدول الزمني تحسين استخدام عرض النطاق الترددي لذاكرة DRAM بشكل كبير وتقليل متوسط زمن الوصول إلى الذاكرة.

## البحثتعليمات لأنظمة ذاكرة وحدة المعالجة الرسومية (GPU)

مع استمرار تطور معمارية وحدات المعالجة الرسومية (GPU) وزيادة متطلبات الحمل الحسابي المتوازي، هناك العديد من اتجاهات البحث الهادفة إلى تحسين أداء وكفاءة أنظمة ذاكرة وحدات المعالجة الرسومية. بعض مجالات البحث الرئيسية تشمل:

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

على سبيل المثال، يقترح Jia وآخرون [2012] خوارزمية جدولة الذاكرة تُسمى "جدولة الذاكرة المرحلية" (SMS) التي تهدف إلى تحسين التوازي على مستوى بنك ذاكرة DRAM وتقليل زمن الوصول إلى الذاكرة. تقسم SMS قائمة طلبات الذاكرة إلى مرحلتين: تكوين الدفعة وجدولة الدفعة. في مرحلة تكوين الدفعة، يتم تجميع الطلبات في دفعات بناءً على عناوين البنك والصف لاستغلال محلية الصف. في مرحلة جدولة الدفعة، يتم تحديد أولوية الدفعات بناءً على عمرها وأهميتها لضمان العدالة وتقليل الانسداد.

مثال آخر هو العمل الذي قام به Kim وآخرون [2012]، والذي يقترح معمارية ذاكرة عالية النطاق الترددي (HBM) لوحدات المعالجة الرسومية. تقوم HBM بتكديس العديد من شرائح ذاكرة DRAM فوق بعضها البعض وربطها باستخدام فتحات السيليكون (TSV)، مما يؤدي إلى زيادة كبيرة في النطاق الترددي وانخفاض زمن الوصول مقارنة بذاكرة GDDR التقليدية. كما يقترح المؤلفون تصميم جديد لوحدة التحكم في الذاكرة يمكن أن تدير بكفاءة التوازي المتزايد والتعقيد الناتج عن HBM.

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

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

على سبيل المثال، يقترح Huangfu و Xie [2016] نظام تجاوز ذاكرة التخزين المؤقت ديناميكي للبطاقات الرسومية يستخدم حيلة بسيطة ولكن فعالة لتحديد ما إذا كان يجب تخزين طلب الذاكرة في الذاكرة المؤقتة أم تجاوزها بناءً على مسافة إعادة الاستخدام. يتكيف النظام مع السلوك الزمني للتطبيق ويمكن أن يقلل بشكل كبير من تلوث الذاكرة المؤقتة ويحسن الأداء.

مثال آخر هو العمل الذي قام به Vijaykumar وآخرون [2015]، والذي يقترح معمارية ذاكرة تخزين مؤقتة مضغوطة للبطاقات الرسومية. لاحظ المؤلفون أن العديد من تطبيقات البطاقات الرسومية تظهر تكرارًا كبيرًا في البيانات، والذي يمكن استغلاله لزيادة السعة الفعالة للذاكرة المؤقتة. يقترحون نظام ضغط جديد يمكن أن يحقق نسب ضغط عالية مع الحد الأدنى من تأخير.

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

تستكشف البحوث في هذا المجال تقنيات لتحديد وتحديد أولوية طلبات الذاكرة الحرجة، بالإضافة إلى آليات للتجاوز الانتقائي للذاكرة المؤقتة.

على سبيل المثال، يقترح Jog وآخرون [2013] نظام تحديد أولوية طلبات الذاكرة يُسمى "التسريع المدرك للأنوال الحرجة" (CAWA). يحدد CAWA الأنوال الحرجة التي من المرجح أن تعطل خط الأنابيب ويعطي أولوية لطلبات ذاكرتها على تلك الخاصة بالأنوال غير الحرجة. يستخدم النظام مزيجًا من المعلومات الثابتة والديناميكية، مثل عدد التعليمات المعتمدة وعمر النول، لتحديد الأهمية.

يقترح Lee وآخرون [2015] نظام تجاوز ذاكرة التخزين المؤقت للبطاقات الرسومية يهدف إلى تقليل تلوث الذاكرة المؤقتة وتحسين توقيت الوصول إلى الذاكرة. يستخدم النظام نهجًا قائمًا على عداد البرنامج لتحديد ما إذا كان ينبغي تخزين طلب الذاكرة في الذاكرة المؤقتة أم تجاوزها.هنا الترجمة العربية للملف المذكور:

آلية التنبؤ لتحديد طلبات الذاكرة التي من غير المرجح أن تستفيد من التخزين المؤقت وتتجاوزها مباشرة إلى التسلسل الهرمي للذاكرة الأدنى. يُظهر المؤلفون أن نظامهم يمكن أن يحسّن الأداء وكفاءة الطاقة بشكل كبير مقارنة بالأساس GPU بدون التجاوز.

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

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

على سبيل المثال، يقترح Kayıran وآخرون [2014] نظام إدارة ذاكرة التخزين المؤقت على مستوى الورقة يتكيف ديناميكيًا مع سياسات تخصيص وإحلال الذاكرة المؤقتة بناءً على خصائص التباين لكل ورقة. يتم تخصيص موارد ذاكرة أكثر للأوراق ذات التباين العالي لتقليل تباين الذاكرة، بينما يتم تخصيص موارد أقل للأوراق ذات التباين المنخفض لتحسين استخدام الذاكرة المؤقتة.

مثال آخر هو عمل Sethia وآخرون [2015]، الذي يقترح تصميم وحدة تحكم الذاكرة التي تستغل التباين بين الأوراق لتحسين التوازي على مستوى بنك DRAM. يلاحظ المؤلفون أن الأوراق المختلفة يمكن أن تكون لديها درجات مختلفة من التوازي على مستوى البنك، ويقترحون خوارزمية جدولة ذاكرة على مستوى الورقة تعطي الأولوية للأوراق ذات التوازي العالي على مستوى البنك لتقليل تنافس الذاكرة وتحسين إنتاجية النظام.

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

تستكشف الأبحاث في هذا المجال تقنيهنا ترجمة الملف إلى اللغة العربية. بالنسبة للرموز البرمجية، لم يتم ترجمة الرموز، وتمت ترجمة التعليقات فقط:

استخدام التنسيق المنسق لقرارات تجاوز ذاكرة التخزيع عبر وحدة المعالجة الرسومية لتحسين الأداء الكلي للنظام واستخدام الموارد.

على سبيل المثال، اقترح Li وآخرون [2015] نظام تنسيق لتجاوز ذاكرة التخزيع لوحدات المعالجة الرسومية يستخدم وحدة تحكم مركزية لاتخاذ قرارات التجاوز العامة. تقوم هذه الوحدة بجمع معلومات التشغيل من كل نواة، مثل معدلات فقد ذاكرة التخزيع وأنماط الوصول إلى الذاكرة، واستخدام هذه المعلومات لتحديد استراتيجية التجاوز المثلى لكل نواة. يُظهر المؤلفون أن نظامهم يمكن أن يحسن الأداء وكفاءة الطاقة بشكل كبير مقارنة بالتجاوز غير المنسق.

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

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

على سبيل المثال، اقترح Wang وآخرون [2016] نظام إدارة ذاكرة تخزيع تكيفي لوحدات المعالجة الرسومية يضبط بشكل ديناميكي أحجام أقسام ذاكرة التخزيع وسياسات الاستبدال بناءً على أنماط الوصول إلى الذاكرة للتطبيق. يستخدم النظام مزيجًا من التقنيات المادية والبرمجية لمراقبة سلوك ذاكرة التخزيع وإجراء تعديلات ديناميكية لتحسين استخدام ذاكرة التخزيع والأداء.

مثال آخر هو العمل الذي قام به Dai وآخرون [2018]، والذي يقترح نهجًا قائمًا على التعلم الآلي لإدارة ذاكرة التخزيع التكيفية في وحدات المعالجة الرسومية. يستخدم المؤلفون التعلم بالتعزيز لتعلم التكوين المثالي لذاكرة التخزيع لكل تطبيق بناءً على سلوكه أثناء التشغيل. يتم بعد ذلك تنفيذ السياسات المتعلمة باستخدام معمارية ذاكرة تخزيع قابلة للإعادة التكوين والتي يمكن أن تتكيف مع الاحتياجات المحددة لكل تطبيق.

### أولوية ذاكرة التخزيع
في وحدات المعالجة الرسومية، هناك أنواع مختلفة منهذا هو الترجمة العربية للملف:

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

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

على سبيل المثال، اقترح Zhao وآخرون [2018] نظام أولوية ذاكرة التخزيق المؤقت لوحدات معالجة الرسومات يخصص أولويات مختلفة لأنواع مختلفة من طلبات الذاكرة بناءً على أهميتها وحساسيتها للوقت. يستخدم النظام مزيجًا من المعلومات الثابتة والديناميكية، مثل نوع التعليمة والعدد من التعليمات المعتمدة عليها، لتحديد أولوية كل طلب. يُظهر المؤلفون أن نظامهم يمكن أن يحسن الأداء وكفاءة الطاقة بشكل كبير مقارنة بوحدة معالجة الرسومات الأساسية بدون أولوية.

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

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

على سبيل المثال، اقترح Zheng وآخرون [2016] نظام وضع الصفحات لوحدات معالجة الرسومات يهدف إلى تحسين موضعية الوصول إلى الذاكرة من خلال وضع الصفحات التي يتم الوصول إليها بشكل متكرر معًا في نفس قناة الذاكرة أو البنك. يستخدم النظام مزيجًا من تقنيات الأجهزة والبرامج لمراقبة أنماط الوصول إلى الذاكرة للتطبيق واتخاذ قرارات وضع الصفحات ديناميكيًا.

مثال آخر هو عمل Ganguly وآخرون [2019]، الذي يقترح نظام إدارة الذاكرة الافتراضية لوحدات معالجة الرسومات يهدف إلى تقليل تكلفة ترجمة العناوين. يستخدم النظام مزيجًا من تقنيات الأجهزة والبرامجهنا ترجمة الملف إلى اللغة العربية. بالنسبة للرموز البرمجية، لم يتم ترجمة الرموز، وتمت ترجمة التعليقات فقط:

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

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

على سبيل المثال، يقترح Agarwal وآخرون [2015] نظام وضع بيانات لوحدات المعالجة الرسومية يهدف إلى تحسين موضعية الوصول إلى الذاكرة من خلال وضع البيانات التي يتم الوصول إليها بشكل متكرر معًا في نفس قناة الذاكرة أو البنك. يستخدم النظام مزيجًا من التحليل الثابت والديناميكي لتحديد الوضع الأمثل للبيانات لكل تطبيق.

مثال آخر هو العمل الذي قام به Tang وآخرون [2017]، والذي يقترح نظام وضع بيانات لوحدات المعالجة الرسومية يهدف إلى تحسين استخدام عرض النطاق الترددي للذاكرة من خلال وضع البيانات في قنوات ذاكرة مختلفة بناءً على أنماط الوصول إليها. يستخدم النظام نهجًا قائمًا على تعلم الآلة لتنبؤ بأنماط الوصول إلى الذاكرة للتطبيق واتخاذ قرارات وضع البيانات الديناميكية.

### وحدات المعالجة الرسومية متعددة الرقائق
مع استمرار زيادة متطلبات الأداء والطاقة لوحدات المعالجة الرسومية، قد لا تكون التصاميم الفردية التقليدية قادرة على مواكبة الطلب. ظهرت تصاميم وحدات المعالجة الرسومية متعددة الرقائق (MCM)، حيث يتم دمج عدة رقائق وحدات معالجة رسومية في حزمة واحدة، كحل واعد لهذه المشكلة.

تستكشف الأبحاث في هذا المجال تصميم وتحسين وحدات المعالجة الرسومية MCM، بما في ذلك معمارية نظام الذاكرة، وتصميم الواجهة البينية، وإدارة الموارد.

على سبيل المثال، يقترح Arunkumar وآخرون [2017] تصميم وحدة معالجة رسومية MCM تستخدم واجهة بينية عالية النطاق الترددي ومنخفضة الزمن للربط بين عدة رقائق وحدات معالجة رسومية. كما يقترح المؤلفون أيضًا معمارية نظام ذاكرة تستفيد منهنا ترجمة الملف إلى اللغة العربية. بالنسبة للرموز البرمجية، لم يتم ترجمة الرموز، وتمت ترجمة التعليقات فقط.

يستخدم تصميم MCM زيادة النطاق الترددي والسعة لتحسين الأداء وكفاءة الطاقة.

مثال آخر هو العمل الذي قام به Milic وآخرون [2018]، والذي يقترح نظام إدارة الموارد لأجهزة GPU MCM بهدف تحسين استخدام الموارد وتقليل حمل الاتصال بين الرقائق. يستخدم النظام مزيجًا من تقنيات الأجهزة والبرامج لمراقبة استخدام الموارد وأنماط الاتصال للتطبيق واتخاذ قرارات تخصيص الموارد الديناميكية.

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

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

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