كيفية تصميم رقائق GPU
Chapter 1 Introduction to Gpu Chip Design

الفصل 1: مقدمة في تصميم رقاقة وحدة المعالجة الرسومية

ما هي وحدات المعالجة الرسومية وكيف تختلف عن وحدات المعالجة المركزية

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

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

تشمل الاختلافات المعمارية الرئيسية بين وحدات المعالجة المركزية ووحدات المعالجة الرسومية:

  • عدد النواة: تحتوي وحدات المعالجة الرسومية على عدد كبير من النواة الصغيرة (مئات إلى آلاف)، بينما تحتوي وحدات المعالجة المركزية على عدد قليل من النواة الكبيرة والقوية (2-64).
  • تسلسل الذاكرة المؤقتة: تحتوي وحدات المعالجة المركزية على ذاكرة مؤقتة كبيرة لتقليل زمن الوصول، بينما تحتوي وحدات المعالجة الرسومية على ذاكرة مؤقتة أصغر وتعتمد أكثر على النطاق الترددي العالي للتعويض عن زمن الوصول.
  • منطق التحكم: تتميز وحدات المعالجة المركزية بقدرات التنبؤ بالفروع والتنفيذ خارج الترتيب المعقدة. تتميز وحدات المعالجة الرسومية بمنطق تحكم أبسط بكثير.
  • مجموعة التعليمات: تدعم وحدات المعالجة المركزية مجموعة واسعة من التعليمات للحوسبة العامة. مجموعات تعليمات وحدات المعالجة الرسومية محدودة أكثر وتم تحسينها للرسومات.
  • نطاق الذاكرة: تتمتع وحدات المعالجة الرسومية بنطاق ذاكرة عالي جدًا (يصل إلى 1 تيرابايت/ثانية) لتغذية العديد من النواة. تتمتع وحدات المعالجة المركزية بنطاق أقل (50-100 جيجابايت/ثانية).
  • أداء العائمة: تتمتع وحدات المعالجة الرسومية بأداء عائم أعلى بكثير، مما يجعلها مناسبة لحمولات العمل عالية الأداء الحوسبي والذكاء الاصطناعي.

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

التطبيقات الرئيسية وأهمية وحدات المعالجة الرسومية (GPUs)

على مدى العقدين الماضيين، أصبحت وحدات المعالجة الرسومية (GPUs) واحدة من أهم أنواع تقنيات الحوسبة، حيث أن بنيتها شديدة التوازي تجعلها أكثر كفاءة من وحدات المعالجة المركزية (CPUs) ذات الغرض العام بالنسبة للخوارزميات التي تعالج كتل كبيرة من البيانات بشكل متوازٍ. بعض مجالات التطبيق الرئيسية التي دفعت التطور السريع لتقنية وحدات المعالجة الرسومية تشمل:

الرسومات الكمبيوترية والألعاب

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

الحوسبة عالية الأداء (HPC)

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

الذكاء الاصطناعي والتعلم الآلي

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

تعدين العملات المشفرة

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

الحوسبة المسرعة وتعلم الآلة على الحافة

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

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

مشهد مسرعات الحوسبة

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

المصفوفات البرمجية القابلة للبرمجة حقليًا (FPGAs)

FPGAs هي أجهزة شبه موصلة تقوم على مصفوفة من كتل المنطق القابلة للتكوين (CLBs) المتصلة عبر وصلات قابلة للبرمجة. يمكن إعادة برمجة FPGAs لتلبية متطلبات التطبيق أو الوظيفة المرغوبة بعد التصنيع، مما يوفر بديلاً أكثر مرونة من ASICs. يتم استخدامها بشكل شائع في الطيران والدفاع والنماذج الأولية لـ ASIC والتصوير الطبيهنا الترجمة العربية للملف:

دوائر متكاملة محددة التطبيق (ASICs)

تُعد ASICs دوائر متكاملة مخصصة لاستخدام معين، بدلاً من الاستخدام العام مثل وحدات المعالجة المركزية. غالبًا ما تشمل ASICs الحديثة معالجات كاملة بدقة 32 بت أو 64 بت، وكتل ذاكرة بما في ذلك ROM و RAM و EEPROM وذاكرة فلاش وغيرها من الكتل البناء الكبيرة. يُستخدم ASICs بشكل شائع في تعدين البيتكوين، ومُسرعات الذكاء الاصطناعي، والاتصالات اللاسلكية 5G، وأجهزة إنترنت الأشياء.

مُسرعات الذكاء الاصطناعي

مُسرعات الذكاء الاصطناعي هي رقائق متخصصة مصممة لتسريع أحمال العمل الخاصة بالذكاء الاصطناعي، وخاصة تدريب الشبكات العصبية والاستنتاج. من الأمثلة على ذلك وحدات المعالجة التي طورتها Google (TPUs)، ومعالجات الشبكات العصبية Nervana التي طورتها Intel (NNPs)، وعدد من الشركات الناشئة التي تبني رقائق ذكاء اصطناعي من الصفر. تستفيد هذه الرقائق من الرياضيات ذات الدقة المنخفضة، ودوائر ضرب المصفوفات الفعالة، والتكامل الوثيق بين الحوسبة والذاكرة لتحقيق أداء أعلى بكثير لكل وات على أحمال العمل الخاصة بالذكاء الاصطناعي مقارنة بوحدات المعالجة الرسومية أو وحدات المعالجة المركزية.

وحدات معالجة الرؤية (VPUs)

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

الرقائق العصبية والكمية

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

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

أساسيات أجهزة GPU

يتكون GPU الحديث من عدة مكونات أساسية:

وحدات المعالجة المتعددة (SMs)

SM هي الوحدة الأساسية لبناء معمارية NVIDIA GPU. تحتوي كل SM على مجموعة من نواة CUDA (عادة من 64 إلى 128) تشترك في منطق التحكم وذاكرة التخزين المؤقت للتعليمات. لكل نواة CUDA وحدة حسابية صحيحة (ALU) ووحدة حسابية عائمة (FPU) كاملة الأنابيب. عادة ما يحتوي رقاقة GPU على ما بين 16 إلى 128 SM، مما ينتج عنه آلاف من نواة CUDA.

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

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

الذاكرة المشتركة

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

ملف السجل

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

جدول الوحدات

جدول الوحدات مسؤول عن إدارة وجدولة الوحدات على SM. الوحدة هي مجموعة من 32 خيطًا تنفذ بشكل متزامن على نواة CUDA.هنا الترجمة العربية للملف:

مُجدِّول الوَرْبات يختار الوَرْبات التي جاهزة للتنفيذ ويُرسِلها إلى الأنوية، مما يُمكِّن من استخدام عالٍ والإخفاء الجيد للتأخير.

شبكة الربط

تربط شبكة الربط وحدات المعالجة المتوازية (SMs) بذاكرة التخزين المشتركة من المستوى الثاني (L2) ووحدات التحكم بالذاكرة في بطاقة الرسومات. وعادةً ما تُنفَّذ على شكل مفتاح متقاطع يسمح لعدة وحدات معالجة متوازية بالوصول إلى ذاكرة التخزين المشتركة من المستوى الثاني والذاكرة الرئيسية في آن واحد.

وحدات التحكم بالذاكرة

تتعامل وحدات التحكم بالذاكرة مع جميع طلبات القراءة والكتابة إلى ذاكرة الوصول العشوائي (DRAM) في بطاقة الرسومات. وهي مسؤولة عن تحسين أنماط الوصول إلى ذاكرة DRAM لتعظيم استخدام النطاق الترددي. تتميز بطاقات الرسومات الحديثة بواجهات ذاكرة DRAM عريضة جدًا (من 256 بت إلى 4096 بت) وتدعم تقنيات ذاكرة عالية النطاق الترددي مثل GDDR6 و HBM2.

نواة الأشعة وأنوية المصفوفات

تشمل بطاقات الرسومات الحديثة من NVIDIA وحدات معالجة متخصصة لتسريع تتبع الأشعة (نواة الأشعة) والذكاء الاصطناعي/التعلم العميق (أنوية المصفوفات). تُسرِّع نواة الأشعة عملية اجتياز هرم المجلدات المحيطة (BVH) واختبارات تقاطع الأشعة والمثلثات، بينما توفر أنوية المصفوفات عمليات ضرب المصفوفات والتحويلات التلافيفية عالية الإنتاجية.

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

نبذة تاريخية عن بطاقات الرسومات

يمكن تتبع تاريخ بطاقات الرسومات إلى أيام التسريع الرسومي ثلاثي الأبعاد في التسعينيات:

  • التسعينيات: ظهرت مُسرِّعات الرسومات ثلاثية الأبعاد المبكرة مثل 3dfx Voodoo و NVIDIA RIVA TNT في منتصف التسعينيات لتحميل عملية عرض الرسومات ثلاثية الأبعاد من وحدة المعالجة المركزية. كانت هذه أجهزة ذات وظيفة ثابتة مُحسَّنة لمجموعة محددة من واجهات برمجة التطبيقات الرسومية ولم تكن قابلة للبرمجة.

  • 1999: قدمت NVIDIA GeForce 256، وهي أول بطاقة رسومات تنفذ تحويل الأشكال والإضاءة (T&L) في الأجهزة بالإضافة إلى عمليات العرض الرسومي ثلاثي الأبعاد القياسية.هذا هو الترجمة العربية للملف المرفق:

  • 2001: أطلقت NVIDIA GeForce 3، والتي قدمت برمجة顶点和像素着色器,مما فتح الباب أمام تأثيرات بصرية أكثر واقعية وديناميكية. وهذا كان بداية الانتقال من الأنابيب الرسومية الثابتة إلى البرمجة.

  • 2006: أطلقت NVIDIA GeForce 8800 GTX، وكان هذا نقطة تحول رئيسية، حيث كان أول معالج رسومي يدعم نموذج البرمجة CUDA، مما مكّن المطورين من استخدام المعالج الرسومي للحوسبة العامة (GPGPU) بخلاف الرسومات فقط. وكان له 128 نواة CUDA وقادر على تحقيق أكثر من 500 جيجا عملية حسابية ثانوية في الثانية.

  • 2008: شكلت Apple و AMD و Intel و NVIDIA مجموعة عمل OpenCL لتطوير معيار مفتوح للبرمجة المتوازية على الأنظمة المتجانسة. وقدم OpenCL بديلاً محايداً للموردين لـ CUDA، على الرغم من أن CUDA ظل المنصة الأكثر استخداماً للحوسبة العامة للمعالج الرسومي.

  • 2010: أطلقت NVIDIA معمارية Fermi، والتي تميزت بوجود ما يصل إلى 512 نواة CUDA، وهرمية ذاكرة كاش موحدة L1/L2، ودعم ذاكرة ECC، وتحسين أداء الدقة المزدوجة. وهذا جعل المعالجات الرسومية قابلة للتطبيق في مجموعة أوسع من تطبيقات الحوسبة عالية الأداء والحوسبة العلمية.

  • 2016: قدمت NVIDIA معمارية Pascal مع Tesla P100، والتي تميزت بذاكرة HBM2 عالية النطاق الترددي، وما يصل إلى 3584 نواة CUDA، ونوى FP16 متخصصة للتعلم العميق. وكان بإمكان P100 تقديم أكثر من 10 تيرا عملية حسابية ثانوية في الثانية، مما عزز من مكانة المعالجات الرسومية كمنصة الخيار للتدريب على الذكاء الاصطناعي.

  • 2018: أطلقت NVIDIA معمارية Turing، والتي قدمت RT Cores للتتبع الإشعاعي الحقيقي الوقت وTensor Cores لتسريع استنتاج الذكاء الاصطناعي. وشكلت Turing محطة هامة في معمارية المعالج الرسومي، حيث وسعت قدرات المعالج الرسومي لتتجاوز مجرد الرسترة والحوسبة العامة للمعالج الرسومي لتشمل تقنيات العرض المتقدمة وتسريع الذكاء الاصطناعي.

الخاتمة

على مدى العقدين الماضيين، تطورت المعالجات الرسومية من مُسرّعات رسومات ثابتة الوظيفة إلى معالجات برمجية متقدمة للغاية.هنا الترجمة العربية للملف:

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

  • إدخال الظل القابل للبرمجة مع الدعم للتفرع والتكرار
  • معمارية المعالج الموحدة التي تسمح بأن تستخدم نفس وحدات المعالجة لمهام الظل المختلفة
  • إضافة الدعم لنماذج البرمجة العامة مثل CUDA و OpenCL
  • زيادة الكفاءة في استهلاك الطاقة من خلال الاستخدام الواسع للتعدد الخيطي لإخفاء تأخير الذاكرة والحفاظ على استخدام وحدات الحساب
  • التحسينات المستمرة في عرض النطاق الترددي للذاكرة وإدخال تقنيات الذاكرة عالية النطاق الترددي مثل GDDR6 و HBM2
  • دمج وحدات ذات وظائف ثابتة للتتبع الشعاعي ومعالجة المصفوفات لتسريع عمليات الرسم والأحمال الحسابية للذكاء الاصطناعي

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

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