الفروق بين معماريات بطاقات Nvidia و ATI .. من الأفضل ؟
من المؤكد أن الكثير منا لاحظ تقارب أداء بطاقتي الشركتين علي الأقل في السنتين الأخيرتين ، ومن المؤكد ايضا أن الكثير منا قد لاحظ اختلاف طريقة تصميم البطاقات من الشركتين ، بل واختلاف ترددات البطاقات أيضا. |
ما السبب في ذلك الاختلاف يا تري ؟ وكيف يصب هذا الاختلاف البيّن في بوتقة أداء متقارب ؟ ما التصميم الذي يقدم أداء أفضل ؟ ما التصميم الذي يناسب المستقبل أكثر ؟ ، هذا ما سوف نتعرف عليه الآن ،حتي نفهم اكثر طريقة تفكير كلا من الشركتين ، دعونا نعود الي أواخر العام 2004 ، عندما طلبت شركة Microsoft ، من ATI ، تصميم شريحة الرسوميات في منصة ألعابها الجديدة Xbox360 ،في ذلك الوقت ، قررت ATI ، استخدام معمارية التظليل الموحدة لهذه الشريحة Unified Shader Architecture ، علي الرغم من كون تلك المعمارية جديدة تماما ، وغير مستخدمة في بطاقات الرسوميات المكتبية .
كان رأي ATI ، هو أن تلك المعمارية تمثل خطوة حقيقية للأمام ، ونحو المستقبل ، حيث أنها تستغل امكانيات العتاد بطريقة أفضل ، مما يجعلها اختيارا مثاليا لامداد منصة الألعاب بعمر أطول ،ثم تعالوا نقفز الي عام 2005 ، عندما طلبت شركة Sony ، من Nvidia ، تصميم شريحة الرسوميات الخاصة بمنصة ألعابها الجديدة PlaySation 3 ،لم تكن المعمارية الموحدة منتشرة في ذلك الوقت أيضا ، علي الرغم من مرور عام كامل ، وعلي الرغم من المدح والثناء الذين أغدقت بهما ATI علي هذه المعمارية ، في المؤتمرات والمنتديات التقنية ، والذين تقابلا مع وقفة صارمة لـ Nvidia ، أمام هذه المعمارية ، حيث أعلنت أن الوقت لم يحن بعد لها ، وأن السوق في غني عنها حاليا .
وعلي هذا الأساس تم تصميم رقاقة منصة Sony الرسومية ، باستخدام المعمارية القديمة ، والتي تخصص كتلة معالجات محددة لحساب كل نوع من أنواع البيانات الرسومية (والتي لم تكن تخرج عن ، بيانات المضلعات ، وبيانات الاضاءة ، وبيانات التظليل ) ، وتختلف كل كتلة عن الأخري بحسب نوع البيانات التي تحسبها ، بينما تستخدم المعمارية الموحدة ، مجموعة واحدة من المعالجات لحساب كل تلك البيانات الرسومية ، بالاضافة لقدرتها علي حساب بيانات أخري ، لا علاقة لها بالرسوميات ،وهنا نري مقترق الطرق الواضح ، فكلا من ATI و Nvidia ، قاما باتخاذ قرارين مختلفين تماما ، وبعد مرور خمس سنوات علي تصميم ATI لرقاقة Xbox360 ، نستطيع أن نري تأثير القرارين:
منصة ألعاب Xbox360 ، تتميز برسوميات أفضل ، (ليست أفضل كثيرا) ، وأداء أفضل أيضا ، مع برمجة أسهل .
منصة ألعاب PS3 ، تأتي برسوميات أقل قليلا (بسبب ضعف شريحة Nvidia مع الألعاب الحديثة التي تحمل مؤثرات تظليل مكثفة) ، وأداء أقل من منصة Xbox في معظم الأحوال (لنفس السبب السابق) ، مع برمجة أصعب ، حيث يحتاج المبرمج الي توريط معالج PS3 المركزي في عملية الرسم ، وهذا الأخير يتطلب خبرة عميقة في البرمجة ، لا تتوافر لدي الكثيرين .
لا نستطيع أن نعرف أي المعماريتين أفضل بشكل مطلق ، فمنصة Xbox ، لا تحتاج الي الكثير من البرمجة لتخرج ما عندها ، بينما تحتاج منصة PS3 ، الي الكثير منها وقد تخرج بنتائج أفضل ،لكن نستطيع أن نعرف أي القرارين كان الأفضل ، وهو قرار ATI في هذه الحالة ، فلو قامت Nvidia ، بتصميم شريحة PS3 ، بنظام المعمارية الموحدة ، لتغير مصير المنصة تماما ، ولأصبحت أقوي منصة بلا منازع .
يمكننا أن نضع عدة احتمالات لامتناع Nvidia عن ذلك ، منها أن تكون تكلفة تصميم شريحة بهذه المعمارية ، أكبر من أرباح العقد بين Nvidia و Sony ، ومنها معرفة Nvidia ، لقدرات معالج PS3 المركزي ، واعتمادها علي توريطه في عملية الرسم ، ومنها اعتقاد Nvidia ان شريحتها سوق تكون كافية لألعاب ذلك الوقت والمستقبل أيضا ،تري هل يتشابه حال البطاقات المكتبية مع حال شرائح منصات الألعاب ؟ هذا ما سوف نكشف النطاق عنه حالا ان شاء الله ، ولنبدأ بمعمارية Nvidia ، هذه المرة ، وذلك لأنها أول من صمم شريحة رسوميات مكتبية باستخدام المعمارية الموحدة .
معمارية بطاقات Nvidia الحديثة :
كان أول ظهور للمعمارية الموحدة في بطاقات Nvidia المكتبية عام 2006 ، وذلك مع البطاقة العملاقة 8800GTX ، أتت البطاقة بعدد كبير من المعالجات الموحدة ، 128 معالجا بالتحديد ، وكان تصميم البطاقة فريدا من نوعه ، فمن المعروف أن البطاقات في السابق كانت تحتوي علي قلب Core ، وذاكرة Video RAM ، ولكل منهما تردد مستقل .. الا أن معمارية Nvidia الموحدة كان لها رأي آخر :
عدد 128 معالج موحد المعمارية ، بتردد أعلي من 1.0GHz ، ويصل الي 1.8GHz ، في بطاقة 9800GTX ،تتصل تلك المعالجات بقلب البطاقة Core ، وهو معالج عادي يعمل علي تردد منخفض ، قد يصل الي 700MHz ، وله وظيفة توزيع البيانات علي معالجات المعمارية الموحدة ، بحيث تعمل كل تلك المعالجات بأقصي طاقة لها ، لتوفير أداء عالي في الألعاب ،منظومة ذاكرة ، باستخدام شرائح DDR3 ، وعرض حزمة بنطاق 384 بت .
أتت البطاقة بنواة كبيرة ، وذلك بسبب فصل معالجات المعمارية الموحدة (أو معالجات التظليل) ، عن معالج البطاقة المركزي ، ثم ربط المعالج المركزي بكل معالج من معالجات المعمارية الموحدة ، مما زاد من تعقيد النواة بشكل عام ، ولم بكن ذلك التعقيد غير ذا فائدة ، فقد تربعت البطاقة علي عرش بطاقات الرسوميات لفترة طويلة ،بقي أن أذكر ، ان معمارية بطاقة 8800GTX الموحدة هي أساس معمارية بطاقة GTX280، والتي أتت بنواة هائلة الحجم ، وذلك لعدة اسباب :
زيادة عدد معالجات المعمارية الموحدة الي 240 معالج ، متصلين بالمعالج المركزي للبطاقة أيضا ،اضافة العديد من شرائح الذاكرة المخبأة Caches والمسجلات Registers ، لتحسين أداء البطاقة في التطبيقات غير الرسومية ،عرض الحزمة الأكبر : 512 بت ،ساهم كل ذلك في جعل نواة البطاقة أكبر الأنوية في التاريخ !
معمارية بطاقات ATI الحديثة :
ظهرت معمارية المعالجة الموحدة في بطاقات ATI المكتبية عام 2007 ، بعد ستة أشهر من بطاقة Nvidia ، ويبدو أن ATI قد استثمرت فيها وقتا ومجهودا كبيرا ،لأنها خرجت بتصميم فريد من نوعه أيضا ، حيث حملت البطاقة عدد 320 معالج موحد ، بتردد 750MHz ، وذاكرة DDR4 بعرض حزمة 512 بت .
وهنا تظهر الاختلافات تباعا :
عدد المعالجات الموحدة عند ATI ، أكبر بكثير من Nvidia ...ا(320 في مقابل 128 ) ، ولكن ترددها أقل الي النصف . 2-لا تحتوي بطاقات ATI ، علي معالج محوري منفصل . 3-ذاكرة DDR4 بعرض حزمة أكبر (512 في مقابل 384 ) .
اذا نظرنا الي الفروق علي الورق ، سوف نجزم بتفوق بطاقة ATI ، فعدد المعالجات أكبر بكثير، وعرض الذاكرة أكبر أيضا ... ، ولكن فعليا ، فأداء البطاقة لم يقترب من 8800GTX ، فكيف حدث ذلك ؟
دعونا من نقطة عرض الذاكرة الأكبر ، لأن تاثيرها ليس كبيرا ، ودعونا نركز أكثر علي عدد المعالجات الموحدة ، والتي هي أكثر من معالجات Nvidia ، بحوالي 200 معالجا ، وتحمل ترددات أقل من ترددات Nvidia الي النصف ، السؤال الآن ، هل تلك الترددات المنخفضة كانت السبب في ضعف الأداء ؟ الجواب هو لا ! ، فحتي لو كان ذلك حقيقيا ، فان معالجا واحدا من Nvidia سيساوي اثنين من ATI ، أي (128X2 =256) ،وهذا يترك 32 معالجا زائدا في بطاقة ATI ، لأن (320-256) = 64 /2 = 32 ، أي أن الأداء سوف يكون أكبر من Nvidia وليس أقل !
اذن فالسر يمكن في سبب آخر غير نظرية التردد .. ولقد قمنا باستبعاد عرض حزمة الذاكرة بالفعل ، اذن لا يتبقي أمامنا سوي وجود معالج محوري منفصل في بطاقات Nvidia ، وعدم وجوده في بطاقات ATI ! ، فهل هذا صحيح ؟نعم ،اذا نظرنا الي تركيب معالجات ATI الموحدة ، سوف نجد أنّهم في الحقيقة ليسوا معالجات حقيقية وانما وحدات معالجة .، فعدد المعالجات الحقيقية المستقلة في بطاقات ATI هو 64 فقط ، كل معالج حقيقي من هؤلاء يحتوي علي 5 وحدات معالجة صغيرة ، ليصبح المجموع النهائي هو (5X64 ) يساوي 320 معالجا !
فكر في معالج رباعي المحور أو النواة ، مثل معالج AMD Phenom II X4 940 ، اذا قمت بوضع أربعة منه علي بطاقة رسوميات ، فسأقول أن البطاقة تحتوي علي أربع معالجات رباعية النواة ، أي تحتوي علي 16 نواة ، ولكنها لا تحتوي علي 16 معالج ،بالمثل ، عند تركيبك لمعالج Q6600 من Intel ، علي لوحتك الأم ، فانك تقول أنا أمتلك معالجا واحدا ، ولكنه رباعي النواة ، وذلك لسبب بسيط ، لأن اللوحة الأم لا توفر سوي ناقل بيانات واحد للأربع أنوية ، أما عن اللوحات التي توفر أكثر من ناقل واحد ، فهي لوحات تدعم تركيب اكثر من معالج (حيث تحتوي علي أكثر من مقبس للمعالج ) ، وفي هذه الحالة نقول أن اللوحة تدعم معالجين أو ثلاثة أو أربعة ، وهي في هذا تختلف عن اللوحات الأم العادية التي تدعم نواتين أو ثلاثة أو اربعة (مقبس واحد للمعالج ).
اذن فالفكرة كلها في نواقل البيانات ، ففي بطاقة Nvidia ، يصبح لكل معالج موحد ، ناقل بيانات مستقل يختص به ، فالبطاقة تحتوي علي 128 معالج حقيقي ، بينما في بطاقة ATI ، يصبح لكل خمس أنوية ، ناقل بيانات واحد ، اي أن البطاقة تحتوي علي 64 معالج حقيقي ، وكل معالج حقيقي يحتوي علي خمس أنوية ،والحقيقة أن الفارق بين كلمة معالج ونواة ، هو فارق في المسمّي لا أكثر ، لأنه في نهاية اليوم ، فما يقوم به المعالج تقوم به النواة ، لكن يتبقي الفارق في اتصال ناقل البيانات بالمعالج وعدم اتصاله بالنواة .
في بطاقات Nvidia ، يتصل المعالج المحوري المستقل بكل المعالجات الموحدة (سواء 128 أو 240 ) ، ويقوم بتوزيع البيانات عليها جميعا بحيث تكون تلك المعالجات مشغولة دائما ، وتصبح عملية المعالجة ذات مسارات متعددة ، تحقق الكفائة والسرعة معا ،في بطاقات ATI ، يتصل المعالج المحوري المدمج بـ 64 معالجا فقط ، لذا فمن اللازم أن يقوم هذا المعالج بتقسيم البيانات الذاهبة لكل معالج الي خمس مسارات بحيث يتم استغلال الخمس أنوية جميعا ،تحتاج هذه الطريقة الي مجهود كبير من المعالج بالطبع ، مما قد يخلق نقاط اختناق شديدة الوطء ، لذا فانه من المنطقي ان تكون الألعاب نفسها داعمة لعدد اكبر من المسارات ، وكلنا يعلم صعوبة زيادة المسارات عموما (وهذا واضح من الفترة الطويلة التي استغرقتها الألعاب في استغلال المعالجات المركزية متعددة الأنوية ) ، حيث أن مبرمج الألعاب لا يملك الوقت لبرمجة كل هذه المسارات في ألعابه ، مما يضع العبأ من جديد علي المعالج المحوري المدمج ، ولأن ATI لن تسمح بتكوين نقاط اختناق في بطاقاتها ، اختارت وضع العبأ علي برامج القيادة Drivers ، الخاصة بها .
هل تسائلت من قبل عن سبب مشاكل برامح القيادة الخاصة بـ ATI في السابق ؟ في الواقع فمع الرجال في ATI حق في أن يقوموا بالعديد من الأخطاء ، فكل لعبة تستلزم برمجة برنامج القيادة بحيث يستغل امكانيات الأنوية المتعددة في بطاقات ATI ، والا كان الأداء متواضعا للغاية ، ويجب ان نعلم جيدا أنه مهما كانت براعة الأكواد في برنامج القيادة فانها لن تتوصل الي استغلال أنوية ATI بالكامل ، لأن الدعم يجب أن يأتي من المصدر نفسه ، أي من اللعبة نفسها ،بينما علي الجانب الآخر في Nvidia ، نجد الرجال في وضع أقل تعبا واكثر راحة ، فالمسارات التي تحتاج الي دعم برنامج القيادة أقل بكثير من ATI ، ولا تحتاج الي تعقيد معين في كتابتها ، فالمعالج المحوري المنفصل يعمل كالأخطبوط مرسلا البيانات الخام الي أي معالج موحد يرغب في الكلام معه ، بينما يتوجب علي معالج ATI المدمج تقسبم بيانات كل معالج الي خمسة اقسام ثم ارسالها اليه ، أو انتظار الحصول علي هذا التفسيم جاهزا من التطبيق أو برنامج القيادة .
بقي أن نقول ان بطاقة HD4870 ، مبنية علي هذه المعمارية ، والاختلاف الوحيد هو أنها تحمل 160 معالج حقيقي ، وكل معالج يحتوي علي خمس أنوية ، بمجموع 800 معالج للبطاقة كلها ،تحمل البطاقة أيضا ذاكرة من طراز DDR5 ، والحقيقة فان اضافة هذه الذاكرة الي البطاقة ، هو أهم عامل لنجاحها ، وذلك بسبب سرعة هذه الذاكرة في التعامل مع البيانات بين كلا من المعالج المدمج والمعالجات الموحدة ، هذه السرعة الفائقة تعوّض من نقاط الاختناق التي تنشأ من عملية تقسيم البيانات في المعالج المدمج .
من الأمور التي يتم التعليق عليها هذه الأيام ، هو حجم نواة HD4870 ، مقارنة بحجم نواة GTX280 ، والذي يتميز بالصغر ، والأسباب ببساطة هي ،عدد المعالجات الحقيقية (أو نواقل البيانات ) هو 160 فقط .. مقارنة بـ 240 في GTX280 1-تقنية تصنيع 55 نانومتر التي بنيت عليها النواة .. مقارنة بتقنية 65 نانو في GTX280 ،عرض حزم الذاكرة 256 بت فقط مقارنة بـ 512 بت في GTX280
وفي نهاية اليوم ، نستطيع تلخيص القرارات المختلفة التي اتخذتها كل شركة في تصميم بطاقاتها الي الآتي :
nvidia اختارت استخدام عدد أكبر من المعالجات الحقيقية (التي تتصل بتاقل بيانات مستقل ) ، ولكنها استخدمت عدد أقل من وحدات المعالجة (الأنوية) ،نتيجة لاستخدامها عدد اقل من وحدات المعالجة في المجمل ، تمكنت من زيادة التردد الي مستويات عالية ، تقترب من 2.0GHz،فصلت تردد المعالج المحوري عن تردد المعالجات الموحدة ، لأن الشغل الواقع عليه لا يستحق الترددات العالية ، ويمكن ملاحظة ذلك عند كسر سرعته بمفرده ، حيث أن الزيادة المقابلة في الأداء تكون صغيرة جدا ،سهولة تصميم برامج القيادة ، وسهولة البرمجة لبطاقاتها عموما ، ويتم استغلال بطاقاتها الي الحد الكامل .
ATI اختارت :استخدام عدد اكبر من الأنوية ، وعدد أقل من المعالجات الحقيقية ،نتيجة لاستخدامها عدد أكبر من وحدات المعالجة في المجمل ، فان تردد هذه المعالجات يجب الأ يزيد عن حد معين ، والا كانت كمية الحرارة الناتجة ، غير قابلة للتصريف ، لذا يتراوح تردد هذه المعالجات مابين 750MHz و 1.0GHz،لم تقم بفصل تردد المعالج المحوري ، لأن الشغل الواقع عليه كبير جدا ، ولو استطاعت ATI ، لجعلت تردده 3.0GHz (نلاحظ ذلك عند كسر سرعته ، فان الأداء يزيد بمقدار محترم ) ،صعوبة كتابة برامج القيادة ، وخصوصا للألعاب ذات المحركات الجديدة ، (وهذا يفسر الزيادات الكبيرة التي نجدها في برامج ATI القيادية ) .. ، وصعوبة البرمجة لبطاقاتها عموما ، ولا يتم استغلال البطاقة جيدا ، وبالكامل الا في حالات نادرة ،احتاجت ATI الي ذاكرة عالية السرعة DDR5 ، للتغلب علي جزء من نقاط الاختناق التي تصيب بطاقاتها نتيجة عدم الدعم الكامل لعتادها .
اذا تمت البرمجة لعتاد ATI بشكل صحيح ، فان أداء البطاقات سوف يكون متفجرا ، ولن ينافسها في ذلك أحد ، لكن الكلام أسهل من الفعل ، للأسف ،وهنا أيها الزملاء ،تتكرر قصة ATI و Nvidia ، مع منصتي Xbox360 و PS3 ،فاختارت Nvidia ، السائد ، واختارت أن تتوافق مع قدرات مبرمجي الألعاب ، وتستغل ماهو موجود علي النحو الأكمل ،واختارت ATI ، المستقبل ، وراهنت عليه ، آملة في دفع الصناعة كلها نحو الأداء الأعلي ،من الأفضل ؟ مازال الوقت مبكرا علي الاجابة ..
فمع مقدم DirectX 11 ، جاء دعم اكبر للمعالجة ذات المسارات العديدة (بأعداد أكبر) ، مما قد يعني أن الألعاب التي سوف تدعم DirectX 11 ، سوف تضطر الي دعم عتاد ATI بدرجة أكبر ، ومن جانبها ، فستحاول ATI ، تعديل عتادها بحيث يتم تقليل نقاط الاختناق ، اما بكسر السرعة واما بتزويد عرض حزمة الذاكرة .. الخ ،وعلي الجانب الآخر ، نسمع الأنباء عن كون بطاقة Nvidia القادمة ، داعمة لتقنية MIMD ، وهي تقنية مشابهة لتصميم ATI ، وتختلف عنها في طريقة التنفيذ فقط ، وقد تقلل من تكون نقاط الاختناق ،وهنا يبرز سؤال جديد .. من سيكون الأفضل ؟