Where is FPGA in cloud computing today?
Our world is becoming increasing reliant on cloud computing and big data. While this may be a good thing for users, it puts more and more pressure on cloud developers.
This pressure comes from two sources. One is the increasing amount of data stored in the cloud. According to IDC, the amount of data stored worldwide in 2016 was 16ZB. By 2020, it is expected to exceed 40ZB, and surge to 160ZB by 2025. In line with this exponential increase in the amount of data is the rapid growth required for the calculation and processing of that data. Hence the use of cloud computing resources has dramatically increased, especially with the rise of artificial intelligence (AI). The combined increase in the global demand for both data volume and data processing has caused the demand for cloud computing power to explode at a rate beyond imagination.
For a long time, the progressive increase in the world's computing power generally complied with Moore's Law – which predicts that the performance of integrated circuits will double every 18 to 24 months. This observation-based theory laid the foundation for today's connected world. However, things have changed. Due to the limits of semiconductor technology, the rate defined by Moore's Law has slowed and the dividends are dwindling. In view of the world’s fast growing appetite for cloud computing, the market needs to find a successor to Moore’s Law to describe and define the acceleration of computing power. A large factor in the development of this new ‘set of rules’ is the rise of new computing architectures.
FPGA ticks all the boxes
An ideal high-performance cloud acceleration architecture should, in theory, have certain characteristics. Firstly, it should have high throughput capacity to process large amounts of data. Secondly, it should have low latency, to respond to networked devices immediately. Thirdly, it should have a high performance-to-power ratio, to create the possibility for high-density cloud computing. Finally, it should have the flexibility to keep pace with evolving algorithms and applications.
The architectures that can currently be used to accelerate cloud computing are: CPU, GPU, FPGA, and ASIC. After scrutinizing and evaluating all the different architectures' credentials, FPGA is invariably deemed the best candidate for the job.
- Performance-wise, as FPGA isn't restricted by the von Neumann architecture, the hardware architecture can be customized for specific application algorithms. It has the high-performance characteristics of ASIC and supports higher data throughput.
- In terms of latency, FPGA is capable of not only data parallelism, but also pipeline parallelism to reach microsecond latency. This is one of its most obvious competitive advantages compared to GPUs with the same high computing power.
- With regard to scalability, FPGA's programmability and plentiful IO pins allow the architecture to perform multiple roles in the data center. In addition to computing, it can also support and adapt to the evolutionary development requirements of storage and networking algorithms.
- When it comes to power consumption, more advanced semiconductor processes combined with optimized algorithms enable FPGAs to achieve better performance-to-power ratios than CPUs and GPUs do in specific applications.
- Flexibility, above all, is the area where FPGA is naturally strongest compared with ASIC. FPGA is also well-suited to integration with CPU and other computing architectures to form a CPU + FPGA heterogeneous computing platform, which uses the best architecture for any given scenario to achieve system optimization.
Figure 1. Performance comparison of different computing architectures (Source: Huawei Cloud)
Bringing FPGA to the cloud
It is because of these very advantages that FPGA is regarded as an important technical pathway for the acceleration of cloud computing. This is also where the journey to "FPGA in the cloud” begins. Already, PGA has proven its worth in cloud computing.
For example, in a 2014 paper, Microsoft shared that its Project Catapult team deployed FPGAs in 1,632 servers in a data center to facilitate hardware acceleration to ranking calculations for the Bing search engine. They achieved up to a 95% increase in throughput. Case studies like these have greatly increased market confidence in the deployment of FPGAs in other cloud computing platforms.
Take the case of Tencent, one of the earliest internet companies in China to try FPGA-accelerated computing. In their JPEG to WebP network picture transcoding attempts, FPGA processing latency was 20 times faster than with CPU, and processing performance was 6 times superior than with CPU. Furthermore, FPGA unit costs are only a third of those of general-purpose CPUs. Subsequently, Tencent has become one of the most active supporters of FPGA-accelerated cloud computing.
In recent years, with the rise of AI applications, more and more companies have begun to apply FPGAs in the acceleration of cloud deep learning algorithms, with considerable succes. For example, Baidu has been trying to apply FPGA to DNN, RNN, CNN, LSTM, and other deep learning models since 2013. Recently, Baidu released an FPGA-based deep convolutional neural network acceleration service where a single card provides three TOPS of fixed-point computing capabilities. It supports classical deep convolutional network operators and provides highly efficient acceleration for VGGNet, GoogLeNet and ResNet. Clearly, AI has become an important promoter of accelerated FPGA deployment in cloud computing today.
Figure 2. FPGA has obvious advantages compared to CPU in network image transcoding acceleration (Image source: Tencent Cloud)
FPGA cloud service
As FPGAs become increasingly popular in cloud computing, a new type of cloud service based on FPGA has emerged – so-called FPGA cloud service. It has become the first choice of cloud computing leaders such as Amazon, Baidu Cloud, Tencent Cloud and Huawei Cloud.
FPGA cloud servers are FPGA-based computing instances. Users can purchase FPGA instances to quickly enable their specific applications to achieve FPGA-based hardware acceleration. Initially, cloud computing vendors deployed FPGA's to satisfy some of their own specific cloud computing acceleration requirements. Then, with extensive deployment, they found that FPGA computing resources can be packaged into a cloud service and sold to cloud computing users.
For cloud computing users, it can be likened to when they could purchase a cloud server without having to maintain a complex IT computing system. Now, when they need to use FPGA for acceleration in a specific application algorithm, they don’t need to structure and develop their own FPGA hardware system, since they can accomplish the same thing by purchasing FPGA cloud services from cloud computing vendors.
The advent of FPGA cloud services has enriched the service portfolios of cloud computing vendors with the addition of another service that can be monetized. Moving forward, this move is likely to have a profound impact on the future FPGA application development ecosystem, as it further reduces barriers for FPGA users and brings FPGA-based acceleration services within reach. In fact, cloud service vendors for whom money “is no object” are already moving in this direction.
In summary, FPGA has moved from merely standing out among its rival computing architectures, to proving its strength in real-world use, and to becoming the go-to architecture for emerging cloud services today. FPGA's presence in cloud computing has gone from strength to strength, and it’s only the beginning. If you happen to have an idea that needs “accelerating”, you know what to do. Give FPGAs a go – and go faster!
Figure 3. In response to the needs of cloud computing, Avnet has developed an acceleration solution based on the Xilinx FPGA (Image source: Avnet)