Containerized FPGA Manager for Seamless Application Acceleration and Infrastructure Scalability

FPGA Acceleration through docker-based abstraction layer

InAccel exploits the high computational efficiency of FPGAs to deliver application acceleration services that provides up to 10x faster execution along with 3x cost reduction. Our belief as well as fundamental design focus is that acceleration must be delivered effortless to the user. To this end, InAccel offers seamless infrastructure as well as application integration.

This is achieved via the following key components developed in InAccel:

  • High-Performance hardware Accelerator Cores
  • ‘Coral’ FPGA Manager Abstraction Layer
  • Seamless Integration with state-of-the-art Frameworks

Seamless Application Integration

InAccel, a world leader is application acceleration, has released the Accelerated Machine Learning suite that allows data scientists to speedup their Machine learning pipelines. The ML suite accelerators support all the available cloud FPGA platforms and hence, they can be used to accelerate workloads in any cloud provider including AWS, Alibaba, and Nimbix. For every accelerator, a software interface is included in InAccel’s Software Library that handles the calls to the accelerator. As a result, by loading Inaccel’s Software Library and running the application, when the execution reaches the accelerated part, this interface sends the respective requests to InAccel’s FPGA Manager and starts the accelerated execution. InAccel’s Software Library supports typical and widely used programming languages like C/C++, Java, Python, and Scala and enables the data scientists to benefit from hardware acceleration without modifying at all their source codes.

Seamless Infrastructure Integration

FPGA manager description and key features:

  • Automatic scheduling, orchestration, and monitoring of the accelerators
  • Data transfer management
  • Multi-user/process support
  • Enhance security features

InAccel’s FPGA Manager is designed in such a way to support multiple platforms and create an abstraction layer between the application and the FPGA. The FPGA manager receives high-level API requests and translates them into FPGA-specific commands managing the interaction of the software with the FPGA and making its exploitation transparent to the application. Abstracting the FPGA is the only viable option to leverage and promote FPGA  acceleration in cloud.

Having built an FPGA Manager that supports all the cloud-available FPGA platforms, we containerized the Manager to make it completely infrastructure independent and enable its deployment in any cluster and cloud provider. Inaccel’s Docker container comprises both the FPGA Manager as well as the required (per platform) FPGA software interface and libraries building a complete self-contained containerized FPGA runtime system.

As a result, by just deploying Inaccel’s Docker container, no other modifications on the application and/or the host are required to support FPGA accelerated execution. This approach enables us to support both containerized and native application execution as well as being compatible with several state-of-the-art orchestrators such as Kubernetes, Docker swarm, and AWS ECS. Moreover, scaling up and out the accelerated infrastructure/resources becomes transparent to the user. Assuming an AWS EC2 cluster, changing the instance type from f1.2xlarge to f1.16xlarge.

InAccel’s Docker container automatically detects the new FPGAs and configures the FPGA Manager accordingly to schedule the acceleration requests to more FPGA’s. Similarly, the user can increase on demand the size of the cluster by adding new f1 instances and by just deploying InAccel’s Docker container to them, they are ready to serve acceleration services (in a matter of seconds) without requiring the user to install anything (e.g., FPGA runtime and libraries) on the new instances. For example, consider a Kubernetes  cluster, by deploy InAccel’s Docker container as a daemonset to all the FPGA accelerated nodes, they are ready to serve acceleration services.

Finally, the FPGA manager exposes FPGA utilization information to the container orchestrators (e.g., Kubernetes). Hence, the former can inform the latter about the available (free) FPGA resources and build an aggregated software-hardware resource manager that can optimize the orchestration and scheduling of the accelerated applications.

InAccel abstracts FPGA Acceleration and makes it as easy as:

  • Deploy InAccel Docker container
  • Load InAccel Software Library and run your application
  • Get up to 10x speedup — Pay up to 3x less

Feel free to contact us or check it online at docker hub.

FPGA manager cloud scheduler orchestration aws

Leave a Reply

Your email address will not be published.