Наприкінці другої статті цієї серії я дійшов висновку, що енергоефективність ядер процесорів Apple у власних чіпах дозволяє підтримувати високу продуктивність при низькому тепловому тиску. Що я ще уникав розглядати, так це використання енергії.

Значна частина “апаратного” бізнесу Apple залежить від пристроїв з низьким енергоспоживанням, таких як iPhone, iPad та надзвичайно успішні ноутбуки Mac. Вони повинні забезпечувати правильний баланс між продуктивністю та функціями, а також економією заряду акумулятора. Такі моделі, як MacBook Air, були продані мільйонними тиражами значною мірою завдяки їхній надзвичайній автономності, і це стало одним з головних рушійних факторів розвитку процесорів Apple.

Однак, на перший погляд, маніпуляції з частотою ядра матимуть незначний вплив на енергоспоживання, якщо взагалі матимуть. Повернімося до формули для оцінки динамічного енергоспоживання, наведеної в попередній статті:

P = C × f × V^2

де P – динамічна потужність, C – константа, яка зазвичай вважається ємністю комутованого навантаження, f – частота ядра, а V – напруга. Якщо все вірно, то запуск потоку на половинній частоті ядра вимагатиме приблизно вдвічі меншої потужності, але й займе вдвічі більше часу для завершення роботи. Це зменшить тепловий тиск, але не вплине на загальне енергоспоживання.

 

Основні типи

 

Тут стають у нагоді два типи ядер. Хоча я не бачив подібного аналізу для ядер M3, ядра E і P в CPU M1 побудовані по-різному. Ядро E має приблизно вдвічі менше обчислювальних блоків, ніж ядро P, і при тій же частоті виконує інструкції повільніше. Якщо це дійсно ефективніше з точки зору використання енергії, то комбінація ядер E і P, разом з мудрою стратегією розподілу ядер, може значно зменшити загальне споживання енергії і збільшити час роботи від батареї.

Один із способів оцінити це для ядер процесора – оцінити енергоспоживання в порівнянні з пропускною здатністю внутрішньоядерних тестових циклів для двох типів ядер окремо. Це простіше зробити для чіпів M3 Pro, ніж для M1 Pro або Max, через кількість ядер P і E в кожному з них, а також спосіб, у який macOS контролює частоту ядра E в M1 Pro і Max.

При виконанні стандартного потоку, що складається з 200 мільйонів циклів арифметики з плаваючою комою, загальне енергоспоживання двох типів ядер і кластерів значно відрізнялося. На високій частоті використання P-кластера призводило до накладних витрат близько 450 мкДж і додаткових витрат трохи більше 900 мкДж на кожне P-ядро, що використовувалося. Однак, додаткові витрати на кожне E-ядро, що використовувалося на високій частоті, були вдвічі меншими – близько 450 мкДж, а на низькій частоті – лише 150 мкДж, на додаток до накладних витрат на кластер, що становили лише 60 мкДж.

 

 

Виміряні значення не такі прості, як оцінені за допомогою лінійної регресії, і показані на графіку вище. Тут показано виміряне енергоспоживання при виконанні однієї і тієї ж обчислювальної задачі на різній кількості ядер одного типу, а також на ядрах E як на низькій частоті (низький QoS), так і на високій частоті (високий QoS).

Для P-ядер енергоспоживання становило від 1300 до 1000 мкДж на ядро, але близько 500 мкДж для E-ядер на високій частоті, і лише 200 мкДж на низькій частоті. Таким чином, при виконанні фонових завдань, які не потребують швидкого завершення, можна зменшити енергоспоживання приблизно на п’яту частину (20%), розподіливши їх між E-ядрами, а не P-ядрами.

 

Стратегія розподілу ядер

 

Це пояснює першу частину стратегії розподілу ядер, яка використовується в macOS, при розподілі потоків з високим QoS на ядра P, а потоків з низьким QoS – на ядра E. Але що відбувається, коли потоків з високим QoS занадто багато для доступних P ядер, і вони переповнюють E ядра? Оскільки E-ядро, що працює на високій частоті, використовує лише близько половини енергії P-ядра, ці переповнені потоки будуть працювати трохи повільніше, але все одно ефективніше, вимагаючи вдвічі менше енергії, ніж на P-ядрі.

Хоча у мене ще немає доступу до M3 Max, щоб виміряти цю різницю в енергоспоживанні, оскільки він використовує ті ж ядра, що і M3 Pro, я можу передбачити наслідки переповнення кластерів для двох 6-ядерних P-кластерів в M3 Max. Коли перший 6-ядерний P-кластер переповнюється другим, кожне додаткове P-ядро буде витрачати ще 900-1000 мкДж енергії, плюс накладні витрати на кластер близько 450 мкДж. Таким чином, використання лише одного додаткового P-ядра призведе до додаткових енерговитрат у 1400 мкДж або близько того, але в M3 Pro переповнення E-кластера коштує лише 500 мкДж.

 

За межами ядер

 

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

З моменту випуску сімейства M1 Apple урізноманітнила стратегії розподілу ядра в macOS, додавши режими спеціального призначення. Перший з них застосовується під час віртуалізації macOS і просто розглядає всі віртуалізовані потоки (тобто віртуальні ядра процесора) як потоки з високим QoS на хості. Це спрощує керування віртуальною машиною, але збільшує енерговитрати її потоків з низьким QoS. Це має дивний побічний ефект: фонові потоки у віртуальній машині працюють швидше, ніж на хості.

Іншим спеціальним режимом є ігровий режим, який, як видається, мало досліджений. Хоча він надає високопріоритетний доступ до графічного процесора, як і слід було очікувати, його вплив на розподіл ядер є менш прозорим, оскільки визначені ігри, що працюють у цьому режимі, отримують переважний доступ до ядер E, а не P. Потрібна подальша робота, щоб зрозуміти переваги.

Існує третій спеціальний режим розподілу ядер, який я детально розглянув, і який пов’язаний з використанням матричного співпроцесора AMX. Це підводить мене до наступної статті в цій серії, де я розгляну ролі спеціалізованих процесорів в кремнієвих чіпах Apple, включаючи блок векторної обробки NEON в кожному ядрі процесора, AMX, нейронний движок (ANE) і графічний процесор в режимі Compute.

 

Концепції

 

  • Ядра E спроектовані інакше, ніж ядра P, щоб споживати менше енергії.
  • Енергоспоживання E-ядра M3 становить приблизно 20-50% від енергоспоживання P-ядра при виконанні однієї і тієї ж задачі.
  • Стратегії розподілу ядер мінімізують енергоспоживання фонових завдань.
  • Переповнення потоків з P-кластера в E-кластер зменшує споживання енергії вдвічі порівняно з P-кластером.

Оригінал статті Ґоварда Уоклі на сайті eclecticlight.co

Інші статті циклу:

 

Процесори Apple: 1 Ядра,кластери та продуктивність

Процесори Apple: 2 Потужність і теплова ефективність

Процесори Apple: 3 Але чи економить він енергію?

Процесори Apple: 4 Трохи допомоги від друзів та співпроцесорів

Процесори Apple: 5 Пам’ять і внутрішній накопичувач

Процесори Apple: 6 Безпека