FPGA accelerated parsing
By default, Bolson parses and converts JSONs using Arrow's built-in JSON parser. Bolson can also run with FPGA-accelerated parsing enabled for specific, hard coded schemas.
Fletcher/Intel OPAE
Prerequisites
- A system set up according to the setup instructions for Fletcher OPAE.
- The correct bitstream for a specific Arrow schema & parser implementation.
Flash the bitstream
Make sure to first flash the bitstream. From the Fletcher OPAE guide:
Start the FPGA development environment container for the Intel Acceleration Stack (IAS).
cd path/to/bitstream
docker run -it --rm --privileged -v `pwd`:/src:ro ias:1.2.1
From the IAS container, program the FPGA with the bitstream and exit the container:
fpgaconf bitstream.gbs
exit
Enable huge pages
The current implementation of Fletcher OPAE based accelerators requires huge pages to be enabled.
On a CentOS system, they can be enabled by root users as follows:
sudo su
echo 32 | tee /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
exit
Run Bolson with FPGA-accelerated parser implementation
Run Bolson with the -p
or --parser
option followed by the name of the
implementation of to select which FPGA-accelerated parser implementation to use
for the respective subcommand (stream
or bench convert
).
To see which implementations are available, run Bolson
with <subcommand> --help
.
Example:
bolson bench convert path/to/schema.as -p opae-battery