Нордавинд
Компания
41,91
рейтинг
21 июня 2014 в 12:11

Разработка → Intel собирается выпустить серверные процессоры Xeon со встроенной FPGA


Восьмиядерный процессор Xeon

Корпорация Intel планирует включить в состав своих чипов Xeon программируемую пользователем вентильную матрицу (FPGA). FPGA позволяет пользователю переконфигурировать логику работы интегральной схемы, оптимизировав её под решение конкретной задачи. Это позволяет ускорить некоторые вычисления на порядок, или намного снизить энергопотребление. Другими словами, это позволит каждому пользователю создавать на кристалле Xeon собственный сопроцессор, заточенный под конкретные задачи.

Чип Xeon+FPGA будет использовать сокет LGA2011. Разработчиком FPGA-части скорее всего станет Altera, компания, с которой Intel сотрудничает уже давно. Возможно, FPGA будет не просто расположенна на одном кристалле с интеловской логикой, но и получит доступ к некоторым ресурсам процессора, например кешу. По оценкам Intel, использование FPGA позволит ускорить выполнение многих задач в 20 раз — в 10 раз за счёт ускорения специфических вычислений на FPGA и ещё вдвое по сравнению с FPGA в виде отдельного чипа за счёт более тесной интеграции с CPU.

Использование FPGA поможет Intel конкурировать с решениями на базе GPGPU, которые в последнее время всё чаще теснят CPU общего назначения там, где требуются параллельные вычисления. Кроме того, это расширит возможности по кастомизации чипов для крупных заказчиков, таких как Facebook или Ebay. В прошлом году спецзаказов было 15. В этом Intel рассчитывает увеличить их число вдвое. Если раньше возможности кастомизации ограничивались крупными структурными изменениям — нестандартным объемом кеша или количеством ядер, то теперь будет возможен и вариант изготовления интегрированной в чип ASIC на базе запрограммированной и протестированной клиентом FPGA.

Источник: Intel.

Автор: @ilya42
Нордавинд
рейтинг 41,91
Компания прекратила активность на сайте

Комментарии (40)

  • 0
    Простите, а откуда информация о том, что разработчиком FPGA-части будет выступать Altera?
    • 0
      Что-то мне кажется это своеобразное продолжение вот этого: habrahabr.ru/post/226665/
    • 0
      Ну, о планах по интеграции FPGA, причём именно с участием Altera, уже проскакивала новость.
      • +2
        Здесь речь идет о том, что Intel предоставляет свои производственные мощности и технологию для производства новых семейств микросхем Альтеры по тех процессу 14нм 3D Tri-Gate. Причем Альтера — не первый партнер Intel, на их мощностях уже производятся FPGA Achronix (www.achronix.ru) по тех процессу 22нм, и в планах Акроникс также производство чипов 14нм и 10нм (причем разработку они начали с опережением на год).

        Совсем не очевидно, за что FPGA часть будет отвечать Альтера. Во всяком случае, я не увидел этой информации ни в пресс-релизах Альтеры, ни в пресс-релизах Intel.
        • 0
          Не очевидно, вы правы. Это предположение. На мой взгляд, достаточно обоснованное.
      • 0
        см. мой ответ выше
  • +3
    В первую очередь FPGA можно рассматривать как высококачественный конвейеризированный решатель если вы рассматриваете OpenCL для программирования а не более низкоуровневые языки, как например Verilog.
    При текущем положении дел количество специализированных ядер, созданных с помощью OpenCL, на современных FPGA не так уж велико.
    Так же присутствуют такие дополнительные проблемы как нехватка шины и долгая компиляция ядер при больших затратах ресурсов.

    Конечно, технология сырая и требует большой доработки, в связи с чем можно сказать что перспективы на самом деле действительно большие, при этом еще и более низкое потребление энергии, вопрос только в том когда ждать реализации этих перспектив.
    • 0
      а есть какие-то примеры проектов таких ядер?
      • +1
        Да, можете в моем единственном посте посмотреть пример ядра для FPGA на OpenCL, он ничем не отличается от обычного OpenCL ядра и прекрасно работает без модификаций на GPU, рекомендую не читать комментарии, т.к. все что там идет это то, насколько плох алгоритм который написал японец Nagase, но тем не менее никто не может это доказать, хотя возможно они абсолютно правы, а автор алгоритма нет.

        Если вам нужно больше, рекомендую посмотреть на сайте Altera, там есть, но общий случай таков, что ядра для GPU на OpenCL подходят без изменений для FPGA, вопрос оптимизации этих ядер совершенно другой.
    • 0
      Ну что значит сырая? Тем кому надо (например в фин-мат среде) — пользуются и не жалуются. Да, HDL это ад, я вот недавно начал использовать MATLAB HDL Coder, как бы идея хорошая но на практике тихий ужас, легче свой конвертен наверное написать (ну или VHDL, ручками).
      • +2
        Сырая это значит то, что если я написал ядро для GPU на OpenCL, то я могу сразу его использовать и тестировать на реальных примерах, в FPGA не совсем так.
        Различие в том, что ядро для FPGA нужно компилировать, все бы ничего, но есть несколько небольших проблем.

        При текущем ПО от Altera версии 13.1 положение дел следующее:
        1) Время компиляции ядер может занимать от 1 до 8 часов в зависимости от сложности ядра, на практике было удобней всего для сложных ядер делать ставить компиляцию на ночь.
        2) Требовательность к ресурсам для компиляции, а именно к ОЗУ, обычно требуется около 9 — 12 ГБ на компиляцию ядра, если у вас меньше, то время компиляции может замедлиться в разы.
        • +1
          А в случае ошибки компиляции ее нужно перезапускать с начала. Если поставил компилироваться на ночь, и ошибка была обнаружена через час работы — то проба конфигурации в железе откладывается минимум на вечер следующего дня. Пока утром проснулся, увидел ошибку, исправил, снова поставил на компиляцию — и к вечеру, может быть, будет готово.

          А некоторые ошибки выявляются только на поздних этапах компиляции. Например, тайминги. Их можно проверять только на разведенном проекте.
          • 0
            Благо что в OpenCL такого нет, по крайней мере из сотен ядер, которые приходилось компилировать.

            В случае если есть какая-то ошибка, т.е. ошибка кода ядра, то компилятор сразу выдает предупреждение и отказывается компилировать до исправления ошибки.
  • +2
    Хорошая новость на самом деле. Особенно для меня, я Altera чипы использую. Близость к процу позволит затачивать FPGA под конкретные задачи с тесным взаимодействием. Ну и плюс это выход в мейнстрим, а то FPGA всегда были уделом спецов, собственноручной разводки плат, и прочими страшными вещами. А если все будет доступно обывателям, только лучше!

    Конечно, это не решение проблемы масштабируемости, т.к. на обычной PCI плате у меня может быть 20 FPGA, а тут будет судя по всему только один чип. Но один — это уже хорошо, особенно если это один из топовых.
  • 0
    Возможно, проекты вроде Reduceron (процессор на FPGA, заточенный под функциональные языки) обретут второе дыхание. Весь вопрос в характеристиках этих FPGA, туда большие проекты могут и не влезть, и придется урезать.
  • 0
    Круто! Как раз к концу лета планирую перейти на 2011й сокет.
    Сколько было попыток пустить это в массы, надеемся у интела получится, но все же думаю эти Xeon'ы будут стоить от 50 круб.
    • +1
      Поздновато уже на 11й сокет переходить…
  • +1
    Давно пора. Особенно это актуально для микроконтроллеров. Нынешние микроконтроллеры содержат в себе большое количество периферии, из которой используется в лучшем случае процентов 20 — и это в самых насыщенных проектах. Периферийные модули гибкие и многорежимные, чтобы их можно было использовать в разных конфигурациях. Та периферия, что используется, не всегда оптимальна для решения конкретных задач, поэтому приходится жертвовать эффективностью работы системы, как аппаратной, так и программной. Много неиспользуемой, гибкой периферии, занимает много площади кристалла. Наличие в микроконтроллерах FPGA-части могло бы расширить возможности разработчиков и повысить эффективность использования кристалла.

    А на компьютерах общего назначения ожидаются проблемы чисто софтверного плана. Явно ведь любое пользовательское приложение не должно иметь доступа к конфигурации FPGA-части. Нужно организовать распределение ресурсов FPGA между всеми желающими их использовать. Самая простая модель — драйвер в режиме ядра, который содержит в себе конфигурацию FPGA и программный код для взаимодействия с этой конфигурацией. Активным может быть только один такой драйвер. Более продвинутые модели — разделение ресурсов FPGA между несколькими несвязанными драйверами. Для этого потребуется компиляция конфигурации FPGA на этапе установки драйверов.

    Думаю, что имело бы смысл реализовать в виде жестких блоков такие схемы, как выборка портов ввода-вывода, мультиплексирование шины данных для нескольких периферийных устройств, реализованных на FPGA-части. Также асинхронные FIFO, многоразрядные регистры. Все это нужно практически в каждом FPGA-SoC-проекте и пожирает много ресурсов FPGA общего назначения.
    • 0
      Так проще того ставить просто плис, поместив внутрь ядро контроллера плюс необходимую периферию.

      А для поиграться можно и вот такую штуку взять:
      image

      Хотя 600 слайсов наверное маловато будет.
      • +1
        Но ПЛИС сказочно дороги, относительно мк с избыточной перефирией.
        • 0
          С языка сняли. Кроме того, что дороги, они еще как правило большие. Большой корпус, много выводов. Для встроенных применений важна миниатюрность. Если реализовывать процессор на «мягкой» логике FPGA — то для этого нужна относительно большая FPGA; также «мягкая» реализация процессора менее эффективна по энергопотреблению.
          • +1
            В качестве чего-то промежуточного можно посмотреть на PSoC от Cypress
            www.cypress.com/psoc4/
      • +2
        Большая проблема ПЛИС — частота. Soft-процессор внутри ПЛИС будет низкой частоты. Например, если взять Xilinx Spartan-6 и синтезировать Soft-процессор MicroBlaze, то получится чуть больше 100MHz. Правда периферию можно разогнать в несколько раз больше.
        Последнее семейство Virtex-7 может быстрей, насколько, не знаю, не пробовал, но там цены заоблачные.
        • 0
          Ну извините, тут уж или шашечки или ехать. Подняли тему о конфигурируемой периферии, но с возможностями контроллера. 100 МГц для контроллера это очень неплохо, те же PIC16/18 работают на частотах в десятки мегагерц и всех устраивает. Более суровые (хотя и дорогие конечно) ПЛИСки вроде Virtex5 могут крутить Microblaze и на 200+ МГц, но надо ли это?

          Во вторых, периферия периферии рознь. ПЛИСы содержат и цельнопиленные ядра для работы со стандартными шинами, так что проседания производительности на этом не будет.

          А вообще ниже верно написали, хочется конфигурябельности и скорости — используйте Zynq. Или ставить обычный контроллер и CPLD к нему рядом.
          • 0
            Ну здесь вопрос не про недоядра контроллеров, а полноценное процессорное ядро с поддержкой кучи фич, в том числе и DDR. Вот MicroBlaze DDR поддерживает.
            Да, Zynq я пробовал, согласен, шикарная вещь. Хотя ранее, тот же Virtex-5 содержал в себе PowerPC на 400MHz, потом от него отказались. Думаю в 8 серии Virtex могут вернуть процессор, врядли PowerPC, скорее всего ARM.
            Вообще Intel в прошлом выпускала какой-то чип CPU + FPGA от Altera, статья проскакивала на хабре.
          • 0
            Самый простой и дешевый Zynq стоит 54 доллара. И он большой, BGA. А в сегменте 16-битных контроллеров цены и размеры намного меньше. Но там нет никаких, даже самых базовых ресурсов программируемой логики.
    • +2
      Если нужно быстрое процессорное ядро, посмотрите в сторону Xilinx Zynq 7000 — там шустрый 2-х ядерный ARM окруженный программируемой логикой, в которую от ядра торчит AMBA.
      Если нужны аппаратные ядра скоростных интерфейсов (DDR2/3, PCIe, Ethernet 10/40/100GE ) — смотрите в сторону Achronix. Проц в данном случае можно использовать внешний (раз уж тема про Intel, то можно взять Quark) и общаться через тот же самый PCIe.
  • +2
    Одно плохо, уже сейчас топовые xeon перешагнули 6000уе за процессор.
    Что будет с их ценой да плюс fpga страшно предстваить.
  • 0
    Ранее Intel уже выпускал в 2010 году процессоры с интегрированными FPGA (google: «3A001» site:ark.intel.com/products): Atom E645CT, E645C, E665CT, E665C. Они представляли собой MCM микросборку из двух пластин — атома и Arria II GX (Altera, 63k LE, 5.3 Mbit block RAM, 312 18x18 DSP blocks, 8x 3.125Gbps, 364 I/O; между Atom и FPGA — PCIe 1x).
    • 0
      Слово «интегрированная» здесь не очень подходит. Это все-таки сборка из двух чипов, пусть и в одном корпусе.
  • –2
    Теперь у каждого будет свой процессор и свой набор патчей. С блекджеком и шлюхами.
  • 0
    У Cisco подобное решение на маршрутизаторах ASR100x стоят. Там специальный сетевой процесcор «QuantumFlow Processor » который что-то среднее между ASIC и софтовым решением, то есть функции можно добавлять новой прошивкой, но при этом скорость работы близка к ASIC.
    • 0
      Все же QuantumFlow Processor — это типичный сетевой процессор, состоящий из 40 Packet Processor Engine (PPE), «каждый из которых представляет собой 32-битовое ядро с RISC-архитектурой и способен обслуживать четыре независимых потока» (описание из статьи «Cisco QuantumFlow: сетевой процессор нового поколения», 2008). У PPE просто меняются программы, так что на FPGA это совсем не похоже.
  • +1
    Как неспециалист я так понял — помимо процессора в нём встроен программируемый на лету чипсет для конкретного алгоритма? Т.е. я включаю поиск контрольных точек в сшивателе панорам (здесь, конечно, выбор не ограничен), демон инициализации программа предварительно записывает этот алгоритм и по нему как на отдельном процессоре считает в 100500 раз быстрее, чем стандартным путём?
    • +3
      примерно так, только сначала надо этот алгоритм реализовать на особом языке.
      • 0
        Интересны тогда ограничения этого чуда, то есть количество разных алгоритмов, их сложность и т.д. Полагаю, если взлетит (с потребительской точки зрения), подобные «сопроцессоры» будут опять мерится количеством и размерами, как это происходит со всем остальным.
        • 0
          Ну не такой уж особый язык нужен, например уже внедрена поддержка OpenCL в Altera и вроде Xilinx что-то делает в этом направлении если уже не сделал.
          Если будет использоваться OpenCL, то особых трудностей не будет.
        • +1
          Ограничение в том, что ПЛИС, — это другая вычислительная модель. Вместо того, чтобы писать пошаговую инструкцию для исполнителя, вы создаёте конвейер обработки. Таким способом хорошо к примеру, сглаживать картинку, но плохо реализовывать игровую логику.
  • –1
    Наверно мой пост прочитали habrahabr.ru/post/108055/

    В комментах, тогда достаточно обстоятельно обсудили сопутствующие проблемы.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка