- This topic has 1 reply, 2 voices, and was last updated 4 years, 3 months ago by .
-
Topic
-
The main reason why you would choose a FPGA over a CPU or GPU is that you want to do some computations that neither a CPU or GPU are designed to do. To understand this you need to understand what a CPU, GPU and a FPGA are.
CPUs and GPUs are Application Specific Integrated Circuits (ASIC), that is, they are designed to do one thing well. CPUs are designed to do the calculations required for general computing as fast as possible using a small number of powerful cores while GPUs are designed to process massively parallel workloads as fast as possible with hundreds or even thousands of little cores.
A FPGA is a general purpose integrated circuit made up of a large amount of logic circuits that can be “wired up” however you choose. This lack of specialisation means that a FPGA programmed to be a CPU or GPU will always be slower then the real CPU or GPU. On the flip side, you can program logic into the FPGA to compute workloads that neither CPUs or GPUs are designed to do. You could program your FPGA to compute a specific series of complex calculations on a data input and it will do these quicker then a CPU.
You could create a ASIC to do these same specific workloads and the ASIC would do it quicker then the FPGA but the FPGA still has the benefit of being able to be reprogrammed if you need to do another task suitable for it.
Think of it like this, you want to create a trench. A CPU would be a couple of back hoes, a GPU would be several hundred or thousand men with shovels, a ASIC would be a motorised trenching machine and a FPGA would be a “Build Your Own” construction set complete with engines, pneumatic gear, various shovel bits and miscellaneous bits that you could cobble together to make a dual-trench trenching machine or a bulldozer or a road grader or a back hoe.
- You must be logged in to reply to this topic.