Характеристики новітніх ПЛІС
Виклав у своїй статті Kevin Morris
Недавно фірма Intel оголосила, що розпочала поставки нових ПЛІС серії Agilex. Її конкурент фірма Xilinx поставила свої перші ПЛІС серії Versal ACAP ще в червні. Ще одна передова фірма Achronix стверджує, що до кінця цього року вона зможе поставити перші зразки своїх нових ПЛІС Speedster 7t. Для розробників апаратури це означає, що до кінця року на вибір буде запропоновано три добре диференційовані пропозиції ПЛІС високого класу, які виготовляються за передовою технологією та з інтригуючими унікальними особливостями та можливостями.
Останнім часом нарощують темпи поширення системи зв’язку покоління 5G. Причому перші системи 5G побудовані на програмованій логіці попереднього покоління. ПЛІС нового покоління дадуть поштовх ще більшому поширенню покоління 5G. Вже зараз, якщо хтось користується мобільним телефоном, то з ймовірністю 99% його сигнал пройде через кілька ПЛІС мережі стільникового зв’язку. При впровадженні покоління 5G вплив ПЛІС буде ще більшим.
Аналогічно поширюється впровадження ПЛІС в системах штучного інтелекту, ринок яких зростатиме протягом наступних кількох років. Кожен із вказаних постачальників ПЛІС дає зрозуміти, що захоплення цього ринку для прискорення штучного інтелекту є пріоритетним завданням, і всі вони створили свої нові чіпи з підтримкою цієї ідеї. Поєднання цих факторів дозволило цим трьом компаніям жорстоко конкурувати як на фронтах освоєння зв’язку 5-го покоління, так і штучного інтелекту.
Розглянемо іновації, які застосовані в нових ПЛІС.
Сімейства ПЛІС Xilinx та Achronix FPGA виготовляються за технологією TSMC 7nm, а ПЛІС Intel Agilex, які мають подібні характеристики, виготовляються за технологією Intel 10nm. Але відношення 7/10 тут не є суттєвим. За міркуваннями автора, технології TSMC 7nm та Intel 10nm дають еквівалентні результати, з чим згодні самі виробники. Це пояснюється давньою перевагою Intel у якості технологічних процесів, особливо коли проектні норми стали такими, які спростовують дію закону Мура.
Усі три постачальники отримують невеликий приріст ефективності від переходу до останніх проектних норм напівпровідникового процесу. Цей перехід не відповідає історичним стандартам закону Мура, бо додаткові переваги від кожного нового оновлення технологічного процесу постійно зменшуються протягом останніх кількох кроків оновлення.
Раніше кожен новий крок оновлення технології приносив більшу щільність транзисторів, кращі показники швидкодії та менше енергоспоживання завдяки зменшенню розміру транзистора. Зараз постачальники ПЛІС часто мають менше покращення навіть за показниками, яким вони надають перевагу. У той же час неодноразові витрати на перехід до нового технологічного покоління продовжили свій експоненціальний підйом. Це означає, що ставки для компаній- постачальників ПЛІС різко зросли, оскільки від них вимагається постійне збільшення інвестування, жертвуючи прибутками, щоб залишатися конкурентоспроможними. Це також означає, що ми вступаємо в епоху, коли архітектура та особливості самих ПЛІС, інструменти, які використовуються для того, щоб вони працювали, та маркетингові стратегії трьох компаній стануть ключовими факторами, а не терміни, що визначають, коли хто почне запуск нового техпроцесу.
Вважаючи, що рівень техпроцесу не є визначальним, розглянемо можливості та особливості пропозиції кожного постачальника ПЛІС. Почнемо з основної функції ПЛІС — реалізації логічних таблиць (LUT). Ми часто нарікаємо на те, що кожна компанія по-різному рахує складність LUT, і ця гра стає ще складнішою з кожним поколінням мікросхем. Xilinx і Achronix на даний час використовують 6-входові LUT, а модулі ALM Intel — це по суті 8-входові LUT. Постачальники ПЛІС, загалом, погоджуються, що можна перетворити складність цих LUT в розрахунку на складність 4-входових LUT. Тоді одержуються коефіцієнти 2,2 LUT4 на одну LUT6 та 2,99 LUT4 на одну LUT8.
Використовуючи ці відношення, ємність ПЛІС Achronix Speedster 7t варіюється від 363K до 2.6M LUT6 (еквівалентно 800K-5.76M LUT4), Intel Agilex мають 132K-912K ALM (у перерахунку — 395K-2.7M LUT4) , а також сімейство Versal Xalinx має близько 246K-984K CLB (у перекладі — 541K-2.2M еквівалентних LUT4).
Кожен постачальник заявляє, що його архітектура є кращою, підкреслюючи особливості розробки, а також те, що вони можуть підвищити логічну щільність, продуктивність або покращити маршрутизацію в певних конкретних програмах або конфігураціях. На даний момент є незрозумілим, чи ресурси LUT певного постачальника значно перевершують ресурси будь-якого іншого.
Однак, складність схеми, яку можна виконати в ПЛІС, лише частково визначається кількістю LUT. Необхідно також враховувати складність фактичного використання значущого відсотка цих LUT (що залежить від інших факторів, в т.ч. від можливостей інструментів для проектування).
Основна причина того, що ПЛІС підходить для реалізації штучного інтелекту — це велика кількість арифметичних операцій у алгоритмі (в основному множення з накопичуванням), які можна виконати паралельно, завдяки великим масивам блоків DSP в ПЛІС. Вони дають змогу ПЛІС виконувати матричні операції, такі як згортка, набагато ефективніше, ніж звичайні процесори фон Неймана.
З цієї точки зору, в ПЛІС Achronix знаходяться 41K блоків множення int-8 або 82K блоків int-4. ПЛІС Intel Agilex має 2K-17K блоків множення 18×19, а в ПЛІС Xilinx Versal — близько 500-3K блоків множення, які, мабуть, є частинами блоків DSP58 на основі помножувачів 27×24 і нових апаратних можливостей арифметики з плаваючою комою. Це порівняння, безумовно, таке як порівняння “яблук з апельсинами” і воно повинно бути деяким “застереженням” щодо того, які ПЛІС варто вибирати.
Усі три постачальники тепер пропонують посилену підтримку плаваючої коми. Achronix має абсолютно нову архітектуру для своїх блоків DSP, яку вони називають “процесорами машинного навчання” (MLP). Кожен MLP містить до 32 помножувачів/акумуляторів (MAC), які працюють з 4 – 24-розрядними цілими числами та різні режими з плаваючою комою, включаючи вбудовану підтримку формату Bfloat16 Tensorflow. Найголовніше, що MLP-пари Achronix розміщені рядом з блоками пам’яті, що дає змогу виконувати операції MAC на тактовій частоті 750 МГц, не маючи затримки очікування зчитування пам’яті через затримки у лініях зв’язку.
Intel також використовує блоки DSP зі змінною точністю з апаратною підтримкою плаваючої коми (фактично так, як вона пропонувала раніше у своїх ПЛІС). Підтримка Intel плаваючої коми у ПЛІС – чи не найширша та найзріліша серед цих трьох постачальників. Agilex представила два нових режими з плаваючою комою – звичайна плаваюча кома (FP16) та поблочно-плаваюча кома (Bfloat16), і ще спеціалісти фірми зробили архітектурні налаштування, щоб підвищити ефективність операцій DSP.
Xilinx оновила свої попередні блоки DSP48 до DSP58 імовірно, тому, що тепер додана апаратна реалізація плаваючої коми, а розрядність їх множників збільшена до 27×24. Отже, з цими поколіннями інші два виробники приєдналися до Intel, пропонуючи апаратну підтримку плаваючої коми. Це є переворотом для Xilinx, яка раніше стверджувала, що підтримка операцій з плаваючою комою в ПЛІС була поганою ідеєю, оскільки плаваюча кома у задачах штучного інтелекту, в основному, використовується для тренувань нейронної мережі, а ПЛІС орієнтуються, в першу чергу, на прийняття рішень.
Що стосується наявних форматів з плаваючою комою, формат FP32 підтримується у ПЛІС Versal (з кількістю блоків множення до 2,1 К) та Agilex (до 8,7 К помножувачів). Формат половинної точності (FP16) підтримується всіма трьома сімействами: Versal з кількістю помножувачів до 2,1 К, Agilex з кількістю помножувачів до 17,1 К і Speedster з кількістю помножувачів до 5,1 К. Формат Bfloat16 підтримується у Agilex (до 17,1К) та Speedster (до 5,1 К). Для формату FP24, Versal та Agilex, імовірно, використовують блоки з форматом FP32, а в Speedster є до 2,6 К таких блоків. Achronix Speedster також підтримує до 81,9K блоків множення з поблочно-плаваючою комою.
Xilinx також пропонує новий програмно-керований векторний процесор – матрицю що містить до 400 VLIW-SIMD векторних ядер із високою швидкодією та близько розташованою пам’яттю, які працюють на частоті вищій за 1 ГГц. Вони представляють набагато простішу модель програмування для паралельного виконання складних векторних операцій та використання великих обчислювальних ресурсів ПЛІС. Загалом, це показує стратегію Xilinx рівнятись на архітектури графічних акселераторів GPU.
У відповідь на модулі MLP від Achronix і векторний процесор від Xilinx фірма Intel пропонує еволюцію архітектур старої школи. Вона зазначає, що її старі блоки Agilex DSP досягають тієї самої функціональності, що й нові модулі DSP інших виробників, завдяки використанню встановленої та добре зрозумілої технології проектування ПЛІС, і не вимагаючи від розробників ручного розподілу операцій алгоритму серед різних апаратних блоків ПЛІС. Така стратегія виграшна, якщо розробники є вправними у проектуванні на рівні RTL. Але якщо команда розробників складається з програмістів, які програмують алгоритми DSP, тоді підхід Xilinx на основі компіляції програм може мати переваги.
Крім простого підрахунку кількості блоків множення, можна також порівняти можливості ПЛІС щодо загальних показників продуктивності. Але слід мати на увазі, що ці показники є грубо перебільшеними і їх важко визначити точно. Зазвичай продавці одержують цифри продуктивності, помноживши кількість блоків множення у мікросхемі на максимальну робочу тактову частоту цих блоків, щоб запропонувати значення «до XX TOPS (тераоперацій за секунду) або TFLOPS». Вочевидь, жоден реальний проект не використовуватиме 100% доступних блоків множення, жоден з них не зможе досягти максимальної теоретичної тактової частоти цих блоків, жоден не зможе забезпечити подачу на ці блоки потоків даних з відповідною швидкістю та розрядністю. Іншими словами, це жахлива метрика, але це найкращий показник, який можна порівнювати.
Для більш-менш реальної оцінки, слід розраховувати, що ПЛІС може реально досягти чогось на кшталт 50-90% свого теоретичного максимуму в реальних проектах. Це значно краще, ніж, наприклад, GPU, які, як вважають, здатні за продуктивністю досягати лише 10-20% свого теоретичного максимуму в реальному світі.
Екстраполюючи кількість TOPS для формату операцій int8, Xilinx Versal очолює рекордний список з приблизно 171 TOPS. Ця сума складається з 133 TOPS їх векторного процесора, 12 TOPS з їх блоків DSP і 26 TOPS, що можуть дати їх логічні схеми.
Speedster видає приблизно 86 TOPS, включаючи 61 TOPS з їх MLP та 25 TOPS з їх конфігурованої логіки. Agilex дає 92 int8 TOPS, включаючи 51 TOPS з DSP-блоків і 41 TOPS з конфігурованої логіки.
Якщо розраховувати операції з плаваючою комою, то у форматі bfloat16, Agilex лідирує з її 40 ТFLOPS, Versal її наслідує з 9 ТFLOPS, а Speedster дає 8 ТFLOPS. Speedster отримує велику перевагу для поблочно-плаваючої коми і має для неї 123 ТFLOPS, далі слідує Agilex з 41 ТFLOPS та Versal з 15 ТFLOPS.
Усі ці цифри отримані з власних таблиць даних компаній і, як вже відмічалось, є теоретичними максимумами, які навряд чи можна досягти в практичних проектах. Модулі компанії Achronix мають певні переваги, оскільки їх MLP – це унікальна конструкція, у якій операції множення з змінною точністю реалізуються в самому блоці на максимальній тактовій частоті без залучення додаткової конфігурованої логіки. Аналогічно, архітектура векторних процесорів Xilinx дає ефективну обробку даних, підтримуючи конвеєрний принцип обробки. Зважаючи на це, щоб точніше порівнювати ПЛІС необхідно мати реалізації якогось значущого еталонного проекту, який зможе довести чи спростувати цифри продуктивності, які пред’являє фірма.
Звичайно, використання всіх цих LUT і блоків множення вимагає, щоб у проекті користувача фактично відбулось розміщення блоків, прокладання маршрутів зв’язків та досягались відповідні затримки у вибраній ПЛІС. По мірі зростання об’єму ПЛІС ця задача стає все більш важкою. Однобітні мережі та логічні шляхи, що розгортаються на великій площі кристалу з обмеженими ресурсами маршрутизації, роблять кошмарною традиційну оптимізацію за затримками. Поступово звичайні методи оптимізації затримок у синхронних проектах уперлись у стіну і втратили можливість масштабуватися.
Як Xilinx, так і Achronix вирішили цю проблему в новому поколінні своїх ПЛІС, вбудувавши мережу на кристалі (NoC), що прокладена над традиційною логікою та системою маршрутизації. NoC суттєво змінює правила гри, оскільки для кристалу вцілому більше не потрібно домагатися оптимізації затримок. Тепер менші синхронні частини проекту можуть передавати дані через NoC, знімаючи навантаження на традиційну систему маршрутизації та розкладаючи складну задачу автоматизованої оптимізації, на менші, більш керовані частини.
А фірма Intel ще раніше почала застосовувати підхід до керування затримками, пронизуючи всю площину логічних таблиць множиною мікротригерів під назвою «HyperFlex registers». Ці тригери дають змогу виконувати логічні шляхи довшими, складнішими, зробити ресинхронізацію та конвеєризацію, завдяки чому загальний проект стає по суті асинхронним. Цікаво, що майже такий самий ефект дають NoC, які використовують Xilinx та Achronix.
З кожним з цих підходів виникають проблеми, оскільки обидва додають значну складність до проектування мікросхем та до інструментів проектування. У випадку Intel також повідомляється, що регістри HyperFlex чинять негативний вплив на загальну продуктивність, яку можна досягти за допомогою логічних таблиць. Intel каже, що архітектура HyperFlex в ПЛІС Agilex є другим поколінням і має вдосконалення в порівнянні з архітектурою HyperFlex попереднього покоління, щоб поліпшити продуктивність і зменшити тривалість оптимізації.
Achronix стверджує, що має найшвидшу NoC з їх двовимірною реалізацією інтерфейсу AXI. Кожен рядок або стовпець у NoC реалізований як два 256-розрядних однонаправлених канали AXI, що працюють на частоті 2 ГГц, одночасно передаючи 512 Гбіт/с даних у кожному напрямку. Мережа на кристалі ПЛІС Speedster має загалом 197 порталів приєднання до магістралей, які дають загальну пропускну здатність 27 Тбіт/с, суттєво розвантажуючи ресурси маршрутизації логіки.
Пропускна здатність мережі Versal у ПЛІС Xilinx не публікується, але вважаючи, що вона має приблизно 28 порталів, можна передбачити, що пропускна здатність складає близько 1,5 Тбіт/с.
Отже, маємо наступні висновки.
— Потреба вирішення задач штучного інтелекту в нейронних мережах штовхає фірми-виготівники ПЛІС на збільшення в них обчислювальних ресурсів до рекордних значень. Апаратна підтримка арифметики з плаваючою комою стає обов’язковою.
— Надмірні обчислювальні ресурси призводять до суттєвого погіршення результатів їх розміщення та трасування на кристалі. З метою вирішення цієї проблеми реалізуються мережі на кристалі (NoC) зі спрощенням традиційних засобів трасування зв’язків ПЛІС, завдяки чому розміщення та трасування виконується над невеликими кластерами, розміщення яких на кристалі стає довільним. Така архітектура узгоджується з алгоритмами нейронних мереж, які потребують, щоб штучні нейрони паралельно взаємодіяли з якомога більшою кількістю своїх сусідів.
— Рекордні ПЛІС виготовляються за найпередовішою технологією. Але через надмірні обсяги ресурсів вони мають рекордну ціну (десятки тисяч дол.), яка через гальмування закону Мура не буде суттєво зменшуватись у майбутньому.
— Ефективність використання ресурсів ПЛІС, їх розміщення та трасування суттєво залежить від інтелектуального рівня САПР, які займаються вирішенням цих задач, а також від самих алгоритмів, які реалізуються, тобто, від алгоритмів штучного інтелекту.