Last month, Next platform organized the Next FPGA platform event in the heart of Silicon Valley attracting some of the preeminent leaders in FPGAs on the application acceleration side for an extended day of discussions. The discussion was based on live interview and exciting panel.
In the last years there has been significant traction for FPGAs to accelerate a wide range of enterprise applications like machine learning, quantitative finance, genomics, big-data analytics, and video processing among others. During the event we had the chance to hear what the main opportunities and challenges for the widespread adoption of FPGAs in data centers are.
Ivo Bolsens, CTO of Xilinx, said that while there are many legacy applications that might not ever fit the acceleration bill, emerging workloads throughout the datacenter will increase demand for FPGAs, especially given system-level trends, including a slow-down in Moore’s law and subsequent look to heterogeneous and domain specific architectures. [1]
Jose Alvarez, senior director in the CTO Office for the Programmable Solutions Group at Intel, pointed out the need for a unified API (i.e. OneAPI) that will allow applications to be deployed to heterogeneous datacenters consisting of scalar, vector, matrix, and spatial architectures. [2]
During an exciting panel discussion with Jim Dworkin, senior director of business development at Intel, and Donna Yasay, vice president of data center product marketing at Xilinx, it was emphasized the role of FPGAs as SmartNIC as FPGAs combine flexibility similar to a CPU, and high performance I/O and bandwidth that can scale [3].
Roger Bertschmann, chief executive officer at Eideticom, and Scott Shadley, vice president of marketing at NGD Systems, pointed out how FPGAs can prevail as a promising computational storage platform [3].
Easy Deployment, Scaling and Resource Sharing
However, one of the main issues raised by many participants and speakers was the need for an OS layers for the widespread adoption of FPGAs that will allow easy deployment, instant scaling and seamless sharing of the FPGA resources. An abstraction layer that will allow software developers to utilize FPGAs without prior knowledge of FPGA can accelerate the adoption of FPGAs in many applications. One of the speakers mentioned also the need for serverless deployment of FPGAs that will allow the seamless utilization of the FPGAs by software developers.
As InAccel was the first company that demonstrated the utilization of FPGAs from high level framework like Spark, it was the first to provide a high-level abstraction of the FPGA resources. InAccel technology helps solves all the main challenged discussed during the event for the widespread deployment of FPGA clusters. InAccel’s unique FPGA orchestrator allows easy deployment, instant scaling and seamless sharing of the FPGA resources from multiple applications.
FPGA library
InAccel main innovation is the decoupling of FPGA binary files (ready-to-use bitstreams) from the software code. As it is common in many software languages like python and Java, the use of ready-to-use libraries for the most widely used function is of paramount importance for the adoption of the programming language. Therefore, the use of pre-compiled binary files (bitstreams) and the deployment of an FPGA repository that hosts many ready-to-use binaries for several FPGA cards allows the easy utilization of FGPAs from the software community. The FPGA repository expose to the software developers only the required information for the invoking of the accelerators as it is done in any software library (i.e. name of function, input and output arguments).
FPGA vendors, like Xilinx, offer open-source accelerators like the Vitis libraries for widely used applications (compression, encryption, quantitative finance, linear algebra vision). Using InAccel’s precompiled binary files for these applications, gives the opportunity to the software developers to instantly utilized FPGAs without being exposed to the time-consuming process of synthesis and place&route.
Scale-out and resource sharing
This unique approach allows the easy scale-out of an application to multiple FPGAs in the same server without user having to manually define which function will be executed on which FPGA. As it is done in the software world where the users do not specify in which core the application will be executed, similarly InAccel manager/orchestrator automatically dispatch the functions to the available resources in the FPGA cluster. Also, it automatically configures and initialize the FPGAs with the right bitstream making easier than ever the deployment of FPGA clusters from a software developer. Combining the FPGA manager with InAccel’s Kubernetes plug-in it allows to scale-out also to multiple servers with multiple FPGAs.
Finally, one of the main advantages of InAccel’s orchestrator is that it allows multiple applications or processes to share the available resources without the user having to do manually the contention management. InAccel’s orchestrator serves as the scheduler that allows the sharing of the available FPGA resources in an FPGA cluster from multiple applications or users.
FPGA offer a unique combination of advantages: high-throughput, low latency and energy efficiency. Using OpenCL and C/C++ is now easier than ever to create your own accelerator. However, in order to allow the widespread adoption we must offer the frameworks that will allow easy deployment/ Inaccel’s unique FPGA orchestrator provides the abstraction layer that servers as an OS for an FPGA cluster and allows easy deployment, instant scaling and seamless sharing of the resources.
You can try it for free on http://inaccel.com
References:
[1] https://www.nextplatform.com/2020/01/31/when-will-fpgas-outweigh-cpu-in-compute-share/
[3] https://www.nextplatform.com/2020/02/05/the-killer-apps-for-fpgas-could-be-smartnics-and-storage/