>Что намекает на скорость операции.в мире ВСЁ tradeoff. Да, есть медленные операции. Такие нужно делать пореже и кэшировать. Такой подход к решению задач, как динамическое программирование - он как раз о кешировании, и экспоненциальные при наиболее тупом способе решения задачи становятся полиномиальными.
>Это ж надо какой-то дифференциальный аплоад только кусочка битстрима FPGA, для 1 закоулка, без потери состояния всего остального
>А в FPGA вообще реально залить "дельту" битстрима на ходу, не угробив состояния железки вокруг?
на зайлинксах такое есть. FPGA - это же просто SRAM, приделанная к мультиплексорам и базовым ячейкам. Нет никакой проблемы перелить некоторые ячейки из этой памяти. Это речь шла о состоянии внутри FPGA. Состояние внутри оперативы должен поддерживать контроллер оперативы, который вообще должен быть асиком, так как реконфигурить контроллер оперативы смысла нет, ибо память распаяна.
>Топовые чипы, хоть какие, не могут стоить дешево. У них кристалл большой, на вафле мало чипов лезет (зиллионы вентилей же надо где-то размещать?!), дефаеты чипов куда вероятнее и дороже обходятся
Вот это меня беспокоит, но я думаю, это можно обойти. Во-первых, FPGA - это реконфигурируемая штука. Дефекты будут, нужно помнить, где они. Точечный дефект не портит весь чип. Он портит окрестность этого дефекта. Чипы нужно тестировать, и номера дефектных ячеек - записывать в пзу. То что чипы большие - ну да, большие. Но ведь надёжнее 1 большой единый чип с отключаемыми дефектами, чем несколько маленьких, соединённых друг с другом, ведь так?
>А в мелкую FPGA - окей, а копипастить SIMD ядра там куда?
Никуда. Никаких сложных софт-процессоров - примитивный процессор, но с набором инструкций под каждую конкретную задачу и программами без ветвлений. Просто декодер инструкции, активирующий нужные подсхемы схемы + конвейер, управляющий перекачкой данных через нашу схему из одних кольцевых буфферов в другие.