هندسة وحدات معالجة الرسوميات (GPU)
وحدة معالجة الرسوميات هي معالج موجه نحو الإنتاجية، ومتوازي بشكل هائل، مبني من العديد من النوى البسيطة التي تنفذ آلاف الخيوط لإخفاء زمن الوصول إلى الذاكرة، وقد صُممت في الأصل للرسوميات وتُستخدم الآن على نطاق واسع للحوسبة للأغراض العامة وتعلم الآلة.
Definition
هندسة وحدة معالجة الرسوميات هي تصميم معالج متوازي للغاية يتكون من العديد من النوى خفيفة الوزن المجمعة في معالجات متعددة تنفذ أعدادًا كبيرة من الخيوط في مجموعات متزامنة، وهي مُحسَّنة لتحقيق إنتاجية حسابية عالية وإخفاء زمن الوصول بدلاً من سرعة الخيط الواحد.
Scope
يغطي هذا الموضوع تنظيم أجهزة وحدات معالجة الرسوميات: المعالجات المتعددة المتدفقة، ونموذج التنفيذ ذي التعليمات الواحدة والخيوط المتعددة (SIMT)، ومجموعات الخيوط (warps) وكتل الخيوط (thread blocks)، والتسلسل الهرمي للذاكرة من السجلات والذاكرة المشتركة والذاكرة العامة، وكيف تخفي وحدات معالجة الرسوميات زمن الوصول من خلال تعدد الخيوط الهائل. يتعامل هذا الموضوع مع وحدات معالجة الرسوميات كهندسة معمارية متوازية. ويستثني امتدادات SIMD لوحدة المعالجة المركزية (معالجات SIMD والمتجهات) وأطر عمل البرمجيات لبرمجة وحدات معالجة الرسوميات بما يتجاوز الآثار المعمارية.
Core questions
- كيف تحقق وحدات معالجة الرسوميات إنتاجية عالية بالعديد من النوى البسيطة بدلاً من عدد قليل من النوى المعقدة؟
- ما هو نموذج التنفيذ ذي التعليمات الواحدة والخيوط المتعددة، وكيف تعمل مجموعات الخيوط (warps)؟
- كيف يخفي تعدد الخيوط الهائل زمن الوصول إلى الذاكرة؟
- كيف يتم تنظيم التسلسل الهرمي لذاكرة وحدة معالجة الرسوميات لأعباء العمل المتوازية؟
Key concepts
- المعالج المتعدد المتدفق
- تعليمات واحدة خيوط متعددة (SIMT)
- مجموعات الخيوط (warps) وكتل الخيوط (thread blocks)
- تعدد الخيوط الهائل
- إخفاء زمن الوصول
- الذاكرة المشتركة والعامة والسجل
- تجميع الذاكرة
- تصميم موجه نحو الإنتاجية
Key theories
- إخفاء زمن الوصول من خلال تعدد الخيوط الهائل
- بدلاً من تقليل زمن الوصول لخيط واحد، تحتفظ وحدة معالجة الرسوميات بآلاف الخيوط قيد التشغيل وتتحول بين المجموعات الجاهزة كلما توقفت بعضها بسبب الذاكرة، لذا فإن التوازي الوفير يحافظ على انشغال العديد من وحدات الحساب ويخفي تأخيرات الذاكرة الطويلة.
Mechanisms
تتألف وحدة معالجة الرسوميات من العديد من المعالجات المتعددة المتدفقة، يقوم كل منها بتنفيذ مجموعات من الخيوط (warps) بشكل متزامن ضمن نموذج SIMT. تُنظَّم الخيوط في كتل تتشارك ذاكرة سريعة على الشريحة وتتزامن محليًا. يجدول الجهاز العديد من مجموعات الخيوط (warps) ويتحول بينها بتكلفة إضافية شبه معدومة، بحيث عندما تنتظر إحدى مجموعات الخيوط على الذاكرة، تعمل مجموعة أخرى، مما يحافظ على انشغال وحدات الحساب؛ وتعمل أنماط الوصول الموحد للذاكرة على زيادة استخدام عرض النطاق الترددي.
Clinical relevance
أصبحت وحدات معالجة الرسوميات مركزية في الحوسبة عالية الأداء والذكاء الاصطناعي: فتصميمها الموجه نحو الإنتاجية يجعلها المنصة المهيمنة لتدريب وتشغيل الشبكات العصبية العميقة، وكذلك للمحاكاة العلمية وتحليل البيانات. وتكافئ هندستها المعمارية الخوارزميات المتوازية للبيانات والوصول الموحد للذاكرة، مما يشكل كيفية كتابة البرمجيات الحساسة للأداء.
History
تطورت وحدات معالجة الرسوميات من خطوط أنابيب الرسوميات ذات الوظائف الثابتة في التسعينيات إلى مظللات قابلة للبرمجة ثم معالجات متعددة النوى قابلة للبرمجة بالكامل. وقد أدى إدخال أطر عمل حوسبة وحدات معالجة الرسوميات للأغراض العامة في أواخر العقد الأول من القرن الحادي والعشرين إلى فتحها أمام أعباء العمل العلمية والبيانات، وجعلتها إنتاجيتها محرك عصر التعلم العميق من العقد الثاني من القرن الحادي والعشرين فصاعدًا.
Debates
- عمومية وحدات معالجة الرسوميات مقابل المسرعات المتخصصة
- وحدات معالجة الرسوميات هي محركات إنتاجية مرنة، لكن المسرعات المتخصصة بشكل متزايد (مثل وحدات الموتر والمصفوفة) توفر كفاءة أعلى لأعباء عمل محددة؛ يوازن المصممون بين قابلية برمجة وحدات معالجة الرسوميات وتطبيقها الواسع مقابل كفاءة الأجهزة المخصصة.
Key figures
- David B. Kirk
- Wen-mei Hwu
- John L. Hennessy
- David A. Patterson
Related topics
Seminal works
- hennessy2019
- kirk2016
Frequently asked questions
- لماذا تعد وحدات معالجة الرسوميات جيدة جدًا للتعلم العميق؟
- يتكون تدريب وتشغيل الشبكات العصبية إلى حد كبير من عمليات المصفوفات والموترات الكثيفة مع توازي البيانات الوفير. وتنفذ النوى العديدة لوحدة معالجة الرسوميات وعرض النطاق الترددي العالي للذاكرة هذه العمليات بإنتاجية عالية جدًا، متجاوزة وحدات المعالجة المركزية للأغراض العامة بكثير في أعباء العمل المنتظمة والمتوازية هذه.
- ما هي مجموعة الخيوط (warp) في تنفيذ وحدة معالجة الرسوميات؟
- مجموعة الخيوط (warp) هي مجموعة من الخيوط (عادة 32) تنفذ نفس التعليمات بشكل متزامن ضمن نموذج SIMT. يتيح تجميع الخيوط في مجموعات الخيوط (warps) للجهاز توزيع التحكم في التعليمات عبر العديد من عناصر البيانات، على الرغم من أن الفروع المتباينة داخل مجموعة الخيوط (warp) تقلل الكفاءة.