FPGA accelerators on Public Cloud
Use dedicated accelerators in a standard cloud environment
Use the right hardware for your application
FPGAs are reconfigurable chips that can be modified to perform any task. They can accelerate your applications thanks to their massive parallelism and their ability to exploit architectures than are not available on CPUs or GPUs. On OVH Public Cloud, we can provide you an instance connected to an FPGA via PCIe. But to simplify the use of the FPGA, we also provide ready-to-use accelerators through partners.
FPGA accelerators are available today, but only to customers who requested them.
Intel FPGAs in the open-source OPAE framework
Each FPGA public cloud instance is connected to one Arria 10 FPGA (10AX115N2F40E2LG). This is the latest generation of Intel FPGAs, with more than a million logic elements working in parallel. The FPGA can also use 16GB of on-board DDR4 memory. It communicates with the instance through a PCIe x8 Gen3 link.
We use the open-source OPAE framework to manage the FPGA. This means that any development made for the OVH environment is compatible with the whole OPAE ecosystem.
Ready-to-use accelerators from Accelize
Accelize is specialized in FPGA Acceleration-as-a-Service solutions for the Cloud industry. Through our partnership, Accelize, in cooperation with its QuickAlliance partners (CAST, Barco-Silex, Logic-Fruit, and more) provides ready-to-use accelerators. On public Cloud, they are made of two parts: a specific flavour to use the right accelerator on FPGA, and an image with all drivers and tools preinstalled to use the accelerator.
The accelerators currently available are listed below. But these are just examples of what can be done, if you have other needs,contact us.
Bring your own accelerator
Any FPGA accelerator can be made compatible with the OPAE framework. If you have accelerators that you want to use or make available on OVH Public Cloud, contact us. Accelerators can be developed using a Hardware Description Language (HDL) or OpenCL.
Both solutions require some hardware expertise, although OpenCL can make the development faster and easier.
Accelerators currently available
The Hyper FiRe engine accelerates whole words Find/Replace operations in ASCII files. This engine runs up to 6,000 times faster than a sed (stream editor) command. As an example, one can search 2,500 distinct entries in the entire Wikipedia archive (60 GB) in just 6 minutes. In comparison, it would take over 16 days on a traditional CPU.
This accelerator is capable of encoding in real-time video on-the-fly Bitmap images while producing standard JPEG compressed format. It does not require any processor nor any external memory but run on FPGA instances. The application can run at more than 40 BMP (1920x1080) processed per second.
An FPGA (Field-Programmable Gate Array) is a configurable chip. It is made of millions of small elements that can be assembled to build any digital circuit :
- Inputs and outputs (to connect to PCIe or Ethernet links for example)
- Registers to store variables
- Look-up tables to compute operations (sum, compare...)
- Small memory blocks
- Specialized elements (multipliers for digital signal processing for example)
An FPGA can be configured to realize a specialized circuit for a given application. It is a compromise between a fully specialized circuit (ASIC) and a generic processor (CPU). ASICs offer optimal performance, but they require years to develop and they cannot be updated once installed. CPUs can perform any task, but they waste a lot of time and power compared to a specialized circuit.
FPGAs are particularly good to build data pipelines specialized for one application. Each task may depend from the previous one, but in a pipeline, all tasks work simultaneously on different data. Pipelines can have hundreds of steps, and each step can have some local memory storage, as well as specialized hardware (FIFOs, multipliers, adders...). It enables the millions of computation elements on an FPGA to work in parallel.
The FPGA chips are soldered on cards with some DDR4 RAM and a PCIe connection. These cards look a lot like Network Interface Cards. The communication between the software part (CPU) and the FPGA is done through PCIe. The PCIe link is forwarded to the cloud instance, just as if it were directly connected. In typical use, the CPU sends data to the FPGA through PCIe, the FPGA processes it, and sends the results back to the CPU. While the FPGA is working, the CPU is free to perform other tasks.
The FPGA flavours in Public Cloud actually work a lot like the GPU instances: they are standard instances with specialized hardware available through a PCIe link.
Just like for CPUs and GPUs, anyone can develop its own accelerator on FPGA. But for now, to get good performance, an expertise in hardware development is required. We provide ready-to-use accelerators made of :
- The FPGA design
- The software drivers
- A library or an API to use the function easily
In Public Cloud, an accelerator is made of a specific flavour, associated to a specific image. The flavour determines the FPGA design to use, and the image provides the drivers and libraries.
- In the OVH manager, go to your public cloud project
- Start an instance, choosing the FPGA flavour associated with the wanted accelerator (for example f2-120-regexp), and the image associated to the accelerator (fpga-accelize-regexp for example)
- You can now login to your instance using SSH To use an accelerator provided by Accelize, you need a token from them:
- Create an account on the AccelStore
- Get your token on the AccelStore for the wanted accelerator, and configure it in your instance
- Use the accelerator, documentation is available on Github for each accelerator.