Home Featured تأثیر Microcode 0x12B اینتل بر عملکرد تولید محتوا

تأثیر Microcode 0x12B اینتل بر عملکرد تولید محتوا

by بهنام عظیمی


مقدمه
تا به حال بیشتر افراد در دنیای کامپیوتر با نرخ خرابی نگران‌کننده پردازنده‌های دسکتاپ نسل سیزدهم و چهاردهم اینتل آشنا شده‌اند. این ناپایداری که به عنوان “ناپایداری شیفت Vmin” شناخته می‌شود، به دلیل دماها و ولتاژهای بالا در بخشی از مدار “درخت ساعتی” در هسته‌های IA ایجاد شده است. این ولتاژها و دماهای بالا به نوبه خود ناشی از کد میکرو معیوب یا دارای باگ بودند که باعث درخواست‌های SVID (ولتاژ) غیرمجاز از پردازنده می‌شدند، به خصوص در زمان بار کم یا بیکار بودن سیستم.

اینتل اکنون کد میکرو 0x12B را منتشر کرده که ادعا می‌کند علت اصلی این ناپایداری را حل کرده و باید آخرین به‌روزرسانی کد میکرو لازم برای جلوگیری از تخریب بیشتر CPU باشد. اگرچه این کد میکرو (و سایر به‌روزرسانی‌های قبلی کد میکرو و بایوس که اینتل برای کاهش مشکل منتشر کرده بود) بر روی ولتاژها و الگوریتم‌های تقویت تأثیر می‌گذارد، اینتل ادعا می‌کند که تأثیر آن بر عملکرد در بیشتر موارد باید “در حد تغییرات طبیعی بین اجراها” باشد، که در جای دیگری حدود ۳% ذکر شده است. از آنجا که ما قصد داریم این به‌روزرسانی‌ها را برای مشتریانمان ارائه دهیم و همچنین به زودی یک بررسی از پردازنده‌های سری جدید Intel Core Ultra 200 خواهیم داشت، تصمیم گرفتیم که بررسی کنیم این به‌روزرسانی چه مقدار بر عملکرد در برنامه‌ها و گردش‌کارهای تولید محتوا که به طور منظم آزمایش می‌کنیم تأثیر می‌گذارد.

پس‌زمینه
در حدود ۶ ماه گذشته، اینتل اقداماتی را برای شناسایی و حل مسائل اصلی منجر به نرخ بالای خرابی در پردازنده‌های دسکتاپ نسل سیزدهم و چهاردهم خود انجام داده است. اگرچه برخی از کاربران نهایی گزارش‌هایی از نرخ خرابی تا ۵۰٪ را ارائه دادند، بسیاری دیگر – از جمله ما – شاهد نرخ خرابی بسیار کمتری بودند، اگرچه هنوز بالاتر از حد متوسط معمول بود و روند افزایش آن همچنان ادامه داشت. علت اصلی این ناپایداری چندجانبه بود، اما به طرز جالبی به نظر می‌رسید که پردازنده‌هایی که از تنظیمات توان استفاده می‌کردند و پردازنده را در حالت آمادگی بالا قرار می‌دادند، در حالی که بار کاری سبکی داشتند، بیشتر تحت تأثیر قرار گرفته‌اند.

در ماه ژوئن، اینتل اولین به‌روزرسانی کد میکرو خود را با شماره 0x125 منتشر کرد که تلاش می‌کرد این مشکل را حل کند. این به‌روزرسانی یک باگ در الگوریتم eTVB اینتل را برطرف کرد، که باعث می‌شد پردازنده‌ها در دماهایی که نباید از TVB برای تقویت استفاده کنند، همچنان به تقویت ادامه دهند. در همین زمان، اینتل راهنمایی‌هایی را برای کاربران نهایی و تولیدکنندگان مادربرد ارائه کرد و توصیه کرد که از تنظیمات توان پیشنهادی اینتل برای پردازنده‌های خود استفاده کنند، که شامل مواردی مانند محدود کردن مصرف توان، جریان و ولتاژ حداکثری و همچنین فعال کردن الگوریتم‌های محافظت از پردازنده بود.

دو ماه بعد، در آگوست، اینتل به‌روزرسانی کد میکرو 0x129 را منتشر کرد که درخواست‌های VID پردازنده را به ۱.۵۵ ولت محدود می‌کرد. سرانجام در اکتبر، اینتل اعلام کرد که علت اصلی بیشتر خرابی‌های پردازنده را شناسایی کرده و کد میکرو 0x12B را منتشر کرد. این به‌روزرسانی از درخواست نادرست ولتاژهای بالا در حالت بیکار و بارهای سبک توسط پردازنده جلوگیری می‌کند. نکته مهم این است که هرچند این به‌روزرسانی‌های کد میکرو از تخریب‌های بیشتر CPU جلوگیری می‌کنند، نمی‌توانند پردازنده‌هایی که در حال حاضر دچار ناپایداری/تخریب شیفت Vmin هستند را “اصلاح” کنند و آن پردازنده‌ها باید تحت گارانتی تعویض یا بازپرداخت شوند.

در آینده، اینتل معتقد است که هیچ‌یک از محصولات آینده‌اش تحت تأثیر این مسئله قرار نخواهند گرفت. به‌ویژه، آنها اعلام کرده‌اند که پردازنده‌های تازه معرفی‌شده Arrow Lake (سری Core Ultra 200) تحت تأثیر ناپایداری شیفت Vmin قرار ندارند. دیگر بخش‌های غیرمبتلا شامل پردازنده‌های نسل دوازدهم اینتل، پردازنده‌های موبایل (از جمله پردازنده‌های HX) و پردازنده‌های Xeon هستند.

تنظیمات تست

Intel Core Test Platform

نرم‌افزارهای بنچمارک

برای آزمایش تأثیر به‌روزرسانی‌های کد میکرو اینتل بر عملکرد، پیکربندی سیستم تست i9 خود را همان‌طور که در بررسی سری Ryzen 9000 داشتیم، حفظ کردیم؛ این شامل تمامی نرم‌افزارها، نسخه‌های سیستم‌عامل و درایورها می‌شد. سپس بایوس مادربرد را به آخرین نسخه به‌روزرسانی کردیم و گزینه “Intel Performance Profile” را در بایوس فعال نمودیم. اگرچه نحوه فعال‌سازی این گزینه ممکن است در مادربردهای مختلف متفاوت باشد، این گزینه باید در تمامی بایوس‌های جدید مادربردهای پردازنده‌های نسل سیزدهم و چهاردهم اینتل در دسترس باشد. پس از تست با این پروفایل، تنظیمات را مطابق با آنچه در سیستم‌های تولید خود استفاده می‌کنیم تنظیم کردیم. اگرچه این تنظیمات با راهنمایی‌های اینتل همسو هستند، اما به دلیل تمرکز ما بر پایداری و اطمینان، کمی محافظه‌کارانه‌تر از پروفایل پیش‌فرض Intel Performance Profile هستند.

PL1PL2TauICCMaxCEP*
Intel Baseline Profile۱۲۵ W۱۸۸ W۵۶ S۲۴۹ AEnabled
Intel Performance Profile۲۵۳ W۲۵۳ W۵۶ S۳۰۷ AEnabled
Intel Extreme Profile۲۵۳ W۲۵۳ W۵۶ S۴۰۰ AEnabled
Puget Profile۱۲۵ W۲۵۳ W۵۶ S۳۰۷ AEnabled
Old Motherboard Defaults۴۰۹۶ W۴۰۹۶ W۵۶ SUnlimitedDisabled

 در ادامه، تفاوت‌های اصلی بین برخی از پروفایل‌های مربوط به پردازنده‌های ۱۴۹۰۰K و ۱۳۹۰۰K را فهرست کرده‌ایم. لازم به ذکر است که مدل‌های پایین‌تر ممکن است PL1، PL2 و ICCMax کمی متفاوتی داشته باشند. برای اطلاعات بیشتر، می‌توانید به پست وبلاگ اینتل مراجعه کنید.

همان‌طور که مشاهده می‌کنید، تفاوت اصلی بین پروفایل Puget و پروفایل Intel Performance این است که ما از PL1 اختیاری و کمتر یعنی ۱۲۵ وات استفاده می‌کنیم. تجربه ما نشان داده که این تنظیمات در بیشتر برنامه‌ها تفاوت کمی در عملکرد ایجاد می‌کنند، و در مواردی که این تنظیمات بهبود عملکرد قابل‌توجهی دارند، ما معمولاً پردازنده‌های دیگری (معمولاً پردازنده‌های دسکتاپ Ryzen از AMD) را به دلیل عملکرد بهتر در آن بارهای کاری توصیه می‌کنیم. به همین دلیل، ما تنظیمات توان محافظه‌کارانه‌تری را ترجیح می‌دهیم که به باور ما پیش از انتشار کدهای میکرو جدید، به افزایش پایداری سیستم‌هایمان کمک کرده و همچنین باعث ایجاد سیستم‌های خنک‌تر و کم‌صداتری شده است. با این حال، این حوزه‌ای است که همچنان با پردازنده‌های دسکتاپ جدید Intel Core Ultra (سری ۲) در حال بررسی آن هستیم.

همچنین می‌توانید تفاوت‌های بسیار بزرگ بین پروفایل Puget و تنظیمات پیش‌فرض قدیمی مادربردهای مصرفی را ببینید؛ پروفایل Puget از زمان عرضه نسل سیزدهم اینتل تا حد زیادی ثابت مانده است، به‌جز تغییرات مهمی مانند فعال‌سازی CEP پس از توصیه به این کار و افزایش ICCMax به ۲۸۰ آمپر. تنظیمات پیش‌فرض قبلی پردازنده‌ها را بدون محدودیت توان و تقریباً بدون محدودیت جریان اجرا می‌کرد و بیشتر مکانیسم‌های محافظت مهم داخلی پردازنده را غیرفعال می‌کرد. شاید قابل‌درک باشد که چرا اینتل مدتی طول کشید تا بفهمد مشکل یک باگ در کد میکرو است، و نه صرفاً اینکه تولیدکنندگان مادربرد قوانین مربوط به پردازنده‌ها را نادیده گرفته‌اند. امیدواریم که در آینده اینتل مطمئن شود که تولیدکنندگان مادربرد از پروفایل‌های توان و راهنمایی‌های این شرکت پیروی می‌کنند.

نتایج

همان‌طور که در بالا بحث شد، ما سه پیکربندی مختلف از توان و کد میکرو را برای این مقاله آزمایش کردیم: پروفایل توان اختصاصی خودمان با کد میکرو قبل از 0x125، پروفایل توان خودمان با کد میکرو 0x12B، و پروفایل Intel Performance با کد میکرو 0x12B. در اولین نمودار مربوط به اعداد عملکرد خام، ما از نوارهای خطای ۵ درصدی استفاده کردیم که همان حاشیه خطای معمول ما است. لازم به ذکر است که نمودار به صورت لگاریتمی رسم شده تا بتوانیم نتایج را به‌رغم تفاوت دو مرتبه‌ای در مقیاس، در یک نمودار قرار دهیم. نمودار دوم، همان داده‌ها را به گونه‌ای بازسازی می‌کند که تغییرات عملکرد نسبت به کد میکرو قدیمی و تنظیمات Puget را با ۰٪ به عنوان خط مبنا نشان دهد.

ابتدا به بررسی تفاوت‌های عملکردی بین کد میکرو جدید و قدیمی با تنظیمات BIOS سیستم‌های Puget می‌پردازیم. با نگاهی به نمودارها، تفاوت‌های امتیاز مطلق بسیار کوچک به نظر می‌رسند، به طوری که بدون برچسب‌ها، تشخیص تفاوت در طول خطوط دشوار خواهد بود. البته، بخشی از این امر به دلیل مقیاس‌بندی لگاریتمی است، اما نوارهای خطا به درک بهتر تغییرات کمک می‌کنند—هر جا که نوارها با هم همپوشانی داشته باشند، نمی‌توانیم به طور قطعی نتیجه بگیریم که عملکرد متفاوت است. با این حال، به‌ویژه در بررسی نمودار دوم، به نظر می‌رسد که یک روند در همه تست‌ها وجود دارد. به طور متوسط، کد میکرو جدید حدود ۲٪ کندتر است. در آزمون‌های چند رشته‌ای و وابسته به CPU بیشتر، تفاوت بیشتر و تا حدود ۵٪ است. با این وجود، با اطمینان می‌توان گفت که تأثیر کلی بسیار ناچیز است.

اگرچه این بررسی مستقیماً به کد میکرو مربوط نمی‌شود، اما از آنجایی که ما تنظیمات BIOS خود را مجدداً از حالت پیش‌فرض تغییر داده‌ایم، می‌خواستیم ببینیم که تأثیر این تغییرات بر عملکرد چیست. در گذشته، تأثیر اجرای سیستم با PL1 = 125 وات در مقابل PL1 = 253 وات را بررسی کرده‌ایم، بنابراین ایده روشنی از نتایج داریم.

با دقت بیشتر، متوجه می‌شویم که در هر برنامه‌ای که به رشته‌های سبک متکی است، تفاوت عملکرد بین پروفایل توان ما و پروفایل Intel Performance عملاً وجود ندارد: کمتر از یک درصد. اما در برنامه‌های چند رشته‌ای سنگین مانند Cinebench چند هسته‌ای یا V-Ray، کاهش عملکرد ۱۱ تا ۲۰ درصدی از PL1 کمتر مشاهده می‌شود. این نتایج با تست‌های قبلی ما هم‌خوانی دارد و اگرچه کاهش قابل‌توجه است، دمای سیستم بسیار کمتر است. این فقط به معنای دریافت عملکرد بیشتر بدون عواقب نیست. علاوه بر این، ما معمولاً این پردازنده‌ها را برای وظایف سنگین چند هسته‌ای توصیه نمی‌کنیم و در این شرایط برای مشتریانمان پردازنده‌های  ( Desktop and Threadripper )AMD Ryzenرا پیشنهاد میکنیم

نتیجه‌گیری

در مجموع، به‌روزرسانی‌های اخیر کد میکرو برای پردازنده‌های نسل سیزدهم و چهاردهم اینتل تأثیر کمی بر عملکرد در برنامه‌های تولید محتوا دارند. بیشترین کاهش در برنامه‌های چند رشته‌ای سنگین مشاهده شد، مانند Light Baking در Unreal Engine با کاهش ۵٪ و Blender با کاهش ۴٪ هنگام استفاده از تنظیمات داخلی ما. هر دوی این مقادیر در محدوده خطای معمول ما هستند و بیشتر نتایج دیگر حتی کمتر از این هستند، حدود ۱٪، که به قدری کوچک است که نمی‌توان با قطعیت گفت که این کاهش‌ها وجود دارند. به همین دلیل، ما با اطمینان می‌توانیم بگوییم که تأثیر به‌روزرسانی به جدیدترین کد میکرو برای محافظت از پردازنده‌ها در برابر ناپایداری Vmin Shift بر عملکرد تولید محتوا، در بدترین حالت، ناچیز است.

منبع: Impact of Intel Microcode 0x12B on Content Creation Performance | Puget Systems

You may also like

Leave a Comment

-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00