Параллельная обработка на ПЛИС. С чего начать?

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

Система, которую я хочу реализовать, представляет собой серию вычислений, каждое из которых похоже на умножение матриц в смысле параллельности. Он также имеет некоторые непараллельные части между ними. Работает с большими объемами данных.

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

здесь я прошу совета о том, как мне начать свой путь? Какую ПЛИС выбрать и где об этом узнать. любой веб-сайт или онлайн-класс или книги? Я все равно решил сделать это, но ваше представление о том, будет ли это быстрее на FPGA или нет, также будет полезно.


person Kiarash    schedule 21.10.2011    source источник


Ответы (2)


Большие преимущества ПЛИС над использованием графического процессора связаны с:

  • Использование нестандартной ширины слова, оптимизированной для вашего приложения. Это обеспечивает более плотную логику, что позволяет использовать больше параллельных блоков обработки.
  • используя свои знания о необходимых доступах к внешней ОЗУ, чтобы планировать их на аппаратном уровне более эффективно, чем это может сделать контроллер памяти общего назначения.

Недостатком является получение данных в FPGA и обратно. Прежде чем начать, нарисуйте схему передачи данных. Даже если FPGA обеспечивает бесконечное ускорение, вы все равно можете обнаружить, что это не стоит усилий, если есть множество данных, которые нужно перетасовывать туда и сюда!

Скорее всего, вам понадобится плата на базе PCI Express. Это (я полагаю) совершенно новая кривая обучения, прежде чем вы сможете что-либо делать с ПЛИС, но если вы готовы к этому, это будет очень интересная задача!

Что касается выбора ПЛИС, поэкспериментируйте с программными инструментами различных поставщиков — на этапе обучения это гораздо важнее, чем сами микросхемы. Вы не найдете (на этом раннем этапе обучения) функцию остановки шоу ни в одном из различных чипов. Также примите во внимание наличие плат с необходимыми вам интерфейсами и любым IP-ядром, которое может вам понадобиться для высокоскоростного интерфейса (например, PCIe).

person Martin Thompson    schedule 24.10.2011
comment
Хорошо, что ввод-вывод памяти часто является узким местом. FPGA также могут выиграть по энергопотреблению на FLOP. - person rkb; 20.12.2011
comment
Вы можете изучить ПЛИС от OpalKelly (opalkelly.com/products). У них есть решения на базе USB3.0 и PCI Express со Spartan6 LX150. Сам новичок в ПЛИС. Не уверен, что этого достаточно для вашего приложения. - person user391339; 21.06.2013

Вы можете получить существенное ускорение в большинстве параллельных задач с помощью FPGA.

Однако помимо реализации ваших вычислений на FPGA, требуется много работы по обмену данными между ЦП и основной памятью. Это потребует реализации (например) конечной точки PCI Express в логике FPGA (управление шиной для максимальной скорости) и пользовательских драйверов на стороне программного обеспечения. Большинство операционных систем требуют разработки этих драйверов в режиме ядра.

И вы не можете просто использовать самый простой подход для программирования FPGA. Вам нужно будет побеспокоиться о конвейерной обработке и синхронизации часов, чтобы максимизировать пропускную способность.

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

Если вы решили действовать в одиночку, вам понадобится некоторое оборудование. Многие компании предлагают ПЛИС, подключенные в качестве ускорителей, например http://www.nallatech.com/pci-express-cards.html

В зависимости от того, выберете ли вы Xilinx или Altera FPGA, вы найдете множество примеров кода и руководств по настройке работы PCI Express.

person Ben Voigt    schedule 22.10.2011