Is there a possibility that 'FPGA' will become the protagonist of computing on behalf of CPU and GPU?



" Field-programmable gate array (FPGA) " is in the world of computing, when Intel acquires FPGA maker Altera at a huge price, Microsoft uses FPGAs for data centers, Amazon's AWS supports FPGAs, I am increasing the presence. The current situation and the future of FPGA, such as the difference between CPU and GPU and whether it becomes existence to replace GPU by deep learning etc. are summarized by Azze van der Perogg of Netherlands eScience Center.

Why use an FPGA instead of a CPU or GPU? - Netherlands eScience Center
https://blog.esciencecenter.nl/why-use-an-fpga-instead-of-a-cpu-or-gpu-b234cd4f309c

table of contents
◆ What is FPGA?
◆ Advantages / Disadvantages of FPGAs
· Latency (delay)
· Connectivity
· Engineering cost
· Energy efficiency
◆ Competition with floating point arithmetic with GPU
◆ Forecast of the FPGA market

◆ What is FPGA?
If you want to compute something, it is a common computing approach to write software for instruction-based architecture such as CPU and GPU. Of course, if you are willing to have tremendous effort, you can design a dedicated circuit that only calculates it without using a versatile CPU or GPU. This representative example is " ASIC ".

It is an integrated circuit called "field-programmable gate array (FPGA)" which can be manufactured more easily than ASIC and can reconfigure circuit design and configuration after manufacturing.



◆ Advantages / Disadvantages of FPGAs
· Latency (delay)
One of the big advantages of FPGAs is that latency (delay) is small. Specifically, even very good CPUs have latency of at most 50 microseconds, but FPGAs allow 1 microsecond. On the latency side, the digits are different from CPU and GPU. The reason the FPGA is low latency is that it can communicate without going through a general-purpose bus such as USB or PCI-Express, without relying on a general-purpose OS.

Due to its low latency feature, FPGAs are used in situations where extremely small latency is required, such as jet fighter automatic operation or high frequency algorithm transactions.



· Connectivity
For CPU and GPU, it connects to the data source via standardized bus such as USB and PCI-Express, and delivers the data to the application depending on the OS. In contrast, FPGAs allow direct connection to data sources such as network interfaces and sensors. This not only reduces the latency but also has the advantage of having a large bandwidth.

For scenes that require capturing and processing vast amounts of data, FPGAs with a wide bandwidth are extremely effective. For example, in radio astronomy , FPGAs are used to simplify data management in order to process huge amount of data generated from sensors.



· Engineering Costs: A major drawback of FPGAs compared to CPUs and GPUs, which are instruction-based architectures, is that programming and configuration are much more difficult. So far FPGAs were written in hardware description language (HDL) such as VHDL and Verilog . For programming with Java, C language, Python and other programming languages, programming in HDL requires huge engineering cost.

In recent years, even though High Level Synthesis (HLS) capable of high abstraction has appeared by programming the FPGA using standard programming languages ​​such as OpenCL and C ++, even though instruction-based systems It is said that difficulty is higher than programming of.

Also, the length of compilation time is also a big disadvantage in FPGAs. For example, if you use the Intel OpenCL compiler, it will take 4 to 12 hours to compile a typical FPGA program. To optimize performance, a nightly compilation phase is required.

· Energy efficiency
FPGAs are superior to CPUs and GPUs in energy efficiency compared to logic and fixed accuracy. For this reason, FPGAs are superior to virtual currency mining over CPU and GPU. Although the ASIC is superior to the FPGA, the ASIC has the disadvantage that the initial investment at the design stage is large.



In addition to high energy efficiency in computation, FPGA is also efficient in that "it is not necessary to run host computer".

◆ Competition with floating point arithmetic with GPU - In the case of using high-performance computing such as deep learning, it depends greatly on GPU which is excellent in floating point calculation performance. FPGAs were fairly inefficient in floating point arithmetic, as floating point units need to be assembled from logic blocks and require a lot of resources.

However, new FPGAs such as Arria 10 and Stratix 10 have considerable improvements in energy efficiency due to the incorporation of floating point units on the FPGA fabric. Specifically comparison, the most advanced GPU Tesla V100 whereas theory on 15TFLOPS at a power of 250W in, cutting-edge FPGA to adopt Starix 10 Nallatech 520C in, enabling 9.2TFLOPS at a power of 225W. Although the GPU is still more energy efficient, the difference is further reduced considering that the Tesla V100 is manufactured in a 12 nm process, whereas the Stratix 10 is manufactured in a 14 nm process . According to Dell Pellogg, in the near future, it is possible that FPGA will exceed GPU with energy efficiency competition in floating point calculation.



◆ Forecast of the FPGA market
In 2015 Intel bought Altera, the world's largest FPGA maker, with a huge sum of $ 16.7 billion (about 1.8 trillion yen) . It is an FPGA used in missile guidance systems, radio astronomy and virtual currency mining, but Intel has never spent huge amounts to deprive a niche market, and it is called "high-performance computing" and "cloud computing" Mr. Dell Pellogg points out whether it is an estimate to enter into two main streams.

However, even if the energy efficiency is slightly higher than that of the GPU, considering that the development cost of FPGA software is far greater than when using GPUs and that the HPC community already utilizes GPUs, It is said that full-scale transition to FPGA will not proceed for at least 5 years. It seems Intel sees the FPGA market from a long-term perspective.

In cloud computing, Intel said it should consider installing an FPGA in a cloud server or developing a hybrid server of CPU-FPGA.

In a frank opinion about whether FPGAs will jump into the main stream, "skeptical", said Dell Pellogg. In order for FPGA to become the main stream, it seems that it is necessary to shorten "compile time" and "improve further energy efficiency by floating point calculation".

in Software,   Hardware, Posted by darkhorse_log