Средство моделирования Нейронной сети в FPGA?

Для изучения программирования FPGA я планирую кодировать простую Нейронную сеть в FPGA (так как это с массовым параллелизмом; это - одна из нескольких вещей, где реализация FPGA могла бы иметь шанс того, чтобы быть быстрее, чем реализация ЦП).

Хотя я знаком с C, программирующим (10 + годы). Я не так уверен с материалом разработки FPGA. Можно ли предоставить ведомый список того, что я должен сделать / учатся / покупают?

Спасибо!

27
задан anon 3 February 2010 в 08:01
поделиться

4 ответа

Независимо от того, что говорит Чарльз Стюарт, Verilog - прекрасное место для начала. Это напоминает мне C, так же как VHDL напоминает мне ADA. Оккама никто не использует в промышленности, и это не принято в университетах.

Для книги Verilog я рекомендую эти , особенно Verilog HDL . Verilog тривиально выполняет параллельную работу, в отличие от C.

. Чтобы купить, приобретите относительно дешевую плату Cyclone III eval от [Altera] или Altera 3 (например, эту Cyclone III с NIOS ). за 449 долларов или это за 199) или Xilinx.

7
ответ дан 28 November 2019 в 04:30
поделиться

Я дам тебе еще третью рекомендацию: Используйте VHDL. Да, на поверхности это похоже на ADA. В то время как Verilog имеет мимолетное сходство с C. Однако, с Verilog вы получаете только те типы, которые поставляются с ним из коробки. С помощью VHDL вы можете определить свои собственные новые типы, что позволит вам программировать на более высоком уровне (все равно RTL, конечно же). Я уверен, что бесплатные инструменты Xilinx и Altera поддерживают как VHDL, так и Verilog. "A Designers Guide to VHDL" от Ashenden - хорошая книга по VHDL.

VHDL имеет стандартный математический пакет с фиксированной точкой, который может облегчить реализацию NN.

7
ответ дан 28 November 2019 в 04:30
поделиться

Он старый, потому что я не особо задумывался о ПЛИС почти 20 лет, и он использует язык параллельного программирования, который довольно неясен, но Пейдж и Лук, 1991, Компиляция Оккама в ПЛИС охватывает некоторые важные темы в хорошей форме, я думаю, достаточно для ваших целей. Две ссылки для опробования:

  1. KRoC - это активно поддерживаемый компилятор Оккама на базе Linux, у которого, как я знаю, есть активная база пользователей.
  2. Роджер Пил имеет страницу логического синтеза , на которой есть некоторая документация по его основанному на Linux рабочему процессу от синтеза кода Оккама до ввода-вывода ПЛИС.

Оккам-> FPGA - это не то место, где происходит действие, но это может быть гораздо лучшим местом для начала, чем, скажем, Verilog.

2
ответ дан 28 November 2019 в 04:30
поделиться

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

Я бы посоветовал начать с простого ядра из OpenCores.org, чтобы познакомиться с потоком FPGA, а затем перейти к созданию прототипа нейронной сети. Скачивание бесплатного Xilinx WebPack, который включает симулятор ISIM, является хорошим началом. Позже вы можете приобрести дешевое устройство. плата с небольшой ПЛИС (например, Xilinx Spartan 3) для запуска ваших проектов.

10
ответ дан 28 November 2019 в 04:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: