У меня есть простой анизотропный фильтр на языке c / c ++, который будет обрабатывать изображение .pgm, представляющее собой текстовый файл с информацией в градациях серого для каждого пикселя, и после завершения обработки он сгенерирует выходное изображение с примененным фильтром.
Эта программа занимает до нескольких секунд, чтобы выполнить около 10 итераций на процессоре x86 под управлением Windows.
Мне и ученому, получившему степень магистра прикладных вычислений, нам нужно запустить код под FPGA (Altera DE2-115), чтобы увидеть, есть ли значительные результаты прироста производительности при запуске кода непосредственно на процессоре (NIOS 2).
Мы успешно загрузили SO uClinux под FPGA, но есть некоторые ошибки с аппаратным обеспечением устройства, и поэтому мы не можем получить доступ к SD-карте, даже к Ethernet, поэтому мы не можем получить код и изображение в FPGA в Чтобы проверить его работоспособность.
Поэтому я здесь прошу альтернативный способ проверить производительность нашего кода непосредственно в ЦП с файловой системой, чтобы код мог прочитать изображение и сгенерировать еще один.
Альтернатива может быть либо с продуктом, который имеет низкую стоимость и прост в использовании (я думал Raspberry PI), либо, если бы я мог загрузить код где-нибудь, что автоматически запускается для меня и дать мне отчеты.
Заранее спасибо.
что вы пытаетесь сделать, это сравнить некоторое программное обеспечение на процессоре x86 с множеством ГГц по сравнению с процессором с мягким ядром, работающим на частоте 50 МГц? (насколько я могу судить по документам Altera)
Я могу гарантировать, что это будет еще медленнее на ПЛИС! Так как он также работает под управлением ОС (даже встроенного Linux), он также имеет накладные расходы на потоки, а что нет. Это не может считаться выполнением его «напрямую» на процессоре (что вы подразумеваете под этим)
Если вы действительно хотите использовать производительность FPGA, вы должны «преобразовать» ваш C-код в HDL и запустить его непосредственно на оборудовании. Доступ к данным должен быть возможным. Я не знаю, как это сделать с платой Altera, но у Xilinx есть несколько библиотек, получающих доступ к данным с SD-карты с помощью FAT.
Вы можете использовать встроенную память SRAM или DDR2 для запуска ОС и вашего приложения.
Аппаратный дизайн в вашей FPGA должен иметь контроллер памяти. В SOPC или Qsys выберите внешнюю память в качестве вектора сброса и скомпилируйте дизайн.
Затем откройте инструменты сборки NioSII для Eclipse.
В Eclipse создайте новый проект, выбрав приложение NiosII и проект BSP.
После создания проекта перейдите в свойства BSP и введите смещение внешней памяти на вкладке компоновщика и сгенерируйте BSP.
Скомпилируйте проект и запустите оборудование Nios II.
Это запустит ваше приложение через внешнюю память.
Вы не сможете увидеть изображение, но двумерный массив, представляющий изображение в памяти, может быть
напечатано на консоли.