Technology is advancing rapidly, with IoT and smart cities being heavily researched by tech giants and government bodies. New devices are utilizing additional cameras and sensors to detect the surrounding environment and systems utilizing artificial intelligence are being developed.
The result of this next phase of technology will be an explosion of data. For time sensitive and complex workloads, centralized cloud servers cannot and will not be sufficient to cater to the real-time computation requirements coming simultaneously from millions of connected devices.
This brings us to look to the edge.
Edge computing allows for the processing of data closer to where it originates, providing an alternative to constantly transmitting data to and from the cloud.
The processing of workloads at the edge will require a new technology stack, given that edge devices will operate under different conditions from servers in a data centre.
For edge computing, an effective processing unit should be able to fulfil the following conditions:
High processing throughput for data to allow edge devices to respond instantaneously.
Energy efficiency with relatively smaller size, given that edge devices could be deployed in remote areas with power and/or space constraints.
Workload stability, so that the edge device can produce consistent and reliable outputs regardless of workload size and transmission consistency.
Taking these requirements into consideration, we introduce the FPGA.
FPGAs are semiconductor devices that feature a matrix of programmable logic blocks with reconfigurable interconnects, I/O cells and distributed memory. FPGAs can be reprogrammed even after deployment, which makes it very useful for evolving algorithms and for field applications.
To illustrate the reprogrammability of FPGAs, consider the architecture of a CPU and an FPGA:
In a CPU, the chip is designed with a fixed set of instructions that developers must adhere to. The flexibility of the CPU lies in the software layer where programs can be written or updated as long as the fundamental instructions are not violated.
On the other hand, the FPGA allows developers to reconfigure the hardware interactions in the chip through control over each block of logic in the system. The programming is done in Hardware Description Language such as Verilog and VHDL to connect logic blocks in an FPGA, essentially “designing” a piece of dedicated hardware to perform the function desired by the developer.
Put graphically, a CPU is like a colouring book with developers as painters. Developers are free to select the colours and techniques to paint as long as the lines of the printed designs are adhered to. On the other hand, an FPGA more closely resembles a blank sheet with developers as artists. Developers are free to draw and paint, limited only by their imagination and the size of the sheet.
The reprogrammability of FPGAs has become an increasingly important consideration for enterprise as industries transition from traditional intelligence to advanced analytics via machine learning and deep learning. Deep learning utilises complex neural network system where iterative training and deployment improves the accuracy and precision of the analysis results. This evolution sets the stage for FPGAs to shine due to their ability to enable repeated deployment of different neural network infrastructures.
Parallel, Efficient and Stable
Based on the 3 requirements for edge mentioned earlier, studies show that typical FPGA characteristics make them a suitable candidate for edge processing over GPUs and CPUs.
FPGAs are inherently parallel, which means that they break up workloads into pieces to be executed simultaneously. This can greatly reduce the processing time for specialized workloads in AI and intensive data analysis.
FPGAs are also more energy efficient, outperforming GPUs and CPUs by margins as large as more than 90% in some instances.
Finally, FPGAs have high workload stability, which is critical for the aggregation of individual requests from IoT sensors to ensure consistent performance. This is especially important to ensure a stable multi-sensor network, which will have a variety of signal data being produced at various timings.
Edge will be everywhere
In the near future, edge devices will be omnipresent as we move toward smart cities and autonomous systems. Data generation will continue to skyrocket as 5G technology takes off, enabling faster connection speeds. With this future in mind, opportunities are aplenty for fundamental technologies like FPGAs, with various use cases across industries requiring custom solutions.