Skip to content

opae-sdk-0.9.0

Compare
Choose a tag to compare
@luebbers luebbers released this 02 Sep 11:26
· 3343 commits to master since this release

The Open Programmable Acceleration Engine is a software framework for managing and accessing programmable accelerators (FPGAs). It currently consists of two main parts, the OPAE SDK, and the OPAE Linux driver for Intel(R) Xeon(R) CPU with FPGAs, and is under active development to extend to more platforms.

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 is intended to be 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.

Open Programmable Acceleration Engine (OPAE) 0.9.0 Release Notes

This document provides the Release Notes for the Open Programmable Acceleration
Engine (OPAE) 0.9.0 release.

System Compatibility

  • Hardware: tightly coupled FPGA products and programmable FPGA acceleration
    cards for Intel(R) Xeon(R) processors (to be released)
  • Operating System: tested on RedHat 7.3, Linux kernels 3.10 through 4.7
  • FIM (FPGA Interface Manager): 6.3.0

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.

  • UMsgs are not supported on BBS 6.3.0

    The 6.3.0 blue bitstream for the Xeon Processor with Integrated FPGA exposes
    UMsg functionality, but does not fully support it. We recommend not using UMsg
    functionality with a 6.3.0 bitstream, although software will report is as
    being supported.

  • Driver RPM uninstallation does not clean up initrd on CentOS

    When removing the driver RPM on CentOS, the package may leave the compiled
    FPGA driver modules in initrd.

  • Allocation of multiple 1 GiB buffers on VT-d-enabled system may sporadially
    fail

    In certain configurations, allocating multiple 1 GiB huge pages on a
    non-virtualized system with VT-d turned on and an activated IOMMU may result
    in system instability. As an alternative, try disabling VT-d or the IOMMU, or
    running in a virtual machine.

  • Virtualized applications with frequent MMIO accesses may sporadically fail

    In certain configuration, high-frequency MMIO accesses from a virtual machine
    with a passed-through virtual function (VF) may trigger system instability.

  • Parallel partial reconfiguration on multiple FPGAs using fpgaconf may fail

    When programing multiple FPGAs concurrently using the 'fpgaconf' tool, single
    configurations may fail with the message "device enumeration failed". This is
    due to a collision of enumeration with a partial reconfiguration process, and
    is a recoverable error; either clear the PORT errors of the respective FPGA,
    or to attempt another reconfiguration using 'fpgaconf'.

  • AP events may not be triggered

    In certain circumstances, AP1/AP2 events may not be delivered to fpgad or user
    applications using fpgad for event delivery. Temperature status is correctly
    reported using fpgainfo or sysfs.