Характеристики новейших ПЛИС
Изложил в своей статье 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) с упрощением традиционных средств трассировки связей ПЛИС, благодаря чему размещение и трассировка выполняется над небольшими кластерами, размещение которых на кристалле становится произвольным. Такая архитектура согласуется с алгоритмами нейронных сетей, требующих, чтобы искусственные нейроны параллельно взаимодействовали с как можно большим количеством своих соседей.
— Рекордные ПЛИС изготавливаются по самой передовой технологии. Но из-за чрезмерных объемов ресурсов их цена тоже рекордна (десятки тысяч долл.) и, по причине торможения закона Мура, не будет серьезно уменьшаться в будущем.
— Эффективность использования ресурсов ПЛИС, их размещения и трассировки значительно зависит от интеллектуального уровня САПР, которые занимаются решением этих задач, а также от самих алгоритмов, которые реализуются, то есть, от алгоритмов искусственного интеллекта.