Как стать автором
Обновить

Комментарии 13

А нейронки учить тоже будете прям на ПЛИС? :)
Нет, только деплоить. Для обучения у нас есть отдельный комбайн, как-нибудь и про него расскажем ;)
НЛО прилетело и опубликовало эту надпись здесь
Арифметика простая, но количество операций велико. Специальные железки необходимы в тех применениях, когда скорость реакции сети становится критичной, например на автономном транспорте.
Кроме упомянутого выше, из тех сравнений ПЛИС и GPU для нейронок, что встречал в литературе, ПЛИС обычно потребляют меньше энергии, чем GPU, в том числе, благодаря гибкости в уровне точности. Т.е. performance per watt у ПЛИС может быть выше.
Это верно для случая мелко-разрядных, желательно целочисленных, операций и нестандартных функций. Например, энтропийное кодирование можно сделать на недорогом FPGA существенно производительнее, чем на дорогом CPU или GPU общего назначения за счёт эффективной реализации различных битовых операций. Именно по этой причине в CPU и GPU теперь встраивают выделенные блоки для видео-кодинга.
Для обучения же в большинстве случаев требуется плавающая точка и банальное перемножение матриц — на что GPU и так оптимизированы (а последние поколения и с мелко-разрядными целыми весьма неплохо справляются).
В общем случае ASIC (CPU, GPU или что-то кастомное) используемый эффективно всегда обгонит FPGA, т.к. в FPGA при прочих равных (размере кристалла и технологии) существенная часть ресурсов уходит на перепрограммируемые LUT-ы и коммутацию. Получается либо дороже при равной производительности либо слабее при равной стоимости.
Так что ниша FPGA на данный момент это:
  • быстрое прототипирование
  • мелкосерийные изделия, где ASIC экономически не оправдан, а CPU/GPU «не тянет» или избыточен
  • оборудование где важна возможность апдейта аппаратной части без паяльника и/или физического доступа — базовые станции сотовой связи, космические аппараты, военка, и теперь ещё и автомобильная электроника (хотя и малый её процент).
Для обучения же в большинстве случаев требуется плавающая точка

А что скажете про inference? Из того что встречал в публикациях, ПЛИС пытаются подавать как хорошие решения в первую очередь для edge-девайсов и для inference.
С inference всё не так однозначно. (с)
Интересные результаты можно получить для сетей с разрядность <8 и для тех случаев когда вам нужна какая-то конкретная сеть, а не универсальный ускоритель.
В случае, если требуется универсальное решение, то уже поджимают ASIC-и вроде NVIDIA Xavier NX или FlexLogix InferX. Также для универсальных случаев очень важна программная часть — компилятор который будет произвольную сеть заказчика в этот ускоритель запихивать, при этом эффективно.
Хотя, если у вас в системе уже есть FPGA, например для случаев SoC-ов типа Xilinx Zynq, то это конечно влияет на выбор и в пограничных случаях.
Очень жду, надеюсь в скорое время увидеть

Есть реализации нейроморфной памяти как раз на Xilinx Zynq. Учится на самом устройстве и сразу готова распознавать.
Хотел записаться, но вопросов много...

А что за проект, neromem?

Не знаю, как называется, сделали 32 нейрона на ПЛИС, а потом нейрочипы на 1024 и 576. Intel применяла эту IP, они, конечно, в больших объёмах делают, но, возможно развили.

А интересно существуют ли может уже готовые решения для ускорения на базе ASIC для каскада Хаара/детекторов узлов и т.д.?
Зарегистрируйтесь на Хабре , чтобы оставить комментарий