نفيديا الجري تاريخ المعالجات المتعددة


قضيت نهاية الأسبوع الماضي في تعلم برمجة CUDA و SIMT. انتهى هذا الوقت الذي قضيته بشكل مثمر مع تسارع 700 مرة تقريبًا لـ "متسابق بطاقة العمل" [1] - من 101 ثانية إلى 150 مللي ثانية.

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

سننظر في هذه المقالة في:

بطاقة تقنية معالجة سلسلة Crystal Generation أقوى بطاقة
=================================================== ===========================
2006 تسلا غيفورسي 8 G80 90 نانومتر 8800 GTX 
2010 Fermi GeForce 400 GF100 40 nm GTX 480
2012 Kepler GeForce 600 GK104 28 nm GTX 680
2014 Maxwell GeForce 900 GM204 28 nm GTX 980 Ti
2016 باسكال غيفورسي 10 GP102 16 نانومتر GTX 1080 Ti
2018 تورينج GeForce 20 TU102 12 نانومتر RTX 2080 Ti

نهاية


حتى عام 2006 ، ارتبطت بنية وحدة معالجة الرسومات من NVidia بالمراحل المنطقية لعرض واجهة برمجة التطبيقات [2] . تتكون GeForce 7900 GTX ، التي تسيطر عليها بلورة G71 ، من ثلاثة أجزاء متضمنة في معالجة القمم (8 كتل) ، وتوليد شظايا (24 كتلة) ، ودمج شظايا (16 كتلة).


كريستال G71. انتبه إلى تحسين Z-Cull ، الذي يتجاهل جزءًا لا يجتاز اختبار Z.

جعل هذا الارتباط المصممين يخمنون موقع اختناقات الناقل لتحقيق التوازن الصحيح لكل من الطبقات. مع ظهور مرحلة أخرى في DirectX 10 - التظليل الهندسي ، واجه مهندسو Nvidia المهمة الصعبة المتمثلة في موازنة البلورة دون معرفة مدى فعالية استخدام هذه المرحلة. انه الوقت للتغير.

تسلا



حلت Nvidia مشكلة التعقيد المتزايد بمساعدة بنية Tesla "المتكاملة" ، التي تم إصدارها في عام 2006.

لم يعد هناك فرق بين الطبقات في بلورة G80. نظرًا للقدرة على تنفيذ قمة الرأس والجزء و "القلب" الهندسي ، استبدل المعالج متعدد المعالجات (Stream Multiprocessor ، SM) جميع الكتل الموجودة سابقًا. تم إجراء موازنة التحميل تلقائيًا ، نظرًا لاستبدال "القلب" الذي تقوم به كل SM بناءً على متطلبات الناقل.

"في الواقع ، لقد تخلصنا من بنية تظليل NV30 / NV40 بالكامل ومن الصفر أنشأنا بنية جديدة ، مع بنية مشتركة جديدة للمعالجات العالمية (SIMT) ، والتي قدمت أيضًا منهجيات جديدة لتصميم المعالج".

جون ألبين (مقابلة extretech.com)

لم تعد قادرة على تنفيذ تعليمات SIMD ، تحولت "كتل تظليل" إلى "نواة" ، قادرة على تنفيذ تعليمات عدد صحيح واحد أو تعليمات واحدة مع float32 لكل دورة. يتلقى SM خيوط في مجموعات من 32 خيط ، تسمى الاعوجاج. من الناحية المثالية ، تقوم جميع سلاسل الرسائل من نفس الالتفاف بتنفيذ نفس التعليمات في نفس الوقت ، فقط لبيانات مختلفة (ومن هنا جاء اسم SIMT). تعمل وحدة التعليمات متعددة الخيوط (MT) في تمكين / تعطيل سلاسل الرسائل في الالتواء إذا كان مؤشر التعليمات الخاص بها (مؤشر التعليمات ، IP) يتقارب / يرفض.

تساعدك وحدتا SFU على إجراء حسابات رياضية معقدة ، مثل الجذر التربيعي العكسي ، sin ، cos ، exp ، و rcp. هذه الكتل قادرة أيضًا على تنفيذ تعليمات واحدة لكل دورة ، ولكن نظرًا لوجود اثنين منها فقط ، يتم تقسيم سرعة الالتواء إلى أربعة. لا يوجد دعم للجهاز لـ float64 ، ويتم إجراء العمليات الحسابية برمجيًا ، مما يؤثر بشكل كبير على سرعة التنفيذ.

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

كانت البلورة الرئيسية لجيل Tesla هي 90nm G80 التي تم تقديمها في GeForce 8800 GTX. يتم دمج جهازي SM في مجموعة معالجة الأنسجة (TPC) مع وحدة نسيج وذاكرة تخزين مؤقت L1 من نوع Tex. تم الوعد بأن G80 مع 8 TPC و 128 نوى يولد 345.6 جيجا فلوبس [3]. كانت بطاقة 8800 GTX شائعة للغاية في وقت واحد ، فقد تلقت مراجعات رائعة ووقعت في حب أولئك الذين يستطيعون تحملها. اتضح أنه منتج ممتاز لدرجة أنه ، بعد ثلاثة عشر شهرًا من إطلاقه ، ظل واحدًا من أسرع وحدات معالجة الرسومات في السوق.


تم تثبيت G80 في 8800 GTX. تقوم وحدات إخراج التقديم (ROP) بالتجانس.

بالتعاون مع Tesla ، قدمت Nvidia لغة البرمجة C لـ Compute Unified Device Architecture (CUDA) ، وهي مجموعة شاملة للغة C99. أحب عشاق GPGPU ، الذين رحبوا ببديل خداع GPU مع مواد GLSL والتظليل ، هذا.

على الرغم من أنني أتحدث بشكل أساسي عن SM في هذا القسم ، إلا أنه كان نصف النظام فقط. في SM ، من الضروري نقل التعليمات والبيانات المخزنة في ذاكرة GPU. لتجنب وقت التوقف عن العمل ، لا تحاول وحدات معالجة الرسومات تقليل نقل الذاكرة باستخدام ذاكرة التخزين المؤقت الكبيرة والتنبؤ بكيفية عمل وحدة المعالجة المركزية. تستفيد وحدات معالجة الرسومات من الكمون ، حيث تشبع ناقل الذاكرة لتلبية احتياجات الإدخال / الإخراج لآلاف سلاسل العمليات. لهذا ، تحقق شريحة (على سبيل المثال ، G80) عرض نطاق ترددي عالي للذاكرة باستخدام ست ناقلات ذاكرة DRAM على الوجهين.


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

فيرمي



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

« , , (Fermi , Maxwell ), , G80, [Pascal]».

( extremetech.com)

في عام 2010 ، أصدرت Nvidia GF100 ، استنادًا إلى بنية Fermi الجديدة تمامًا. تم وصف التصميمات الداخلية لأحدث شرائحها بالتفصيل في وثائق Fermi الفنية [4] .

لا يزال نموذج التنفيذ قائمًا على تشوه 32 خيطًا تم إرسالها إلى SM. تمكنت NVidia من مضاعفة / مضاعفة جميع المؤشرات فقط بفضل تقنية المعالجة 40 نانومتر. بفضل صفيفين من 16 نواة CUDA ، تمكنت SM الآن من إرسال نصف تشوه في نفس الوقت (16 خيطًا لكل منهما). على الرغم من حقيقة أن كل نواة نفذت تعليمات واحدة لكل دورة ساعة ، كانت SM قادرة بشكل أساسي على استبعاد تعليمات انفتاحية واحدة لكل دورة ساعة (أربع مرات أكثر من بنية Tesla SM).

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

هناك دعم شبه الأجهزة لـ float64 ، والذي يجمع بين العمليات التي تقوم بها نوات CUDA. بفضل ALU 32 بت (في تسلا كان 24 بت) ، يمكن لـ GF100 إجراء الضرب الصحيح في دورة واحدة ، وبسبب الانتقال من IEEE 754-1985 إلى IEEE 754-2008 ، فقد زادت الدقة عند العمل مع خط أنابيب float32 باستخدام Fused Multiply -إضافة (FMA) (أكثر دقة من تلك المستخدمة في Tesla MAD).

من وجهة نظر البرمجة ، جعل نظام الذاكرة المتكامل من Fermi من الممكن استكمال CUDA C بميزات C ++ مثل كائن وطرق افتراضية واستثناءات.

نظرًا لحقيقة أن كتل النسيج أصبحت الآن SM ، تم التخلي عن مفهوم TPC. تم استبدالها بمجموعات عناقيد معالج الرسومات (GPC) ، لكل منها أربع وحدات SM. أخيرًا وليس آخرًا ، تم تزويد SM الآن بمحرك Polymorph ، الذي يتعامل مع الحصول على القمم ، وتحويل إطار العرض والفسيفساء. تم الإعلان عن الرائد GeForce GTX 480 الرائد استنادًا إلى GF100 على أنه يحتوي على 512 نواة وقادرًا على توفير 1345 جيجا فلوب [5] .


تثبيت GF100 في GeForce GTX 480. لاحظ وحدات تحكم الذاكرة الستة التي تخدم GPC.

كبلر



في عام 2012 ، أصدرت نفيديا بنية كيبلر ، التي سميت باسم منجم ، اشتهرت باكتشاف قوانين حركة الكواكب. كالعادة ، سمحت لنا الوثائق الفنية GK104 [6] بالنظر في الداخل .

في Kepler ، حسنت Nvidia بشكل كبير من كفاءة الطاقة للرقاقة عن طريق خفض سرعة الساعة والجمع بين التردد الأساسي وتردد البطاقة (تم مضاعفة ترددها سابقًا).

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

الجيل التالي من المعالجات المتدفقة (SMX) هو وحش ، وقد تضاعفت جميع مؤشراتها تقريبًا أو تضاعفت ثلاث مرات.

بفضل أربعة مرسلات قادرة على معالجة الالتواء بالكامل في دورة ساعة واحدة (يمكن لـ Fermi معالجة نصف الالتفاف فقط) ، يحتوي SMX الآن على 196 نواة. كل مرسل لديه إرسال مزدوج ، مما سمح بتنفيذ التعليمات الثانية في الالتواء إذا كان مستقلاً عن التعليمات القابلة للتنفيذ الحالية. لم يكن الجدولة المزدوجة ممكنة دائمًا لأن عمودًا واحدًا من 32 نواة كان شائعًا في عمليتي جدولة.

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

قيل أن NVIDIA GeForce GTX 680 الرائد مع كريستال GK104 وثمانية SMX لديها 1536 نوى ، لتصل إلى 3250 جيجافلوبس [7]. أصبحت عناصر البلورة معقدة للغاية لدرجة أنني اضطررت إلى إزالة جميع التوقيعات من الرسم التخطيطي.


تم تثبيت GK104 في GeForce GTX 680.

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

ماكسويل


في عام 2014 ، أصدرت Nvidia الجيل العاشر من GPU تسمى Maxwell. كما هو مذكور في الوثائق التقنية GM107 [8] ، كان شعار الجيل الأول من الهندسة المعمارية "الحد الأقصى من كفاءة الطاقة والأداء الاستثنائي لكل وات مستهلك." تم وضع البطاقات في "بيئات محدودة الطاقة مثل أجهزة الكمبيوتر المحمولة وأجهزة الكمبيوتر الشخصية صغيرة الحجم (SFF)".

كان القرار الأكثر أهمية هو التخلي عن هيكل كبلر مع عدد نوى CUDA في SM ، والتي ليست قوة من اثنين: أصبحت بعض النوى شائعة وعادت إلى العمل في وضع نصف الالتفاف. لأول مرة في تاريخ الهندسة المعمارية ، كان لدى SMM عدد أقل من النوى من سابقتها: 128 فقط.

مطابقة عدد النوى وحجم الاعوجاج تحسين البلورة ، مما أدى إلى توفير المساحة والطاقة.


كان لدى SMM 2014 العديد من النوى (128) مثل GTX 8800 بأكمله في عام 2006.

الجيل الثاني من ماكسويل (الموصوف في الوثائق الفنية GM200 [9] ) زاد الإنتاجية بشكل كبير ، مع الحفاظ على كفاءة الطاقة للجيل الأول.

بقيت تقنية المعالجة عند 28 نانومتر ، لذلك لم يتمكن مهندسو نفيديا من اللجوء إلى التصغير البسيط لزيادة الإنتاجية. ومع ذلك ، فقد أدى انخفاض عدد نوى SMM إلى تقليل حجمها ، حيث يمكن وضع المزيد من SMMs على الشريحة. مقارنة بـ Kepler ، ضاعف الجيل الثاني من Maxwell عدد SMMs ، بينما زاد من مساحته البلورية بنسبة 25٪ فقط.

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

بدأت دراسة مخطط كتلة Maxwell GM200 بالفعل في إجهاد عينيك. لكننا ما زلنا نفحصه بعناية. وعدت بطاقة NVIDIA GeForce GTX 980 Ti الرائدة مع الكريستال GM200 و 24 SMM بـ 3072 نواة و 6060 جيجا فلوبس [10] .


تم تثبيت GM200 في GeForce GTX 980 Ti.

باسكال


في عام 2016 ، قدمت نفيديا باسكال. تترك الوثائق الفنية GP104 [11] إحساسًا كبيرًا لأن Pascal SM تبدو تمامًا مثل Maxwell SMM. لم يؤدي عدم وجود تغييرات SM إلى الركود في الأداء ، لأن تقنية المعالجة 16 نانومتر سمحت لنا بوضع المزيد من SMs ومضاعفة عدد gigaflops مرة أخرى.

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

وعد NVIDIA GeForce GTX 1080 Ti الرائد بشريحة GP102 و 28 TSM بـ 3584 نواة و 11340 جيجا فلوب [12] .


تم تثبيت GP104 في GeForce GTX 1080.

تورينج


مع إصدار تورينج في 2018 ، خطت نفيديا "أكبر خطوة معمارية إلى الأمام في عشر سنوات" [13] . في Turing SM ، لم تظهر نوى Tensor المتخصصة فقط مع الذكاء الاصطناعي ، ولكن أيضًا نوى لتتبع الأشعة (rautracing ، RT). يذكرني مثل هذا الهيكل المجزأ بالهندسة المعمارية التي كانت موجودة قبل تسلا ، وهذا يثبت مرة أخرى أن التاريخ يحب التكرار.


بالإضافة إلى النواة الجديدة ، ظهرت ثلاث ميزات مهمة في تورينج. أولاً ، أصبحت نواة CUDA الآن فاصلة ، مما يسمح بالتنفيذ المتوازي للتعليمات بالأعداد الصحيحة وأرقام الفاصلة العائمة. إذا وجدت 1996 ، فقد يذكرك هذا ببنية Intel "المبتكرة".

ثانيًا ، النظام الفرعي الجديد للذاكرة في GDDR6X ، المدعوم بـ 16 وحدة تحكم ، قادر الآن على توفير 14 جيجا فلوب.

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

يحتوي NVIDIA GeForce GTX 2080 Ti الرائد مع TU102 و 68 بلورات TSM على 4352 ويصل إلى 13 45 جيجا فلوب [14] . لم أرسم مخططًا تخطيطيًا لأنه سيبدو وكأنه بقعة خضراء غير واضحة.

ما ينتظرنا بعد ذلك


وفقًا للشائعات ، سيتم الإعلان عن العمارة التالية ، التي تحمل الاسم Ampere ، في عام 2020. كما أثبتت Intel مع Ice Lake أنه لا يزال هناك إمكانية للتصغير باستخدام تقنية معالجة 7 نانومتر ، فلا شك تقريبًا في أن Nvidia تستخدمها لتقليل SM ومضاعفة أدائها.


Teraflops / s لكل شريحة / بطاقة نفيديا (مصدر البيانات: techpowerup.com).

سيكون من المثير للاهتمام أن نرى كيف تواصل Nvidia تطور فكرة البلورات التي لديها ثلاثة أنواع من النوى التي تؤدي مهام مختلفة. هل سنرى البلورات ، حالة النوى الكاملة أو النوى RT؟ فضولي.

المواد المرجعية


[1] المصدر: إعادة النظر في Raytracer لبطاقة العمل
[2] المصدر: Fermi: The First Complete GPU Computing Architecture
[3] المصدر: NVIDIA GeForce 8800 GTX (techpowerup.com)
[4] المصدر: Fermi (GF100) whitepaper
[5] المصدر: NVIDIA GeForce GTX 480
[6] المصدر: Kepler (GK104) whitepaper
[7] المصدر: NVIDIA GeForce GTX 680
[8] المصدر: Maxwell Gen1 (GM107) whitepaper
[9] المصدر: Maxwell Gen2 (GM200) whitepaper
[10] المصدر: NVIDIA GeForce GTX 980 Ti
[11] المصدر: ورقة عمل باسكال (GP102)
[12] المصدر:NVIDIA GeForce GTX 1080 Ti
[13] المصدر: ورقة عمل Turing (TU102)
[14] المصدر: NVIDIA GeForce GTX 2080 Ti

All Articles