«Мы теперь видим поставщик, охватывающих всю мощь чипа,» состояний Perrett.
«Традиционно они предложили разработчикам чистый холст, то они приняли подход, при котором были добавлены различные ядра, как MegaWizard от Altera и стержневых Gen от Xilinx, которые были хорошо известны, хорошо зарекомендовавшие конструкции вокруг вещей, как FIFO (первый-в-первом-выход). Это было здорово, потому что вы могли легко построить дизайн , используя этот «Lego». Но то, чего он действительно не делал, предлагал платформу для разработки многогранных алгоритмов. Да, у вас были ANDs, ORs и другие арифметические операторы, но при попытке создания логических или алгоритмических выражений с использованием отдельных компонентов может оказаться довольно весомым и не очень оптимизированным. Поэтому, чтобы сделать что-нибудь умное, как стандартное отклонение, вы были в основном по своему усмотрению, и ему самому пришлось разработать ».
Эта ситуация сейчас меняется, согласно Perrett.
«То, что мы видим сейчас, представляет собой инкапсуляцию некоторых из этих алгоритмов , предлагаемых самими поставщиками», - говорит он.«Это означает, что в будущих фирмах, как наш, может посмотреть на предложение из разработки алгоритма, либо как профессиональное предприятие услуг или с помощью нашего API, которых клиенты могут зацепить в качестве части платформы EMS.»
Выполнение таких вещей, как стандартное отклонение, может включать в себя обработку с плавающей точкой , которая является областью, где FPGA традиционно были слабыми, хотя производители микросхем FPGA, такие как Altera, выполняли большую работу в своей цепочке инструментов для поддержки разработки с плавающей точкой, используя IEEE 754, формат с плавающей запятой для математических сопроцессоров.
Однако, по словам Рона Huizen, вице-президент по технологиям BittWare, поставщик FPGA вычислительных систем, делая с плавающей точкой конструкций в ПВМ все еще может быть трудоемким развитие, которое почему его фирма придумала с альтернативным подходом.
«Плавающая точка в ПЛИС может обеспечить огромное количество производительности, но это не так просто сделать для сложных алгоритмов», утверждает, что Huizen. «Таким образом, мы вложили в то, что мы называем плавающим током. - сопроцессор для FPGA, Anemone, который на самом деле является небольшим, очень низкомощным многоядерным C-программируемым процессором, предназначенным для размещения около FPGA, поэтому вы можете разгрузить его с плавающей точкой и написать код C . Таким образом, вы можете оптимизировать более простые части ваших алгоритмов в чистом FPGA и оставить сложные части или те , которые часто меняются в C на программируемом сопроцессоре ».
Это отличается от большинства других подходов, согласно Huizen.
«Другие люди пошли вниз маршрут, имеющий программируемую процессор в качестве центра с FPGA на периферии, а потому, что мы работы в первую очередь в FPGA, мы видим, это наоборот. У нас преднамеренно сделал этот сопроцессор небольшой, малой мощности и очень высокой производительности , потому что мы не заботимся обо всех других интерфейсах, вот что такое FPGA. Если вы посмотрите на обычный сопроцессор Texas Instruments, это большой, энергоемкий чип с PCIe, 10GbE и всеми этими интерфейсами, в то время как все, что у нас есть, - это очень мелкий чип с внешними портами, которые подключаются к FPGA, а затем имеют 16 ядер, которые просто запускаются без выходов. Таким образом, мы получаем 24 gigaFLOPS менее 1 Вт общей мощности ядра.
«Ребята, которые делают чистый интерфейс вещи сети, вероятно, не волнует, как много о плавающей точкой, как те, которые делают аппаратное ускорение и анализ рисков», предлагает Huizen, «но для людей, пытающихся поместите свои большие алгоритмы на FPGA, есть некоторые вещи, которые все еще трудно сделать в FPGA. Таким образом, при таком подходе, где есть , происходит много принятия решений или происходят очень часто изменения , они могут помещать их в код C и запускать его в сопроцессоре Anemone 10.
«Мы видим большой интерес в этом от людей в финансы пространстве, поскольку это означает, что они могут сделать решения в FPGA пространстве вместо того, чтобы посылать их в процессор Intel над PCIe шины, где есть латентность, и Linux должен справиться с этим. Имея процессор Anemone , сидящий непосредственно в сторону ПЛИС, они могут разместить там около решений и иметь его близко к оборудованию, но все же пишут его в коде C », - говорит Хуйзен,« Они признали, что Anemone coprocessor - это действительно 16 маленьких RISC-движков, которые могут запускать любой код, он не должен быть основан на плавающей запятой. Таким образом, по существу, вы получите запустить 16 потоков управления параллельно не переключения контекста «
Понимание проблемы и узкие места. * Тогда * посмотрите, является ли аппаратное решение жизнеспособным. Если вы пытаетесь свести к минимуму латентность (как кажется финансовым людям), то вы получите максимальную производительность от самого быстрого и быстрого ускорения Virtex. В качестве учебного инструмента эта доска будет в порядке. –