2013-02-22 2 views
0

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

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++?

+0

Понимание проблемы и узкие места. * Тогда * посмотрите, является ли аппаратное решение жизнеспособным. Если вы пытаетесь свести к минимуму латентность (как кажется финансовым людям), то вы получите максимальную производительность от самого быстрого и быстрого ускорения Virtex. В качестве учебного инструмента эта доска будет в порядке. –

ответ

0

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

и здесь:

«Мы теперь видим поставщик, охватывающих всю мощь чипа,» состояний 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 потоков управления параллельно не переключения контекста «

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

1

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

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

+0

спасибо, так что вы делаете, когда хотите вставить в FPGA что-то, что вы реализовали, то есть на C++? вам нужно переводить все самостоятельно в HDL? – 4pie0

+0

или мне лучше смотреть на микроконтроллер? – 4pie0

+0

Микроконтроллер находится на совершенно другой шкале пропускной способности с плавающей запятой (если она вообще плавает). Даже ваш процессор будет быстрее, не говоря уже о GPU. – tera

Смежные вопросы