Очевидно, что это сложный вопрос. Этот вопрос может также включать процессор ячеек. И, вероятно, нет ни одного ответа, который был бы правильным для других связанных вопросов.
По моему опыту, любая реализация, выполненная абстрактно, то есть скомпилированная реализация на уровне высокого уровня или на уровне машинного уровня, неизбежно будет иметь стоимость выполнения, особенно в реализации сложного алгоритма. Это касается как FPGA, так и процессоров любого типа. FPGA, разработанная специально для реализации сложного алгоритма, будет работать лучше, чем FPGA, чьи элементы обработки являются общими, что позволяет ему определять степень программируемости из регистров ввода данных, ввода данных и т. Д.
Другой общий пример, где FPGA может быть гораздо более высокая производительность - в каскадных процессах, где на выходах процесса становятся входные данные для другого, и они не могут выполняться одновременно. Каскадные процессы в FPGA просты и могут значительно снизить требования к вводу/выводу памяти, в то время как память процессора будет использоваться для эффективного каскадирования двух или более процессов, в которых есть зависимости данных.
То же самое можно сказать о графическом процессоре и процессоре. Алгоритмы, реализованные в C, выполняемые на процессоре, разработанные без учета присущих им характеристик производительности кэш-памяти или основной системы памяти, не будут выполняться так же хорошо, как реализовано. Конечно, не учитывая, что эти характеристики производительности упрощают реализацию. Но при стоимости исполнения.
Не имея непосредственного опыта работы с графическим процессором, но, зная его неотъемлемые проблемы с производительностью системы памяти, он также будет подвержен проблемам с производительностью.
Хотелось бы узнать, что люди думают о том, как Cell стекается против двух. – 0fnt 2012-06-11 13:21:07