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.