Welcome to the Data Analytics repository. This repository contains the latest examples to get you started with application optimization targeting Xilinx PCIe FPGA acceleration boards. All examples are ready to be compiled and executed on boards, for example, the boards hosted in the Amazon F1 clouds. The repository information is provided as below
This repository provides source code for big data acceleration on FPGA. In particular, this provides acceleration kernel for PostgreSQL RDBMS. The acceleration is in SQL Query and other typical big data operations.
This repository includes the following acceleration modules that can be run on F1
It accelerates Postgres query by offloading scanning operations to Xilinx FPGA. The query plan is intercepted during the execution, and data is streamed to the FPGA for scan acceleration. The output relation is then registered with postgres database. The FPGA kernel parses native Postgres storage blocks in a massively parallel implementation of SQL Engines.
Refer to xpg/README.md to learn more about this acceleration.
It accelerates Query 6 integrated within Postgres as a UDF (User Defined Functions). It sends Postgres tables to FPGA. An array of Query 6 processors process this native data to produce Query 6 results. When comparing end-to-end solution on F1, it shows a performance improvement. Kernel level performance is an order of magnitude better than F1 CPU.
Refer to xql6/README.md to learn more about this acceleration.
It accelerates Query 6 integrated within Postgres as a UDF (User Defined Functions) using Peer-to-Peer (P2P). It sends Postgres pages from a NVMe storage device to the FPGA. An array of Query 6 processors process this native data to produce Query 6 results.
Refer to xql6p2p/README.md to learn more about this acceleration.
It accelerates gather function that can be used as an example design to show case HBM performance for random access across HBM pseudo channels using interleaving.
Refer to omxgather/README.md to learn more about this acceleration.
The following table summarizes PROJECTS and ACCELERATION MODULES associated with their respective supported release. The release support refers to the repository branch. The current supported release is 2018.2.
PROJECTS and ACCELERATION MODULES | Release Support |
---|---|
XQL6P2P | 2018.3 |
XPG | 2018.3, 2018.2, 2017.1 |
XQL6 | 2018.3, 2018.2, 2017.1 |
XSQL61 | 2017.1 |
XDBCONN | 2017.1 |
XSQLUTILS | 2017.1 |
OMXGATHER | 2018.3 |
All the latest files in the directories are present in Xilinx github at https://github.com/Xilinx/data-analytics
Each directory contains a makefile to build host code, library and Xilinx Kernel for target platforms. These are the directories and their functionalities.
Directory | Description |
---|---|
postgresql | Postgres internals (for reference) |
tb_data | Testbench Data |
xpg | Postgres integrated TPCH Query Acceleration host code |
xql6 | Postgres integrated TPCH Query 6 Acceleration |
xql6p2p | Postgres integrated TPCH Query 6 Acceleration with Peer-to-Peer (P2P) support |
omxgather | gather design for random access across HBM channels using interleaving |
For more information check here: SDAccel User Guides
For questions and to get help on this project or your own projects, visit the SDAccel Forums.
Date | Readme Version | Revision Description |
---|---|---|
OCT2017 | 1.0 | Initial Xilinx release |
Mar2019 | 2.0 | Upgrade to SDx 2018.2 release |
Mar2019 | 3.0 | Upgrade to SDx 2018.3 release |