Существует примерно 3 уровня специализации вычислительной техники:
Процессор (как в вашем ноутбуке) является самым общим из всех. Он может делать все, но эта универсальность достигается ценой низкой скорости и высокого энергопотребления. Процессор запрограммирован на ходу, инструкции приходят из ОЗУ. Программы для процессора быстрые, дешевые, простые в написании и очень легко меняемые.
FPGA (что означает полевой программируемый вентильный массив) - это средний уровень. Как следует из названия, его можно запрограммировать «на месте», то есть за пределами завода. FPGA обычно программируется один раз, этот процесс можно описать как настройку его внутренней структуры. После этого он ведет себя как крошечный компьютер, специализирующийся на одной задаче, которую вы выбрали для него. Вот почему он может работать лучше, чем обычный процессор. Программирование FPGA очень сложно и дорого, и отладка их очень сложна.
ASIC (что означает специализированная интегральная микросхема) - это главный специалист. Это чип, разработанный и произведенный для одной и только одной задачи - задачи, которую он выполняет очень быстро и эффективно. Нет возможности перепрограммировать ASIC, он оставляет фабрику полностью определенной и бесполезной, когда его работа больше не нужна. Проектирование ASIC - это то, что могут позволить себе только крупные корпорации, и отладка их - это почти невозможно.
Если вы думаете о «ядрах», то посмотрите на это так: процессоры имеют 4, 6, может быть, 8 больших ядер, которые могут делать все. У ASICS часто есть тысячи ядер, но очень крошечных, способных только на одно.
Вы можете посмотреть на сообщество майнинга биткойнов. Они делают хэши SHA256.
- Процессор Core i7: 0,8-1,5 Меш / с
- FPGA: 5-300M хэш / с
- ASIC: 12000M хэш / с на один крошечный чип, 2000000M (да, тот 2T) хэш / с для одного 160-чипового устройства
Конечно, эти дети ASIC стоят почти 2000 долларов при массовом производстве, но это дает вам представление о том, как мастер на все руки может обходиться без специалиста.
Единственный вопрос: может ли FPGA принести вам больше сбережений, чем стоило бы проектирование? Конечно, вместо запуска на одном ноутбуке, вы можете попробовать запустить его на 20 компьютерах.