Невідворотність проникнення FPGA в дата-центри

Невідворотність проникнення FPGA в дата-центри
Не потрібно бути розробником чіпів, щоб програмувати для FPGA, як не потрібно бути програмістом С++, щоб писати код на Java. Однак в обох випадках, ймовірно, це буде не зайвим.

Мета комерціалізації обох технологій, Java та FPGA, у тому, щоб спростувати останню заяву. Хороші новини для FPGA – з використанням відповідних рівнів абстракції та набору інструментів в останні 35 років, відколи було винайдено програмований логічний пристрій, створювати алгоритми та потоки даних для FPGA замість CPU, DSP, GPU або будь-якої іншої форми спеціальних ASIC стає все легше.

Дивовижна своєчасність їх створення проявляється в тому, що саме коли CPU вже не могли залишатися єдиним обчислювальним модулем дата-центрів для виконання безлічі завдань – з різних причин – FPGA досягли своєї ефективності, запропонувавши швидкодію, малу затримку, мережеві можливості та пам'ять – різноманітні. обчислювальні можливості сучасних FPGA SoC, що є практично повноцінними обчислювальними системами. Однак FPGA вдало поєднуються і з іншими пристроями в гібридних системах, і, на нашу думку, тільки-но починають знаходити своє законне місце в ієрархії обчислень.

Тому ми організували конференцію The Next FPGA Platform у Сан-Хосі 22 січня. Природно, одним із головних постачальників FPGA у світі та піонером у цій галузі є компанія Xilinx. Іво Больсенс, старший віце-проезидент і технічний директор Xilinx, виступив на конференції з доповіддю, і розповів нам про свої сьогоднішні думки, пов'язані з тим, як Xilinx допомагає створювати змінні обчислювальні системи для дата-центрів.

У системних архітекторів і програмістів пішло достатньо часу, щоб дійти неоднорідного дата-центру, в якому будуть представлені комп'ютерні потужності різного роду, вирішальні завдання з обчислень, зберігання та організації мереж. Це здається необхідним у зв'язку з тим, що слідувати за законом Мура з використанням різних КМОП стає все важче. Поки наша мова все ще зав'язана на CPU, і ми все ще говоримо про «прискорення додатків», маючи на увазі покращення роботи програм порівняно з тим, що можна зробити лише на одному CPU. Через деякий час дата-центри перетворяться на набори обчислювальних потужностей, сховищ даних і протоколів, що пов'язують все воєдино, і ми повернемося до таких термінів, як «обчислення» і «додатки». Гібридні обчислення стануть такою самою нормою, як сьогоднішні «хмарні» сервіси, що працюють на основі звичайних або віртуальних машин, і в якийсь момент ми використовуватимемо просто слово «обчислення» для опису їхньої роботи. У якийсь момент – і, ймовірно, наступу цієї ери активно сприяють FPGA – ми знову називатимемо це обробкою даних.

Для впровадження FPGA в дата-центри потрібно змінити спосіб мислення. «Розмірковуючи про засоби прискорення сьогоднішніх додатків, доводиться докопуватися до основ того, як вони виконуються, які використовуються ресурси, на що йде час, — пояснює Болсенс. – Потрібно вивчати спільну проблему, яку ви намагаєтесь вирішити. Багато програм, що працюють у дата-центрах сьогодні, масштабуються, захоплюючи велику кількість ресурсів. Візьмемо, наприклад, машинне навчання, що використовує безліч обчислювальних вузлів. Але говорячи про прискорення, треба думати не лише про прискорення обчислень, а й про прискорення інфраструктури».

Наприклад, при тих операціях, пов'язаних з машинним навчанням, які Болсенс вивчав на практиці, приблизно 50% часу витрачається на передачу даних туди і сюди між розкиданими обчислювальними потужностями, і половина часу, що залишилася, витрачається на самі обчислення.

Саме тут, мені здається, і зможе допомогти FPGA, оскільки ми можемо забезпечити оптимізацію як обчислювальних аспектів, так і аспектів передачі даних для додатка. І ми можемо робити це на рівні загальної інфраструктури та на рівні чіпа. Це одна з великих переваг FPGA, що дозволяють створювати мережі зв'язку під конкретні потреби програми. Спостерігаючи за типовими закономірностями переміщення даних у завданнях, пов'язаних із роботою штучного інтелекту, я не бачу потреби у складній архітектурі на основі комутаторів. Можна побудувати мережу із великим потоком даних. Те саме стосується і завдань навчання нейромереж – можна побудувати мережу з розмірами пакетів, що підлаштовуються під конкретне завдання. З використанням FPGA можна дуже точно масштабувати та підлаштовувати протоколи передачі даних та топологію схеми для конкретної програми. А у випадку з машинним навчанням також ясно, що нам не потрібні числа з плаваючою комою подвійної точності, і це ми теж можемо підлаштувати».

Різниця між FPGA і CPU або спеціалізованою ASIC у тому, що останні програмуються при виробництві, і після цього ви вже не можете передумати щодо типів обчислюваних даних або обчислюваних елементів, або щодо природи потоку даних, що йдуть через пристрій. FPGA дозволяють передумати, якщо зміниться умови роботи.

У минулому ця перевага коштувала дорого, коли програмування під FPGA було призначене не для слабких духом. Потрібно відкрити компілятори для FPGA, щоб вони краще інтегрувалися з інструментами, використовуваними програмістами для створення програм з паралельними обчисленнями для CPU мовами C, C++ або Python, і віддати частину роботи бібліотекам, які прискорюють процедури на FPGA. Цим і займається стек для машинного навчання Vitis, що знаходиться в основі таких платформ для МО, як Caffe та TensorFlow, і має бібліотеки для запуску звичайних ІІ-моделей або додавання можливостей FPGA до таких завдань, як перекодування відео, розпізнавання об'єктів на відео, аналіз даних , управління фінансовими ризиками та будь-якими сторонніми бібліотеками.

Ця концепція не сильно відрізняється від проекту CUDA від Nvidia, запущеного десять років тому, і перекладає паралельні обчислення на GPU-прискорювачі, або від набору інструментів ROCm від AMD, або від обіцянок проекту Intel, OneAPI, який має працювати на різних CPU, GPU та FPGA.

Питання лише в тому, як усі ці інструменти будуть пов'язані разом, щоб будь-яка людина змогла запрограмувати набір обчислювальних потужностей на власний розсуд. Це важливо тому, що FPGA стали складнішими, набагато складнішими за будь-який з наявних CPU. Їх виготовляють із найбільш передовими технологічними процесами та за допомогою найбільш сучасних технологій упаковки чіпів. І вони знайдуть свою нішу, оскільки ми вже більше не можемо даремно витрачати час, гроші, енергію та інтелект – все це надто дорогі ресурси.

«FPGA пропонує технологічні переваги, – каже Болсенс. – І це не просто звичайна реклама щодо адаптованості та переналаштовуваності. У всіх важливих додатках – машинне навчання, аналіз графів, високошвидкісна торгівля тощо. – вони мають можливість адаптувати до конкретної задачі як шлях поширення даних, а й архітектуру пам'яті – те, як дані переміщаються у межах чіпа. А ще в FPGA вбудовано набагато більше пам'яті, ніж інші пристрої. Також слід врахувати, що якщо завдання не вміщається в один FPGA, можна масштабувати її на кілька чіпів, не стикаючись з тими недоліками, які чекають на вас при масштабуванні завдань на кілька CPU або GPU».

Джерело: habr.com

Додати коментар або відгук