Fig. 1: The architectural differences between FPGA, GPU, and CPU.

a In the case of CPU, initial data and instructions are stored in the same memory, and after passing through stages of Instruction Fetch (IF), Instruction Decode (ID), Execution (EX), Memory Access (MEM), and Write Back (WB), the expected data is computed. b In GPU, stages similar to those in CPU are kept, and the decoded instructions are concurrently executed in multiple threads to compute the expected data. c In FPGA, instructions are implemented by constructing logic gates (LGs), and initial data flows through several LGs to generate the expected data.