Nexys 2 1200K FPGA Xilinx Spartan-3E подходит?

Я хочу ускорить вычисления некоторых математических алгоритмов, работающих с ценами на финансовые инструменты. Это FPGA что-то уместное? Как это сравнивается с другими FPGA? Должен ли я придерживаться CUDA, а не беспокоиться о FPGA (но все же я хотел бы научиться программировать гейты, поэтому я очень хочу его купить). Это правильный выбор или есть лучший выбор цена / качество? Сколько сложных программ он может обрабатывать? Могу ли я использовать библиотеки C++ (например, QuantLib) и скомпилировать код в чип?

Nexys 2 1200K FPGA Xilinx Spartan-3E

информация: http://kamami.pl/index.php?ukey=product&productID=59726

Ключевая особенность:

Xilinx Spartan-3E FPGA 1200K gate
USB2 port providing board power, device configuration, and high-speed data transfers
Works with ISE/Webpack and EDK
16MB fast Micron PSDRAM
16MB Intel StrataFlash Flash R
Xilinx Platform Flash ROM
High-efficiency switching power supplies (good for battery-powered applications
50MHz oscillator, plus a socket for a second oscillator
75 FPGA I/O's routed to expansion connectors (one high-speed Hirose FX2 connector with 43 signals and four 2x6 Pmod connectors)
All I/O signals are ESD and short-circuit protected, ensuring a long operating life in any environment.
On-board I/O includes eight LEDs, four-digit seven-segment display, four pushbuttons, eight slide switches
Ships in a DVD case with a high-speed USB2 cable

Есть ли аналогичный инструмент для C++? http://blogs.msdn.com/b/satnam_singh/archive/2010/10/15/compiling-c-programs-into-fpga-circuits-factorial-example.aspx

кажется, есть такие инструменты: http://www.fpgarelated.com/usenet/fpga/show/21843-1.php

я могу преобразовать в Verilog или VHDL C++ код, который использует внешнюю библиотеку C++?

2 ответа

Решение

Я нашел хороший источник информации здесь: 1, 2

и здесь:

"Сейчас мы видим, как производители используют всю мощь чипа", - говорит Перретт.

"Традиционно они предлагали разработчикам чистый холст, затем они применяли подход, согласно которому были добавлены различные ядра, такие как MegaWizard от Altera и CORE Gen из Xilinx, которые были известными, хорошо известными конструкциями вокруг таких вещей, как FIFO (первыми в первых). -из). Это было здорово, потому что вы могли довольно легко создать дизайн, используя это "Lego". Но на самом деле он не предлагал многогранную платформу для разработки алгоритмов. Да, у вас были операторы AND, OR и другие арифметические операторы, но попытка построения логических или алгоритмических выражений с использованием отдельных компонентов может оказаться довольно весомой и не очень оптимизированной. Таким образом, чтобы сделать что-то умное, например, стандартное отклонение, вы были в основном сами по себе и должны были разработать его самостоятельно ".

По словам Перретта, сейчас ситуация меняется.

"Сейчас мы видим инкапсуляцию некоторых из этих алгоритмов, предлагаемых самими поставщиками", - говорит он. "Это означает, что в будущем такие компании, как наша, могут смотреть на предложение разработки алгоритмов либо в качестве инструмента профессиональных услуг, либо с помощью нашего собственного API, к которому клиенты могут подключиться как часть платформы EMS".

Такие вещи, как стандартное отклонение, могут включать обработку с плавающей запятой, которая является областью, в которой FPGA традиционно были слабыми, хотя производители микросхем FPGA, такие как Altera, проделали большую работу в своей цепочке инструментов для поддержки разработки с плавающей запятой, используя IEEE 754, формат с плавающей запятой для математических сопроцессоров.

Однако, по словам Рона Хуизена, вице-президента по технологиям в BittWare, поставщике вычислительных систем FPGA, разработка конструкций с плавающей запятой в FPGA может все еще быть трудоемкой разработкой, поэтому его фирма предложила альтернативный подход.

"Плавающая точка в FPGA может обеспечить колоссальную производительность, но это не так просто сделать для сложных алгоритмов", - заявляет Хуйзен. "Таким образом, мы инвестировали в то, что мы называем сопроцессором с плавающей запятой для FPGA, Anemone, который на самом деле представляет собой небольшой многоядерный программируемый C-процессор с очень низким энергопотреблением, предназначенный для установки рядом с FPGA, чтобы вы могли разгрузить с плавающей точкой к нему и написать C-код для управления им. Таким образом, вы можете оптимизировать более простые части ваших алгоритмов в чистой FPGA и оставить сложные части, или те, которые часто меняются, в C на программируемом сопроцессоре ".

Это отличается от большинства других подходов, согласно Huizen.

"Другие люди пошли по пути, когда программируемый процессор является центром с ПЛИС на периферии, но поскольку мы работаем в основном в ПЛИС, мы видим это с другой стороны. Мы сознательно сделали этот сопроцессор небольшим, с низким энергопотреблением и очень высокой производительностью, потому что нам не нужны все остальные интерфейсы, для этого и нужна сама FPGA. Если вы посмотрите на типичный сопроцессор Texas Instruments, это большой энергоемкий чип с встроенным интерфейсом PCIe, 10GbE и всеми этими интерфейсами, тогда как у нас есть очень маленький чип с внешними портами, которые подключаются к FPGA и тогда есть 16 ядер, которые просто работают. Таким образом, мы получаем 24 гигафлопс в менее чем 1 Вт общей мощности ядра.

"Парни, которые занимаются чисто сетевым интерфейсом, вероятно, не заботятся о плавающей точке так же сильно, как те, кто занимается аппаратным ускорением и анализом рисков", - предлагает Хайзен, - "но для людей, пытающихся использовать свои большие алгоритмы на ПЛИС Есть некоторые вещи, которые все еще трудно сделать в FPGA. Таким образом, при таком подходе, где происходит много принятия решений или если есть вещи, которые меняются очень часто, они могут поместить это в C-код и вместо этого запустить его в сопроцессоре Anemone.

"Мы наблюдаем большой интерес к этому со стороны людей из области финансов, потому что это означает, что они могут принимать решения в пространстве FPGA вместо того, чтобы отправлять их в ЦП Intel по шине PCIe, где есть задержка, а Linux имеет иметь дело с этим. Имея процессор Anemone, находящийся непосредственно в стороне от FPGA, они могут принять некоторое решение и приблизить его к аппаратному обеспечению, но все же записать его в коде C ", - говорит Хуизен, -" Они признали, что сопроцессор Anemone действительно 16 маленьких RISC-движков, которые могут запускать любой код, он не обязательно должен быть основан на плавающей запятой. Таким образом, вы можете запустить 16 потоков управления параллельно без переключения контекста ".

другое решение: http://www.bittware.com/products-services-value-add-products-for-fpga/anemone104-co-processor-for-fpgas

Это хорошая учеба, но я сомневаюсь, что вы сможете получить хоть какую-то приличную карту CUDA по производительности с плавающей запятой (обратите внимание, что Spartan-3 уже устарела на несколько поколений).

И нет, вы не можете взять библиотеку C++ и скомпилировать ее в дизайн FGPA.

Другие вопросы по тегам