Comments 8
Спасибо за статью, теперь ясно как оно работает.
Я сломался где то по середине статьи, но если эта статься будет сохранена то это еще одна статья на разработку кода для FPGA на русском языке.
Пожалуйста, пишите такие статьи,… за этим будущее.
Надеюсь скоро тулчейн под это дело будет таким же простым, как сейчас собирается приложение под той же ms visual studio, вроде бы много доступно для изменений но по умолчанию никуда лезть не нужно.
Пожалуйста, пишите такие статьи,… за этим будущее.
Надеюсь скоро тулчейн под это дело будет таким же простым, как сейчас собирается приложение под той же ms visual studio, вроде бы много доступно для изменений но по умолчанию никуда лезть не нужно.
Очень крутое исследование. Осталось понять что произойдет когда ресурсов FPGA не хватит для реализации kernel'a: он просто упадет с ошибкой, или попытается сгенерировать какой-нибудь сложный планировщик с выгрузкой промежуточных результатов в память.
Спасибо за отзыв :)
Я не увидел сложного планировщика, когда ресурсов не хватило (я пробовал еще один дефолтный пример (перемножениее матриц)): в предварительном отчете перед запуском квартуса там фигурировали числа > 200%, и потом совершенно справедливо заругался Quartus. Возможно, когда числа очень близкие к 100% он проводит какие-то оптимизации, но я с этим не игрался.
Наверно, они могли бы это (сложный планировщик) сделать, но тогда пользователь получал бы маленькие числа в производительности и ругал бы технологию (хотя, вполне вероятно, что он просто плохо описал ядро). Возможно, сложные планировщики для уменьшения ресурсов не в их комерческих интересах: не влезает в этот чип — возьми жирнее/дороже (или трать своё время на ручную оптимизацию).
Я не увидел сложного планировщика, когда ресурсов не хватило (я пробовал еще один дефолтный пример (перемножениее матриц)): в предварительном отчете перед запуском квартуса там фигурировали числа > 200%, и потом совершенно справедливо заругался Quartus. Возможно, когда числа очень близкие к 100% он проводит какие-то оптимизации, но я с этим не игрался.
Наверно, они могли бы это (сложный планировщик) сделать, но тогда пользователь получал бы маленькие числа в производительности и ругал бы технологию (хотя, вполне вероятно, что он просто плохо описал ядро). Возможно, сложные планировщики для уменьшения ресурсов не в их комерческих интересах: не влезает в этот чип — возьми жирнее/дороже (или трать своё время на ручную оптимизацию).
Насколько эта технология универсальна: можно ли выкачивать данные с других IP висящих на avalon шине?
Было бы удобно, если бы LSU накачивал данные непосредственно с I/O портов, к примеру с видеокамеры или сетевого порта, kernel'ы выполняли бы какую-нибудь предобработку (например сжатие), после чего другой LSU выгружал бы результаты в хостовую память.
Было бы удобно, если бы LSU накачивал данные непосредственно с I/O портов, к примеру с видеокамеры или сетевого порта, kernel'ы выполняли бы какую-нибудь предобработку (например сжатие), после чего другой LSU выгружал бы результаты в хостовую память.
Из-за того, что код сгенеренный получается открытым, особых проблем в подсоединении кернела в свою систему я не вижу, но надо поработать руками :)
Для перекачки данных с видеокамеры или сетевого порта Altera предлагает использовать I/O Channels.
Я глубо это не копал, но есть пример, где данные забираются с UDP-корки.
Для перекачки данных с видеокамеры или сетевого порта Altera предлагает использовать I/O Channels.
Я глубо это не копал, но есть пример, где данные забираются с UDP-корки.
Можете подсказать какая версия OpenCL используется с Арья 10: 1.2 или 2.0 или 2.2?
Скорее всего при сборке под Arria 10 вы будете использовать Quartus Prime Pro.
Самая последняя версия на текущий момент — 19.4.
В <директория установки квартуса>/hld/README.txt есть такие строчки:
Самая последняя версия на текущий момент — 19.4.
В <директория установки квартуса>/hld/README.txt есть такие строчки:
The Intel® FPGA SDK for OpenCL(TM) is a C-based heterogeneous parallel
programming framework for Intel® FPGA devices.
This is an implementation of the Khronos OpenCL 1.0 Specification.
This version passes the Khronos OpenCL Conformance Testing Process.
Sign up to leave a comment.
Altera + OpenCL: вскрываем ядро