opae-sdk-0.13.0
The Open Programmable Acceleration Engine is a software framework for managing and accessing programmable accelerators (FPGAs). Its main parts are:
- The OPAE Software Development Kit (OPAE SDK),
- the OPAE Linux driver for Intel(R) Xeon(R) CPU with FPGAs, and
- the Basic Building Block (BBB) library for accelerating AFU development (not part of this release, but pre-release code is available [on GitHub)[https://github.com/OPAE/intel-fpga-bbb]
OPAE is under active development to extend to more hardware platforms, as well as to build up the software stack with additional abstractions to enable more software developers.
The OPAE SDK is a collection of libraries and tools to facilitate the development of software applications and accelerators using OPAE. It provides a library implementing the OPAE C API for presenting a streamlined and easy-to-use interface for software applications to discover, access, and manage FPGA devices and accelerators using the OPAE software stack. The OPAE SDK also includes the AFU Simulation Environment (ASE) for end-to-end simulation of accelerator RTL together with software applications using the OPAE C API.
OPAE's goal is to accelerate FPGA adoption. It is a community effort to simplify the development and deployment of FPGA applications, so we explicitly welcome discussions and contributions! The OPAE SDK source, unless otherwise noted, is released under a BSD 3-clause license.
More information about OPAE can be found at http://01.org/OPAE.
Open Programmable Acceleration Engine (OPAE) 0.13.0 Release Notes
This document provides the Release Notes for the Open Programmable Acceleration Engine (OPAE) 0.13.0 release.
System Compatibility
- Hardware: tightly coupled FPGA products and programmable FPGA acceleration cards for Intel(R) Xeon(R) processors (to be released); Intel(R) PAC with Arria(R) 10 card
- Operating System: tested on Red Hat Enterprise Linux 7.3, Red Hat Enterprise Linux 7.4, and CentOS 7.4, with Linux kernels 3.10 through 4.7
- FIM (FPGA Interface Manager): 6.4.0
Major Changes from 0.9.0 to 0.13.0
For a detailed list of changes, please visit https://github.com/OPAE/opae-sdk/commits/0.13.0.
OPAE SDK
- Added port and user interrupt support for selected platforms
- Improved ASE simulator compatibility
- Augmented ASE with memory model for locally attached memory
- Added new tools
- AFU packager (
packager
) - FIM flash tool (
fpgaflash
) - Port assignment tool for enabling virtualization (
fpgaport
) - Built-in self test (
fpgabist
) - Core idling tool for adjusting CPU power budget (
coreidle
) - CCIP-MUX testing tool (
fpgamux
)
- AFU packager (
- Added fpgainfo features
- Added support for object ID property
- Added platform database for AFU interface generation in ASE
- Integrated OPAE documentation sources
- Code quality improvements, bug fixes, and clean up
- Removed power threshold 2 to account for FIM changes
- Updated compilation flags for defensive compilation
- Added support for Travis CI regression testing
OPAE Linux driver for Intel(R) Xeon(R) CPU with FPGAs
- Added support for FIM 6.4.0 (including interrupt support for selected platforms)
- Integrated driver for Altera / intel mSGDMA IP core
- Code quality improvements, bug fixes, and clean up
Notes / Known Issues
-
Partial reconfiguration with SR-IOV
If using OPAE in a virtualized environment with SR-IOV enabled, we recommend disabling SR-IOV before performing partial reconfiguration. See "Partial Reconfiguration" in the "OPAE Intel FPGA Linux Device Driver Architecture" document for more information
-
fpgaAssignToInterface() and fpgaReleaseFromInterface() not supported
The OPAE C API provides functions to assign individual AFCs to host interfaces (i.e. a virtual or physical function). Due to the internal implementation of fpga_token, these functions are not yet supported. Instead, we provide a simplified call fpgaAssignPortToInterface() that can assign a port by number to either the physical function (PF) or virtual function (VF). This function will eventually be replaced by the more generic implementation of fpgaAssignToInterface() and fpgaReleaseFromInterface() in a future release.
-
hssi_loopback tool help menu lists incorrect option for packet count
The help menu indicates
-p
is the packet count, however the actual switch is-c
. -
AP6 condition may prevent clearing of port errors
If the system encounters an AP6 condition (exceeded power or temperature threshold), it will report a port error. These errors can only be cleared (e.g. using
fpgainfo
) after the AP6 condition has been removed. -
Driver may not display explicit incompatibility message if loaded on mismatched FIM version
When trying to insert the Linux kernel driver modules while an FPGA platform with an unsupported FIM version is present in the system, the driver may fail to load and/or fail to print an explicit incompatibility warning message in the system log. Please make sure to use the driver only with a compatible FIM.
-
Multiple ModelSim simulator instances may crash when run on the same host
When trying to run multiple instances of the ModelSim simulator on a single system, the simulator may crash. Only run one instance of ModelSim at the same time per system.