Добрый день!
Мы запланировали вебинар, посвящённый реализации глубоких нейросетей на ПЛИС и СнК. Над задачей реализации глубоких сетей на встраиваемых системах бьются многие инженеры: объёмы вычислений велики, а ресурсы вычислителей ограничены. Мы расскажем о рабочем процессе развёртывания алгоритмов глубокого обучения, компьютерного зрения и обработки сигналов на ПЛИС из среды MATLAB, и продемонстрируем результат на платформе Xilinx Zynq UltraScale+.
В рамках вебинара мы также поговорим об общих вопросах создания, импорта и анализа нейросетей в MATLAB, автоматической генерации HDL-кода и аппаратных оптимизациях.
Ждём вас во вторник, 10 ноября 2020 г.
> Бесплатная регистрация по ссылке
Мы запланировали вебинар, посвящённый реализации глубоких нейросетей на ПЛИС и СнК. Над задачей реализации глубоких сетей на встраиваемых системах бьются многие инженеры: объёмы вычислений велики, а ресурсы вычислителей ограничены. Мы расскажем о рабочем процессе развёртывания алгоритмов глубокого обучения, компьютерного зрения и обработки сигналов на ПЛИС из среды MATLAB, и продемонстрируем результат на платформе Xilinx Zynq UltraScale+.
В рамках вебинара мы также поговорим об общих вопросах создания, импорта и анализа нейросетей в MATLAB, автоматической генерации HDL-кода и аппаратных оптимизациях.
Ждём вас во вторник, 10 ноября 2020 г.
> Бесплатная регистрация по ссылке
Calc
А нейронки учить тоже будете прям на ПЛИС? :)
MaratUss Автор
Нет, только деплоить. Для обучения у нас есть отдельный комбайн, как-нибудь и про него расскажем ;)
ghrb
Арифметика в обученной сети вроде же простая. Если утрировать, порог либо превышен, либо нет. Сильно большой выигрыш даёт специальная железяка?
MaratUss Автор
Арифметика простая, но количество операций велико. Специальные железки необходимы в тех применениях, когда скорость реакции сети становится критичной, например на автономном транспорте.
Brak0del
Кроме упомянутого выше, из тех сравнений ПЛИС и GPU для нейронок, что встречал в литературе, ПЛИС обычно потребляют меньше энергии, чем GPU, в том числе, благодаря гибкости в уровне точности. Т.е. performance per watt у ПЛИС может быть выше.
old_bear
Это верно для случая мелко-разрядных, желательно целочисленных, операций и нестандартных функций. Например, энтропийное кодирование можно сделать на недорогом FPGA существенно производительнее, чем на дорогом CPU или GPU общего назначения за счёт эффективной реализации различных битовых операций. Именно по этой причине в CPU и GPU теперь встраивают выделенные блоки для видео-кодинга.
Для обучения же в большинстве случаев требуется плавающая точка и банальное перемножение матриц — на что GPU и так оптимизированы (а последние поколения и с мелко-разрядными целыми весьма неплохо справляются).
В общем случае ASIC (CPU, GPU или что-то кастомное) используемый эффективно всегда обгонит FPGA, т.к. в FPGA при прочих равных (размере кристалла и технологии) существенная часть ресурсов уходит на перепрограммируемые LUT-ы и коммутацию. Получается либо дороже при равной производительности либо слабее при равной стоимости.
По этой причине тот же Гугл, например, использует для обучения специально разработанные ASIC-и.
Так что ниша FPGA на данный момент это:
Brak0del
А что скажете про inference? Из того что встречал в публикациях, ПЛИС пытаются подавать как хорошие решения в первую очередь для edge-девайсов и для inference.
old_bear
С inference всё не так однозначно. (с)
Интересные результаты можно получить для сетей с разрядность <8 и для тех случаев когда вам нужна какая-то конкретная сеть, а не универсальный ускоритель.
В случае, если требуется универсальное решение, то уже поджимают ASIC-и вроде NVIDIA Xavier NX или FlexLogix InferX. Также для универсальных случаев очень важна программная часть — компилятор который будет произвольную сеть заказчика в этот ускоритель запихивать, при этом эффективно.
Хотя, если у вас в системе уже есть FPGA, например для случаев SoC-ов типа Xilinx Zynq, то это конечно влияет на выбор и в пограничных случаях.
Dimocheeek
Очень жду, надеюсь в скорое время увидеть