All But Reality

Imagine a catchphrase here

Simple template. Background and Customization by Shihab Elagib. Powered by Blogger

March 10, 2017

عرس الـZen

في روايته المشهورة عرس الزين، حكى الطيب صالح محدثاً عن الزين، شاب قبيح فقير من احدى قرى السودان كُتِب له ان يظفر بزواج احدى اكثر فتيات تلك القرية حسناً وجمالاً وما الى ذلك من الاوصاف التي تجعل من الانثى جائزة في اعين العموم (واتمنى ان تكون السخرية في تلك الجملة الاخيرة واضحة للقارئ. ما ناقص يتلمو فيني feminists ينقنقوا فوق راسي!).  

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

(لكي اقلل من التنقل بين الانجليزية والعربية فيما يلي، افترض معي ان الياء في "زين" المستخدمة في النص ادناه اقرب الى الكسر او إستبدلها داخل دماغك بـ Zen. او كما يقول مبرمجوا الـC++ : 

(using زين = Zen;


الجميع يتحدث عن زين، الجميع تحدث عن زين، ولعل هذه هي اكبر مشاكل زين: ان الجميع توقع من زين ان يقطع في سباق صناعة المعالجات الدقيقة فارقاً يناهز ال10 اعوام في ثوان!
انظر الى تاريخ هذه الصناعة منذ مطلع هذه الالفية، ستجد انها، في الجانب الذي يختص بالحواسيب الشخصية ومحطات الاعمال (ترجمة ويكيبيديا لـWorkstation)، شبه-حكرٍ على عملاق الصناعة Intel ومعماريات الـCore! بدءاً بالانجاز المعماري في معالجات الـCore 2، ومروراً ببدايات معماريات الـ Core i ووصولاً للاصدار السابع منها الذي شهد اطلاقه بداية هذا العام.
اما على الهوامش فستجد بعضاً من الحديث عن معالجات AMD، عن القليل مِن مَن قنعوا بالقليل واكتفوا بالاصدارات الاخيرة لمعالجات الـAthlon، او عن اولائك الذين اقتنعوا بأن منطق "الرجال الحقيقيون يستخدمون انوية حقيقية" ذو وزن يذكر!
قدِّم التاريخ قليلاً وستصل الى اطلاق معمارية بلدوزر، ذاك الحدث الذي ربما كان بداية النهاية لـAMD كمصنع للمعالجات المركزية عالية الاداء، ليس لكون المعمارية نفسها سيئة (وان كانت ليست بممتازة ايضاً)، بل لكونها سُوِّقت قبيل اطلاقها على انها اكثر من ما هي عليه، والنتيجة؟ وصمة في وجه AMD قتلت الثقة في جميع وعودها المستقبلية، او على الاقل قاربت من ذلك.

معالجات بلدوز اصبحت مثل قصة الصبي الكذاب  (aka The Boy Who Cried Wolf). ان كنت من متابعي المقالات والنقاشات التي صاحبت التسريبات والبيانات الصحفية التي سبقت اصدار معالجات زين، فغالب الظن انك قد مررت بالعديد مِن مَن يذكرون الناس ببلدوزر، والكثير مِن مَن قرروا مسبقاً ان زين سيفشل فقط بناءاً على تاريخ سابقه، لكن كل هذا لم يمنع ظهور طابع عام من التفاؤل و الذي -كان- يأمل ان يكون زين منافساً حقيقياً لتقديمات انتل التي تحتكر فعلياً سوق المعالجات عالية الاداء بأكمله. من الممكن القول ان الساحة انقسمت الى نقيضين: من يرى نجاحاً مبهراً، ومن يرى فشلاً ذريعاً. واليوم، بعد قرابة اسبوع من صدور زين، كل ما يمكن تلخيصه ان الواقع لم يوافق اياً من الجانبين.

الانطباعات الاولية عن زين لم تكن سلبية بالكامل، اداء معالجات الـ R7 1800X -اعلى التقديمات المتوقع لهذا الجيل من زين- كان مبهراً في التطبيقات التي تحتاج للعديد من خيوط المعالجة مثل برامج معالجة صيغ الفيديوهات وبعض تطبيقات الاظهار المعماري. AMD ركزت في مؤتمراتها التي سبقت الاطلاق على تطبيقين رئيسين: تجربة تصيير لمشهد ما بإستخدام محرك Cycles ضمن برنامج Blender، و اختبار Cinebench R15 المعروف. AMD ادعت انذاك ان زين يساوي في اداءه ويتفوق على معالجات Intel المنافسة (الـi7 6900k) في كليهما على التوالي، وقد كان. التجارب التي اجريت من قبل اطراف ثالثة بعد الاطلاق اظهرت ان زين (او الـ1800X تحديداً) فعلاً يتفوق على الـ6900k في اختبار Cinebench الذي يستهدف جميع الانوية المتاحة، ويساويه -تقريباً- في اختبارات Blender، كل هذا وبسعر يقارب نصف ذلك الذي تطلبه انتل مقابل الـ6900k!
بعض التطبيقات العلمية والهندسية، كتلك المخصصة في المحاكاة مثل محاكاة حركة السوائل (‌CFD) تضع زين ايضاً في حدود اداء اعلى تقديمات انتل، ان لم تكن متفوقة عليها. 
(انظر مراجعتي Anandtech و Tom's Hardware لقيم التجارب المذكورة اعلاه. كما انبه لإني تجاهلت عمداً ما قالته AMD عن ان زين "اسرع من ال6900k في Blender بـ2%" لأن تلك الـ 2% نسبة تدخل في حيز هامش الخطأ.)

تكتيك AMD بالتركيز على تطبيقي Blender و Cinebench نال نصيباً من النجاح، فقد اهتمت الكثير من المراجعات والرأي العام بأداء هذه التطبيقات والتطبيقات المماثلة، لكنه لم يكن كافياً لكي يطغى على نقطة ضعف زين: القدرة الحوسبية للنواة الواحدة. فللأسف، على الرغم من مرور اكثر من 10 اعوام على دخول المعالجات متعددة الانوية لساحة الحواسيب الشخصية، لا زالت الغالبية الساحقة من التطبيقات تصمم للعمل على نواة واحدة، القليل على اثنين، والاقل على اربع، وحفنة منها تستوعب فكرة وجود اكثر من 4 انوية معالجة اصلاً، دعك من استخدامها!
سواء كانت بسبب كتابتها حكراً للعمل على نواة او خيط واحد او لعدم تمكن التطبيق من الهروب من فخ قانون امدال، هذه الحقيقة تجعل الواقع قاسياً على زين. انظر الى اكبر استخدامات الحواسيب انتشاراً، انظر الى ألعاب الفيديو مثلاً، تطبيقات لم يكن فيها اي فائدة حتى لأربع انوية حتى وقت قريب، تطبيقات مطلبها الوحيد من المعالج هو كم من الزمن يحتاج ليعمل على خيط واحد او اثنين ويرسلهما الى البطاقة الصورية. المقدرات الضعيفة لزين على صعيد التعليمات المعالجة في الدورة الواحدة (Instructions Per Cycle IPC) والتي يمكن تمثيلها في نتائج تجارب مثل اختبار Cinebench للنواة الواحدة تضعه في المراتب الدنيا خلف تقديمات انتل المماثلة في هذا المقياس.

لضعف قدرة كل نواة من زين على حدة، ستجد معالجات الـ1800X ورفاقه اغلب الوقت في ذيل تقديمات انتل في تجارب العاب الفيديو واختبارات عدة برامج عملية مثل الفوتوشوب وسوليد ووركس. الاخير تحديداً يوضح ان قدرة زين الممتازة على المعالجة متعددة الخيوط ليست بالضرورة كافية لجعله افضل خيار حتى في التطبيقات الهندسية، فالعديد من مكونات برنامج سوليد ووركس -خصوصاً عمليات النمذجة- تعتمد بصورة رئيسية على الـIPC للنواة الفردية. قد ينافس زين في عمليات التصيير وعمليات المحاكاة في هذا التطبيق، لكن ضعفه في الجوانب الكثيرة الاخرى يجعل منه خيار أسوأ على صعيد البرنامج ككل.

احدى النقاط التي حاولت AMD تسويقها -ربما للتغطية على الاداء الاقل في الالعاب- هي مقدرته الاعلى على تعددية المهام (مقارنة بمعالجات انتل ذات الاربع انوية، افترض). ففي الاعوام الاخيرة، ومع ظهور خدمات مخصصة للبث المباشر عبر الانترنت مثل Twitch، ازدادت نسبة استخدام تطبيقات الـtranscoding في سوق العاب الفيديو. في مثل هذه السيناريوهات (تشغيل لعبة والقيام بضغط فيديو مسجل لها في نفس الوقت) تصبح القدرة العالية على تعددية المهام امراً ضرورياً، وهنا يقف زين في المقدمة، او على الاقل، هكذا تعتقد AMD.
اي نعم، اداء زين في عمليات ضغط وتشفير الفيديوهات (عمليات تخلق فيها عدد الخيوط المتاحة فرقاً كبيرأ) مبهراً، لكن هذا الامر ليس بالضرورة نقطة تحسب فقط لصالح AMD. ربما تكون معالجات الـi7 7700k محصورة في 8 خيوط فقط، لكنها تمتلك وحدة معالجة مخصصة لهذه المهام: Intel QuickSync. وحتى وان حصرنا المقارنة على استخدام الانوية متعددة المهام فقط في التشفير، هل بإمكان قدرة زين الاعلى على القيام بتلك العملية تقليص الفارق بينه وبين الـi7 للصفر؟ تجربة موقع Arstechnica لا تبشر بذلك البتة.  بالاضافة لذلك، لا يجب ان ننسى ان عمليات الـtranscoding ليست فقط حكراً على المعالجات المركزية، فاليوم، جميع البطاقات الصورية المصنعة من AMD او Nvidia تأتي بمثل هذه القدرات.

هنالك عدة امور ينبغي اخذها في الاعتبار عند تقييم اداء زين، اولها هو العذر الذي قدمته AMD نفسها لتعليل الاداء الضعيف للالعاب: "زين ليس مدعوماً بصورة جيدة من قبل المطورين." هذا الامر، وان كان قد دفع بالعديد للتشكيك في ذلك العذر استناداً على الاداء الجيد له في التطبيقات متعددة الخيوط، جعل البعض يتسأل عن ما اذا كان زين فعلاً مكبوتاً بعدم معرفة السوفتوير المتاح حالياً كيفية استخدامه، مستدلين بحوادث مثل عدم مقدرة بعض البرامج على قراءة المساحة الحقيقية لذواكر المستوى الثالث داخل المعالج، والتقارير التي تدعي وجود مشاكل متعلقة بآلية جدولة (ترجمة ويكيبيديا لـ Scheduling) المهام في الويندوز. هنالك عدة تجارب استخلصت ان اداء زين في التطبيقات التي تحتاج سرعة اعلى اكثر من حوجتها لعدد اعلى من الخيوط (الالعاب تحديداً) يزداد عند اغلاق تقنية الـSMT، ما يعزز من نظرية ان آلية جدولة الويندوز فعلاً احدى اسباب المشكلة.

قلت اعلاه ان الواقع لم يوافق الذين توقعوا نجاحاً مبهراً او فشلاً ذريعاً، لكن ربما كان الامر اقرب لتنبؤ الحزب الاول. ربما لم يأتي الـ1800x واخوته بأداء يتخطى ذلك الذي تأتي به نظيراتها من انتل في جميع النواحي، لكنه لا يزال انجاز تثنى عليه AMD. لقد نجحت الشركة في اخراج معالج بثمان انوية حقيقية و16 خيطاً للمعالجة تعملان بكفاءة تامة ودرجة حرارة تشغيل مقبولة واداء ممتاز في عدة نواحي ومقبول فيما تبقى، كل هذا وبأسعار تبدأ من $500 فما أرخص. ربما لا تكون معالجات زين -ثمانيّة الانوية منها على الاقل- قادرة على المنافسة في السواد الاعظم من سوق الحواسيب الشخصية (وصراحة، ليس القصد منها ذلك)، لكن لكل من يحتاج لقدرة حوسبية عالية واكبر كمية ممكنة من خيوط المعالجة فلقد انتهى عهد احتكار انتل لقائمة الخيارات المتاحة. ومن يدري، ان استطاعت AMD تطبيق ذلك التحسن التدريجي مع الزمن عبر تحسينات السوفتوير الذي نراه مع بطاقاتها الصورية، لربما استطاع زين اخراج انتل من تلك القائمة تماماً! </wishful thinking>


المراجعات التي استخدمتها لتكوين الرأي اعلاه:
مراجعة موقع Hardware.fr (وغالباً ستحتاج مترجماً لتصفحه >_>)
مراجعة موقع Phoronix للأداء في الالعاب على انظمة اللينكس.
  
مراجعات موقع Puget Systems المختلفة: