When to consider FPGAs

Bit-level operations and data

FPGAs are always a promising architecture for applications where performance critical parts

  • use lots of bit-level operations (e.g. AND, OR, XOR, shifts)

  • or data can be encoded with few bits (e.g. DNA base pairs or amino acids, or binary/heavily quantized weights and inputs in neural networks).

Specific access patterns to on-chip memory

FPGAs can be a promising architecture for applications where CPUs or GPUs are not operating close to their peak performance due to inefficient usage of their cache hierarchy or shared memory.

Deterministic execution times for small chunks of work

Low-latency direct communication and overlap of execution and communication

Specific mix of arithmetic operations or mathematical functions