FPGAs are programmable chips that can be configured with tailored-made architectures optimized for specific applications. As FPGAs are optimized for specific tasks, they offer higher performance and lower energy consumption compared with general purpose CPUs or GPUs. FPGAs are widely used in applications like image processing, telecommunications, networking, automotive and machine learning applications.
Recently major cloud and HPC providers like Amazon, Alibaba, Huawei and Nimbix have started deploying FPGAs in their data centers. However, currently the development tools and frameworks offered by FPGA vendors and cloud providers do not allow the utilization of FPGA cluster from multiple applications. For example, if one application wants to distribute the workload into several FPGAs in a server, users have to do a manual scheduling to perform the distributions. Similarly, when multiple applications want to share one or more FPGAs there is not any framework available to perform the sharing of the resources and the scheduling of the request to the FPGA cluster.
In the domain of cloud computing there are several frameworks for the orchestration, scheduling and deployment of CPU clusters like Spark, Mesos, Yarn, Kubernetes, etc. The lack of specialized resource managers and schedulers has limited the deployment of FPGA clusters.
InAccel, a start-up company specialized on accelerators for machine learning, has released today the latest version of the Coral FPGA resource manager that allows the software community to instantiate and utilize a cluster of FPGAs with the same easy as invoking typical software functions. InAccel’s Coral FPGA resource manager allows multiple applications to share and utilize a cluster of FPGAs in the same node (server) without worrying about the scheduling, load balancing and the resource management of each FPGA.
Among others, Coral FPGA resource manager makes much easier the utilization of the FPGAs in software by hiding the complexity of the OpenCL utilization and replacing it with simple software functions. That way, software programmers can deploy instantly and utilize a cluster of FPGAs in the same node. The resource manager supports both single-thread and multi-thread applications as the requests for the FPGA cluster are completely decoupled.
At the same time, InAccel has integrated its resource managers with Apache Spark that allows servers with multiple FPGAs to scale to hundreds of nodes through the Spark integrations.
Chris Kachris, CEO of InAccel, mentioned that Coral FPGA resource manager covers an essential missing part in the FPGA ecosystem as it allows software programmers to access FPGA accelerators seamlessly.
Coral FPGA resource manager supports both Xilinx and Intel FPGAs and can be used both for on- prem solutions or on cloud (aws, Alibaba cloud, Huawei, cloud, etc).
As an example, FPGA resource manager allows the instant migration from the smaller servers of AWS using 1 FPGA (f1.2x) to the larger instances that host 8 FPGAs (f1.12x). The users just have to change the number of FPGAs that they want to use.
InAccel’s Coral FPGA resource manager is available as a docker container for easy installation. Also, it provides a light-weight graphical monitoring tool that allows users to get useful insight into the operation of the FPGAs. For example, it can provide information about the FPGA utilization and the shared memory usage.
InAccel has also developed the world’s first artifact repository for FPGA bitstreams based on jfrog. This vendor-agnostic repository allows the easy management of the FPGA bitstreams and serves as the IP library for the FPGA resource manager.
InAccel’s Coral FPGA resource manager is available on two versions: a free community edition with limited features and the enterprise edition.