Skip to content

Getting Started

InAccel Coral is a fast and general-purpose FPGA resource management system. It provides high-level APIs in Java, Scala, Python and C++, and a unified engine that supports every multi-FPGA platform. Coral is also shipped with a rich set of higher-level integrations including Apache Arrow for zero-copy, lightning-fast data accesses and Apache Spark for seamlessly accelerated machine learning.

This document gives a short overview of how Coral runs on clusters of FPGAs, to make it easier to understand the components involved. Read through the accelerator deployment guide to learn about submitting your accelerators on an FPGA cluster through Coral.

Installing Coral-

All Coral versions are packaged as docker images hosted in InAccel Docker Hub.

Docker Pull Command

docker pull "inaccel/coral:latest"
docker pull "inaccel/coral:latest"

Coral runs on any UNIX-like system (e.g. Linux). It’s really easy to deploy on any machine, since it lives inside a containerized environment — all you need is to have the vendor-specific FPGA runtime installed on your system and run it with the container pointing to that installation.

For example:

CORAL_PLATFORM=/path/to/my/intel/platform

docker run --runtime=intel --name "inaccel-coral" \
    -h coral -p 55677:55677 \
    --ipc=host --privileged \
    -e CORAL_LICENSE_KEY=${CORAL_LICENSE_KEY} \
    -v ${CORAL_PLATFORM}:/opt/inaccel/platform \
    -e CORAL_HOSTNAME="coral" -e CORAL_PORT="55677" \
    -e CORAL_MAX_SLAVES="8" \
    -d "inaccel/coral"
CORAL_PLATFORM=/path/to/my/xilinx/platform

docker run --runtime=xilinx --name "inaccel-coral" \
    -h coral -p 55677:55677 \
    --ipc=host --privileged \
    -e CORAL_LICENSE_KEY=${CORAL_LICENSE_KEY} \
    -v ${CORAL_PLATFORM}:/opt/inaccel/platform \
    -e CORAL_HOSTNAME="coral" -e CORAL_PORT="55677" \
    -e CORAL_MAX_SLAVES="8" \
    -d "inaccel/coral"

Installing InAccel Docker Service-

InAccel's FPGA Container Runtime enables Coral to run seamlessly across heterogeneous driver/toolkit environments with the only requirement, the FPGA driver to be installed on the host.

Docker do not natively support FPGAs since any specialized hardware requires a version specific installation of a driver on both the host and the containers. InAccel Docker Service, allows Coral FPGA resource manager to be agnostic of the host FPGA driver/vendor.

wget http://jfrog.inaccel.com/artifactory/generic-local/packages/inaccel-service.deb

sudo apt install -y inaccel-service.deb

sudo systemctl restart docker
wget http://jfrog.inaccel.com/artifactory/generic-local/packages/inaccel-service.rpm

sudo yum install -y inaccel-service.rpm

sudo systemctl restart docker

Usage:

  • inaccel start: Starts inaccel-coral container.
  • inaccel stop: Stops inaccel-coral container.
  • inaccel restart: Restarts inaccel-coral container.
  • inaccel config: Configures inaccel CLI tool.
  • inaccel logs: Displays log messages.
    • LEVEL (all, trace, debug, info, warn, error, fatal)
    • -f, --follow Follow stdout & stderr.
  • inaccel fetch: Download all the available accelerators.
    • TARGET (ALVEO_U200, AMAZON_F1, PAC_A10)

After you have set the proper docker command configuration, you can also simply use InAccel Service, e.g. systemctl start inaccel.

Using Coral API-

This documentation is for Coral API version 1.3. Java and Scala users can include Coral API in their projects using its Maven coordinates, C++ users can install it through the available Debian or RPM packages and in the future Python users can also install Coral API from PyPI.