Skip to content

Add athena algorithm for interfacing with EFTracking firmware.

Needed for EFTracking test vector validation (since this must be run on hardware via Athena). Largely independent of the existing athena xrt service but reuses the CMakeLists.txt as xrt is still not available through cvmfs).

Adds three new algorithms:

  • EFTrackingXrtAlgorithm
  • EFTrackingDataStreamLoaderAlgorithm
  • EFTrackingDataStreamUnloaderAlgorithm

Only the EFTrackingXrtAlgorithm is strictly needed but in order to validate it the two supporting algorithms were added to simplify populating (and dumping) store gate objects.

Tested using a dummy xclbin using hardware and hardware emulated fpga (U250) (rough schematic can be found in EFTrackingXrtAlgorithm.py, see comment regarding default arguments) and data is correctly relayed.

Configurable to map an arbitrary number of FPGA kernels, input memory maps, output memory maps into store gate handles allowing kernel operations to be scheduled centrally (depending on the availability of data). These handles should point to std::vector<unsigned long>.

Tagging: @zhidongz @sabidi @acamplan

P.s. This algorithm does not provide a mechanism to create device only buffers (useful when a kernels output is too large to store in fabric so gets put in DDR/HBM/PLRAM etc but still needs to be repeatedly accessed by other kernels). This would not be too complicated, just need to add an interface mode (e.g. SHARED) to prevent associating a store gate key with the interface.

Edited by Lucy Lewitt

Merge request reports

Loading