компонент

Bloomberg відкрив заборону. Нас чекає кілька тижнів від чуток (передбачуваного) 10 вересня наступного року - презентації нового покоління iPhone. І якщо ми послухаємо те, що нещодавно сказали Марк Гурман і Деббі Ву, ми також побачимо невелике оновлення iPad Pro, нового 10,2-дюймового iPad-iPad та нового 16-дюймового MacBook Pros. Якщо ви хочете дізнатись більше, у вас тут є стаття порахувати всі чутки.

Але тут ми зосередимося на чомусь (для мене) важливішому, ніж 3 камери на айфонах або iPad розміром 10,22 ”. Сьогодні ми говоримо про мозок та новий співпроцесор, який просунув Гурман, який включав би майбутній A13, який би дав інтелект цьому новому поколінню пристроїв. Співпроцесор під назвою AMX, який спеціалізується на обчисленні матриці з плаваючою точкою. Мікросхема, призначена для підтримки комп'ютерного зору та доповненої реальності. Тож ми розповімо вам, з чого він складатиметься та якими буде його функція.

Неоднорідні обчислення

Це ключ до еволюції процесорів на основі архітектури ARM, що випускаються сьогодні. На відміну від того, що ви можете подумати, коли ми бачимо еталон, коли новий A12x iPad Pro досягає такої ж продуктивності, що майже однакова з високоякісним процесором Intel, як у MacBook Pro 2018 року, ми фактично розповідаємо половину історії, і ця цінність нас "вводить в оману".

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

Ми збираємося навести кілька коротких прикладів, щоб ви це зрозуміли. Процесор x86, як будь-який Intel, який використовується Macs, має тисячі інструкцій. Від найпростіших (наприклад, сума) до більш складних, таких як переміщення пам’яті між конкретними компонентами і навіть дуже конкретні обчислення, такі як кодування набору відеоданих.

Щоб дати вам уявлення: центральний процесор - це не той самий (як багато років тому), який міг лише додавати, а для його множення потрібно було зробити багато сум, що той, який має команду множення і в одній інструкції виконує всі операції.

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

Крім того, є розмір інструкцій. На x86 кожна інструкція має різний розмір, найосновніші та найбільш часто використовувані інструкції, які займають лише 8 біт, можливо, 16 біт. Тим не менше, в ARM всі інструкції займають однакові 32 біти, навіть якщо вони короткі на рівні нумерації. Отже, хоча x86 здатний обробляти більше інструкцій в секунду, оскільки кожна з них має різний розмір (вона динамічна), в ARM кількість інструкцій для обробки в секунду є постійною.

Це лише деякі відмінності, на які слід звернути увагу. З цієї причини порятунок архітектури ARM, щоб дозволити їй мати ефективність, порівнянну (реальну) з архітектурою x86, є неоднорідними обчисленнями. Здатність процесора мати в собі різні спеціалізовані компоненти. Скажімо, x86 відтворює м’язи з центральним процесором, що дозволяє тисячі динамічно розміщених інструкцій, але призначених для більш загальних операцій. Однак ARM робить те, що центральний процесор залишає його для загальних випадків та решта видів діяльності направляється до інших спеціалізованих компонентів.

Наприклад: якщо ми хочемо закодувати відео на процесорі x86, у нас є набір інструкцій, які нам допоможуть (так звана технологія швидкої синхронізації від Intel). Але вони є інструкціями в межах одного процесора, тому вони завантажують цю роботу, а не звільняють її. Однак процесор Apple A12 має ядро ​​кодування відео HEVC, яке знаходиться поза процесором і завданням якого є кодування та декодування відео за допомогою цього кодека. Отже, якщо ми записуємо відео 4K на iPhone XR (наприклад), процесор не повинен нічого робити, за винятком координаційних операцій, тоді як тягар кодування лягає на зовнішній компонент. Це, очевидно, звільняє центральний процесор для інших справ, поширює роботу та робить систему швидшою у реальному використанні.

Тепер подумайте, що процесор A12 має такі компоненти: графічний процесор (графічний процесор), TPU (блок тензорів або нейронний двигун), координатор процесу (який визначає, який тип ядра або компонента кожна операція, що вимагається від мікросхеми), ISP ( мікросхема для обробки зображень для фотозйомки), DSP (або цифровий процесор сигналу для звуку), механізм глибини (для обробки глибини елементів у зображенні), відеопроцесор ... плюс графічний процесор має 4 ядра (7 у випадку A12x) та 6 ядер процесора (8 у випадку A12x).

Ну, пояснивши все це і зрозумівши, як структурований процесор ARM-архітектури (очевидно, не тільки Apple), ми тепер можемо краще зрозуміти той факт, що, здається, Apple буде включати новий компонент до процесора A13: матричний обчислювальний співпроцесор. І що це буде робити?

MCC, розрахунок матриць

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

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

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



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

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

Ми використовуємо 4 компоненти замість 3, які були б вертикальною, горизонтальною та глибинною точками, щоб представити координату в тривимірному просторі (x, y, z) способом представлення векторів та точок за допомогою однорідних координат. Система координат у тривимірному просторі складається з 4 компонентів: осей 3 x, y та z та координат координат. Тому кожен вектор у тривимірному просторі є лінійною комбінацією з 3 осей, де стовпці x, y, z та w є матрицею. Оскільки будь-яка точка у тривимірному просторі представлена ​​початком початку та вектором. Витоком координат реального світу в доповненій реальності є камера, яка зазнає власних перетворень при русі в нашій руці.

По суті, кожен об’єкт має свій власний координатний простір, і ми повинні перетворити його на координатний простір середовища, де ми його збираємось розмістити. Четвертий стовпець у матриці - це той, який представляє однорідну координату і дозволяє нам множити матрицю разом, щоб отримати перетворення кожної точки. Залежно від рядків і стовпців, які ми хочемо змінити в матриці, ми отримаємо переклади, масштабування, обертання, деформацію ... операції, що застосовуються до однієї або кількох осей x, y або z залежно від розрахунку.

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

Доповнена реальність, розуміння сцени

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

Для кожного зображення, яке ви бачите, ви повинні розрахувати глибину та відстань, на якій знаходиться кожен елемент, і, починаючи з iOS 13, визначати, які частини слід малювати чи ні, виходячи з оклюзії людей (доступно лише на центральних процесорах A12 і далі). Цей шлях, якщо на столі я поставлю віртуальну вазу, і я покладу руку «перед нею», пристрій перестане малювати пікселі там, де виявляє мою руку щоб склалося враження, що віртуальний об’єкт знаходиться за ним, і я його прикриваю.



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

Але коли ми пересуваємо мобільний телефон і на екрані є віртуальний елемент (або декілька), для системи відбувається дуже важкий процес, який до цього часу здійснював центральний процесор: обчислення перетворення матриць, що дають координати в тривимірний простір до положення кожного елемента. На матриці 4 × 4, яка передбачає положення на осі x, осі y, глибині (осі z) та початку координат. Розрахунок, який потрібно зробити 60 разів на секунду, щоб синхронізувати те, що бачить камера, із створеним нею віртуальним світом.

З цієї причини Apple включить цей новий математичний співпроцесор, вхідні регістри якого замість скалярних даних одного виміру (як звичайний процесор) будуть чотиривимірними матрицями, подібними до ТПУ (або нейронних двигунів), але з конкретними операціями для цих обчислень на 3D-просторі так що заздалегідь розрахованим способом це допомагає малювати з більшою точністю, менше нагріваючи пристрій і споживаючи менше енергії.

Безумовно дуже цінна підтримка комп'ютерного зору, що застосовується до доповненої реальності і новий невеликий крок до окулярів Apple з доповненою реальністю, який ще раз показує, що окуляри будуть в основному пасивними і що всі розрахунки будуть проводитися з пристрою (як це робить сьогодні Apple Watch).

Сподіваюся, ви зрозуміли, чому Apple прийняла це рішення і як це вписується у всю вашу архітектуру процесора. Без сумніву, ще один крок у майбутнє. Через кілька тижнів ми залишимо сумніви.