Як обійти функцію "Cripple AMD" Matlab, відновити повну продуктивність для процесорів Ryzen, Threadripper

Як обійти функцію "Cripple AMD" Matlab, відновити повну продуктивність для процесорів Ryzen, Threadripper

Однією з труднощів оглядів процесора є те, що вони представляють найкращий час для оцінки нових функцій та програмного забезпечення, одночасно представляючи найгірший можливий час для спроби глибокого занурення на будь-яку конкретну частину програмного забезпечення. Іноді рецензенти приймають тести, тому що постачальник рекомендував їх, не розглядаючи, чи буде тест виконувати однаково в Intel та проти AMD. Іноді постачальник не розголошує, що додаток складено таким чином, що тести будуть працювати набагато швидше на одній платформі на відміну від іншої. Це один із тих часів.

Коли я опублікував дані Matlab в нашому спільному огляді Threadripper 3970X / Cascade Lake X, це було тому, що Intel рекомендувала цей тест і навантаження як вітрина для лінійки настільних HEDT від Intel. Я спеціально попросив рекомендації, сподіваючись, що Intel матиме на увазі деякі програми, які демонструватимуть відносно легке масштабування на або вище 18-ядерної позначки з інтеграцією AVX-512. Навіть професійні додатки не вільно масштабуються назавжди, і я знав, що, переходячи до цього огляду, існує те, що Intel буде «острівцем» для того, щоб Intel стояла на перетині більш високих годин та злегка нарізаних програм. У цьому контексті "легенько" слід розуміти "програми, які не змінюють масштаб до 64 потоків", на відміну від "додатків, що не масштабують минулі 4-8 ниток", що зазвичай ми маємо на увазі коли ми називаємо додаток злегка нарізаним. Було очевидно, що Threadripper 3960X та 3970X збираються перемогти 10980XE у кожному додатку, який міг би масштабуватися відповідно до їх кількості потоків, особливо у випадку 3970X. З огляду на це, варто було вивчити сфери, які історично були найсильнішими для Intel, щоб побачити, як порівнюватимуть продуктивність.

Компанія Intel рекомендувала для цього огляду чотири навантаження: AIXPRT, Adobe Premiere Pro, Matlab та Sony Catalyst. Мені хотілося витратити більше часу на оцінку AIXPRT, перш ніж почати його використовувати в системах, що зробило його менш привабливим. Тепер Adobe вимагає, щоб ви надали їм кредитну карту, щоб розпочати 7-денну безкоштовну пробну версію їх програмного забезпечення, тож це прямо зараз. Я вирішив протестувати Matlab та Sony Catalyst. Мені не було відомо про це розслідування та доповідь redditor Nedflanders1976, зроблену десь вісім днів тому.

Він пише:

Matlab працює надто повільно на процесорах AMD для операцій, які використовують бібліотеку ядер Intel Math (MKL). Це пояснюється тим, що Intel MKL використовує дискримінаційний процесорний диспетчер, який не використовує ефективний кодовий шлях відповідно до підтримки SIMD CPU, а на основі результату запиту рядка постачальника. Якщо ЦП від AMD, MKL не використовує розширення SSE3-SSE4 або AVX1 / 2, але повертається до SSE1, незалежно від того, підтримує процесор AMD більш ефективні розширення SIMD, такі як AVX2 чи ні.

Існує спосіб відключити цю поведінку в Matlab. Пише Фландрія. Якщо ви користувач Windows із встановленим Matlab, створіть пакетний файл із такими даними:

@echo offset MKL_DEBUG_CPU_TYPE = 5matlab.exe

Запустіть програму, використовуючи цей пакетний файл. Ви можете зробити це постійним, ввівши: "MKL_DEBUG_CPU_TYPE = 5" у змінні системного середовища. Nedflanders1976 також має детальну інформацію про те, як виконати це завдання для Linux. Ми розібралися з тестуванням деяких варіантів ідей, включаючи встановлення "MKL_DYNAMIC = FALSE" та "MKL_NUM_THREADS = 64", щоб побачити, чи покращать ці параметри ефективність. Вони цього не зробили. Найкращі показники були отримані, використовуючи налаштування вище.

Оновлені результати Matlab

Я оновив наші результати Matlab новими даними, показуючи вплив запуску програми в цьому режимі. Я відображаю загальний підсумковий час для всього робочого навантаження в нижній частині кожного набору результатів. Верхні результати показують продуктивність наших трьох порівняних процесорів без будь-яких змін, нижня діаграма показує вплив із прапором "встановити MKL_Debug_CPU_Type = 5". Це може працювати і для інших програм, які також використовують бібліотеку MKL. Слід зазначити, що у багатьох випадках під час цього тесту CPU завантажується лише ~ 53-55 відсотків - рівень навантаження, що корелює з 17-18 потоками процесора. У цьому випадку, однак, ці налаштування виявилися швидшими, ніж змусили MKL використовувати більшу кількість потоків. Навчання машини використовувати 48 або 64 потоків лише збільшило загальний час виконання на 3970X.

Натисніть, щоб збільшити
Натисніть, щоб збільшити

Продуктивність AMD покращується на 1.32x - 1.37x в цілому. Індивідуальний приріст тесту іноді набагато більший. Очевидно, ці результати набагато гірші для Intel, змінивши те, що виглядало як вузька перемога над 3960X і хороша демонстрація проти 3970X в цілковиту втрату.

Коли можна перевірити ці додатки?

Мені не було відомо про поведінку Matlab, коли я погодився порівняти додаток для запуску Threadripper 3960X / 3970X / Cascade Lake, але це прекрасний час для обговорення цієї теми. Справа в тому, що Matlab поставляється в конфігурації, яка автоматично упереджена AMD: вона відмовляється запускати код SIMD на процесорі AMD, навіть незважаючи на те, що процесор підтримує відповідний код SIMD.

Неправильно оцінювати додаток у реальному світі. Продуктивність реальної програми, яку ви повинні використовувати, цілком може бути доречною для апаратного вибору, який ви робите. Якщо ваше завдання залежить від завантаженості робочого навантаження в додатку, який сильно сприяє мікропроцесорам Intel, ви, швидше за все, купуєте процесори Intel, навіть якщо ви бажаєте купувати мікросхеми на основі конструкцій ARM або AMD. Люди заслуговують на те, як програмне забезпечення, яке вони запускають, фактично працює на апаратному забезпеченні, яке вони використовують, а Matlab - це головна частина програмного забезпечення, яку використовують понад 3 мільйони людей. Те, що Matlab надає перевагу процесорам Intel, не означає, що користувачі Matlab не заслуговують на те, щоб знати, як працює програма. Звичайно, вони так і роблять.

Фландрія просить вас зв’язатися з Matlab, щоб зробити запит на функцію, якщо ви хочете вирішити цю проблему, але вам потрібно буде бути абонентом Matlab, щоб вже нічого не надсилати. Незалежно від того, змінила компанія свій підхід, ми вважаємо, що кінцевим споживачам потрібно знати, як обійти цю проблему та відновити повну продуктивність процесорів AMD.

Я міг би включити тест Matlab, навіть якби Intel виявила, що він буде використовувати шляхи оптимізації, специфічні для Intel; Я шукав тести, які сприяли Intel для порівняння з набагато більшим числом ядер AMD. Я не мав наміру позиціонувати ці тести як інше, ніж те, що вони були - найкращі сценарії для Intel, але реалістичні сценарії все-таки. Я перевірив y-cruncher 0.78 для цього огляду спеціально, тому що це приклад програми, оптимізованої AVX-512, де цей набір SIMD збільшує швидкість Intel. У мене немає проблем із демонстрацією процесорів Intel або AMD в найкращих випадках. Я просто хочу знати, коли я це роблю.

Читачі запитають, чому я не вскочив в горло від Intel, грунтуючись на історичних фактах випуску компілятора "Cripple AMD". Дозвольте заспокоїти вас, я їх цілком усвідомлюю. Факти такої ситуації є причиною того, що Intel повинно було бути обережним, які тести були рекомендовані та що вона повідомляла щодо цих тестів. Але я також не маю копій кожного запису керівництва Intel про останні кілька циклів запуску HEDT, і не можу сказати, що для цього циклу був доданий тест, а не програма, яку Intel також рекомендував би в попередніх циклах . Навіть якщо Matlab не згадувався в попередніх загальних орієнтирах для попередніх процесорів, я спеціально звернувся до Intel із запитом даних про тести, які можуть включати такі можливості, як AVX-512. Intel повинна мати практику, щоб переконатися, що рецензенти знають про такі підводні камені - але я не можу сказати точно, що це не була помилкою.

З цим сказаним:

Читачі повинні знати, що я також сканував Sony Catalyst, використовуючи патчі Swallowtail, здатні видалити функцію "Cripple AMD" з виконуваних файлів, і не виявив жодних ознак упередженості Pro-Intel після їх виконання; Threadripper 3970X виконав завантаження Sony Catalyst за той самий проміжок часу після запуску програми. На цей момент, проте, ластівці ластівки 10 років. Хоча я підтвердив, що вони працюють на старому програмному забезпеченні, не ясно, що вони здатні виявляти методи, які все ще використовуються для запобігання оптимальному виконанню коду на процесорах AMD. Я вже не впевнений, чи редагує Sony Catalyst Edit такий тип злегка потокової програми, яку я сподівався перевірити на огляд 10980XE, або якщо він використовує ще невиявлені пільгові кодові шляхи для підвищення продуктивності процесорів Intel. Принаймні, я не такий впевнений, як хотів би бути.

Я скажу ще одне в цьому питанні. Що стосується особисто мене, будь-яка частина програмного забезпечення, яка стверджує, що підтримує AVX, AVX2, SSE або будь-який інший код SIMD, повинна чітко вказати, чи виконується цей код виключно на підтримуваних мікропроцесорах Intel. Якщо не повідомити клієнтів, що ваше програмне забезпечення не виконуватиме ідеальний код на їх платформі через жорстко закодовані обмеження у вашій програмі, це повинно скласти помилкову рекламу. AMD рекламує свої процесори на основі таких факторів, як підтримка AVX2, але постачальники програмного забезпечення не зобов’язані повідомляти вас, чи зможете ви використовувати функції, за які ви буквально заплатили. Це не повинно бути так. Багатомільйонні розробники програмного забезпечення здатні виконувати належну ретельність, необхідну, щоб бути чесними щодо своїх методів оптимізації.

Читати далі

Google святкує 10 років ОС Chrome з новими функціями
Google святкує 10 років ОС Chrome з новими функціями

Google запустив ОС Chrome десять років тому з пристроєм, який ви навіть не могли придбати під назвою CR48. Зараз ви можете безкоштовно придбати ноутбуки Chrome OS від численних виробників, і вони продаються краще, ніж комп’ютери Apple. Google святкує десять років роботи ОС Chrome із запуском версії 89, яка включає телефонний концентратор, менеджер буфера обміну, вдосконалені віртуальні робочі столи тощо.

Microsoft принесе свою чудову функцію Xbox Auto HDR для комп'ютерних ігор
Microsoft принесе свою чудову функцію Xbox Auto HDR для комп'ютерних ігор

Microsoft принесе функцію AutoHDR з Xbox на ПК, дозволяючи понад 1000 ігор, які в даний час не вистачає реалізації HDR, щоб отримати один.

Facebook оголошує нову функцію OCUSUL VR: в ігрових оголошеннях
Facebook оголошує нову функцію OCUSUL VR: в ігрових оголошеннях

Facebook незабаром створюватиметься оголошення в VR Games. Компанія стверджує, що реклама буде корисною розробниками, але, здається, має щось на увазі.

Samsung представляє один дизайн інтерфейсу та функції для зносу ОС
Samsung представляє один дизайн інтерфейсу та функції для зносу ОС

Оновлений знос буде мати Samsung один UI дивитись шкіру, а також більше інтеграції смартфона. Є навіть кілька класичних функцій OS OS, які повертаються.