https://blueprints.launchpad.net/openstack-cyborg/+spec/cyborg-fpga-driver
This spec proposes to provide the initial design for Cyborg’s FPGA driver.
A Field Programmable Gate Array(FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturing. The advantage lies in that they are sometimes significantly faster for some applications because of their parallel nature and optimality in terms of the number of gates used for a certain process. Hence, using FPGA for application acceleration in cloud has been becoming desirable.
There is a management framwork in Cyborg [1] for heterogeneous accelerators, tracking and deploying FPGAs. This spec will add a FPGA driver for Cyborg to manage specific FPGA devices.
In general, the goal is to develop a Cyborg FPGA driver that supports discover/program interfaces for FPGA accelerator framework.
The driver should include the follow functions: 1. discover() driver reports devices as following:
[{
"vendor": "0x8086",
"product": "bcc0",
"pr_num": 1,
"devices": "0000:be:00:0",
"path": "/sys/class/fpga/intel-fpga-dev.0",
"regions": [
{"vendor": "0x8086",
"product": "bcc1",
"regions": 1,
"devices": "0000:be:00:1",
"path": "/sys/class/fpga/intel-fpga-dev.1"
}]
}]
pr_num: partial reconfiguration region numbers.
None
FPGA driver will not touch Data model. The Cyborg Agent can call FPGA driver to update the database during the discover/program operations.
The related FPGA accelerator APIs is out of scope for this spec. The FPGA management framework for Cyborg [1] will alter the proposal.
None
None
None
None
Deployers should install the specific FPGA management stack that the driver depends on.
Please see ref [2] for details.
There will be some developer impact vis-à-vis new functionality that will be available to devs.
Document FPGA driver in the Cyborg project
[1] | (1, 2) https://blueprints.launchpad.net/openstack-cyborg/+spec/cyborg-fpga-modelling |
[2] | (1, 2) https://01.org/OPAE |
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.