Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/6560| Title: | Дослідження мікро-архітектур центральних процесорів різних фірм-виробників |
| Authors: | Лукашенко, Валентина Максимівна Попільнуха, Іван Сергійович |
| Issue Date: | Jan-2022 |
| Abstract: | Метою кваліфікаційної роботи магістра є підвищення ефективності порівняльного аналізу за рахунок методу об’єктивного оцінювання багато параметричних моделей мікроархітектур центральних процесорів. Об’єктом дослідження є процеси функціонування архітектур CPU та GPU. Предметом дослідження є мікроархітектури центральних процесорів різних фірм виробників. Основні наукові і практичні результати полягають у наступному: - проведено аналіз архітектур CPU та GPU різних фірм-виробників, розроблені реляційні моделі даних CPU та GPU, що дозволило зменшити час проектувальнику на визначення кращої архітектури процесорів CPU та GPU; - проведено порівняльний аналіз математичних моделей, які використовуються у центральних процесорів, що забезпечило визначити напрямок розширення функціональних можливостей архітектури процесорів CPU та GPU; - синтезовано архітектури CPU та GPU в єдиному кристалі, що забезпечило підвищення апаратурної надійності. Практична цінність результатів полягає у доведені отриманих наукових результатів до конкретних інженерних рішень: - розроблено алгоритм визначення кращої архітектури мікропроцесорів CPU та GPU за відповідними параметрами, що зменшую час пошуку при проектуванні; - проведено аналіз топології архітектур CPU та GPU різних фірм-виробників, які показали що широко використовуються техпроцеси, мінімальні розміри якого дорівнюють 7нм. Це забезпечує розширення функціональних можливостей на кристалі та збільшити процент виходу придатних кристалів з пластини. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/6560 |
| Appears in Collections: | 123 Комп’ютерна інженерія (Спеціалізовані комп’ютерні системи) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| М_123_2021_Попільнуха+.pdf Restricted Access | 4.62 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА РОБОТОТЕХНІКИ ТА СПЕЦІАЛІЗОВАНИХ
КОМП’ЮТЕРНИХ СИСТЕМ
Пояснювальна записка
до кваліфікаційної роботи
освітнього ступеню «магістр»
на тему: Дослідження мікроархітектур центральних процесорів різних фірм
виробників
Виконав: студент 2 курсу, групи МСКС-2007
спеціальності 123 «Комп’ютерна інженерія»
(освітня програма «Спеціалізовані
комп’ютерні системи»)
Попільнуха І.С.
(прізвище та ініціали)
Керівник Лукашенко В.М.
(прізвище та ініціали)
Рецензент
(прізвище та ініціали)
Черкаси 2021 рік
ЗМІСТ
СПИСОК УМОВНИХ ПОЗНАЧЕНЬ ТА СКОРОЧЕНЬ ......................................... 4
ЗАГАЛЬНА ХАРАКТЕРИСТИКА РОБОТИ .......................................................... 5
РОЗДІЛ 1 ................................................................................................................... 9
1.1 ОСНОВНІ ПОНЯТТЯ ТА ВИЗНАЧЕННЯ. .................................................................. 9
1.2 СФЕРИ ЗАСТОСУВАННЯ АРХІТЕКТУР МІКРОПРОЦЕСОРІВ CPU ТА GPU ТА ЇХ
ОСОБЛИВОСТІ .................................................................................................. 11
1.3 АРХІТЕКТУРА МІКРОПРОЦЕСОРІВ ARM ............................................... 13
1.4 ПРОЦЕСОРИ APPLE INC. НА БАЗІ АРХІТЕКТУР ARM .......................... 14
1.5 МІКРОАРХІТЕКТУРА ZEN РОЗРОБЛЕНА КОМПАНІЄЮ AMD ............ 17
1.6 АРХІТЕКТУРА CPU-GPU ................................................................................. 19
1.7 МІКРОАРХІТЕКТУРА KABY LAKE РОЗРОБЛЕНА INTEL ..................... 22
1.8 МІКРОАРХІТЕКТУРА AMPERE РОЗРОБЛЕНА NVIDIA ......................... 24
1.7 ВИСНОВКИ .................................................................................................. 25
РОЗДІЛ 2 ДОСЛІДЖЕННЯ ІСНУЮЧИХ МІКРОАРХІТЕТУР
ВИРОБНИКІВ AMD ТА INTEL......................................................................... 27
2.1 АНАЛІЗ МІКРОАРХІТЕТУР AMD ТА INTEL ....................................................... 27
2.2 ТЕХНОЛОГІЯ ЧОТИРЬОХ ЯДЕР ........................................................................... 28
2.3. ПІДТРИМКА ВІРТУАЛІЗАЦІЇ .............................................................................. 29
2.4. INTEL XEON PROCESSOR PROLIANT SERVERS .................................................. 29
2.5. AMD OPTERON PROLIANT SERVERS ............................................................... 30
2.6. AMD/INTEL HYBRID- IVY-BRIDGE HYBRID ................................................... 31
2.7. НОВА АРХІТЕКТУРА ZEN 3 .............................................................................. 33
2.7 ВИСНОВКИ ...................................................................................................... 42
РОЗДІЛ 3 ДОСЛІДЖЕННЯ ІСНУЮЧИХ АРХІТЕТУР NVIDIA ........................ 43
3.1 АРХІТЕКТУРИ GPU ЗАГАЛЬНОГО ПРИЗНАЧЕННЯ ............................... 43
3.2 АНАЛІЗ GPGPU АРХІТЕКТУРИ ................................................................. 48
3.3 ОПТИМІЗАЦІЯ МІКРОАРХІТЕКТУРИ ЗА СПІЛЬНИМ
ВИКОНАННЯМ ........................................................................................... 56
3.4 ОБРОБКА GPGPU ЗА ДОПОМОГУЮ CPU ............................................... 58
2.6 НЯПРЯМКИ РОБОТИ НА МАЙБУТНЄ .................................................................. 60
3.6 СУЧАСНА СТРУКТУРА МІКРОАХІТЕТУРИ ........................................................... 63
3.7 АРХІТЕКТУРА CUDA ....................................................................................... 82
3.8 МОДЕЛЬ ПАМ'ЯТІ ............................................................................................. 87
3.5 АРХІТЕКТУРА NVIDIA ISAAC ТА AMPERE. ПРИСКОРЕНА ПЛАТФОРМА
ДЛЯ РОБОТОТЕХНІКИ............................................................................... 88
3.6 ВИСНОВКИ ...................................................................................................... 94
ВИСНОВКИ ........................................................................................................... 95
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ................................................................ 97
4
СПИСОК УМОВНИХ ПОЗНАЧЕНЬ ТА СКОРОЧЕНЬ
GPU (graphics processing unit)- окремий пристрій персонального комп'ютера
або ігрової приставки, виконує графічний рендеринг.
CPU (Central processing unit) - функціональна частина комп'ютера, що
призначена для інтерпретації команд.
GPGPU (General-purpose computing on graphics processing units) - це
використання графічного процесора (GPU), який зазвичай обробляє обчислення
тільки для комп'ютерної графіки, для того щоб виконати обчислення в додатках,
традиційно виконуваних центральним процесором (CPU)
CUDA (Compute Unified Device Architecture) - програмно-апаратна
архітектура паралельних обчислень
API (application programming interface) - набір визначень підпрограм
SIMT (Single instruction, multiple threads) - модель виконання, яка
використовується в паралельних обчисленнях, де одна інструкція, кілька даних
(SIMD) поєднуються з багатопоточністю.
NGX (Neural Graphics Acceleration) - новий технологічний стек із глибоким
навчанням, що містить функції на основі штучного інтелекту, які прискорюють і
покращують графіку
ARM (Advanced RISC Machine) - 32-бітна RISC архітектура процесорів
DRAM (dynamic random access memory) - один із видів комп'ютерної пам'яті
із довільним доступом (RAM), найчастіше використовується як ОЗП сучасних
комп'ютерів
VRAM (Video Random Access Memory) - внутрішня оперативна пам'ять
графічного контролера
5
Загальна характеристика роботи
Актуальність теми. В сучасних комп’ютерних системах спостерігається
різке нарощування інформаційних даних, які формуються та зберігаються. Ці дані
каталогізуються та обробляються для розробки та доставки інформації
користувачам у різних доменах наприклад: фінанси, соціальні мережі, ігри. Цей
клас навантажень називають обчислювальними додатками пропускної здатності
CPU з кількома ядрами, для обробки даних яких, вважаються придатними для
таких навантаження. Завдяки високій обчислювальної пропускної здатності і
енергоефективність, відбулося швидке впровадження GPU. Перші спроби
використання графічних процесорів для неграфічних обчислень використані у
графічних модулях. Щоб використовувати графічні API для обчислення загального
призначення, програмісти зіставляли дані програми уважно до доступної пам'яті
буфера шейдерів і керував дані через графічний конвеєр. Була обмежена апаратна
підтримка для програмування загального призначення; однак для правильного
робочого навантаження, були можливі великі прискорення. Цей початковий успіх
для кількох неграфічні навантаження на графічні процесори спонукали
постачальників додати апаратну та програмну підтримку.
Низку робіт, таких як: Adams K., Agesen O., F. Douglis, J. Ousterhout, M.
Kaashoek, Huang K., Bacivarov I., Hugelshofer F., Kevin J. Barker, Davis K., Adolfy
H., Darren J. K., Mike L., Scott P., Michał M., Jarosław J., Ewa N. S, Przemysław S.,
Krzysztof G., Vitullo F., L’Insalata N. E., Petri E., Fanucci L., Casula A. Sethia, D. A.
Jamshidi, Mark Silberstein, Bryan Ford, Idit Keidar, Michael F. Spear, Virendra J.
Marathe, William N. Scherer, and Michael L. Scott, Dean M. Tullsen, Susan J. Eggers,
Joel S. Emer, Henry M. Levy, Jack L. Lo. Однак, при всій цінності проведених
наукових досліджень окремі питання аналізу та порівняння CPU та GPU різних
фірм-виробників дослідженні недостатньо.
6
Зв’язок роботи з останніми дослідженнями, науковими програмами, планами,
темами.
Напрям дослідження кваліфікаційної роботи пов'язаний з бюджетною
науково-досліднитскої роботи Черкаського державного технологічного
університету: “Методи, моделі при обробці інтелектуальних, інформаційних
технологій для високоефективних обчислювальних та локальних підсистем
управління в проблемно-орієнтованих системах” (№ д.р. 0106U004501).
Мета і задачі дослідження. Метою дослідження є підвищення ефективності
порівняльного аналізу за рахунок методу об’єктивного оцінювання багато
параметричних моделей мікроархітектур центральних процесорів.
Для досягнення поставленої мети необхідно вирішити наступні завдання:
- Провести аналіз архітектур CPU та GPU різних фірм-виробників.
- Провести порівняльний аналіз математичних моделей.
- Аналізувати синтезуванні архітектури CPU та GPU в спеціалізованих
комп’ютерних системах.
- Розробити алгоритм визначення кращої архітектури мікропроцесорів
CPU та GPU.
- Провести аналіз топології архітектур CPU та GPU різних фірм-
виробників.
Об’єктом дослідження є процеси функціонування архітектур CPU та GPU.
Предметом дослідження є мікроархітектури центральних процесорів
різних фірм виробників.
Методи дослідження базуються на сучасних досягненнях в теорії аналізу,
синтезу, оптимізації побудови архітектури центральних та графічних процесорів,
теорії архітектур комп’ютерних систем, теорії дискретної математики.
Наукова новизна одержаних результатів полягає в тому що:
- Проведено аналіз архітектур CPU та GPU різних фірм-виробників,
розроблені реляційні моделі даних CPU та GPU, що дозволило
7
зменшити час проектувальнику на визначення кращої архітектури
процесорів CPU та GPU.
- Проведено порівняльний аналіз математичних моделей, які
використовуються у центральних процесорів, що забезпечило
визначити напрямок розширення функціональних можливостей
архітектури процесорів CPU та GPU.
- Синтезовано архітектури CPU та GPU в єдиному кристалі, що
забезпечило підвищення апаратурної надійності.
Практична значимість результатів дослідження. Практична цінність
результатів полягає у доведені отриманих наукових результатів до конкретних
інженерних рішень:
– розроблено алгоритм визначення кращої архітектури
мікропроцесорів CPU та GPU за відповідними параметрами, що зменшую
час пошуку при проектуванні;
– проведено аналіз топології архітектур CPU та GPU різних фірм-
виробників, які показали що широко використовуються техпроцеси,
мінімальні розміри якого дорівнюють 7нм. Це забезпечує розширення
функціональних можливостей на кристалі та збільшити процент виходу
придатних кристалів з пластини.
Апробація. Результати дослідження доповідалися і обговорювалися на:
- дев’ятої міжнародної науково-технічної конференції “Проблеми
інформатизації” 18-19 листопада 2021 року (Черкаси – Харків – Баку –
Бельсько-Бяла);
- на «ДЕК РСКС» 16 червня 2021, м.Черкаси 2021р.
8
Публікації.
V.M.Lukashenko, I.S.Popilnukha,”Research of central processor architectures” на
дев’ятої міжнародної науково-технічної конференції “Проблеми інформатизації”
18-19 листопада 2021 року (Черкаси – Харків – Баку – Бельсько-Бяла),vol.2, pp.14
9
РОЗДІЛ 1
СТАН ПРЕДМЕТУ ДОСЛІДЖЕННЯ ТА ФОРМУВАННЯ ЗАВДАНЬ
У першому розділі проведено дослідження:
- основних існуючих архітектур мікропроцесорів CPU та GPU;
- сфери їх застосування.
1.1 Основні поняття та визначення.
Мікропроцесор — це комп’ютерний процесор, який поєднує функції
центрального процесора на одній інтегральній схемі (ІС) або щонайбільше
кількох інтегральних схемах. Таким чином, мікропроцесор є багатоцільовою
цифровою інтегральною схемою з тактовою системою, заснованою на регістрі,
яка приймає двійкові дані як вхідні дані, обробляє їх відповідно до інструкцій,
що зберігаються в його пам’яті, а потім видає результати як вихідні дані.
Мікропроцесори містять як комбінаційну логіку, так і послідовну цифрову
логіку, і вони працюють з числами і символами, представленими в двійковій
системі числення.
До мікропроцесорів малі комп’ютери створювали з використанням
стійок друкованих плат із багатьма середніми та малими інтегральними
схемами. Потім мікропроцесори включили все це в одну або кілька
великомасштабних мікросхем. Інтеграція цілого ЦП в одну або кілька
інтегральних схем значно знизила вартість обчислювальної потужності.
Як правило, процесори інтегральних схем виробляються у великій
кількості за допомогою високоавтоматизованих процесів виготовлення
металооксидних-напівпровідників (MOS), що призводить до низької ціни за
одиницю продукції. Однокристалічні процесори підвищують надійність,
оскільки менше електричних з’єднань, які можуть вийти з ладу. І хоча
конструкції та потужність мікропроцесорів постійно вдосконалюються,
вартість виробництва мікросхеми (з меншими компонентами, побудованими на
напівпровідниковому чіпі того ж розміру) не так сильно змінилася. Це також
додало популярності мікропроцесорів.
10
І це пояснює, чому інші форми комп’ютерів майже повністю застаріли.
Мікропроцесори - це запам'ятовуючий пристрій, який також є передовою
формою комп'ютера, тому їх також називають мікрокомп'ютерами. Низька
вартість, низька потужність і невелика вага, а також обчислювальні
можливості роблять ці мікропроцесори дуже корисними для багатьох додатків.
Аналіз приведених на рис. 1.1 сфер застосування мікропроцесорів, показав, що
вимоги до їх особливостей різноманітний, від
найменших вбудованих систем і портативних пристроїв до найбільших
мейнфреймів і суперкомп’ютерів.
Таким чином, мікропроцесорні системи сьогодні зустрічаються
повсюдно, а не тільки в комп’ютерах і смартфонах: в автоматичному
тестуванні продуктів, регулюванні швидкості двигунів, регулюванні
світлофора, комунікаційному обладнанні, телебаченні, супутниковому зв’язку,
побутовій техніці, наприклад, мікрохвильовій печі, пральній машині. , ігровий
контролер, промислові контролери та навіть спеціалізовані програми, такі як
військове застосування.
Мікропроцесорні системи сьогодні зустрічаються повсюдно, а не тільки
в комп’ютерах і смартфонах: в автоматичному тестуванні продуктів,
регулюванні швидкості двигунів, регулюванні світлофора, комунікаційному
обладнанні, телебаченні, супутниковому зв’язку, побутовій техніці, наприклад,
мікрохвильовій печі, пральній машині, ігровий контролер, промислові
контролери та навіть спеціалізовані програми, для військового застосування.
11
1.2 Сфери застосування архітектур мікропроцесорів CPU та GPU та їх
особливості
На даний час мікропроцесорів CPU та GPU масово використовується в
багатьох сферах людської діяльності, які представлені на рис. 1.1
Сфери застосування мікропроцесорів
Промислові Побутові
• автомобілі • кавоварки
• човни • пральні машинки
• літаки • мікрохвильові печі
• вантажівки
• тостери
• важка технік • телевізори
• ліфти та інш
Перевезення Електроніка
• Автомобілі • Відеомагнітофон
• потяги • Телевізори
• літаки та ін. • комп'ютер
• телефони та ін.
Інструменти
Медицина
• Генератори функцій
• інсулінова помпа
• частотоміри
• біосенсори та ін.
• синтезаторичастоти
• аналіз спектру
Рисунок 1.1 — Сфери застосування мікропроцесорів
Аналіз приведених на рис. 1.1 сфер застосування мікропроцесорів,
показав, що вимоги до їх особливостей різноманітний, від
12
найменших вбудованих систем і портативних пристроїв до найбільших
мейнфреймів і суперкомп’ютерів.
Таким чином, мікропроцесорні системи сьогодні зустрічаються
повсюдно, а не тільки в комп’ютерах і смартфонах: в автоматичному
тестуванні продуктів, регулюванні швидкості двигунів, регулюванні
світлофора, комунікаційному обладнанні, телебаченні, супутниковому зв’язку,
побутовій техніці, наприклад, мікрохвильовій печі, пральній машині. , ігровий
контролер, промислові контролери та навіть спеціалізовані програми, такі як
військове застосування.
У цьому сегменті лідерами ринку є Intel і AMD. Вважається, що чіпи Intel
найкращі для ігор та інших переважно одно поточних завдань. Особливо
заслуговує на згадку Core i5-9400F, який одночасно є доступним і потужним. Він
має шість ядер, що більш ніж достатньо для більшості програм і пристойну
частоту 4,1 ГГц в моделі з турбонаддувом. Він працює краще, ніж Core i5-7600K
кілька поколінь тому і коштує дешевше. Між тим, Core i3-8100 — найкраща
бюджетна пропозиція від Intel. Це чотири ядерний чіп з частотою 3,6 ГГц, який не
пропонує додаткових швидкостей прискорення, але досить швидкий для більшості
користувачів ПК.
Найкращі виробники процесорів x86
• AMD
• INTEL
Список виробників процесорів (більшість компаній продають процесори на базі
ARM, якщо нічого іншого не вказано):
• Arm Ltd. (продає лише дизайни)
• Apple Inc. (процесори на базі ARM)
• Broadcom Inc. (на основі ARM, наприклад для Raspberry Pi)
• Fujitsu (її центральний процесор на базі ARM, який використовується в
топових суперкомп'ютерах, також продає свої сервери на базі SPARC)
• Hitachi (її власні конструкції та ARM)
13
• Hygon (на базі x86)
• HiSilicon (придбаний Huawei) припинив випуск дизайну на основі ARM
• IBM (зараз розробляє лише дві архітектури)
• Ingenic Semiconductor (на основі MIPS)
• Marvell (на базі ThunderX3 ARM)
• MCST (власні розробки та SPARC)
• MediaTek (чіпи ARM і чіпи MIPS)
• Nvidia (продає на базі ARM і купила компанію ARM)
• Qualcomm (на основі ARM)
• Rockchip (на основі ARM)
• Amlogic (на основі ARM)
• Allwinner (на основі ARM)
• Samsung (на основі ARM)
• SiFive (на основі RISC-V, наприклад, HiFive Unleashed)
• Texas Instruments (власний дизайн і ARM)
• Via (раніше підрозділ Centaur Technology), власний дизайн на основі x86
• Wave Computing (раніше MIPS Technologies), ліцензує проект MIPS CPU
1.3 АРХІТЕКТУРА МІКРОПРОЦЕСОРІВ ARM
Arm Holdings, Ltd. не виробляє власні мікросхеми. У нього немає власних
виробничих потужностей. Натомість він ліцензує ці права іншим компаніям, які
Arm Holdings називає «партнерами». Вони використовують архітектурну модель
Arm як свого роду шаблон, будуючи системи, які використовують ядра Arm як
центральні процесори.
14
Рисунок 1.2 – ARM процесор
Процесор архітектури ARM — це вдосконалена обчислювальна машина
[RISC] зі зменшеним набором команд і мікроконтролер комп’ютера зі зменшеним
набором команд (RISC) 32 біт. Він був представлений комп’ютерною організацією
«Акрон» у 1987 році. Цей ARM є сімейством мікроконтролерів, розроблених
такими виробниками, як ST Microelectronics, Motorola тощо. Архітектура ARM
поставляється з абсолютно різними версіями, такими як ARMv1, ARMv2 тощо, і
кожна з них має свої переваги та недоліки.
1.4 ПРОЦЕСОРИ APPLE INC. НА БАЗІ АРХІТЕКТУР ARM
Дизайн центрального процесора Apple останнього покоління всередині A14
отримав кодову назву «Firestorm», що відповідає минулорічній мікроархітектурі
«Lightning» всередині Apple A13. Нове ядро Firestorm і його багаторічний родовід
від постійних удосконалень поколінь лежать в центрі сьогоднішньої дискусії і є
ключовою частиною того, як Apple робить великий стрибок від дизайну Intel x86
до власних власних SoC.
15
Рисунок 1.3 — Процесор A7 на базі ARM архітектури
Виробником нової системи на чіпі для Apple виступила Samsung. Хоча в
Apple і хочуть перенести виробництво чіпів на потужності TSMC, але це
станеться не раніше початку наступного року. Виготовлено новий процесор за 28
нм технологією та працює на частоті 1,3 ГГц. Для порівняння, флагманські
процесори Intel покоління Haswell виконані за 22 нм технологією
Рисунок 1.4 — Щільність транзисторів в А7 (ліворуч) та А6 (праворуч)
16
Насамперед у SoC A7 зросла щільність транзисторів, що збільшилася на
7,3%. Відстань між сусідніми транзисторами становить 114 нм. Для порівняння в
А6 цей показник становив 123 нм. Таким чином, число транзисторів А7
наближається до одного мільярда. До речі, процесор від Samsung, який
використовується в Galaxy S IV, Exynos 5410, виготовлений за аналогічним
техпроцесом і містить цілих вісім ядер, але зараз вже відстає від А7 у синтетичних
тестах.
Рисунок 1.5 — А7 в розрізі
Крім того, перша у світі 64-бітна мобільна система на чіпі містить у собі 4-
ядерний GPU PowerVR G6430. Графіка шостого покоління від Imagination
Technologies вперше застосовується в комерційному продукті і, зважаючи на все,
здатна забезпечити нові можливості візуалізації в мобільних пристроях. GPU
підтримує OpenGL 3.0 і DirectX 10.
17
Рисунок 1.6 — Співпроцесор М7
За його виробництво відповідає NXP та виконаний він на основі ARM Cortex-M3.
Функціонує М7 на частоті 180 МГц. Як повідомлялося раніше, співпроцесор
збирає та обробляє інформацію з компаса, гіроскопа та магнітометра, знімаючи ці
обов'язки з А7.
1.5 МІКРОАРХІТЕКТУРА ZEN РОЗРОБЛЕНА КОМПАНІЄЮ AMD
Архітектура Zen – це перша повністю нова архітектура AMD з моменту випуску
архітектури Bulldozer у 2011 році. Відтоді вони випустили покращення
18
архітектури Bulldozer, включаючи сімейства процесорів Piledriver, Steamroller та
Excavator.
Мета AMD щодо збільшення кількості інструкцій за такт на 40% порівняно
з їх попереднім поколінням процесорів була досягнута завдяки трьом основним
підходам: кращому дизайну ядра, покращеній кеш-пам’яті та зосередженню на
меншій потужності (він же підвищена ефективність).
Покращення основного механізму відбуваються за рахунок таких речей, як
більші запити на вилучення, завантаження та зберігання, більші планувальники
інструкцій та кращий прогноз гілок. Іншим великим покращенням є SMT, або
одночасна багатопотокова обробка, подібна до HyperThreading від Intel.
Архітектура Zen «ширша» – вона може приймати більше інструкцій за цикл, 6
порівняно з 4. Підхід глибокого навчання дозволяє архітектурі Zen глибше
зазирнути в свою чергу завдань, щоб виконати та вибрати ті, які можуть
виконуватися паралельно.
Низька затримка і висока пропускна здатність системи кешу дозволяють
процесору швидше зберігати дані та отримувати доступ до них.
Нова 14-нм технологія FinFet, яка вже використовується у відеокартах AMD
Polaris, дозволяє процесорам Zen бути більш ефективними, використовуючи
менше енергії. Підвищення ефективності відбувається за рахунок зниження TDP
(Thermal Design Power), що є мірою того, скільки потужності (у ватах) буде
споживати процесор, а також показником того, наскільки він нагрівається. Як
повідомляється, процесори Zen матимуть TDP 65 Вт для чотирьохядерних
процесорів і 95 Вт для восьмиядерних. Порівняйте це з TDP 91 Вт
чотирьохядерного Intel i7 і 140 Вт для восьмиядерної версії. AMD FX-9590 має
TDP 220 Вт
19
Рисунок 1.7 — Мобільний процесор AMD Ryzen™ 7 3700U з графікою Radeon™
RX Vega 10
Для нових процесорів Zen знадобляться нові материнські плати з сокетом AM4.
Це буде перший сокет, який підтримує пам'ять DDR4. Це також уніфікує сокети
AMD: на даний момент процесори високого класу використовують сокет AM3+, а
APU нижчого класу використовують різні інші гнізда, такі як FM2+.
APU — це прискорений процесор, який є способом AMD розділити процесори з
інтегрованою графікою. Нові APU Zen будуть мати таку ж архітектуру графічного
процесора Polaris, що й на нових відеокартах AMD, як-от RX 480.
1.6 Архітектура CPU-GPU
GPU та обчислення CPU призвело до більш широкого поширення графічних
процесорів для обчислювальних програм. Нещодавно AMD (Fusion APU), Intel
(Sandy Bridge) і ARM (MALI) випустили рішення, які інтегрують загальні цільові
програмовані графічні процесори разом із центральними процесорами на одному
кристалі. У цій моделі обчислень центральний і графічний процесор спільно
20
використовують пам’ять і загальний адресний простір. Ці рішення можна
програмувати за допомогою OpenCL або такі рішення, як DirectCompute.
Інтеграція
ЦП і графічнохо процесора на одному чіпі мають ряд переваг.
- По-перше економія коштів за рахунок системної інтеграції та використання
спільних конструкцій.
- По-друге, це обіцяє покращити продуктивність, тому що відсутня явна
передача даних між ЦП і ГП.
- По-третє, програмування стає простіше, оскільки не потрібне чітке
керування пам’яттю GPU
Інтеграція чіпів CPU-GPU не тільки забезпечує переваги в продуктивності, але
також забезпечує нові напрямки розвитку системи. Зменшення витрат на зв’язок і
збільшення пропускної здатності можуть забезпечити нові оптимізації, які раніше
були неможливими. У той же час з’являються нові проблеми, які потрібно
розглянути. На основі літератури літератури було виділино основні напрямки
досліджень і розробок систем CPU-GPU на рисунку 8.
Верхня частина малюнка показує фактори, які призвели до розвитку
сучасних систем GPGPU. У NVIDIA обговорюються уніфіковані графічно-
обчислювальні архітектури та розглядається використання GPU. Досліджуємо ці
статті та аналізуємо архітектуру систем GPGPU. Постійне покращення
продуктивності графічного процесора на неграфічних робочих навантаженнях
наразі є популярною темою дослідження. Поточні графічні процесори страждають
від двох ключових недоліків:
- втрати продуктивності при розбіжності потоків керування.
- погана політика планування.
Автори досліджують механізм ефективного виконання потоку керування на
графічних процесорах за допомогою динамічного формування деформації та
деформації великої мікроархітектури. Одним із ключових кроків у розробці
систем наступного покоління може бути низка оптимізацій. Як показано на
21
рисунку 1, ми називаємо першу з них - «цілісною оптимізацією». Відповідно до
них, система CPU+GPU розглядається в цілому, щоб краще оптимізувати її
компоненти. Замість того, щоб бути розробленим для всіх робочих навантажень,
очікуєтся, що дизайн ядра ЦП буде оптимізований для робочих навантажень, які
GPGPU виконує погано. Поточна комбінація CPU та GPU містить зайві
компоненти виконання, які, як очікуєтся, будуть оптимізовані в майбутніх
розробках. У розділі I ми обговорюємо ці аспекти, пояснюючи роботу над
напрямками проектування процесора для систем CPU-GPU. Були пропозиції щодо
перепроектування спільних компонентів для врахування різних вимог архітектури
CPU-GPU та робочого навантаження. Автори пропонують політику керування
кеш-пам'яттю останнього рівня для систем CPU-GPU з урахуванням
паралельності потоків. Автори пропонують політики розподілу пропускної
здатності контролера пам'яті для систем CPU-GPU.
Дослідження у цій роботі дає докази другого типу оптимізації системи, який
ми називаємо «опортуністичною оптимізацією». Інтеграція мікросхем зменшує
затримку зв’язку, а також відкриває нові шляхи зв’язку. Наприклад, раніше
процесор і графічний процесор могли спілкуватися лише через повільний
зовнішній інтерфейс, але завдяки інтеграції мікросхеми вони мають загальний
кеш останнього рівня. Це дає змогу використовувати раніше невивчені
можливості. Ідеї, що обговорюються, стосуються використання ресурсів CPU або
GPU в режимі очікування. COMPASS пропонує використовувати неактивні
ресурси GPU як програмовані засоби попередньої вибірки даних для виконання
коду CPU. Відповідно, автори пропонують використовувати більш швидкий
процесор для попередньої вибору даних для ядер GPU, орієнтованих на повільну
пропускну здатність.
22
1.7 МІКРОАРХІТЕКТУРА KABY LAKE РОЗРОБЛЕНА INTEL
Сьогодні Intel переживає найбільшу реструктуризацію в своїй історії.
Компанія переорієнтується на ринки, яке її керівництво розглядає в якості
потенційних можливостей зростання — інтернет-речей, облаків і центрів
зберігання даних. Одночасно з цим вона міцно утримує під контролем ринку
настільних ПК, плавно знижуючись навіть незважаючи на це, що продажі чипов з
розблокованим множителем з індексом K щорічно збільшуються на 20%.
Настійність, з якою Intel не прекращає підтримку ентузіастів, цілком щира. І
перед обличчям надвигающегося пришествия AMD Ryzen, там дійсно хочуть
поразити вимогливі користувачі обновлених портфоліо процесорів. Впрочем,
январська презентация настільних Kaby Lake носить кілька іной характер. Це
свідчить про вихід від навязаної законом Мура стратегії "тик-так", при якій за
презентацією нової мікроархітектури слідували зменшення технологічного
процесу. Сьогодні Intel підтримує нову послідовності "Процес - Архітектура -
Оптимізація" — або "тик-так-так", якщо зручно.
Замість переходу до 10-нм технологічного процесу, Kaby Lake являє собою
фазу оптимізації, опираючись на вже відляжений технологічний процес 14 нм+. Ці
визначні модифікації ЦП були засновані на існуючих технологіях, і це дозволило
отримати більш швидкі транзисторії та прирост тактової частоти на 300-400 МГц,
що не могло бути реалізовано в Skylake. Однак це все ще архітектура
попереднього покоління, пуста й оптимізована, тому зараз ми не отримуємо
жодних покращень у плані числа виконуваних інструкцій для таких чи інших
нових технологій. Як нам стало відомо ще під час презентації мобільних Kaby
Lake, більшість змін впроваджується в покращену мультимедійну рух, більш
швидку технологію Speed Shift і довговічну природу тактової частоти.
23
Рисунок 1.9 — Мікроархітетура KABY LAKE
У числі представлених процесорів сьомого покоління вийшли моделі серії -
S, -H, -U і -Y, що відносяться до сімейств Core i7, i5 і i3, а також два чипа Xeon для
мобільних робочих станцій. У цьому пухлом портфоліо є чипи з
24
енергоспоживанням від 4,5 до 91 Вт і самою різною вбудованою графікою HD/Iris
Plus. Для аналізу буде взято чіпи серії S, призначені для настільних ПК,які будуть
розглянуті у другому розділі
Рисунок 1.10 — Процесори на основі мікроарітетури KABY LAKE
1.8 МІКРОАРХІТЕКТУРА AMPERE РОЗРОБЛЕНА NVIDIA
Архітектура Ampere буде працювати для GeForce RTX 3090, GeForce RTX
3080, GeForce RTX 3070 та інших майбутніх графічних процесорів Nvidia. Він є
наступним великим оновленням від NVIDIA і обіцяє величезний стрибок у
продуктивності.
Рисунок 1.11 — Відеократа RTX 3090 на базі мікроархітектури AMPERE
Архітектура Ampere знаменує собою важливу точку перелому для Nvidia. Це
перший 7-нм графічний процесор компанії, або 8-нм для споживчих деталей. У
будь-якому випадку, процес стиснення дозволяє значно більше транзисторів
упакувати в меншу площу, ніж раніше. Це також друге покоління споживчої
25
трасування променів і обладнання для глибокого навчання третього покоління.
Менший процес дає чудову можливість для Nvidia радикально покращити
апаратне забезпечення та технології попередньої серії RTX 20.
Рисунок 1.12 — Блок-схема мікроархітетури AMPERE
З графічними процесорами GA10x Nvidia також додала технологію EDR
(виявлення помилок і відтворення) до підсистеми пам’яті. Це означає, що якщо
підсистема пам’яті виявить помилку під час передачі, вона повторить спробу, доки
не відбудеться успішна передача. Це може бути особливо корисно для розгону, але
це означає, що досягнення більшого розгону може насправді не підвищити
продуктивність. У якийсь момент EDR спрацює і убереже графічний процесор від
збою через помилки пам’яті, але продуктивність впаде.
Поряд з оновленими тензорними ядрами та пам'яттю, є й інші серйозні
зміни для ядра трасування променів і CUDA.
1.7 ВИСНОВКИ
Процесори і графічні процесори мають багато спільного. Обидва є
критичними обчислювальними механізмами. Обидва мікропроцесори на основі
кремнію. І обидва обробляють дані. Але CPU і GPU мають різну архітектуру і
створені для різних цілей.
ЦП підходить для широкого спектру робочих навантажень, особливо тих,
для яких важливі затримка або продуктивність кожного ядра. Потужний механізм
виконання, центральний процесор фокусує свою меншу кількість ядер на окремих
26
завданнях і швидкому виконанні завдань. Це робить його унікально добре
обладнаним для роботи, починаючи від послідовних обчислень і закінчуючи
запуском баз даних.
Графічні процесори починалися як спеціалізовані ASIC, розроблені для
прискорення конкретних завдань 3D-рендеринга. З часом ці двигуни з фіксованою
функцією стали більш програмованими та гнучкими. У той час як графіка та все
більш реалістичні візуальні елементи сучасних найкращих ігор залишаються
їхньою основною функцією, графічні процесори еволюціонували і стали
паралельними процесорами загального призначення, які обробляють все більше
додатків.
27
РОЗДІЛ 2 ДОСЛІДЖЕННЯ ІСНУЮЧИХ МІКРОАРХІТЕТУР ВИРОБНИКІВ
AMD ТА INTEL
У цьому розділі проводимо порівняльний аналіз архітеткур мікропроцесора,
використовуючи два основних фірм-виробників — Intel та AMD.
2.1 Аналіз мікроархітетур AMD та INTEL
Виробники AMD і Intel мають спільну мету: висока продуктивність при
дуже низькій вартості. Існує високий попит на сервери, які мають високі рейтинги
з точки зору масштабованості та надійності. AMD і Intel використовують різні
підходи для виконання цієї мети.
Таблиця 2 Порівняння технічних характеристик AMD та Intel
AMD OPTERON INTEL XEON
Кількість ядер ЦП 12 6
Інструкції XOP Включено Виключено
Частота Нижче за Intel Вищий, ніж AMD
Кеш L2 + L3 32 MB 22 MB
Споживання енергії 115W 115W
З таблиці 2 зробимо висновок, що AMD 6276 має дванадцять 12 ядер ЦП, а
процесор Xeon E5-2670 має лише 6. Велика кількість ядер допомагає цьому ЦП
обробляти багато процесів або потоків одночасно. Процесор Opteron 6276 включає
в себе інструкції XOP, які з'явилися в сучасних ЦП не так давно. Intel Xeon має
вищу робочу частоту, ніж AMD Opteron. Але коефіцієнт споживання енергії
однаковий для обох процесорів.
Порівняння в таблиці 1 базується на старішому процесорі. Здається, що ця
тенденція щодо останніх технологій дизайну залишається незмінною. Мета
розробки нової архітектури процесора AMD Opteron проста – забезпечити більшу
масштабованість і більшу щільність ядер, використовуючи спільні компоненти
28
кристала процесора, щоб максимізувати ефективність і зберігати інші частини
дискретними, щоб уникнути вузьких місць. Багато сучасних конструкцій
процесорів включають резервні компоненти через їх багатоядерну конструкцію, і
в багатьох випадках ці резервування просто споживають більше місця на кристалі,
що може збільшити енергоспоживання, не обов’язково збільшуючи цінність
процесора. AMD використовує модульну гнучку конструкцію, яка служить
шаблоном для нових процесорів AMD Opteron серії 6200 і 4200.
2.2 Технологія чотирьох ядер
Чотириядерний процесор — це мікросхема з чотирма незалежними
блоками, які називаються ядрами, які зчитують і виконують інструкції
центрального процесора (ЦП), такі як додавання, переміщення даних і
розгалуження. Це порівняння засноване на серіях AMD Opteron 8350 і Intel Xeon
X7350. Згідно з прес-релізом, процесор поєднує чотири ядра Opteron в один чіп.
Кожен кристал складається з одного інтегрованого контролера пам’яті та
використовує технологію HyperTransport для з’єднання одного процесора з іншим.
Тактова частота кожного ядра становить 2,0 ГГц при продуктивності 32 Гфлоп/с.
Технологія, розроблена для доступу до пам’яті, — це нерівномірний доступ до
пам’яті (NUMA), а канал зв’язку між двома процесорами — архітектура QuickPath
Interconnect.
З іншого боку, процесор Xeon 7350 сконфігурований з двома двоядерними
матрицями, упакованими в один двокристалічний модуль (DCM), його тактова
частота становить 2,93 ГГц, теоретична продуктивність становить 46,9 Гфлоп/с,
що відносно вище, ніж у AMD. Opteron 8350. Його мікроархітектура також
включає симетричний багатопроцесор (SMP). Connect Controller Hub Connect
підключається до буфера snoop і спеціального високошвидкісного з'єднання
(DHSI) і PCI Express, щоб мінімізувати доступ до основної пам'яті, а DHSI
забезпечує зв'язок "точка-точка" між кожним процесором і каналом пам'яті. Аналіз
29
продуктивності додатків, проведений, показав, що Intel Quad-core ранг вище, ніж
AMD Quad core.
2.3. Підтримка віртуалізації
Віртуалізація — це структура, яка забезпечує спільну платформу для роботи більш
ніж однієї операційної системи та ресурсів додатків. Тут ми розглянемо, як різні
виробники підтримують віртуалізацію в розподіленій системі з особливим
посиланням на процесори Intel і AMD. Згідно з, технології віртуалізації двох
виробників схожі за функціональними можливостями, але не сумісні. Процесор
AMD Opteron забезпечує вищу ефективність віртуалізації за рахунок
впровадження швидкого індексування віртуалізації та архітектури Direct Connect.
Ця архітектура дозволяє серверу або кластеру серверів у розподіленій системі
мати високу пропускну здатність реагувати на програми та доступ до даних.
Технологія віртуалізації зосереджена на високій пропускній здатності та з
низькою затримкою доступу до пам'яті. У той час як підтримка віртуалізації Intel
називається Hypervisor – віртуальна підтримка, що надається через VMM
монітора віртуальної машини. Однак ця технологія почалася з підтримки
віртуалізації програмного забезпечення, яка зіткнулася з багатьма проблемами,
використовуючи складні схеми для імітації апаратних функцій. Ці обмеження
призвели до повної підтримки віртуалізації в їхній останній технології, що
призвело до підвищення надійності, надійності та безпеки.
2.4. Intel Xeon Processor ProLiant Servers
Нижче наведено деякі визначні особливості процесора Intel Xeon в ProLiant
Server:
• QuickPath Interconnect (QPI) – використовується для підключення
процесора та чіпсета введення/виводу. QPI має зв’язки, що
самовідновлюються, і перемикання годинника. Ця спеціальна функція
30
(QPI) передає дані по 20-бітовому каналу, канал поділено на квадрант
з п’яти смуг, так що у випадку помилки в одному квадранті,
посилання автоматично зменшує свою ширину, використовуючи лише
хорошу смугу, таким чином відновлюючись із кількох помилки без
втрати даних. Це допомагає застосувати властивість ACID бази даних.
Більше того, якщо годинник виходить з ладу, зв’язок зменшується, і
годинник переходить до попередньо визначеної смуги даних. Єдиний
ефект, однак, це надійність, а режим доступності та обслуговування
зменшено без спотворення роботи.
• Технологія Trusted Execution Technology (TXT) – ця функція гарантує
захист сервера від атак зловмисного програмного забезпечення.
• Відновлення архітектури Intel Machine Check Architecture – ця
функція, яка дозволяє операційній системі працювати навіть після
виявлення невиправних помилок, забезпечуючи тим самим надійність.
Згідно з [8], два сервери Gen8 на базі процесора використовують процесор
Intel серії E-2600, який працює від 60 Вт до 135 Вт. Процесор складається з кеш-
пам'яті L1, L2 і L3, двох з'єднань QuickPath Interconnect, чотирьох каналів пам'яті
зі швидкістю приблизно 16 МТ/с кожен, а також інших типів модулів DIMM зі
зниженим навантаженням, які дозволяють процесору комфортно виконувати
транзакції з великим трафіком у розподіленому середовище.
Коли ми говоримо про паралелізм на рівні інструкцій, основними підходами
є статичне планування, динамічне планування, гілкове передбачення,
багатопроблемні питання, спекуляція та їх комбінації:
2.5. AMD Opteron ProLiant Servers
AMD Opteron 6100 підтримує такі функції:
31
• HyperTransport (HT) Assist – ця функція використовується для
підтримки коректності даних між процесорами та зменшення
міжпроцесорного комунікаційного трафіку на каналах HT.
• AMD-Power suit – ця функція забезпечує управління живленням за
менших витрат.
• AMD-V – ця функція використовує індексування швидкої
віртуалізації, щоб зменшити витрати на віртуалізацію програмного
забезпечення.
Архітектура введення-виведення серверів ProLiant на базі процесора AMD
Opteron 6100 і Intel Xeon E5-2600 однакова, але для реалізації використовувалися
різні підходи. AMD використовує технологію HyperTransport 3.0 (HT3) для
переміщення даних до процесорів, пам’яті та пристроїв вводу/виводу. HT3
Interconnect складається з одного 16-розрядного (широкого) або двох 8-розрядних
(вузьких) каналів. Широкий канал дає принаймні швидкість передачі даних 6,4
гігапередачі в секунду. Технологія покращує продуктивність системи, оскільки
процесори можуть спілкуватися безпосередньо, а не передавати дані з одного
процесора на інший. Архітектура AMD64 використовує технологію
нерівномірного доступу до пам’яті (NUMA). Когерентне (cHT) зв’язок переміщує
дані від одного процесора до іншого. У той час як некогерентний (ncHT) канал
передає дані між пам'яттю та пристроями вводу-виводу.
2.6. AMD/INTEL Hybrid- Ivy-Bridge Hybrid
Спеціалізовані функції процесорів AMD і Intel були об’єднані для створення
високопродуктивного сервера, який є відносно кращим, ніж сервери, налаштовані
за допомогою одного компонента виробника. AMD у прес-релізі стверджує, що
сервер AMD SM1500 був першим сервером, який підтримував останнє покоління
процесора Intel Xeon на основі мікропроцесора Ivy Bridge. Сервер SM1500 є
гібридом процесора Intel і AMD. SeaMicro SM1500 — це сервер AMD з 64
процесорами Intel Xeon. Процесори E31265LV2 забезпечують 256 ядер і 2 ТБ
DRAM, тоді як AMD забезпечує 512 ядер у системному блоці з десятьма стійками
з більш ніж 4 ТБ DRAM. Комбінація забезпечує найвищу продуктивність на ват,
найвищу щільність зберігання та найвищу пропускну здатність на одиницю
32
обчислень згідно з AMD. Сервер SeaMicro SM1500 також надав їм ще одне
приміщення для спільного компонента інфраструктури.
Гібрид гетерогенного кластера GPU та CPU, що складається з багатьох AMD
і Intel, розроблений для збільшення продуктивності. Основна мета гібриду —
поділитися даними на окремі домени, розподілити процеси обчислення на вузли
кластера, керувати обчисленнями та зв’язком. Цей кластер передбачає інтеграцію
різних процесорів і графічних процесорів як Intel, так і AMD на одному сервері.
Особливості процесора AMD і Intel були визначені роботою, що дозволило їм
успішно реалізувати концепцію гетерогенного GPU та CPU Cluster (HGCC) в
розподіленій системі. HGCC складається з 24 вузлів і інтегрує два типи ЦП; 12
серверів з процесорами Xeon 5650 та інші 12 серверів з процесорами AMD
Opteron 6172. Intel+NVIDIA було обрано на основі багатьох рішень PHC, наданих
процесором Intel і графічними процесорами NVIDIA Tesla, які було б дуже
складно створювати з процесорами та графічними процесорами AMD. Хоча
графічні процесори AMD дешевші, ніж графічні процесори NVIDIA. Однак
головна мета програмного забезпечення HGCC — зменшити зусилля користувача
під час розробки та впровадження програми.
33
2.7. Нова Архітектура Zen 3
Рисунок 2.1 — ZEN 3
Мікроархітектура Zen3, AMD відзначила свій шлях за останні кілька років,
історію успіху, яку розпочали у 2017 році з революційної архітектури Zen, яка
допомогла повернути AMD у конкурентну середу після кількох похмурих років
проблемних продуктів.
Оригінальна архітектура Zen принесла величезне підвищення IPC на 52%
завдяки новій мікроархітектурі чистого аркуша, яка принесла багато нових
34
функцій для AMD, ввівши такі функції, як кеш µOP і SMT, вперше в дизайні
компанії, а також введення поняття ядерних комплексів ЦП з великими (на той час
8 МБ) кешами третього рівня. Побудований на 14-нм технологічному вузлі
FinFET, він став кульмінацією та відправною точкою нової дорожньої карти
мікроархітектур, яка веде до сучасного дизайну Zen3.
Після незначного оновлення у вигляді Zen+, минулорічна мікроархітектура
Zen2 2019 року була розгорнута в продуктах Ryzen 3000, що сприяло успіху AMD
в конкурентному середовищі. Zen2 був тим, що AMD називає похідним від
оригінального дизайну Zen, проте він містив історично більше змін, ніж можна
очікувати від такого дизайну, що принесло більше збільшення IPC, ніж ви
зазвичай бачите. AMD розглядала Zen2 як продовження того, чому вони навчилися
з оригінальною мікроархітектурою Zen, виправляючи та впроваджуючи зміни
цілей дизайну, які вони спочатку призначали для першого дизайну, але не змогли
розгорнути вчасно до запланованого запуску продукту. вікно. AMD також заявила,
що це дало можливість внести деякі з майбутніх конкретних змін Zen3, які були
перенесені в дизайн Zen2.
Це також був момент, коли AMD перейшла до нової конструкції чіплета,
використовуючи перехід до нового 7-нм технологічного вузла TSMC, щоб
збільшити бюджет транзисторів для таких речей, як подвоєння розміру кешу L3,
збільшення тактової частоти та значного зниження енергоспоживання. продукт,
щоб забезпечити агресивне зростання загальної кількості ядер як у споживчому
просторі (16-ядерний Ryzen 9 3950X), так і в корпоративному просторі (64-
ядерний EPYC2 Rome).
Поєднання передового високопродуктивного 7-нм кристально-комплексного
кристала (CCD) з нижчою вартістю 12/14 нм матриці вводу-виводу (IOD) у такому
гетерогенному корпусі дозволило AMD максимізувати переваги та мінімізувати
недоліки обох відповідних технологій. – у той час як основний конкурент AMD,
Intel, намагався вивести на ринок 10-нм продукти. Це була технологічна акція, про
яку AMD багато разів заявляла, що була зроблена роками наперед, і з тих пір
добре окупилася.
Це підводить до сьогоднішньої мікроархітектури Zen3 і нової серії Ryzen
5000. Як зазначалося раніше, Марк Папермастер згадував, що якщо ви дійсно
35
подивитеся на новий дизайн з рівня 100 000 футів, ви помітите, що він виглядає
надзвичайно схожим на мікроархітектури дзен попереднього покоління. По правді
кажучи, незважаючи на те, що Zen3 має схожість зі своїми попередниками,
архітектори AMD розпочали з чистого дизайну, або, як вони його називають,
«реконструкції з нуля». Насправді це досить велика претензія, оскільки для будь-
якої компанії це досить велике зусилля. Arm’s Cortex-A76 — це найновіший інший
галузевий дизайн, який, як кажуть, був розроблений з нуля, використовуючи роки
навчання різних дизайнерських команд і вирішуючи невід’ємні проблеми, які
потребують більш інвазивних і великих змін у дизайні.
Оскільки нове ядро Zen3 все ще демонструє чимало визначальних
характеристик конструкцій попереднього покоління, я думаю, що підхід AMD до
«повного редизайна» більше схожий на деконструкцію та реконструкцію
будівельних блоків ядра, так само, як ви б демонтували Комплект LEGO і
перебудуйте його заново. У цьому випадку Zen3, здається, є набором як з новими
будівельними блоками, так і з використанням комплектів і RTL, які вони
використовували раніше в Zen2.
Рисунок 2.2 — Архітектура Zen 3
36
Якою б не була інтерпретація «чистого аркуша» чи «повного редизайну»,
важливою є те, що Zen3 — це капітальний ремонт з точки зору його повної
мікроархітектури, при цьому AMD звертає увагу на кожну частину головоломки та
намагається встановити баланс. до всього кінцевого дизайну в результаті, який
контрастує з більш традиційним «похідним дизайном», який може лише
торкнутися і побачити зміни в парі будівельних блоків мікроархітектури.
Найбільшим покращенням нової архітектури було абсолютно нове
макетування. AMD відмовилася від дизайну Zen 2 з кількома CCX і замість цього
пішла з єдиним 8-ядерним комплексним дизайном, в якому всі 8 ядер мають
доступ до всього 32 МБ кешу третього рівня. Цей редизайн має величезні наслідки
для чутливих до затримок програм, таких як ігри.
Рисунок 2.3 — Завдяки оновленому 8-ядерному комплексу весь кеш 32 МБ L3
тепер доступний кожному ядру
Коли кожне ядро безпосередньо контактує з кеш-пам’яттю та іншими
ядрами, це значно покращує затримку, оскільки дані не мають перехрещення всієї
матриці, щоб перейти від одного боку до іншого. Цей редизайн також покращує
ефективну затримку пам’яті мікросхеми, що призводить до підвищення
продуктивності для однопоточних завдань.
Покращене розташування основного комплексу — не єдине покращення,
яке приносить Zen 3. AMD стверджує, що покращення IPC на 19% порівняно з
Zen 2 є величезною цифрою. IPC або Instructions Per Clock показує, скільки роботи
може виконати центральний процесор за такт. Поліпшення на 19% — це
37
найбільший стрибок, який ми спостерігали в IPC з моменту першого запуску
Ryzen у 2017 році. Попереднє покоління процесорів Zen 2 також принесло досить
значне покращення IPC на 15% порівняно з архітектурою Zen+.
Це покращення IPC означає, що AMD може конкурувати з тактовою
частотою ядра Intel, навіть залишаючись нижче 5 ГГц з точки зору частоти
підвищення. AMD також окреслила внесок у це величезне збільшення IPC. Згідно
з рекламним матеріалом, основними факторами, що сприяють, є:
• Попередня вибірка кешу
• Двигун виконання
• Провісник гілок
• Кеш мікрооперацій
• Front End
• Завантажити/Зберегти
У рамках мікроархітектури Zen AMD також розробила серію
мультипроцесорів з двома сокетами. Нові серверні процесори під брендом нового
сімейства під назвою EPYC, яке фактично замінило стару сімейство Opteron. Усі
процесори EPYC складаються з чотирьох матриць Zeppelin, зшитих разом.
Оскільки кожен Zeppelins є повною системою на чіпі з інтегрованими на кристалі
північним і південним мостами, комбінація чотирьох з них дозволяє AMD
запропонувати достатню кількість сигналів вводу-виводу, щоб чіпсет можна було
повністю виключити. Зв'язок між окремими кристалами здійснюється за
допомогою протоколів AMD Infinity Fabrics через набір GMI (Global Memory
Interconnect).
Кожен Zeppelin надає 32 лінії PCIe Gen 3.0, що становить загалом 128
доріжок. У конфігурації з одним сокетом всі 128 ліній можуть використовуватися
для загального введення/виводу - наприклад, 6 графічних процесорів через x16 і
більше x8 смуг для додаткового зберігання. Це значно більше, ніж будь-яка
порівнянна сучасна модель Intel (або Broadwell EP, або Skylake SP). Процесори на
базі Неаполя масштабуються аж до 32 ядер з 64 потоками (до 64 ядер і 128 потоків
на всю систему). Застереження полягає в тому, що в режимі двостороннього MP
половина смуг втрачена. 64 із 128 смуг PCIe виділяються для міжчіпового зв’язку
через протоколи AMD Infinity Fabrics, а решта 64 смуги залишаються для системи.
64 смуги PCIe для зв'язку від сокета до розетки забезпечують максимальну
38
пропускну здатність. Ця установка все ще залишає систему з 128 лініями PCIe, але
це не більше, ніж у конфігурації з одним сокетом.
На додаток до ліній PCIe, кожен Zeppelin надає контролер пам’яті, який
підтримує двоканальну пам’ять ECC DDR4. Оскільки EPYC упаковує 4 таких
кристала, кожен чіп має 4 контролери пам’яті, які підтримують до 16 модулів
DIMM із 2 TiB восьмиканальної пам’яті DDR4 ECC.
Рисунок 2.4 — Amd EPYC
На додаток до великого об’єму пам’яті, що підтримується чотирма
Zeppelin, усі EPYC пропонують повні 64 МБ, у результаті 8 МБ від кожного з 8
CCX. Для різних моделей EPYC збирання виконується шляхом відключення 1, 2, 3
або 4 ядер на CCX з кожного кристала Zeppelin, щоб утворити 8, 16, 24 або 32.
Це зображення походить зі слайда, представленого на технічний день AMD
EPYC, 20 червня 2017 року, і показує один шар з’єднань кристалів на підкладці
пакета EPYC. Рожеві лінії, що розгортаються вгорі та внизу, підключаються до
UMC на відповідному чіпі. Світло-блакитна та рожева лінії в центрі є
двонаправленими посиланнями GMI. З’єднання UMC верхнього лівого та
нижнього правого чіпа, канал GMI від нижнього лівого до верхнього правого чіпа
та з’єднання PCIe не видно на цьому малюнку. З чотирьох інтерфейсів GMI на
кожному кристалі використовуються лише три, найближчі до інших. Слід
зазначити, що його творець наклеїв на зображення кубики Zeppelin і неправильно
відобразив верхній лівий і нижній правий фішки. Насправді використовуються
чотири однакові кристали, причому верхній лівий чіп встановлений в тій же
39
орієнтації, що і верхній правий чіп, а обидва нижні мікросхеми повернуті на 180
градусів.
Рисунок 2.5 — Шар з’єднань кристалів на підкладці пакета EPYC
AMD використовує шар Metal-Insulator-Metal Capacitor (MIMCap) між двома
металевими шарами верхніх рівнів для швидкої інжекції струму, щоб пом’якшити
падіння напруги. AMD заявила, що вона покриває приблизно 45% ядра і трохи
менше покриття L3. На додаток до схеми LDO, вбудованої в кожне ядро, є
детектор перепадів живлення з низькою затримкою, який може ініціювати цифрові
LDO, щоб увімкнути більше драйверів для боротьби з перепадами.
40
Рисунок 2.6 — Metal-Insulator-Metal Capacitor (MIMCap)
Більша кількість датчиків на всьому кристалі використовується для
вимірювання багатьох станів процесора, включаючи частоту, напругу, потужність і
температуру. Дані, у свою чергу, використовуються для характеристики робочого
навантаження, адаптивної напруги, налаштування частоти та динамічного
тактування. Адаптивне масштабування напруги та частоти (AVFS), вбудована
система із замкнутим контуром, яка регулює напругу в режимі реального часу
після вимірювань у реальному часі на основі зібраних сенсорних даних. Це
частина технології AMD "Precision Boost", яка пропонує високу деталізацію з
тактовою частотою 25 МГц.
Zen реалізує понад 1300 датчиків для моніторингу стану кристала на всіх
критичних шляхах, включаючи CCX і зовнішні компоненти, такі як тканина
пам’яті. Крім того, CCX також включає в себе 48 високошвидкісних моніторів
джерел живлення, 20 теплових діодів і 9 високошвидкісних детекторів падіння.
41
Рисунок 2.7 — Сенсори архітектури ZEN
Усі основні споживчі мікропроцесори на базі Zen використовують Socket
AM4 від AMD, уніфіковану інфраструктуру сокетів. Усі ці процесори є повною
системою на чіпі, що об’єднує північний (контролер пам’яті) і південний міст,
включаючи 16 ліній PCIe для графічного процесора, 4 лінії PCIe для контролерів
NVMe/SATA, а також USB 3.0. Однак чіпсет розширює процесор за допомогою
ряду додаткових з’єднань за межі того, що пропонує SoC.
Threadripper використовує інший сокет під назвою «Socket TR4» (або sTR4
або просто TR4). Цей сокет забезпечує 4 канали пам’яті, що вдвічі більше, ніж у
Ryzen, що забезпечує до 60 ліній PCIe (64 з 4 зарезервованими для чіпсета).
Як і у випадку з деталями для настільних комп’ютерів, контроль напруги
здійснюється для кожного ядра за допомогою цифрового стабілізатора з низьким
випаданням (LDO). Raven Ridge також поширив це на графічний процесор.
Регулятор знижує напругу, що подається на RVDD від бортового модуля
регулятора напруги, на основі найвищого VID. Історично, центральний і
графічний процесор постачалися окремими VDD. У Raven Ridge живлення як ЦП,
так і графічного процесора здійснюється від уніфікованої шини живлення RVDD.
Живлення подається на 4 ядра та графічний процесор, що дозволяє кожному мати
власний незалежний P-стан (тобто напруга та частота). Зауважте, що всі
обчислювальні блоки графічного процесора працюють на однаковій частоті та на
одній напрузі.
42
У жовтні 2017 року AMD представила прискорений процесор на основі Zen
(APU), який містить чотири ядра «Zen» разом із різною кількістю
обчислювальних блоків (CU) на базі Vega під кодовою назвою Raven Ridge. APU
на основі Zen засновані на абсолютно окремому кристалі, що складається з одного
CCX і графічного процесора. Варто зазначити, що на цьому кристалі CCX
налаштовано на половину кешу L3 (тобто 1 МБ/ядро замість 2). Обсяг кешу,
швидше за все, був зменшений через обмеження потужності. Графічний процесор
заснований на графічній мікроархітектурі Vega, що містить до 11 обчислювальних
блоків (CU), кожен з 64 32-бітними арифметичними блоками з плаваючою комою.
Хоча варто зазначити, що наразі невідомо, чи підтримуються 16-розрядні операції
SIMD, як дискретні графічні процесори. Працюючи на частоті 1 ГГц, APU на базі
Zen/Vega з 11 обчислювальними блоками матиме максимальну продуктивність
1,408 TFLOPS, так само, як нижчі частини з 8 CU матимуть максимальну
продуктивність 1,024 TFLOPS.
2.7 Висновки
Процесори AMD, особливо Ryzen 3000, пропонує набагато більшу
продуктивність. Незалежно від того, чи встановлюєте ви Ryzen 3 3100 або Ryzen 9
3950X, ви, ймовірно, отримаєте більше ядер і потоків, ніж конкуруючий процесор
Intel, не втрачаючи при цьому продуктивності кожного ядра.
Intel має невелику перевагу над AMD, коли справа доходить до
продуктивності, але важко помітити такі результати, якщо ви не використовуєте
синтетичний тест.
43
РОЗДІЛ 3 ДОСЛІДЖЕННЯ ІСНУЮЧИХ АРХІТЕТУР NVIDIA
У цьому розділі проаналізуєму такі архітектури, як Pascal, Amper та
комплекту розробника Jetson TX2 від NVIDIA та його архітектури Isaac. Також
порівнюємо деякі критичні показники між архітетурами Pascal та Amper.
Буде досліджено синтез між CPU та GPU та проведений аналіз архітетури
GPGPU.
3.1 АРХІТЕКТУРИ GPU ЗАГАЛЬНОГО ПРИЗНАЧЕННЯ
Сучасний графічний процесор розвинувся з графічного конвеєра з
фіксованою функцією, який складався з вершинних процесорів, що запускають
програми вершинних шейдерів, і процесорів фрагментів пікселів, які запускають
програми піксельних шейдерів. Обробка вершин складається з операцій над
вершинними примітивами точки, лінії та трикутника. Процесори піксельних
фрагментів працюють з виводом растеризатора, щоб заповнити внутрішні
примітиви трикутника інтерпольованими значеннями. Традиційно робочі
навантаження складалися з більшої кількості пікселів, ніж вершин, і, отже, було
більше піксельних процесорів.
Однак незбалансованість сучасних робочих навантажень вплинула на єдину
вершину і дизайн піксельного процесора. Уніфікована обробка, вперше
запроваджена в NVIDIA Tesla, забезпечила більш високе використання ресурсів і
дозволила розробити єдиний узагальнений дизайн.
На рисунку 13 показана блок-схема сучасних GPGPU NVIDIA
44
Рисунок 3.1 – Сучасна архітектура GPU
Рисунок 3.2 — Потокова багатопроцесорна архітектура (SM)
45
Графічний процесор складається з потокових мультипроцесорів (SM), 6 каналів
DRAM з високою пропускною здатністю та вбудованого кешу L2. Кількість SM та
ядер на SM змінюється в залежності від ціни та цільового ринку GPU. На рисунку
3 показана структура SM. SM складається з 32 доріжок для однієї команди з
кількома потоками (SIMT), які можуть разом видавати 1 інструкцію за цикл на
потік, що становить загалом 32 інструкції на цикл на SM. Потоки організовані в
групи з 32 потоків, які називаються «Переформами». Планування відбувається з
точністю до деталізації деформацій, і всі потоки в деформації виконуються разом
за допомогою загального програмного лічильника. Як показано на рисунку 3, лінії
SIMT мають доступ до швидкого реєстраційного файлу та кеші загальної пам’яті
L1 з низькою затримкою на чіпі. Банківський файл реєстру забезпечує достатню
пропускну здатність на мікросхемі, щоб забезпечити кожен потік двома вхідними
та 1 вихідним операндом у кожному циклі. Блок буферизації операндів виступає в
якості проміжної області для обчислень.
Графічні процесори покладаються на масивну апаратну багатопотоковість,
щоб арифметичні одиниці були зайняті. Вони підтримують великий пул активних
потоків, організованих як деформації. Наприклад, NVIDIA Fermi підтримує 48
активних деформацій загалом 1536 потоків на SM. Для розміщення великого
набору потоків графічні процесори надають великі файли регістра на чіпі. Fermi
має розмір файлу регістра SM 128 КБ або 21 32-розрядний регістр на потік при
повній зайнятості. Кожен потік використовує спеціальні регістри для швидкого
перемикання. Планування потоків відбувається при зернистості деформацій. На
малюнку 4 показано приклад планування деформації. У кожному циклі
планувальник вибирає деформацію, яка готова до виконання, і видає наступну
інструкцію активним потокам цієї деформації. Вибір деформації враховує такі
фактори, як тип інструкції та справедливість під час вибору. Обробка інструкцій
відбувається в порядку в межах деформації, але деформації можна вибрати поза
порядком. Це показано в нижній частині малюнка 4.
46
Рисунок 3.3 — Приклад планування деформації
Процесор SIMT є повністю ефективним, коли всі смуги зайняті. Це
відбувається, коли всі 32 потоки деформації проходять один і той же шлях
виконання. Якщо потоки деформації розходяться через потік керування, різні
шляхи виконання виконуються послідовно. Потоки, які не знаходяться на шляху
виконання, вимкнені, і після завершення всі потоки знову зходяться до вихідного
шляху виконання. SM використовують стек синхронізації гілок, щоб керувати
розходженням і зближенням потоків. Графічні процесори призначені для
зниження витрат на навчання та подачу даних. Наприклад, обробка SIMT дозволяє
графічним процесорам амортизувати витрати на вибірку інструкцій, оскільки для
деформації потрібно отримати одну інструкцію. Аналогічно, великі вбудовані в
чіп регістрові файли зменшують потрапляння в основну пам'ять. Програмісти
мають додаткову можливість вручну покращити локальність даних за допомогою
спільної пам’яті в стилі блокнота. Для цього передбачена явна підтримка
програміста. Графічні процесори розроблені для масштабування. Це досягнуто
завдяки відсутності глобальних структур. Наприклад, на відміну від ЦП, SM
мають прості конвеєри в порядку, хоча і з набагато нижчою продуктивністю
одного потоку. Замість того, щоб шукати продуктивність через кеш і обробку в
невпорядкованому режимі через великі вікна інструкцій, графічні процесори
47
включають нульове планування деформації та приховують великі затримки за
допомогою багатопотокової обробки. Відсутня глобальна синхронізація потоків,
тобто лише потоки всередині SM можуть синхронізуватися разом, а не по всій
машині. Нарешті, не вистачає глобальних проводів для передачі даних. Натомість
багата вбудована ієрархія великих файлів регістрів, спільної пам’яті та кешів
використовується для керування місцевістю. Такі функції знижують
енергоспоживання та дозволяють графічним процесорам масштабуватися за
допомогою вузлів із нижчими технологіями
Таблиця 1 Реляційна модель даних основаних на технічних показниках.
Дата Модель Покоління Транзистори Техпроцесс GFlops
2006 GeForce 8800 Tesla 681 млн 90нм 518
2008 GTX 280 Tesla 1.4 блн 65нм 933
2009 GF 100 Fermi 3.1 блн 40нм 1028
2012 GK 110 Kepler 7.1 блн 28нм 2880
2009 Core i7-960 Bloomfield 700 млн 45нм 102
2012 Core i7 Sandy Bridge 2.3 блн(зГПУ) 28нм 41616
Extreme
У таблиці 1 показано масштабування графічного процесора з 2006 року.
Аналізуємо, що можливості роботи з плаваючою комою масштабуються на рівні
закону Мура або за його межами. Продуктивність багаторазового додавання
одинарної точності (MAD) зросла приблизно в 6 разів. Подвійна точність
плавленого мультиплікованого додавання (FMA), вперше представлена в 2008
році, зросла приблизно до терафлоп продуктивності в останніх архітектурах.
Загальний розмір структур зберігання збільшується дещо повільно. Спільна
пам’ять і файли реєстрів збільшилися в 4x і 8x відповідно, порівняно з зростанням
кількості ALU приблизно в 22,5x. Пропускна здатність пам’яті збільшується ще
повільніше, спостерігаючи збільшення лише приблизно в 2,2 рази. Пропускна
здатність пам'яті чітко представляє потенційне вузьке місце масштабування для
48
графічних процесорів. Частково це компенсується характером навантажень.
Типові робочі навантаження GPU, як правило, мають високу інтенсивність
арифметики і, отже, можуть отримати вигоду від масштабування в продуктивності
FLOP. Однак не очікується, що робочі навантаження з обмеженою пропускною
здатністю також будуть масштабуватися. Оскільки різноманітні робочі
навантаження загального призначення починають зіставлятися з графічними
процесорами, з’явилися пропозиції щодо просторово багатозадачних інтенсивних
робочих навантажень разом із арифметично інтенсивними робочими
навантаженнями на одному і тому ж GPU.
В останніх двох рядках таблиці я показую масштабування ЦП для програм,
орієнтованих на пропускну здатність. Лі та ін. порівняв GTX 280 (рядок 2) з Core
i7-960 (ряд 5) і виявив, що розрив у продуктивності становить приблизно 2,5x.
Однак вихідні цифри, які порівнюють сучасні графічні процесори (рядок 4) і ЦП
(рядок 6), сьогодні вказують на іншу картину. У той час як продуктивність GFlop
CPU зросла вдвічі, продуктивність GPU подвійної точності зросла майже на 10 .
Це вказує на збільшення розриву в продуктивності між графічними процесорами
та процесорами для програм, орієнтованих на пропускну здатність.
3.2 АНАЛІЗ GPGPU АРХІТЕКТУРИ
Очікується, що інтеграція кращих конструкцій GPGPU загального
призначення буде одним із наступних кроків в еволюції систем CPU-GPU. Однією
з проблем архітектури графічних процесорів є ефективна обробка потоків
керування. У цьому розділі ми розглянемо пропозиції щодо зменшення втрати
продуктивності, викликаної розбіжністю потоків SIMT. Ми також обговорюємо
вдосконалену схему планування деформації.
Обробка SIMT найкраще працює, коли всі потоки, що виконуються в
деформації, мають ідентичну поведінку потоку керування. Чистий графічний код,
як правило, не має розбіжності потоків керування. Але оскільки різноманітний код
49
зіставляється з графічним процесором, виникає потреба ефективно керувати
втратою продуктивності через розбіжність. Графічні процесори зазвичай
використовують потік реконвергенції на основі стека для поділу та приєднання
потоків розбіжних потоків. Спочатку опишемо цю базову схему, а потім
аналізуємо вдосконалення.
Рисунок 3.4 — Приклад повторної конвергенції на основі стека
Малюнок 5 ілюструє процедуру обробки розбіжності на основі стека, яку
використовують поточні графічні процесори. У цьому прикладі ми розглядаємо
одну основу, що складається з 4 ниток. Потоки виконують код із потоком
керування, показаним у верхній частині малюнка.
50
За адресою A є умовна гілка і 3 потоки слідують за шляхом з адресою B, а
один, що залишився, йде по шляху, заданому адресою C. Потік керування
зливається за адресою D. Оскільки деформація може мати лише один активний
ПК, на керуванні розбіжності потоку, вибирається один із шляхів, а інший
переміщується до стека повторної конвергенції та виконується пізніше. Стек
повторної конвергенції також використовується для злиття потоків у основі, коли
потоки досягають точки злиття потоку керування. Кожен запис стека складається з
трьох полів: ПК повторної конвергенції, активна маска та ПК виконання. Розбіжні
шляхи виконуються послідовно, але механізм стека повторної конвергенції
використовується для злиття зворотних потоків у такий спосіб:
1) Коли деформація зустрічає дивергентну гілку, запис з комп’ютерами
повторної конвергенції та виконанням, встановленими на точку злиття
потоку керування, переміщується в стек. Точки злиття потоку
управління визначаються компілятором. Активна маска запису
встановлюється на поточну активну маску виконуючої гілки.
2) Для виконання вибирається один із розбіжних шляхів, а ПК та активна
маска для деформації встановлюються на таку для вибраного шляху.
Інший запис для шляху, який ще потрібно виконати, переміщується в
стек. Комп’ютер виконання та активні маски встановлюються
відповідно до шляху, який ще потрібно виконати. ПК повторної
конвергенції встановлюється на ПК точки злиття. Другий стек на
рисунку 5 показує статус стека.
3) У кожному циклі наступний ПК варпу порівнюється з ПК
реконвергенції у верхній частині стека. Якщо обидва збігаються, то
поточний шлях виконання досягнуто точки реконвергенції. Потім стек
виривається, а поточний ПК та активна маска встановлюються на ПК
виконання та записи активної маски виниклого запису стека. Це
гарантує, що виконання почнеться для іншого розбіжного шляху. Це
показано на третьому стеку на рисунку 5.
51
Механізм повторної конвергенції стека гарантує правильне виконання, але
не повне використання машини. Як показано на рисунку 5, розбіжні шляхи
виконуються послідовно, і тільки активні потоки шляху займають машину. Блоки
SIMD, що відповідають неактивним потокам, залишаються невикористаними. У
роботі Fung et al. пропонують «створення динамічної деформації» для
покращення використання машини під час дивергенції. Дослідимо їх схему.
Якщо для виконання було лише одне деформування потоку, то втрата
продуктивності через розбіжність неминуча. Зазвичай графічні процесори
підтримують близько 32–48 активних деформацій, і якщо в одній точці
розбіжності доступно кілька деформацій, то потоки з одного шляху виконання,
але з різними деформаціями, можна об’єднати, щоб утворити нові деформації.
Оскільки ці нові деформації мають однаковий шлях виконання, немає
розбіжностей і кращого використання машини.
Рисунок 3.5 — Приклад формування динамічної деформації.
Планувальник потоків намагається сформувати нові деформації з пулу
готових потоків, об’єднуючи потоки, чиї значення ПК однакові. рисунку 6
ілюструє ідею. У цьому прикладі є дві деформації з іменами warp 0 і warp 1.
52
Потоки з цих деформацій розходяться по шляхах A і B. Однак планувальник
динамічно поєднує потоки з основи 0 і основи 1. Потоки, наступні за шляхами
виконання A і B, поєднуються на нові основи – деформувати 0+1 шлях A і
деформувати 0+1 шлях B. Новоутворені основи не мають розбіжності ниток.
Таким чином, конвеєр може бути краще використаний під розбіжним потоком
керування.
Механізми динамічного формування деформації можуть зменшити накладні
витрати на область, враховуючи конфігурацію регістрового файлу, що
використовується в типових графічних процесорах. Цей варіант називається
динамічним формуванням деформації «Lane-Aware». Потреба в такій схемі
виникає тому, що лінії SIMT, на яких виконується кожен потік, статично фіксовані,
щоб зменшити кількість портів у файлі реєстру. Регістри, необхідні під час
виконання конкретної смуги, призначаються її відповідному банку. Наприклад,
поточні файли реєстру GPU мають 32 банки, яких достатньо для одночасного
живлення 32 ліній SIMT, як показано в лівій половині малюнка 7. При
динамічному формуванні деформацій планувальник повинен переконатися, що всі
потоки в новому деформації відображаються на різні SIMT. доріжки та
реєстраційні банки файлів. Така схема усуває необхідність мати поперечне
з'єднання між різними ALU та банками реєстрових файлів. Це спрощує дизайн.
Якщо планувальник формування деформації може забезпечити це, то доступ до
файлу реєстру буде таким, як показано в правій половині малюнка 7. Ця конкретна
схема усуває необхідність додавати дорогі порти до файлу реєстру. Іншою
можливою схемою є зупинка конвеєра через конфлікт банку та передача даних до
ALU через мережу взаємозв’язку, але динамічне формування деформації з
урахуванням смуги знімає необхідність у таких модифікаціях.
Динамічне формування деформації має хороший потенціал для повного
використання апаратного забезпечення SIMT, але залежить від наявності багатьох
деформацій, що виконуються на одному ПК. Якщо деформації розвиваються з
різною швидкістю, то не буде достатньо деформацій, доступних для динамічної
53
перегрупування потоків. Щоб вирішити цю проблему, автори пропонують
евристики проблеми деформації. Виявлено, що «евристика більшості», яка видає
деформації на найпоширенішому ПК серед усіх готових до розкладу деформацій,
дає хорошу продуктивність.
Рисунок 3.6 — Реєстрація доступу до файлів під час формування динамічної
деформації.
Динамічне формування деформації має хороший потенціал для повного
використання апаратного забезпечення SIMT, але залежить від наявності багатьох
деформацій, що виконуються на одному ПК. Якщо деформації розвиваються з
різною швидкістю, то не буде достатньо деформацій, доступних для динамічної
перегрупування потоків. Щоб вирішити цю проблему, автори пропонують
евристики проблеми деформації. Виявлено, що «евристика більшості», яка видає
54
деформації на найпоширенішому ПК серед усіх готових до розкладу деформацій,
дає хорошу продуктивність.
Автори проаналізували накладні витрати, необхідні для реалізації схеми
динамічного формування деформації з ланцюгом з використанням евристики
більшості. Вони виявили, що область накладних витрат становить близько 4,7%,
необхідна для схеми, включаючи логіку мультиплексування додаткових
регістрових файлів. Сховище, необхідне для пошуку більшості ПК протягом 32
деформацій, було найбільшою частиною цих накладних витрат. Автори
демонструють середню вигоду від продуктивності 20,7% для схеми.
Рисунок 3.7 — Динамічне створення підвикривлення
Велика варп-мікроархітектура, запропонована Narasiman et al. є схожою
технікою створення деформацій під час виконання. Однак він відрізняється за
методом створення основ. Схема починається з викривлення, яке значно більше за
розміром, ніж ширина SIMT. Потім він динамічно створює менші деформації
шириною SIMT з великої деформації під час виконання. Створюючи нові
деформації, він групує потоки за тими ж шляхами розбіжності. Це показано на
рисунку 8. На малюнку зображено велику основу, що складається з 16 ниток,
розташованих у двовимірній структурі з 4 менших основ по 4 нитки в кожній. У
55
цьому прикладі ми припускаємо, що наша ширина SIMT дорівнює 4 потокам. Як
показано на малюнку, у кожному циклі планувальник створює потоки з
оригінального великого викривлення, які відображаються на різні смуги. Їхня
схема передбачає подібну організацію файлів реєстру та схему доступу, що
використовується в Fung et al. динамічний метод формування основи.
У статті також пропонується вдосконалений алгоритм планування, відомий
як «дворівневе планування». Графічні процесори, як правило, використовують
політику циклічного планування деформації, яка надає однаковий пріоритет усім
одночасно виконуваним деформаціям. Це вигідно, оскільки в варпах є багато
локальних даних. Запити на пам'ять одного варпа, швидше за все, створять
звернення до буфера рядка для запитів пам'яті інших деформацій. Однак, як
наслідок, усі деформації одночасно виконують одну операцію пам’яті з довгою
затримкою. Ключ до вирішення цієї проблеми полягає в тому, щоб деякі
деформації проходили разом і разом приходили до однієї й тієї ж тривалої операції
затримки, але мати інші набори деформацій, які можна запланувати, коли всі
деформації першого набору чекають. Автори досягають цього, виконуючи
дворівневе планування деформації. Ідея полягає в тому, щоб згрупувати великий
набір основ у менші набори. Окремі деформації наборів плануються разом, але
під час операцій із довгою затримкою планувальник перемикається на інший
набір деформацій. Автори оцінили комбіновану мікроархітектуру великої
деформації та дворівневу схему накладних витрат і виявили, що вона покращує
продуктивність на 19,1%. Обидві схеми разом мають область накладних витрат
224 байти.
Динамічне формування деформації дає кращу продуктивність, ніж лише
велика архітектура деформації. Це пояснюється тим, що комбінація ниток
відбувається лише зсередини великої основи, але через усі основи в динамічному
формуванні основи. Однак велика архітектура деформації в поєднанні з
дворівневим плануванням дає кращу загальну продуктивність. Оскільки
дворівневе планування є незалежною схемою, його можна поєднати з динамічним
56
формуванням деформації, щоб отримати ще кращу продуктивність, ніж обидві
запропоновані схеми.
У цьому розділі досліджуємо роботу над напрямками проектування
архітектури процесора та можливостями оптимізації систем CPU-GPU. Поєднання
багатоядерних і графічних процесорів у сучасних системах пропонує значні
можливості оптимізації.
Хоча графічні процесори з’явилися як механізми виконання загального
призначення, не весь код добре відображається на графічних процесорах. ЦП все
ще виконує критичний для продуктивності код, як повні програми, так і частини,
які не можуть бути зіставлені з графічним процесором. Дослідження показує, що
код, що виконується на CPU в інтегрованій системі CPU-GPU, значно
відрізняється від вихідного коду. Дослідження властивості цього нового коду
повинні лягти в основу нового дизайну ЦП.
3.3 ОПТИМІЗАЦІЯ МІКРОАРХІТЕКТУРИ ЗА СПІЛЬНИМ
ВИКОНАННЯМ
Проаналізуємо опортуністичні схеми оптимізації для систем CPU-GPU.
Комбінація CPU-GPU формується до системи, де очікується, що графічний
процесор виконуватиме частини коду, орієнтовані на пропускну здатність, а CPU
— непаралельні області коду. Однак GPU, займаючи значну площу бюджетів, не
сприяє продуктивності серійних програм. Аналогічно, процесор не працює під час
виконання паралельних програм GPU. COMPASS Woo et al. пропонує
використовувати ресурси графічного процесора для підвищення продуктивності
процесора. Спочатку обговорюємо їх схему. Далі проаналізуєм Yang et al. схема
використання ресурсів ЦП для підвищення продуктивності GPGPU.
Замість повністю апаратної схеми автори пропонують використовувати
інтерфейс на основі ОС для керування операцією попередньої вибірки на основі
графічного процесора. Автори описують апаратний блок Miss Address Provider
(MAP) для забезпечення інтерфейсу між графічним процесором, загальним кешем
57
останнього рівня (LLC) та ОС. Рисунок 9 ілюструє MAP. Як тільки ОС не має
незавершених завдань GPU, вона призначає шейдер попередньої вибірки за
допомогою покажчика шейдера. Після промаху або попереднього звернення до
рядка LLC, ПК та адреса промаху пересилаються на MAP, який спочатку надсилає
команду GPU для призначення шейдеру GPU та або потоку для створення запитів
попередньої вибірки для конкретної адреси програми. Якщо шейдер GPU вже
виділено, шейдер зберігає пропущену інформацію у файлах реєстру GPU і
виконує алгоритми попередньої вибірки, щоб передати майбутні дані в LLC. ОС
вимикає шейдери COMPASS перед перемиканням контексту, а потім знову вмикає
після перемикання контексту. Оскільки COMPASS програмується, ОС може
вибрати алгоритми попередньої вибірки з набору різних таких реалізацій.
Рисунок 3.8 — Miss Address постачальник
32 КБ – 64 КБ реєстрового файлового простору на SM забезпечує достатню
пам’ять для реалізації сучасних алгоритмів попередньої вибірки. Ці схеми мають
58
непомірні витрати, що ускладнює їх включення в комерційні проекти.
Використання ресурсів графічного процесора значно зменшує накладні витрати.
По-друге, автори пропонують використовувати програмовані потоки виконання
GPU як логічні структури для гнучкої реалізації алгоритмів попередньої вибірки.
3.4 ОБРОБКА GPGPU ЗА ДОПОМОГУЮ CPU
Янг та ін. запропонувати використання виконання на основі ЦП для
попередньої вибірки запитів для програм GPGPU. По-перше, вони розробляють
інфраструктуру на основі компілятора для вилучення генерації адрес пам'яті та
доступу з ядер графічного процесора для створення програми попереднього
виконання ЦП. Після запуску ядра графічного процесора центральний процесор
запускає програму попереднього виконання. Щоб зробити попереднє виконання
ефективним, центральний процесор повинен працювати достатньо вперед, щоб
передати відповідні дані в спільне LLC. Однак виконання не повинно забігати
занадто далеко вперед, щоб попередньо вивантажені дані замінялися перед
використанням. Автори пропонують схеми керування ефективністю попередньої
вибірки
Автори стверджують, що, хоча процесори мають значно меншу пропускну
здатність, ніж графічні процесори, дуже мало інструкцій ЦП потрібно для
генерації адреси та попередньої вибірки. Це насамперед тому, що кожен запит на
попередню вибірку може ввести один блок LLC, який є значно великим за
розміром і обслуговує декілька потоків GPU разом.
59
Рисунок 3.9 — Ядро графічного процесора та згенерована програма попереднього
виконання.
На рисунку 10 показаний приклад ядра графічного процесора додавання
векторів і програми попереднього виконання, згенерованої компілятором. Як
показано, алгоритм попереднього виконання спочатку витягує звернення до
пам’яті з генерацією адреси. Усі магазини перетворюються на вантажі. Далі до
даних попередньої вибірки додаються цикли для одночасних потоків,
організованих в окремі блоки потоків. Оновлення ітератора встановлюється як
добуток трьох факторів. Перший, коефіцієнт пропуску, використовується для
регулювання своєчасності попередньої вибірки ЦП шляхом пропуску потоків.
Автори пропонують адаптивну схему для варіювання коефіцієнта пропуску
шляхом відстеження частоти звернень ТОВ. Занадто високе значення частоти
відвідувань означає, що дані вже знаходяться в кеші через виконання GPU.
Занадто низька частота відвідувань може свідчити про те, що процесор працює
занадто далеко. Параметр розміру пакету використовується для контролю частоти
оновлення параметра коефіцієнта пропуску. Параметр unroll factor
використовується для збільшення запитів ЦП у боротьбі за пам'ять ЦП-ГП.
Запропонована авторами схема має два недоліки. Спочатку вони
припускають, що блоки плануються лінійно, тобто спочатку планується блок з id
0, потім з id 1 і так далі. Однак політики планування блоків можуть відрізнятися, і
в цьому випадку графічному процесору потрібно буде передати ЦП інформацію
60
про ідентифікатор виконуваного блоку. Це повідомлення може вплинути на
своєчасність попереднього отримання. По-друге, оскільки програма попереднього
виконання ЦП позбавлена фактичних обчислень, такий підхід не може обробляти
будь-які дані або залежні від обчислення доступи до пам’яті. Більшість тестів,
використаних у дослідженні, не мали доступу до пам’яті, що залежить від даних.
Це є недоліком схеми при збільшенні різноманітності коду. Автори демонструють
21% перевагу ефективності своєї пропозиції.
2.6 Няпрямки роботи на майбутнє
Поділяємо ці можливості на 4 категорії – постійна оптимізація системи,
розробка дослідницьких інструментів, можливості в питанні, температурі та
надійності та, нарешті, використання нових технологій у системах CPU-GPU.
Постійна оптимізація системи. Досліджуємо як цілісну, так і
опортуністичну оптимізацію для продовження систем CPU-GPU. Спільні роботи
LLC та контролера пам’яті, представлені в цьому звіті, є першими документами в
цій області, що надають широкі можливості для подальшого покращення
продуктивності. Наприклад, у документі LLC пропонується управління кеш-
пам’яттю з підтримкою TLP на основі ефективного використання ємності кешу.
Було б цікаво розглянути ефекти пропускної здатності для політики керування
загальним кешом. Для контролера пам’яті було б цікаво дослідити вплив
використання пропускної здатності графічного процесора на робоче навантаження
ЦП. Раніше було запропоновано кілька методів, які використовують неактивні
ядра ЦП для підвищення продуктивності потоків виконання ЦП. Можливо,
подібні методи можна було б застосувати до систем gpgpu, де ми могли б
використовувати неактивні ресурси GPU для підвищення продуктивності
виконання GPU.
Інструменти дослідження. Одним з основних факторів, що обмежують
дослідження в цій області, є відсутність дослідницьких інструментів. Хоча
доступні моделі продуктивності GPGPU, моделей потужності GPGPU немає. У
цій галузі ведеться певна робота з використанням емпіричних вимірювань та
моделювання, але наукова спільнота бажає мати гнучкі аналітичні моделі
потужності GPU. Після розробки необхідно провести подальшу роботу для
інтеграції таких моделей GPGPU з моделями потужності ЦП. Аналогічно, немає
61
доступних інструментів для моделювання температури графічного процесора.
Розробка таких інструментів являє собою короткострокові дослідницькі
можливості.
Потужність, температура та надійність. Незважаючи на те, що графічні
процесори мають серйозні обмеження по потужності та енергії, роботи в області
ефективного керування живленням і температурою для графічних процесорів
майже не проводиться. Так само немає роботи в області надійності GPU.
Відсутність роботи в цих сферах, можливо, пояснюється відсутністю
інструментів. Ми очікуємо, що це зміниться, коли інструменти стануть
доступними. Як роботу першого порядку, буде цікаво вивчити застосування
методів управління потужністю і температурою процесора в системах GPU.
Нові технології. У застосуванні нових технологій, таких як технології
енергонезалежної пам'яті (NVM) і 3D стекування, до графічних процесорів майже
не проводилося. NVM з низьким рівнем витоку та низькою потужністю
забезпечують переваги продуктивності графічних процесорів з обмеженою
потужністю. Ключовим було б знайти структури з низькою активністю запису,
щоб пом’якшити деякі недоліки NVM. Аналогічно, тривимірне стекування може
забезпечити так необхідну пропускну здатність системи пам’яті для систем GPU.
Отже, було б цікаво дослідити системи пам’яті з стеком CPU-GPU-Main. Їх
ключем буде ефективне управління температурним впливом.
3.5 Історія GPU
Сучасний графічний процесор розвивався в основному за останні 15 років.
До появи графіки на настільних комп’ютерах оброблявся пристрій, який
називається контролером відеографічної матриці (VGA). Контролер VGA - це
просто контролер пам'яті, підключений до деякої DRAM і генератор дисплея. Його
робота, по суті, полягає в тому, щоб отримувати дані зображення, правильно їх
організувати та передавати на відеопристрій, наприклад, на монітор комп’ютера.
Протягом 1990-х років до VGA-контролера додавались різні компоненти
графічного прискорення, такі як апаратні компоненти для растеризации
трикутників, відображення текстур і простого затінення. А в 1999 році NVIDIA
випустила GeForce 256 і стала першим у світі графічним процесором. У той час на
ринку були інші продукти для прискорення графіки (самою NVIDIA, а також
іншими компаніями, такими як ATI і 3dfx), але це був перший раз, коли
використовувався термін GPU.
62
Рисунок 3.10 — Ліворуч – знімок екрана гри System Shock, випущеної в 1999 році.
Покращення якості графіки між цією грою і грою Crysis 2008 року (праворуч)
ілюструє зростаючі вимоги спільноти розробників комп’ютерної графіки.
Перші графічні процесори були пропускними пристроями із фіксованою
функцією, по суті розробленими для отримання набору координат трикутника, а
також параметрів кольору, текстури та освітлення, щоб ефективно створювати
зображення. З часом графічні процесори стають все більш програмованими, так
що невеликі програми (так звані шейдери) можуть запускатися для кожного
обробленого трикутника, вершини та пікселя, значно розширюючи види
візуальних ефектів, які можна швидко створювати (відображення, заломлення). ,
деталь освітлення). Це на додаток до величезного збільшення потужності
необроблених паралельних обчислень (Малюнок 2), що зменшує виграш ЦП у цій
області, хоча обидві технології явно оптимізовані для різних додатків. Все частіше
логічні блоки, призначені для спеціальних цілей, таких як вершинна обробка або
обробка пікселів, поступаються місцем блокам більш загального призначення, які
можна використовувати для будь-якої задачі (модель уніфікованого шейдера
стандартизувала набір інструкцій, що використовуються для вершинних і
піксельних шейдерів, так що потрібен був лише один тип логічної одиниці). З
часом обчислення стало більш точним, перейшовши від індексованої арифметики
до цілочисельної та фіксованої точки, до точки одинарної точності, а нещодавно
було додано зберігання та операції з подвійною точністю.
Графічні процесори по суті перетворилися на масивні паралельні
обчислювальні пристрої з сотнями ядер (ALU) і багатьма іншими потоками. За
останні п’ять років набір інструкцій та апаратне забезпечення пам’яті також були
розширені для підтримки мов програмування загального призначення, таких як C
і C++. Отже, зрозуміло, що, хоча вони все ще можуть мати певні обмеження щодо
63
ЦП (більш обмежений доступ до пам’яті тощо), графічні процесори стають все
більш застосовними для набагато більшої кількості цілей, ніж ті, для яких вони
спочатку були призначені; і ця тенденція, ймовірно, збережеться. Варто зазначити
(оскільки це так сильно вплинуло на розвиток і літературу про GPU), що, хоча на
початку ринку налічувалося більше двадцяти компаній, які конкурували між
собою, відтоді поле значно звузилося. Зараз серйозними конкурентами на ринку
графічних процесорів є лише Intel, NVIDIA та AMD (формально підрозділом
графічних процесорів AMD була компанія ATI), і лише NVIDIA та AMD
розробляють високоякісні відеокарти.
За останні кілька років схеми чіпів графічного процесора зазнали значної
реорганізації та перепрофілювання, з’явившись тенденцією до обчислень
загального призначення; це на додаток до величезного збільшення
функціональних одиниць. Процесори в меншій мірі, ймовірно, тому, що вони
повинні підтримувати багато досягнень, досягнутих у зменшенні затримок (за
ціною в нерухомості), а також через необхідність підтримувати свою спадщину
сумісності. Однак процесори також додали більше ядер.
3.6 Сучасна структура мікроахітетури
За останні кілька років схеми чіпів графічного процесора зазнали значної
реорганізації та перепрофілювання, з’явившись тенденцією до обчислень
загального призначення; це на додаток до величезного збільшення
функціональних одиниць. Процесори в меншій мірі, ймовірно, тому, що вони
повинні підтримувати багато досягнень, досягнутих у зменшенні затримок (за
ціною в нерухомості), а також через необхідність підтримувати свою спадщину
сумісності. Однак процесори також додали більше ядер.
Найдавніші графічні процесори були пристроями спеціального призначення,
які виконували постійні функціональні завдання, такі як трансформація та
освітлення, відображення текстур і растеризація трикутників у пікселі. З точки
зору програмістів, можна було б встановити кілька параметрів і передати їм
списки трикутників, вершин, текстур і віртуальних світильників і камер, які
потрібно обробити. Історія стала набагато цікавішою, коли графічні процесори
почали програмуватися (2000-2004). NVIDIA 7800 був одним із попередніх
графічних процесорів, які мали як піксельні, так і вершинні шейдери. Проте ядра
64
процесора (які містили функціональні блоки) все ще поділялися на вершинні
процесори та фрагментні (піксельні) процесори. Це дещо обмежило гнучкість
мікросхеми, оскільки була обмежена кількість компонентів, які можна було
присвятити певним завданням. Модель уніфікованого шейдера була представлена
в 2008 році, після чого вершинні та фрагментні шейдери покладалися на той
самий набір інструкцій і, таким чином, те саме обладнання; більше не було
окремих процесорів вершин і фрагментів. Це можна побачити на чіпі NIVDIA
8800. Потужність обробки по суті розподілена між вісьмома кластерами потокової
обробки (TPC), кожен з яких містить два потокові мультипроцесори (SM). Кожен з
них містить вісім скалярних процесорів (SP), кожен із яких містить власні цілі
ALU та FPU і може виконувати декілька потоків. Саме тут відбувається більшість
фактичних обчислень як для вершин, так і для фрагментів (і новітніх шейдерів
геометрії, які обробляють трикутники). Значна частина мікросхеми призначена
для оптимального розподілу роботи в ієрархії процесорів, а також для
забезпечення доступу процесорів до правильних даних.
Рисунок 3.11 — Розкладка чіпа графічного процесора Nvidia GeForce 7800. Він
має 24 конвеєри піксельних шейдерів і 8 конвеєрів вершинних шейдерів.
65
На початку наведемо блок-схему кожного нового GPU, опишемо загальні
характеристики відеокарт, а потім детально розглянемо архітектурні зміни. Всі
процесори виробляються за технологією 12-нм FinFET. Вони зберігають
кластерну структуру, коли GPU складається з кількох GPC і змінюючи кількість
таких кластерів, масштабується продуктивність кожного конкретного чіпа.
Рисунок 3.12 — TU102 (GeForce RTX 2080 Ti)
Старший графічний процесор TU102 складається з 18600000000
транзисторів при площі кристала 754 кв.мм. Якщо порівняти його з GP102
(GeForce GTX 1080 Ti), площа нового чіпа і кількість транзисторів зросла на 55–
60%. У TU102 всього шість кластерів GPC, кожен містить шість текстурно-
процесорних кластерів TPC, що поєднують мультипроцесорні блоки SM. Останні
помітно реорганізовані та включають нові блоки, про що докладніше буде сказано
нижче. Кожен SM-блок налічує 64 основні обчислювальні блоки (CUDA-cores).
При 72 SM всього виходить 4608 потокових процесорів. Однак GPU GeForce RTX
2080 Ti (як свого часу і GeForce GTX 1080 Ti) трохи урізаний. У топової
відеокарти відключені два SM, в результаті загальна кількість потокових
66
процесорів дорівнює 4352. Також у цього рішення є 544 нових тензорних ядра і 68
RT-ядер, 272 текстурних блоків і 88 блоків розтеризації ROP.
Для порівняння можна нагадати, що GeForce GTX 1080 Ti на базі GP102
оперував лише 3584 ядрами CUDA при 224 текстурних блоках. Так що
нарощування потенціалу нового TU102 дуже значне. Шина пам'яті залишилася
352-бітною, але використовуються нові мікросхеми GDDR6 з ефективною
частотою обміну даними, еквівалентною значенню 14 ГГц. Об'єм пам'яті 11 ГБ на
рівні старого флагмана, і це цілком достатньо для сучасних ігор у високих
дозволах.
Судячи з блок-схеми у процесора TU102 всього 12 контролерів пам'яті
розрядністю 32 біти. Тому чіп може працювати із 384-бітним інтерфейсом.
Можливо, ми побачимо таку шину разом із 4608 потоковими процесорами у нових
Titan. Кеш L2 у GeForce RTX 2080 Ti досягає 5632 КБ. Очевидно, що повний об'єм
L2 дорівнює 6 МБ, але він трохи порізаний разом із шиною.
67
Рисунок 3.11 — TU104 (GeForce RTX 2080)
Наступний в ієрархії процесор TU104 має конфігурацію із шести кластерів
GPC по чотири TPC. У минулому поколінні Pascal зберігалася ідентичність
внутрішньої структури кластерів для рішень середнього та топового рівня, лише у
бюджетних GPU зменшувалась кількість TPC. Ймовірно, така конфігурація TU104
є оптимальною для збереження якогось балансу продуктивності та гнучкого
управління ресурсами – кількість кластерів на рівні топового GPU, але вони
слабші. При цьому задіяно 46 SM-блоків із 48, що дає 2944 активних
обчислювальних ядер CUDA, 368 тензорних ядер, 46 ядер RT та 184 текстурних
68
блоків. Об'єм кеш-пам'яті L2 дорівнює 4 МБ, що вдвічі вище за обсяг L2 у GP102
(GeForce GTX 1080).
Рисунок 3.12 — TU106 (GeForce RTX 2070)
Несподіванкою стала прем'єра третього чіпа для GeForce RTX 2070. За
аналогією з минулими поколіннями можна було очікувати простого урізання
блоків на процесорі старшої відеокарти. Але основою GeForce RTX 2070 став
GPU TU106 із трьома стандартними кластерами по шість TPC. Загальна кількість
потокових процесорів 2034, тензорних блоків 288, блоків RT 36, текстурних блоків
144. При прямому порівнянні GeForce RTX 2070 з GeForce RTX 2080 виходить
різниця 28% обчислювальних блоків. Кеш-пам'ять L2 залишилася лише на рівні 4
МБ.
TU104 і TU106 мають 256-бітну шину пам'яті (8 контролерів розрядністю 32
біт). При цьому відеокарти використовують пам'ять GDDR6 з ефективною
частотою 14 ГГц, що забезпечує зростання пропускної спроможності пам'яті
минулого покоління.
Як бачимо, загальна конфігурація обчислювальних блоків навіть у
молодшого GPU досить потужна, не кажучи вже про топовий TU102. Адже в них
ще з'явилися нові функціональні блоки. Тому чіпи Turing є складними та досить
великими кристалами. TU102 складається з 18,6 млрд. транзисторів, TU104 із 13,6
млрд., а TU106 налічує 10,8 млрд. транзисторів. У результаті навіть за переході на
12-нм техпроцес ми бачимо зростання робочих частот. Якщо говорити про
GeForce RTX 2080 Ti, то тут взагалі заявлено базове значення в 1350 МГц при
69
Boost Clock до 1635 МГц. Для молодших GPU робочі частоти вищі, але вони
приблизно рівні моделей Pascal.
Із частотами пов'язаний один цікавий момент. Вперше NVIDIA вводить різні
Boost-частоти за однакових базових значень. В офіційних специфікаціях ми
бачимо вищі значення Boost для моделей Founders Edition виробництва самої
NVIDIA. При цьому решта карт також позначена як Reference, що вводить в
оману, оскільки саме референсні версії ми звикли асоціювати з Founders Edition.
Таблиця 3 Порівняння характеристик трьох продуктів NVIDIA
Відеоадаптер GeForce RTX 2080 Ti GeForce RTX 2080 GeForce RTX 2070
Ядро TU102 TU104 TU106
Кількість 18600 13600 10800
транзисторів, млн. шт
Техпроцес, нм 12 12 12
Площа ядра, кв. мм 754 545 445
Кількість потокових 4352 2944 2304
процесорів CUDA
Кількість тензорних 544 368 288
ядер
Кількість ядер RT 68 46 36
Кількість текстурних 272 184 144
блоків
Кількість блоків 88 64 64
рендерингу
Частота ядра Base, 1350 1515 1410
МГц
Частота ядра Boost, 1545 1710 1620
МГц (Reference)
70
Таблиця 4 Продовження таблиці 3
Відеоадаптер GeForce RTX 2080 Ti GeForce RTX 2080 GeForce RTX 2070
Шина пам'яті, біт 352 256 256
Тип пам'яті GDDR6 GDDR6 GDDR6
Частота пам'яті, МГц 14000 14000 14000
Об'єм пам'яті, ГБ 11 8 8
Підтримувана версія 12 12 12
DirectX
Інтерфейс PCI-E 3.0 PCI-E 3.0 PCI-E 3.0
Потужність, Вт 250/260 215/225 175/185
Офіційна вартість MSRP $999 MSRP $699 MSRP $499
Founders $1199 Founders $799 Founders $599
TDP нових відеокарт залишився приблизно на старому рівні. Так, для
GeForce RTX 2080 Ti Founders Edition заявлено 260 Вт та 250 Вт для партнерських
версій. Для GeForce RTX 2080 це 225 і 215 Вт, що вище за TDP серії GeForce GTX
1080, але в цілому прийнятно для топових продуктів.
Після загального огляду нових GPU поговоримо безпосередньо про
інновації Turing Architecture.
Важливі зміни відбулися лише на рівні мультипроцесорних блоків SM, які
мають стандартну структуру у всіх варіантах GPU Turing. Нова архітектура
успадковує можливості обчислювальної архітектури Volta та ігрової архітектури
Pascal. Всі обчислювальні блоки всередині SM згруповані в чотири масиви
обробки даних зі своєю логікою, що управляє (дані реєстрів, планувальник). В
одному SM налічується 64 потокові процесори. І ці обчислювальні блоки тепер
вміють одночасно виконувати цілочисленні операції (INT32) та операції з
плаваючою комою (FP32). До речі, на схемі SM вони позначені як різні
функціональні блоки. Цікаво, що Pascal було по 128 ядер CUDA у SM, але
розрахунки формату INT і FP проводились у послідовному порядку.
71
Рисунок 3.13 — Архітектура Turing
72
Згідно з даними NVIDIA у сучасних додатках при виконанні ігрових
шейдерів цілочисленні обчислення займають до 36%. І виконання операцій двох
типів на один потік значно прискорить загальні обчислення. Тут одночасно можна
сказати про певний дисбаланс, оскільки повне дублювання INT32 і FP32 не
потрібне. Але така структура може бути актуальною для неігрових обчислень та
завдань.
Рисунок 3.14 — Уніфікована структура кешу
Оновлена уніфікована структура кешу L1 дозволяє конвеєру TPC
ефективніше працювати з ним. За збереження загального обсягу кешу L1 лише на
рівні 96 КБ менше латентність, а загальна пропускна здатність може зрости до
двох разів. Також у всіх процесорах збільшено обсяг загального кешу L2.
Наприклад, у GPU TU102 це 6 МБ замість 3 МБ у старого GP102.
73
Рисунок 3.15 — Порівняння TPC архітетктури PASCAL і TURING
Появились и новые блоки. Это восемь тензорных ядер для математических
операций машинного обучения и один блок RT (Ray-tracing) для расчетов
трассировки лучей. Но даже без учета новых блоков и новых возможностей
рендеринга NVIDIA говорит о среднем росте шейдерной производительности
около 50%, что звучит очень убедительно. В виртуальной реальности VR этот
прирост двукратный и даже выше. Это выглядит очень оптимистично, и во время
статьи мы откроем много нюансов, которые дают такой комплексный эффект.
Рисунок 3.15 — Зростання шейдерної продуктивності архітектур
В очередной раз улучшены алгоритмы сжатия данных в буфере кадра, что
уменьшает количество обращений к внешней памяти. В сочетании с чипами
74
GDDR6, работающими при 14 Гбит/с, утверждается рост эффективной
пропускной способности до 50%. Отдельные пользователи насторожили, что
GeForce RTX 2080 Ti сохранил объем 11 ГБ, а GeForce RTX 2080/2070 получили
по 8 ГБ памяти, ведь это на уровне существующих моделей Pascal. Однако такого
объема сейчас хватает для высоких разрешений, а Turing теоретически еще
эффективнее работает с памятью.
Чипы Turing получили поддержку новых feature level с Direct 12. Улучшены
асинхронные вычисления. Также новая архитектура имеет ряд улучшений для
ускоренной обработки шейдеров.
Mesh Shading предлагает новый единственный конвейер геометрии, заменяя
вершинные, геометрические шейдеры и тесселяцию. Это более гибкий в
управлении конвейер с новыми типами шейдеров Task Shaders и Mesh Shaders,
позволяющий одновременно работать с геометрией группы объектов, уменьшая
общее количество draw calls.
Рисунок 3.16 — Графічний пайплайн
Mesh Shading буде ефективним у сценах з безліччю об'єктів та складною
геометрією, дозволяючи більш гнучко керувати LOD. На рівні DirectX 12 його
можна продати через NVAPI. Також підтримку Mesh Shading додадуть до OpenGL
та Vulkan.
Перспективно виглядає технологія Variable Rate Shading (VRS). Цей метод
дозволяє регулювати якість шейдингу в семпла 4x4 пікселя. Це дає змогу гнучкої
оптимізації. Наприклад, на периферії зображення може бути розмите ефектами
Motion Blur і висока точність опрацювання семплів тут не має значення. Це дуже
актуально для ігор, де дорога і оточення на периферії кадру часто змащуються.
75
Рисунок 3.20 — Затінення зі змінною швидкістю
Три алгоритми використовують VRS:
• Content Adaptive Shading — зменшує швидкість шейдингу для зон зі
слабким кольором;
• Motion Adaptive Shading — варіативна якість для об'єктів, що
рухаються;
• Foveated Rendering – зниження якості для областей поза зоною
фокусування.
Рисунок 3.21 — Адаптивні шейдери вмісту
76
Усе це потребує застосування з боку розробників. Проте VRS може реально
покращити продуктивність. Також це один із факторів, що знижують
навантаження на відеопам'ять.
Turing підтримує нову модель Texture Space Shading (TSS). Значення
шейдерних даних зберігаються у пам'яті у спеціальному текстурному просторі,
звідки потім можуть повторно викликатися. TSS дозволяє використовувати такі
текселі для тимчасового рендерингу та різних систем координат.
Рисунок 3.22 — Модель Texture Space Shading
TSS є одним із елементів прискорення обробки VR. Кожне око бачить схоже
зображення. При візуалізації кадру правого ока використовуються дані з кадру
лівого ока, а заново оброблені будуть ті текстелі, де немає відповідних зразків.
77
Рисунок 3.22 — Приклад VR рендерингу
Тензорні ядра Turing є покращеними ядрами Volta. Вони необхідні
виконання завдань із застосуванням штучного інтелекту. Ці блоки підтримують
розрахунки в режимах INT8, INT4 та FP16 під час роботи з масивами матричних
даних для глибокого навчання в реальному часі. Кожне тензорне ядро виконує до
64 операцій із плаваючою комою, використовуючи вхідні дані формату FP16.
Тобто один SM із вісьмома ядрами обробляє 512 операцій FP16 за такт.
Обчислення INT8 проходять на подвоєній швидкості 1024 операцій, а INT4
виконується 2048 операцій за такт. І топовий GPU TU102 здатний забезпечити
пікову тензорну продуктивність до 130,5 TFLOPS (Quadro RTX 6000).
78
Рисунок 3.23 — Ядро Tensor
Компанія NVIDIA давно працює у галузі штучного інтелекту. Однак
донедавна всі технології на базі нейромереж, що навчаються, здавалися долею
якихось вузькоспеціалізованих областей і великих дата-центрів. З появою Turing
ситуація змінюється, адже ми отримуємо не лише апаратну платформу, а й нові
програмні можливості. Для інтеграції можливостей штучного інтелекту
використовується NVIDIA NGX (Neural Graphics Acceleration), дозволяючи
використовувати можливості глибокого навчання для покращення графіки та
візуального відображення.
79
Рисунок 3.24 — Прискорення нейронної графіки
На базі NGX вже реалізовано технологію підвищення роздільної здатності
зображення AI Super Rez, технологію InPainting для відновлення фрагментів
фотографій та деякі інші цікаві функції.
Рисунок 3.25 — Deep Learning Super-Sampling
Але найважливішим є згладжування Deep Learning Super-Sampling (DLSS).
Це розвиток Temporal AntiAliasing (TAA) із використанням нових інтелектуальних
можливостей Turing. Зараз TAA є найпоширенішим методом згладжування, який
дається з мізерними втратами продуктивності кілька відсотків. TAA використовує
дані минулого кадру для семплів нового. При хорошому результаті згладжування
країв цей метод дає певне змащування та тремтіння картинки, особливо в
80
динаміці. DLSS використовує спеціально навчену нейронну мережу для більш
швидкої та якісної вибірки. Новий метод дає чітку картинку за ще менших витрат
продуктивності.
Згладжування DLSS виглядає дуже перспективно, причому воно легко
інтегрується до ігор, що спростить його популяризацію. Цікаво, що на графіках
NVIDIA показано дуже значне зростання fps активації DLSS. Причина в тому, що
при DLSS можливі різні методи вибірки, і в деяких режимах йдеться, по суті, про
реконструкцію фінального зображення з меншого. Тобто це справді може
прискорювати рендеринг. Також треба розуміти, що багато ігор зараз
використовують технології адаптивного дозволу зі згладжуванням через TAA. Не
кожен користувач знає такі тонкі настройки. І якщо йому при автоматичному
налаштуванні буде виставлено режим DLSS, він отримає помітне поліпшення
якості картинки при реальному зростанні швидкодії.
Також технології нейронних мереж необхідні для очищення зображення від
шумів при рендерингу з використанням трасування променів. І тут ми
підбираємося до головної особливості Turing - підтримки трасування променів у
реальному часі. По суті ми маємо перше покоління відеокарт, яке підтримує новий
метод рендерингу. Зараз використовується метод растеризації: об'єкти
проектуються на площину екрана з подальшим обробленням пікселів з
урахуванням відстані до площини проекції та накладання текстур. Оскільки
індустрія розвивалася багато років, ефективність сучасних методів візуалізації на
актуальних GPU досить висока. Трасування променів використовує метод
побудови зображення, наближений до реального, імітуючи проходження променів
світла у навколишньому середовищі. При трасуванні для кожного пікселя
будується промінь, що визначає його видимість.
81
Рисунок 3.26 — Принцип трасування променів
При трасуванні можна коректно прораховувати як освітленість кожної
точки, а й взаємне вплив об'єктів друг на друга з урахуванням їх матеріалів. При
стандартних методах рендерингу ми бачимо якісну симуляцію, де правильне
затінення чи якісь особливості освітлення відтворюються з використанням певних
спрощень, використовуються заздалегідь підготовлені відображення, карти тіней
та різні методи симуляції глобального затінення. Трасування променів дозволяє
зробити все це достовірнішим, краще враховуючи особливості навколишнього
середовища та матеріалів об'єктів. І чим складніша сцена, тим очевиднішими
будуть переваги трасування.
Наприклад, з трасуванням можна робити коректні відображення з
урахуванням всього оточення. За звичайних методів зайві об'єкти поза зоною
кадру просто відсікаються. Також краще враховуються особливості заломленого
та відбитого світла, що визначається взаємним впливом об'єктів. Простіше
відтворювати напівпрозорі об'єкти. Зараз це непогано симулюється, але не завжди
картинка має коректний вигляд у всіх нюансах.
Трасування дозволяє відтворювати реалістичні тіні, враховуючи
спрямованість світла та його розсіяність. Ми отримаємо точніші контури тіні та
реалістичне розмиття в міру віддаленості від джерела освітлення. До речі, схожий
ефект працює із технологією м'яких тіней NVIDIA HFTS.
82
Головною перешкодою щодо впровадження трасування були високі вимоги
до продуктивності системи, адже ще недавно для цього були потрібні потужні
графічні ферми. З моменту розробки цього алгоритму минуло десятки років. Зараз
трасування активно використовується в кіноіндустрії, а з виходом Turing
починається шлях щодо впровадження цієї технології в ігрову індустрію. Усі
розуміють, що це перші кроки у цьому напрямі. Тому про повноцінне трасування
поки що не йдеться. NVIDIA впроваджує гібридний метод рендерингу, що
дозволяє поєднувати розтеризацію з трасуванням для деяких ефектів.
3.7 Архітектура CUDA
На початку багатоядерних процесорів і графічних процесорів чіпи
процесора стали паралельними системами. Але швидкість програми буде
збільшена, якщо програмне забезпечення використовує паралельність, надану
базовою багатопроцесорною архітектурою [1]. Тому існує велика потреба в
розробці та розробці програмного забезпечення, щоб воно використовувало
багатопотоковість, причому кожен потік працював одночасно на процесорі, що
потенційно може значно збільшити швидкість програми. Для розробки таких
масштабованих паралельних додатків потрібна модель паралельного
програмування, яка підтримує паралельне багатоядерне середовище
програмування. Графічні процесори (GPU) NVIDIA дуже потужні та дуже
паралельні. Графічні процесори мають сотні процесорних ядер і тисячі потоків,
що працюють одночасно на цих ядрах, тому через інтенсивну обчислювальну
потужність вони набагато швидше.
CUDA розшифровується як Compute Unified Device Architecture. Це
парадигма паралельного програмування, випущена в 2007 році компанією
NVIDIA. Він використовується для розробки програмного забезпечення для
графічних процесорів і використовується для розробки різноманітних програм
загального призначення для графічних процесорів, які дуже паралельні за своєю
природою і працюють на сотнях процесорних ядер GPU.
CUDA використовує мову, дуже схожу на мову C і має високу криву
навчання. Він має деякі розширення до цієї мови для використання специфічних
для графічного процесора функцій, які включають нові виклики API, а також деякі
83
нові кваліфікатори типу, які застосовуються до функцій і змінних. CUDA має деякі
специфічні функції, які називаються ядрами. Ядро може бути функцією або
повною програмою, що викликається центральним процесором. Він виконується
N кількість разів паралельно на GPU за допомогою N кількості потоків. CUDA
також забезпечує спільну пам'ять і синхронізацію між потоками.
CUDA підтримується лише на графічних процесорах NVIDIA на основі
архітектури Tesla. Відеокарти, які підтримують CUDA, — це серії GeForce 8,
Quadro і Tesla. Ці відеокарти можна легко використовувати в ПК, ноутбуках і
серверах. Детальніше про модель програмування CUDA описано в наступному
розділі.
Раніше графічні процесори використовувалися в основному лише для
графічних програм. Але тепер сучасні графічні процесори є повністю
програмованими, дуже паралельними архітектурами, які забезпечують високу
пропускну здатність і, отже, можуть дуже ефективно використовуватися для
різноманітних додатків загального призначення.
Рисунок 3.28 — Модель пам'яті CUDA
84
Відеокарта NVIDIA — це нова технологія, яка є надзвичайно
багатопоточною архітектурою обчислень. Він складається з набору паралельних
мультипроцесорів, які далі розділені на багато ядер, і кожне ядро виконує
інструкції з одного потоку за раз, як описано на рисунку 35.
Тому всі обчислення, в яких багато потоків повинні виконувати одну і ту ж
інструкцію одночасно, також звані паралельними обчисленнями з даними, добре
підходять для виконання на графічному процесорі. NVIDIA розробила спеціальну
мову CUDA на основі C, щоб використовувати цю масово паралельну природу
GPU. CUDA містить спеціальну функцію C під назвою ядро, яка є просто кодом C,
який виконується на відеокарті на фіксованій кількості потоків одночасно. Для
визначення потоків CUDA використовує структуру сітки.
Парадигма програмування CUDA — це комбінація послідовного та
паралельного виконання. На малюнку 3 показаний приклад цього різнорідного
типу програмування. Простий код C виконується послідовно на ЦП, який також
називається хостом
Рисунок 3.29 — Гетерогенна архітектура
Паралельне виконання виражається функцією ядра, яка виконується на
наборі потоків паралельно на GPU; GPU також називають пристроєм. Цей код
ядра є кодом C лише для одного потоку. Кількість блоків потоків і кількість
85
потоків у тих блоках, які виконують це ядро паралельно, вказуються явно під час
виклику цієї функції.
Функцію ядра можна викликати лише за допомогою послідовного коду з
ЦП. Щоб викликати функцію ядра, необхідно вказати конфігурацію виконання,
тобто кількість потоків у блоці потоків і кількість потоків у сітці. Для оголошення
блоків сітки та потоків CUDA має попередньо визначений тип даних dim3,
цілочисельний векторний тип, який визначає розміри блоків сітки та потоків. У
функції виклику ядра змінні grid і block записуються в трьох кутових дужках <<<
сітка, блок >>>, як показано на малюнку 36, малюнку 37. У цьому виклику блоки
сітки і потоку створюються динамічно. Значення цієї сітки та змінних блоку має
бути меншим за дозволені розміри, які наведені в наступному розділі. Потоки
плануються апаратно, а не програмно. Функція ядра завжди має тип повернення
void. Він має кваліфікатор __global__, що означає, що це функція ядра, яка
виконується на GPU. Графічний опис блоків сітки та потоків див. на малюнку 37.
Сітка складається з одновимірних, двовимірних або тривимірних блоків
ниток. Кожен блок потоків далі поділяється на одновимірні або двовимірні
потоки. Блок потоків — це набір потоків, що виконуються на одному процесорі.
На малюнку 4 описана двовимірна сітка та двовимірна блокова структура.
Усередині блоку ниток нитки організовані разом у основи. Зазвичай 32 нитки
групуються в одну основу. Усі потоки деформації плануються разом для
виконання. Усі потоки одного блоку потоків можуть спілкуватися один з одним
через спільну пам'ять; тому вони виконуються на одному і тому ж
багатопроцесорі. Таким чином стає можливим синхронізувати ці потоки.
Парадигма CUDA надає деякі вбудовані змінні для ефективного використання цієї
структури. Для доступу до ідентифікатора блоку потоку використовується змінна
blockIdx (значення від 0 до gridDim-1), а для доступу до її розміру
використовується змінна blockDim, а gridDim надає розміри сітки. Кожен окремий
потік ідентифікується змінною threadIdx, може мати значення від 0 до blockDim-1.
WarpSize визначає розмір деформації в потоках. Всі ці змінні вбудовані в ядро.
Максимально дозволені розміри кожного виміру сітки становлять 65535, а розміри
x, y і z блоку потоків — 512, 512 і 64 відповідно . Розподіл кількості блоків потоків
кожному мультипроцесору залежить від необхідності спільної пам'яті та регістрів
для кожного блоку потоків. Більша кількість пам’яті та регістрів для кожного
блоку потоків означає виділення меншої кількості блоків потоків кожному
86
багатопроцесору. У цьому випадку блоки потоків, що залишилися, повинні чекати
своєї черги для виконання.
Рисунок 3.30 — Блоки потоків
Усе це створення потоків, їх виконання та завершення є автоматичними і
обробляються графічним процесором, і є невидимими для програміста.
Користувачеві потрібно лише вказати кількість потоків у блоці потоків і кількість
блоків потоків у сітці.
Усі мультипроцесори мають доступ до великої глобальної пам’яті пристрою
для операцій збору та розсіювання. Модель пам'яті графічно описана на малюнку
2. Ця пам'ять відносно повільна, оскільки не забезпечує кешування. Спільна
пам’ять швидка в порівнянні з пам’яттю пристрою і зазвичай займає стільки ж
часу, скільки потрібно для доступу до регістрів. Його також називають
паралельним кешом даних (PDC). Спільна пам’ять є «локальною» для кожного
багатопроцесора, на відміну від пам’яті пристрою, і забезпечує більш ефективну
локальну синхронізацію. Він розділений на багато частин. Кожен блок потоків у
багатопроцесорі отримує доступ до своєї частини спільної пам’яті, і ця частина
спільної пам’яті недоступна жодному іншому блоку потоків цього
мультипроцесора чи іншого мультипроцесора. Усі потоки всередині блоку потоків,
які мають той самий час життя, що й блок, спільно використовують цю частину
пам’яті для операцій читання та запису. Оскільки спільна пам’ять становить лише
87
16 КБ, її потрібно використовувати ефективно. Для оголошення змінних у
спільній пам’яті використовується кваліфікатор __shared__, а для оголошення в
глобальній пам’яті використовується кваліфікатор __device__.
Кожен багатопроцесор також має власні кеш-пам’яті лише для читання для
прискорення операції читання. Це постійна кеш-пам'ять і кеш-пам'ять текстур.
Кожен потік також містить власну локальну пам'ять. Зазвичай тут виділяються
локальні змінні функцій ядра. Іноді вони виділяються в глобальній пам'яті
3.8 Модель пам'яті
Є кілька основних базових технологій, які диктують потенціал будь-якого
чіпа. Найбільш фундаментальне правило процесорів все-таки справедливо:
Найгустіші вузли технологічних процесів, за умови, що вони мають гідну
характеристику потужності, продуктивності та площі (PPA), часто виграють битву,
якщо поєднатись із міцною мікроархітектурою. Якщо ви оцінюєте процесори
AMD проти Intel на основі цих критеріїв, AMD лідирує як в літографії, так і в
архітектурі.
Але те, чи дійсно AMD належить до лідерів процесів, є предметом дискусії:
на відміну від Intel, AMD не виробляє своїх процесорів. Натомість компанія
розробляє свої процесори, а потім укладає контракти із зовнішніми компаніями,
які фактично виробляють мікросхеми. Що стосується процесорів Ryzen поточного
покоління AMD, компанія використовує комбінацію процесорів 12-нм
GlobalFoundries та 7-нм-вузла TSMC для своїх мікросхем, останній є
найважливішим.
7-нм-вузол TSMC використовується, зокрема, Apple і Huawei, серед багатьох
інших, тому він отримує вигоду від фінансування в галузі та спільної інженерії.
Результат - це те, що сама Intel називає покращений 7-нм процес порівняно з
мікросхемами 10-нм та 14-нм. Intel каже, що її технологічний процес знову не
досягне паритету з галуззю до 2021 року, і вона не візьме на себе керівництво,
поки не випустить 5 нм в невизначений час.
Переваги 7-нм-вузла TSMC означають, що AMD може створювати дешевші,
швидші та щільніші мікросхеми з більшою кількістю ядер, і все це в порівняно
низькому рівні споживання енергії. Це надає дизайну зручну перевагу, за умови,
що вони поєднуються з гідним дизайном.
88
Intel вже п'ять років затримується на 14-нм процесі для своїх настільних
мікросхем, який не скоро змінюється, і його 10-нм мікросхеми, які дебютували на
ноутбуках, як правило, не вражаюче. (Intel не мала жодної 10-нм-моделі з більш
ніж чотирма ядрами.)
Незалежно від того, може AMD претендувати на розробку 7-нм вузла, щоб
вивести лідерство від Intel, компанія мала передбачувати контракт з TSMC, щоб
отримати доступ до передової технології технологічного вузла. Ця перевага дає
AMD чудове кремнієве полотно для малювання його мікроархітектур, комбінацію,
яку Intel вважає неможливим перемогти своїми 14-нм чіпами.
Єдиною проблемою для AMD є виробничі потужності: Хоча AMD має
доступ до виробництва 7-нм, компанія не може забезпечити достатню кількість
кремнію з TSMC, принаймні, в найближчій перспективі, щоб відповідати
потужності невідомих виробників Intel. Це залишає AMD схильним до дефіциту
та потенційно обмежує проникнення на ринок. Це, мабуть, не має великого
значення, оскільки Intel вже не один рік відчуває дефіцит. Частково це пов'язано з
новими розробками AMD, які змушують компанію збільшити основні показники,
що, в свою чергу, зменшує кількість мікросхем, які Intel може виробляти в
поєднанні з 10-нм затримками, що створювало проблеми з прогнозуванням та
логістикою.
Intel вже п'ять років затримується на 14-нм для настільних процесорів.
Компанія викреслила дивовижну ефективність зі свого старого дизайну за
допомогою серії "+" оптимізацій. Тим не менше, цих вдосконалень недостатньо,
щоб Intel виграти битву процесорів AMD проти процесорних процесорів Intel.
Intel потребує гарного настільного чипа 10 нм або 7 нм, чим раніше, тим краще.
3.5 Архітектура Nvidia Isaac та Ampere. ПРИСКОРЕНА ПЛАТФОРМА
ДЛЯ РОБОТОТЕХНІКИ
Присутність роботів у повсякденному житті постійно збільшується: від
автоматизації процесів у промисловості до роботизованих рішень для доставки
«останньої милі». Однак, розробка промислової та комерційної робототехніки
може бути складною, трудомісткою та дорогою. У багатьох сценаріях
використання також поширені неструктуровані середовища. Платформа для
89
робототехніки NVIDIA Isaac™ пропонує комплексний набір інструментів для
вирішення цих проблем. Вона допомагає знизити витрати, спростити розробку та
прискорити виведення продукту на ринок. Isaac — відкрита платформа NVIDIA
для інтелектуальних роботів. Isaac SDK надає велику колекцію потужних GEM-
прискорених алгоритмів GEM для навігації та маніпуляцій. Isaac SDK Engine —
це платформа для легкого написання модульних додатків і розгортання їх на
справжньому роботі. Isaac SDK постачається з різними прикладами додатків від
базових зразків, які показують конкретні функції, до програм, які полегшують
використання складних робототехніки. Isaac SDK також працює рука об руку з
Isaac SIM, що дозволяє розробляти, тестувати та навчати роботів у віртуальному
середовищі.
Рисунок 3.31 — Мікропроцесор Nvidia Isaac
Локалізація Isaac VSLAM (попередня версія) пропонує найкращу в своєму
класі ефективність локалізації на основі бачення. Насправді, це найкращий
результат, коли дивитися на реалізації стереосистеми VSLAM в реальному часі на
основі загальнодоступних результатів з використанням бази даних KITTI.
Розробники, зацікавлені в дослідженні переваг візуальної локалізації, можуть
розпочати роботу в Isaac Sim або на роботі NVIDIA Carter.
90
Рисунок 3.32 — Навчання робота
Описані як «суперкомп’ютери з штучним інтелектом розміром з кредитну
картку», ці модулі підходять для швидкого виконання вашого проекту, незалежно
від того, чи займаєтеся ви академічними чи комерційними дослідженнями, чи
навіть для ваших особистих проектів. NVIDIA вклала багато енергії в ці маленькі
машини, і оскільки система така недорога в порівнянні з більшістю комп’ютерів,
здатних забезпечувати проекти штучного інтелекту
Рисунок 3.33 — Модуль Jetson TX2 з Jackal UGV
91
Нещодавно Clearpath співпрацює з NVIDIA, щоб поєднати модуль Jetson
TX2 з Jackal UGV, створивши пакет роботизованих систем, який дозволяє
користувачам випробувати комп’ютерне ракетне паливо, упаковане в Jetson, із
середовищем з відкритим вихідним кодом Robot Operating System (ROS). все це
всередині маленького та швидкого робота з можливістю роботи в приміщенні/на
вулиці та з широкими можливостями налаштування. Інформація про цей пакет є в
списку доступних пакетів Jackal UGV.
Це може статися завдяки пакету SDK NVIDIA JetPack. Якщо ви не знайомі з
екосистемою NVIDIA, JetPack об’єднує своє програмне забезпечення в акуратний
і акуратний пакет, включаючи: TensorRT, набір інструментів CUDA, OpenCV тощо.
Все це встановлюється поверх Ubuntu 16.04 (на основі Linux), що є ключем до
легкої інсталяції ROS на Jetson і нехай це буде мозок вашого робота.
Після тестування та розгортання Jetson на Jackal, NVIDIA зробила Jackal
UGV однією з платформ «Швидкий старт» для розробки з Jetson. Як зазначає
NVIDIA, «розробники можуть використовувати ці апаратні платформи, щоб
прискорити розробку додатків AI, мінімізуючи час, витрачений на початкову
збірку обладнання. Ці платформи пропонують гнучкість для додавання
додаткових датчиків і мають програмні інструменти та API для розробки додатків
з підтримкою AI».
Рисунок 3.34 — NVIDIA Jetson AGX Orin
GTC—NVIDIA представила NVIDIA Jetson AGX Orin™, найменший,
найпотужніший та енергоефективний суперкомп’ютер зі штучним інтелектом у
світі для робототехніки, автономних машин, медичних пристроїв та інших форм
вбудованих обчислень на периферії.
92
Побудований на архітектурі NVIDIA Ampere, Jetson AGX Orin забезпечує в 6
разів більшу обчислювальну потужність і підтримує форм-фактор і сумісність
контактів зі своїм попередником Jetson AGX Xavier™. Він забезпечує 200
трильйонів операцій в секунду, подібно до серверів із підтримкою графічного
процесора, але розміром, який поміщається у вашій долоні.
Новий комп’ютер Jetson прискорює повний набір програмного забезпечення
NVIDIA AI, дозволяючи розробникам розгортати найбільші та найскладніші
моделі, необхідні для вирішення передових проблем штучного інтелекту та
робототехніки в розумінні природної мови, сприйнятті 3D, об’єднанні
мультисенсорів тощо.
«Оскільки робототехніка та вбудовані обчислення перетворюють
виробництво, охорону здоров’я, роздрібну торгівлю, транспорт, розумні міста та
інші важливі сектори економіки, попит на обробку продовжує зростати», – сказав
Діпу Талла, віце-президент і генеральний менеджер з вбудованих і граничних
обчислень у NVIDIA. . «Jetson AGX Orin задовольнить цю потребу, дозволяючи
850 000 розробників Jetson і понад 6 000 компаніям, які створюють комерційні
продукти на ньому, створювати та розгортати автономні машини та додатки з
штучним інтелектом, які колись здавалися неможливими».
Jetson AGX Orin оснащено графічним процесором з архітектурою NVIDIA
Ampere і процесорами Arm Cortex-A78AE, а також прискорювачами глибокого
навчання та зору нового покоління. Високошвидкісні інтерфейси, швидша
пропускна здатність пам’яті та підтримка мультимодальних датчиків
забезпечують можливість живлення кількох одночасних конвеєрів додатків AI.
Клієнти, які використовують Jetson AGX Orin, можуть використовувати
прискорений обчислювальний стек NVIDIA CUDA-X™, пакет SDK NVIDIA
JetPack™ та найновіші інструменти NVIDIA для розробки та оптимізації додатків,
включаючи робочі процеси розробки в хмарі. Попередньо підготовлені моделі з
каталогу NVIDIA NGC™ оптимізовані та готові до тонкого налаштування за
допомогою набору інструментів NVIDIA TAO та наборів даних клієнтів. Це
скорочує час і витрати на розгортання штучного інтелекту високої якості, а хмарні
технології дозволяють безперебійно оновлюватися протягом усього терміну
служби продукту.
Партнерська екосистема вбудованих обчислень Jetson охоплює широкий
спектр послуг і продуктів, включаючи камери та інші мультимодальні датчики,
93
плати-несучі, послуги проектування апаратного забезпечення, AI та системне
програмне забезпечення, інструменти розробника та розробку програмного
забезпечення на замовлення.
«Розвиток роботи у сфері штучного інтелекту, ринок робототехніки зростає
в геометричній прогресії», – сказав Джим МакГрегор, головний аналітик TIRIAS
Research. «NVIDIA є визнаним лідером у сфері штучного інтелекту і продовжує
використовувати цей досвід для просування робототехніки за допомогою надійної
екосистеми та повних комплексних рішень, включаючи ряд апаратних платформ,
які використовують звичайні інструменти та моделі нейронних мереж. Нова
платформа Jetson забезпечує продуктивність і універсальність архітектури
NVIDIA Ampere, щоб забезпечити ще більший прогрес у автономних мобільних
роботах для широкого кола застосувань, починаючи від сільського господарства та
виробництва до охорони здоров’я та розумних міст».
Для конкретних випадків використання програмні рамки включають
NVIDIA Isaac Sim™ на Omniverse для робототехніки, NVIDIA Clara Holoscan™
SDK для охорони здоров’я та NVIDIA DRIVE™ для автономного водіння.
Останній випуск Isaac включає значну підтримку спільноти розробників
операційної системи роботів (ROS). NVIDIA також випустила новий реплікатор
Omniverse для генерації синтетичних даних і Isaac GEM, пакети програмного
забезпечення з апаратним прискоренням, які полегшують розробникам ROS
створення високопродуктивних роботів із підтримкою штучного інтелекту на
платформі Jetson.
NVIDIA AGX Orin підтримує NVIDIA Clara Holoscan, нову обчислювальну
платформу для індустрії охорони здоров’я, яка дозволяє розробникам створювати
програмно визначені медичні пристрої, які запускають потокові програми з
низькою затримкою на периферії. Ця обчислювальна потужність необхідна для
таких пристроїв, як роботизована хірургія, ендоскопія та системи діагностики,
щоб обробляти фізику, зображення та візуалізацію, а також забезпечувати
підтримку лікарів у режимі штучного інтелекту в реальному часі. Clara Holoscan
надає розробникам гнучку платформу для створення мікросервісів AI, які
запускають потокові програми з низькою затримкою на пристроях, передаючи
більш складні завдання в центр обробки даних.
DRIVE AGX Orin, який також працює на архітектурі NVIDIA Ampere, як-от
Jetson AGX Orin, є платформою вибору для транспортної галузі. Це
94
вдосконалений процесор, що лежить в основі нещодавно анонсованих NVIDIA
DRIVE Concierge і DRIVE Chauffeur — двох платформ штучного інтелекту,
призначених для перевизначення досвіду пасажирів у салоні автомобіля за
допомогою штучного інтелекту та забезпечення безпечного та автономного
водіння відповідно. Численні світові виробники автомобілів і вантажівок,
стартапи нових енергетичних транспортних засобів і компанії-шаттли
використовують його високопродуктивний AI для свого наступного покоління
інтелектуальних програмно-визначених мобільних рішень.
Роботи створюють нову ефективність і покращують якість життя за
допомогою таких галузей, як виробництво, логістика, охорона здоров’я та
обслуговування. NVIDIA Isaac™ прискорює процес завдяки розширеній розробці,
моделюванню та розгортанню робототехніки.
Завдяки DNN Inference GEM розробники ROS тепер можуть
використовувати будь-яку з моделей висновку Nvidia, доступних в NGC, або
можуть запропонувати власні DNN. TensorRT або Triton, сервери висновку Nvidia,
розгорнуть ці оптимізовані пакети. GEM також сумісний з U-Net і DOPE. U-Net
допомагає генерувати маски семантичної сегментації із зображень, тоді як DOPE
допомагає оцінювати тривимірні пози для всіх виявлених об’єктів. Якщо ви
прагнете інтегрувати ефективний висновок AI в програму ROS, GMM виведення
DNN є однією з найшвидших альтернатив, які ви можете отримати.
3.6 Висновки
У цьому розділі було дослдіженно такі архітектури, як Pascal, Amper та
комплекту розробника Jetson TX2 від NVIDIA та його архітектури Isaac. Також
порівняли деякі критичні показники між архітетурами Pascal та Amper.
Дослідження показало, що архітектура Ampere, дозволяє розробнику розширити
кількість технологій обробки зображення, що дає велику перевагу над
конкурентами.
95
ВИСНОВКИ
У випускній кваліфікаційній роботі розв’язано актуальну науково технічну
проблемну задачу підвищення ефективності порівняльного аналізу за рахунок
методу об’єктивного оцінювання багатопараметричних моделей мікроархітектур
центральних процесорів.
Основні наукові і практичні результати полягають у наступному:
- Проведено аналіз архітектур CPU та GPU різних фірм-виробників,
розроблені реляційні моделі даних CPU та GPU, що дозволило
зменшити час проектувальнику на визначення кращої архітектури
процесорів CPU та GPU.
- Проведено порівняльний аналіз математичних моделей, які
використовуються у центральних процесорів, що забезпечило
визначити напрямок розширення функціональних можливостей
архітектури процесорів CPU та GPU.
- Синтезовано архітектури CPU та GPU в єдиному кристалі, що
забезпечило підвищення апаратурної надійності.
Практична цінність результатів полягає у доведені отриманих наукових
результатів до конкретних інженерних рішень:
– розроблено алгоритм визначення кращої архітектури
мікропроцесорів CPU та GPU за відповідними параметрами, що зменшую
час пошуку при проектуванні;
– проведено аналіз топології архітектур CPU та GPU різних фірм-
виробників, які показали що широко використовуються техпроцеси,
мінімальні розміри якого дорівнюють 7нм. Це забезпечує розширення
функціональних можливостей на кристалі та збільшити процент виходу
придатних кристалів з пластини.
96
Отримані наукові і практичні результати впровадженні в учений процес
кафедри РСКС ЧДТУ
97
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. M. Guilbert, L. Joly, and P.-B. Wieber, “Optimization of complex robot
applications under real physical limitations,” The International Journal of
Robotics Research, vol. 27, no. 5, pp. 629–644, 2008.
2. S. Lengagne, J. Vaillant, E. Yoshida, and A. Kheddar, “Generation of Whole-body
Optimal Dynamic Multi-Contact Motions,” International Journal of Robotics
Research, vol. 32, no. 9-10, pp. 1104–1119, Apr. 2013.
3. B. Chretien, A. Escande, and A. Kheddar, “Continuously satisfying constraints
with contact forces in trajectory optimization for humanoid robots,” in IEEE/RSJ
International Conference on Intelligent Robots and Systems, 2015.
4. S. Lengagne, N. Ramdani, and P. Fraisse, “Guaranteed computation of constraints
for safe path planning,” 2007 7th IEEE-RAS International Conference on
Humanoid Robots, 2007.
5. G. Kozikowski and B. Kubica, “Interval Arithmetic and Automatic
Differentiation on GPU Using OpenCL,” in Applied Parallel and Scientific
Computing, ser. Lecture Notes in Computer Science, P. Manninen and P. Oster,
Eds. Springer Berlin Heidelberg, 2013, ¨ vol. 7782, pp. 489–503
6. Сурмин Ю.П. Теория систем и системный анализ: Учеб. пособие. – К.:
МАУП, 2016. – 368 с.
7. E. Smith, J. Gondzio, and J. Hall, “GPU Acceleration of the MatrixFree Interior
Point Method,” in Parallel Processing and Applied Mathematics. Springer, 2012,
pp. 681–689.
8. R. Featherstone, “A divide-and-conquer articulated-body algorithm for parallel
O(log(n)) calculation of rigid-body dynamics. part 1: Basic algorithm,” The
International Journal of Robotics Research, vol. 18, no. 9, pp. 867–875, Sep. 1999
9. J. Pan and D. Manocha, “GPU-based parallel collision detection for fast motion
planning,” The International Journal of Robotics Research, vol. 31, no. 2, pp.
187–200, 2012.
98
10. H. Wong, M.-M. Papadopoulou, M. Sadooghi-Alvandi, and A. Moshovos,
“Demystifying GPU microarchitecture through microbenchmarking,” in IEEE
International Symposium on Performance Analysis of Systems & Software, Mar.
2010, pp. 235–246
11. "History of Processor Performance" (PDF). cs.columbia.edu. 24 April 2012.
Retrieved 5 May 2017.
12. N. Bell and M. Garland, “Efficient Sparse Matrix-Vector Multiplication on
CUDA,” Nvidia Technical Report, pp. 1–32, 2008.