البطاقات الرسومية هذه الأيام أصبحت من أحد أكثر مكونات الحاسب تعقيداً و تطوراً في نفس الوقت، فما أن يصدر جيلاً جديداً من البطاقات إلا و يأتي بعده جيل آخر بأداء أعلى و بتحسيناتٍ كثيرة و عادةً بأرقام أكبر من ذي قبل، هذا إن نظرنا إلى شركة واحدة متخصصة في مثل هذه الصناعات كشركة AMD مثلاً فماذا لو نظرنا إلى الصعيد الآخر كشركة Nvidia، سنجد نفس الشيء بالتأكيد و ربما بوتيرةٍ أكبرَ و أسرع.
السؤال هنا هو هل المستخدمين على اختلاف اهتماماتهم على كامل الاطلاع بكل صغيرة و كبيرة تخص هذه البطاقات و هل لديهم القدرة على معرفة هذا الفرق في الأداء بين جيل و جيل آخر من هذه البطاقات أو بين بطاقتين من شركتين متنافستين كشركتي AMD و Nvidia بمجرد النظر إلى خصائص كل بطاقة و ما تحتويه من ارقام؟ و الإجابة بالتأكيد لا، ليس كل المستخدمين كذلك بل فئة قليلة هم من لديهم معرفة كبيرة بخصائص البطاقات الرسومية و مواطن القوة و الضعف لبطاقة عن أخرى، و السبب في ذلك يرجع إلى هذا التطور الهائل و السريع جداً في التقنيات المستخدمة في هذه البطاقات فأصبح من الصعب مواكبة هذا التطور و الاكتفاء فقط بمعرفة بعض الخصائص القليلة التي يفهمها معظم المستخدمين كتردد المعالج الرسومي أو سعة الذاكرة "التي إلى الآن تعتبر عند الكثير من المستخدمين مصدر قوة البطاقة الأعظم، و هذا من أكثر المفاهيم الخاطئة شيوعاً خصوصاً في وطننا العربي" لذلك سأخص سعة ذاكرة البطاقة الرسومية فيما بعد توضيحاً مختصراً يوضح أهميتها الحقيقية و ليست أنها كل شيء في البطاقة.
و هناك بعض المستخدمين لديهم معرفة أكبر بنوع المعالجات الرسومية المستخدمة في البطاقات من حيث المُسميات، فهناك من يعرف معالجات Kepler من Nvidia التي استخدمت في بطاقات GTX 600 Series و GTX 700 Series و أيضاً معالجات Tahiti من AMD المستخدمة في بطاقات HD 7900 Series على اختلاف أنواعها، و هذا في حد ذاته تعمقاً جيداً في معرفة خصائص البطاقات لكن ما الذي يميز معالج رسومي عن آخر من نفس الشركة أو عن منافسه من الشركة الأخرى (كشركة Nvidia على سبيل المثال)؟ و الإجابة تكون في بعض أهم خصائص المعالجات الرسومية التي تمر على معظم المستخدمين مرور الكرام، فعلى سبيل المثال لا الحصر هناك ما يسمى Stream Processors في بطاقات AMD و يقابلها CUDA Cores في بطاقات Nvidia و لدينا Memory Bus و Texture Fillrate و المشابه لها Pixel Fillrate و Raster Engines الموجودة في كل بطاقة، كل هذه الخصائص ذات أهمية هائلة في تحديد مدى قوة و كفاء معالج رسومي عن غيره و بالتالي كفاءة البطاقة الرسومية ككل عن غيرها من البطاقات، لذلك سنقوم بتفنيد أهم المصطلحات و الخصائص الخاصة بالبطاقات الرسومية في كل من AMD و Nvidia حتى تتكون لدينا جميعاً معرفة واضحة بهذا الأمر.
أنواع البطاقات الرسومية :
البطاقات الرسومية تندرج دائماً تحت خمسة أنواع ثلاثة منها موجهة للاستخدام اليومي العادي و للألعاب بينما الاثنين الآخرين موجهين لما يسمى بحواسب "Workstation" المخصصة للأغراض العلمية و للمصممين باختلاف تخصصاتهم، الثلاثة أنواع الأولى هم المعالجات الرسومية من Intel المدمجة في معالجاتها المركزية و تسمى "Intel HD" و آخر ما أصدرته الشركة هو Intel HD 5200 Iris و النوع الثاني هو من شركة AMD و معروف بالطبع للجميع باسم Radeon و آخر جيل من الشركة هو الجيل الذي أحدث ضجة كبيرة و هو Radeon R-200 Series، أما النوع الثالث و الأخير فهو من شركة Nvidia و يسمى دائماً كما المعتاد Geforce GTX و آخر بطاقة رسومية أعلنت عنها الشركة هي Geforce GTX 780 Ti.
أما بالنسبة للأنواع المخصصة للمصممين و لصناع الأفلام و للحواسب المركزية فهما من كلتا الشركتين AMD و Nvidia، و البطاقات الرسومية من AMD لهذا الغرض يطلق عليها AMD FirePro و الأخرى من Nvidia فيوجد لدينا Nvidia Quadro و Nvidia Tesla.
لكن السؤال هنا هو ما الفارق الكبير بين البطاقات الرسومية الموجهة للمستخدمين العاديين و الأخرى الموجهة للحواسب المركزية و المصممين؟ و الإجابة ببساطة شديدة هي السرعة مقابل الدقة و لا يخطأ أحد بالحكم أن الاثنين غير مرتبطين بل هم على صلة وثيقة جداً لكن في البطاقات الرسومية للحواسب الشخصية العادية السرعة تعتبر ذات أهمية أكبر بكثير في التعامل مع الألعاب أما الدقة فلا تكون مهمة للغاية و لسبب وجيه و هو أن عين الإنسان لا تستطيع أن تلمح دقة عيب رسومي صغير في العرض الرسومي كل 1000 إطار لذلك سيبدو لها العرض واضحاً خالياً من الشوائب لكن قد تلمحه لو كانت سرعة العرض بطيئة لذلك السرعة في البطاقات الرسومية للحواسب الشخصية العادية أهم بكثير من الدقة أما على الصعيد الآخر بالنسبة للمصممين في صناعة مؤثرات بصرية للأفلام أو تصميم أي نموذج رسومي ثلاثي الأبعاد فالدقة ذات عامل أكثر من رئيسي فكل شاردة و واردة يجب أن تكون على أكمل وجه و أي عيب في أدق التفاصيل قد تسبب مشاكل كثيرة لذلك في بيئات التصميم الاحترافية يريد المصممون أن يتأكدوا أن ما تم تصميمه هو دقيق بنسبة 100% بدون وجود عيوب رسومية في التصميم لذلك الدقة هنا هي العامل الأهم في البطاقات الرسومية لهذا الغرض.
الاختلاف الآخر بين البطاقات الموجهة للاستخدام العادي و الأخرى للحواسب المركزية هو أن البطاقات الرسومية للحواسب المركزية تدعم بشكل شبه كامل مميزات و خصائص خاصة في بيئات برامج التصميم المختلفة من الشركات المتخصصة في مثل هذه البرامج كشركة AutoDesk و شركة Adobe.
كيفية دمج البطاقة باللوحة الرئيسية:
دمج البطاقة الرسومية باللوحة الرئيسية يكون كما هو متعارف عن طريق شقوق موجود على اللوحة و هي مصممة للبطاقات الرسومية فقط و هناك الآن نوعان من شقوق البطاقات الرسومية و هي شقوق PCI Express 2.0 x16 و شقوق PCI Express 3.0 x16 و الفارق بين الاثنية هو معدل نقل البيانات الأسرع مرتين في PCI-E 3.0 عما هو في PCI-E 2.0، و البطاقات الرسومية الجديدة حالياً كلها تدعم PCI-Express 3.0 x16 لكن لا يمنع هذا على الإطلاق تركيبها في شقوق PCI-Express 2.0 بل على العكس تماماً يمكن للمستخدمين استخدام البطاقات الرسومية التي تعمل عن طريق PCI-Express 3.0 في لوحاتهم القديمة التي يوجد بها شقوق PCI-Express 2.0 لكن قد يحدث انخفاض ضئيل جداً في الأداء لا يذكر و قد لا يحدث على الإطلاق حيث أظهرت بعض النتائج أن كثير من البطاقات الرسومية الموجودة اليوم ذات الأداء العالي و التي تعمل عن طريق شقوق PCI-Express 3.0 معدل نقل البيانات بها لا يستغل كامل معدل نقل بيانات شقوق PCI-Express 2.0 فما بالكم بشقوق PCI-Express 3.0، و إليكم صورة لمعدل نقل البيانات للأنواع المختلفة لشقوق PCI-E حتى الجيل الرابع.
السؤال الذي يطرحه اكثيرين من المستخدمين هو ما الفرق بين PCI-Express (3.0 / 2.0) x16 و أخرى x8؟ و الإجابة تكمن أولا في معرفة هذا الرقم و هو ببساطة عبارة عن عدد ممرات الـPCI (و التي تكون مدعومة في المقام الأول من المعالج المركزي) التي تحتاجها البطاقة و هنا يسأل مستخدم آخر لماذا هناك لوحات رئيسية بها شقوق نفس حجم PCI-Express (3.0/2.0) x16 و لكن تعمل فقط على سرعات (x8) و خصوصاً عند توصيل بطاقات رسومية متعددة مما ينتج عنه انخفاض ملحوظ نسبياً في الأداء و هناك لوحات أخرى تعمل بكامل سرعات (x16) حتى مع وجود أكثر من بطاقة، و الإجابة على هذا السؤال هو تصميم الشركات المصنعة للوحات هذه الشقوق لتناسب احتياجات المستخدمين على اختلاف إمكاناتهم و لكل لوحة ثمنها على حسب ما تدعمه من إمكانيات عالية، أما بالنسبة لشقوق PCI-E x16 و التي تعمل فقط على سرعات x8 حتى مع تركيب بطاقة واحدة فهذا يرجع إلى عدد السنون المركبة بها الشقوق في اللوحة الموجودة و يظهر في الصورة التالية شق PCI-Express 3.0 x16 و آخر PCI-Express 3.0 x8 للمزيد من التوضيح.
المعالج الرسومي "GPU" :
GPU هي اختصاراً لمصطلح "Graphics Processing Unit" و يحث خلط كثير بينها و بين البطاقة الرسومية ككل حيث يظن البعض أن البطاقة الرسومية (أو كارت الشاشة كما هو متعارف عليه) هي المعالج الرسومي و هو بالطبع ظن خاطيء لكن البطاقة الرسومية هي الوحدة بكاملها التي تحتوي على المعالج الرسومي إلى جانب بعض المكونات أما المعالج الرسومي فهو تلك الشريحة المربعة الموجودة عادة في منتصف البطاقة و يعلوها نظام التبريد الكبير الذي نراه عادةً في معظم البطاقات الرسومية و المعالجات الرسومية هي تعتبر وحدات معالجة فائقة الدقة "microprocessors" و ذات قوة هائلة جداً و هي مصنعة بحيث تتوافق بطريقة مثالية للحوسبة الرسومية و تصميم النماذج ثلاثية الأبعاد، و تكمن قوة المعالج الرسومي في عدة خصائص هي:
سرعة (تردد) المعالج الرسومي:
سرعة أو تردد المعالج الرسومي للبطاقة الرسومية
هي التردد التي تعمل بها أنوية المعالج الرسومي و هي السرعة في معالجة أنواع عدة من البيانات و تقاس دائماً بوحدتي MHz أو GHz حيث أن 1GHz = 1000MHz، و نتيجة للاختلافات الموجودة في معمارية الكثير من المعالجات الرسومية فإن بطاقتين رسوميتين مختلفتين لهم نفس التردد لمعالجاتهم الرسومية لا يشير أبداً باي حال إلى تطابق الأداء و ذلك يرجع لأن قوة البطاقة لا تكمن فقط في معالجها الرسومي بل هنا عدد الأنوية في كل معالج و حجم الذاكرة للبطاقة و نوعها و سرعتها و أمور أخرى سنتعرف عليها فيما بعد و هذه الخصائص مجتمعة هي ما تحدد كفاءة كل بطاقة عن غيرها، لكن إذا أردنا فقط في حالتنا هذه أن نعتبر أن كل المكونات الأخرى متطابقين مع بطاقة أخرى لكن بتردد أعلى للمعالج الرسومي فبالطبع هذه البطاقة الأخرى ستكون أقوى و أسرع لكن ليس بدون ثمن فسيكون ناتج الحرارة أعلى و استهلاك أكبر للطاقة.
معمارية المعالج الرسومي "Architecture":
معمارية المعالج الرسومي هي التقنية
و الأساس الذي عليهم تم بناء و تصنيع هذا المعالج و عادة نرى كل عام و نصف أو أقل معمارية جديدة في تصنيع هذه المعالجات و تأتي بتحسينات و أداء أكبر بكثير من المعمارية السابقة و هذا يرجع إلى كون أن كل معمارية جديدة تسمح بدقة تصنيع أعلى لمكونات المعالج الرسومي نفسه فمثلا نرى الآن معالجات رسومية مصنعة بدقة 28nm و النانومتر هو جزء من مليار جزء من المتر الواحد و الرقم "28" هو أبعاد الترانزيستور "Transistors" الواحد في المعالج و كلما زاد عدد الـTransistors كلما زاد الأداء بشكل ملحوظ و دقة التصنيع أو المعمارية هي التي تسمح مع كل جيل بتصنيع transistors بأبعاد أقل و بالتالي عدد أكبر في مساحة الشريحة المستخدمة للمعالج الرسومي. و لكل شركة من شركات تصنيع البطاقات الرسومية مثل Nvidia و AMD معماريات مختلفة فنجد من Nvidia معمارية Kepler الموجودة حالياً في بطاقاتها الرسومية و نجد من AMD معمارية Hawaii الموجودة حالياً في بطاقات R9 290X.
عدد الأنوية أو Stream Processors :
الأنوية في كل معالج معالج رسومي هي اللاعب الرئيسي في أداء المعالج و تساهم بقدر كبير للغاية في قوة البطاقة الرسومية ككل، و يختلف اسم هذه الأنوية في بطاقات AMD عنها في بطاقات Nvidia حيث في بطاقات AMD يطلق عليها اسم Stream Processors و في بطاقات Nvidia تسمى CUDA Cores و عموماً كلما زاد عدد هذه الأنوية كلما زاد الأداء بشكل ملحوظ، أهم نقطة هنا أن الأنوية الموجودة في بطاقات AMD لا يمكن اعتبارها مساوية لنفس القوة التي تنتجها أنوية Nvidia حتى و لو كانوا متطابقين في عددهم و حيث سأقتبس مثلاً لتوضيح هذا الأمر و هو أن بطاقة AMD Radeon HD 7970 تحتوي على عدد 2048 stream processors و سعة 3GB ذاكرة عشوائية و كان المقابل لهذه البطاقة في الأداء وقتها بطاقة Nvidia GTX 680 و كانت تحتوي على عدد 1344 CUDA cores و سعة ذاكرة 2GB و كانت تعطي أدائاً مشابهاً لحد كبير لبطاقة HD 7970 بل و يمكن تتجاوزه على الرغم من عدد الأنوية في بطاقة HD 7970 أكبر مما يشير إلى أن كفاءة النواة الواحد في بطاقة Nvidia أعلى بقدر كبير منها في بطاقة HD 7970.
ذاكرة البطاقة الرسومية :
سعة ذاكرة البطاقة الرسومية هي تماماً كالذاكرة العشوائية للحاسب المكتبي الشخصي حيث تعمل كأنها مساحة تخزين مؤقتة للبيانات، و للأسف في وطننا العربي نجد كثيرين يعتقدون أن سعة الذاكرة للبطاقة هي مصدر قوة البطاقة الأعظم و نجد حتى هذا الفكر لدى البائعين حيث يبيع للمشتري البطاقة و يقول له أنها تملك مثلاً سعة ذاكرة قدرها 3GB مرة واحدة و تظهر على وجهه ملامح القوة و الهيبة مما يجعل المشتري الذي لديه خبرة قليلة بهذا الأمر يعتقد أن هذه البطاقة ستنجز المستحيل و هو ما نحاول أن نصححه لدى الكثير من المستخدمين، و لكن ليس معنى هذا أن ذاكرة البطاقة الرسومية ليس لها دور في أداء البطاقة على العكس و لكن ليس بالقدر المبالغ فيه المتعارف في أوساط المستخدمين.
فبينما أن زيادة سعة الذاكرة شيئاً جيداً إلا أنه هناك كثير من التطبيقات و الألعاب لا تحتاج قدراً كبيراً من الذاكرة و بالتالي هذه الزيادة لن تعطي أي تحسن في الأداء على الإطلاق مما يفسر لما هنا بطاقات رسومية ذات سعة مثلاً 2GB تعطي نفس أداء بطاقة أخرى من نفس النوع لكن تمت زيادة الذاكرة بها إلى 4GB، لكن متى نشعر بالفرق في زيادة سعة الذاكرة و الإجابة هي عند العمل على دقات عرض عالية أعلى من 1920x1080 أي مثلاً عند العمل على أكثر من شاشة موصلين بتقنية Eyefinity أو Nvidia surround أو عند اللعب لبعض الألعاب الحديثة التي يتطلب تشغيل بعض المؤثرات البصرية الإضافية فيها إلى سعة ذاكرة أكبر فقط و إذا لم تتوافر هذه الكمية المطلوبة من الذاكرة ستعم اللعبة بكل كفاءة و لكن من دون هذه المؤثرات الإضافية أي أن الذاكرة لها دور و لكن ليس هائلاً كما هو معتقد، و الذاكرة الرسومية للبطاقة لها خصائص تميزها و هي ما سنفنده الآن.
نوع الذاكرة الرسومية المستخدمة:
و هي نوع الذاكرة المستخدمة في البطاقة الرسومية إما GDDR5 أو GDDR3 و كل البطاقات الرسومية الحديثة حالياً و ذات الأداء العالي تستخدم ذواكر GDDR5 و هي نفس ذواكر DDR3 و لكن تم تعديلها لتعمل بمفاءة أكبر في عمليات المعالجة الرسومية، و يجد حتى الآن بعض البطاقات الرسومية ذات الأداء المنخفض تستخدم حتى الآن نوع ذاكرة GDDR3 و لكن على حساب التضحية بقدر لا بأس به من أداء الذاكرة الرسومية.
معدل نقل البيانات للذاكرة الرسومية "Memory Bandwidth" :
و تعتبر هذه الخاصية هي من أهم عوامل تحديد كفاءة المعالج الرسومي و بالتالي البطاقة الرسومية ككل فهذه الخاصية هي التي تحدد كيفية استخدام البطاقة الرسومية لذاكرتها العشوائية الاستخدام الأمثل عند وجود ضغط على المعالج الرسومي أو في حالات استهلاك كبير لقوة البطاقة في الألعاب الحديثة مثلاً، و يمكن أن اقتبس تشبيهاً رائعاً لهذا الأمر فيمكن تخيل طريق سريع يحتوي على ثلاثة مسارات فقط للسيارات لتعتبر سيكون عرضةً لأن يكون به زحام كبير للسيارات و بالتالي سرعة أقل في مرور السيارات به أما إذا تخيلنا أنه تم زيادة عدد المسارات إلى 6 (ستة مسارات) فبالتأكيد ستخف وطأة الزحام إن لم تختفي تماماً هذه هي الحال تماماً مع "Memory Bandwidth" فلا جدوى من وجود أعداد كبيرة من الجيجابايت (Gigabytes) من ذاكرة GDDR5 تمر ببطئ شديد في مسارات ضيقة فسيكون الأداء ضعيفاً.
تردد الذاكرة الرسومية :
ببساطة شديدة سرعة ذاكرة البطاقة الرسومية و هي التي تحدد سرعة ولوج المعالج الرسومي للبيانات المخزنة في الذاكرة العشوائية في البطاقة و بالطبع كلما زاد التردد زادت سرعة دخول المعالج للبيانات و بالتالي زيادة الأداء. و خصوصاً عند عمل البطاقة تحت ضغط كبير كما في حالات التصميم الأشكال ثلاثية الأبعاد.
Memory Bus Width أو واجهة الذاكرة "Memory Interface":
أولاً لم أجد لهذه الخاصية مصطلحاً مناسباً باللغة العربية و لكن لنفهم فقط وظيفته و المراد منه، فبينما سرعة تردد الذاكرة مهم لدخول المعالج بسرعة إلى البيانات المخزنة فلابد من المعالج بعد دخوله إلى هذه البيانات أن يعالجها بسرعة من الذاكرة و هنا يأتي دور Memory Bus Width فعملياً الـBus Width هي كمية البيانات التي يمكن للمعالج الرسومي الدخول إليها و معالجتها في الدورة الزمنية الواحدة "Clock Cycle" لذلك إن كانت البطاقة تحتوي على قدر كبير من الذاكرة يجب أن تتوافر Bus width كبيرة لكي تنقل البيانات بكفاءة و يسر من الذاكرة و تقاس بالـ"bit" فنجد بطاقات 128-bit و أخرى 256-bit و أخرى 384-bit و بطاقة Radeon R9 290X الجديدة من AMD تعتبر البطاقة الوحيدة الآن ذات واجهة ذاكرة 512-bit و هي تحتوي على سعة ذاكرة 4GB و كما رأينا في بعض النتائج المسربة تعطي أداء أعلى من بطاقة GTX Titan ذات سعة 6GB و ذلك لأن الواجهة الرسومية لبطاقة Titan هي 384-bit أي أقل منها في بطاقة R9 290X لذلك يعتبر هذا أفضل مثال على أهمية Memory Bus Width.
بعض الخصائص المتقدمة:
Render Output Units (ROP)s :
و يطلق أيضاً عليها اسم Raster Operations Pipeline أو Raster Engine و هي الوحدات أو المحركات المسئولة عن معالجة البكسل "Pixels" و إخراجها مرتبة و منظمة لتخرج لنا في النهاية الصورة كاملة منظمة على الشاشة و تلك الوحدات هي التي تتولى مهام Antialiasing في الألعاب.
Shaders :
و هي وحدات الظل التي تنعكس أهميتها في القابلية في التعامل مع أساليب تظليل كثيرة عند اللعب أو استخدام أدوات أختبار للبطاقات الرسومية و تنقسم إلى ثلاثة أنواع:
Pixel Shaders :
و هي الأكثر دعماً من البطاقات الرسومية و المعالجات الرسومية المختلفة حتى تلبك التي تأتي مدمجة في اللوحات الرئيسية فهي تتولى معالجة الألوان و تسليط الأضواء و كذلك التعامل مع عمق الرسوميات ثلاثية الأبعاد و كل هذا في إطار الـPixel الواحدة أما خارج هذا الإطار فلا شأن لها به.
Vertex Shaders :
و هي الوحدات المتخصصة في حساب إحداثيات تواجد الزوايا ثلاثية الأبعاد و من ثم ربطهم بالإحداثيات الثنائية الأبعاد المقابلة لهم على الشاشة.
Geometry Shaders :
و هي وحدات أكثر تعقيداً و تتعامل مع الحسابات الرسومية الأكثر تعقيداً من تلك التي تكون موجودة في الألعاب مثل عمليات "Tessellation" و تستخدم في صناعة الأفلام الرسومية و الخيال العلمي.
Texture Fillrate :
نجد دائماً عندما نفتح برنامج GPU-Z خانة اسمها Texture fillrateو مثلاً إذا كانت البطاقة المستخدمة هي GTX 780 نجد أنه مكتوب في هذه الخانة 165.7 GTexels/sec و لكن ما هي Texture fillrate و الاجابة هي عدد الـPixels و التي في هذه الحالة (165.7 GTexels) و التي تم بنائها و تركيبها مع بعضها (لتكون الصورة الكاملة أو ما يسمى في النهاية Texture و هو ناتج ربط و بناء الـPixels مع بعضها) التي يتم عرضها على الشاشة في الثانية الواحدة، أما عمليات رسم و بناء هذه الـPixels مع بعضها فيسمى Texture mapping.
Pixel Fillrate:
و تعتبر هي نفس Texture Fillrate و لكن بدلاً من التعامل مع ناتج ربط و بناء الـPixels مع بعضها يكون التعامل مع الـPixel نفسها و لكنها ليست عامل مهم الآن في قوة البطاقات الرسومية.