FPGAs Vs GPU- A Decisive Article for choosing
FPGAs have mainly been used in electronic engineering. But the scenario got swiveled when Intel bought Altera -One of the largest manufacturers of Field Programming Gate Arrays. Intel indeed realized the potentiality that FPGAs possessed and started aiding companies like Microsoft with data centers and amazon with their cloud services.
So, what exactly is FPGA? What are their Dis(Vantageous)?? Are they the protagonist in collation with GPU??? Let’s Find out…
What is FPGA?
FPGAs are integrated circuits that can be manufactured more effortlessly than ASIC and can be used to reconfigure circuit design and configuration after manufacturing.
Dis(Vantageous) -FPGA Vs GPU
Delayed minuscule latency is one of the biggest vantages of FPGAs. The reason why Field Programming Gate Arrays have minuscule latency is that it can communicate without going thru a general-purpose bus like USB (or) PCI -Express (or) without depending on the general-purpose OS.
Even an extremely virtuous CPU has a latency of 50 microseconds, but FPGAs merely allow 1 microsecond. Field Programming Gate Arrays with its low latency feature finds its application where minuscule latency is required. They are used in jet fighter automatic operation and in high-frequency algorithm transactions.
Application Specific Integrated Circuit is superior to FPGA, but keeping in mind the initial investment factor for the larger design stage, Field Programming Gate Arrays are chosen ahead of GPU for virtual currency mining as they are remarkable and extremely energy efficient.
In addition to high energy efficiency computation, FPGAs are also efficient that they do not require a host computer to run.
Though FPGA has added vantages the expenditure to configure and program is too high than that of instruction based architecture -GPU. Hardware circuits are written usually using Hardware Description Language(HDL) such as VHDL & Verilog. While Programming for them is done using one of a myraid of programming languages such as C, Java, Python.
HLS is an looming drift that can be used to program FPGA using regular Programming Languages such as Open CL (or) C++, with high-level abstraction.
In spite of all technological advancement in programming, FPGA programming still remains as a strenuous job.
Further, complication time is a big drawback in Field Programming Gate Arrays. For instance, it takes 4 to 12 hrs to compile a typical FPGA program if the Intel Open CL compiler is used. To optimize performance overnight compilation phase is required.
GPU depends on OS and standardized buses such as USB and PCI -Express to deliver data. Field Programming Gate Arrays as aforestated do not depend on these parameters. They allow users to have higher bandwidth with minuscule latency.
In fact, FPGAs allow direct connection to data sources such as network interface and sensors.
Contest with floating point
In order to use high-performance computing such as deep learning you must highly depend on GPU with excellent floating point performance calculation. FPGAs are equitably inefficient in floating point arithmetic.
In general floating point, the unit needs lots of resources and must be assembled from logic blocks. However, the playscript is changing there are considerable improvements in energy efficiency due to subsumption of floating point units in FPGA structure.
Though advanced GPU has more energy efficiency than FPGAs, Field Programming Gate Array for sure will exceed GPU with energy efficiency competition in floating point calculation in the near future.
Clearly FPGA will have a brighter future and will replace GPU when they become easy to program -bringing down compile-time and when they become more energy efficient on floating point computation.
Source : https://blog.esciencecenter.nl/why-use-an-fpga-instead-of-a-cpu-or-gpu-b234cd4f309c