C++ Run-time Library
Loading...
Searching...
No Matches
Fletcher C++ Run-time Library

The Fletcher C++ Run-time Library enables support for Fletcher-based accelerated applications.

Build & install

Requirements

Build

mkdir build
cmake ..
make
sudo make install

Example usage

Include:

++
#include <fletcher/api.h>

Example snippet:

++
// Given a RecordBatch:
std::shared_ptr<arrow::RecordBatch> batch = ...
std::shared_ptr<Platform> platform;
std::shared_ptr<Context> context;
Platform::Make(&platform); // Create an interface to an auto-detected FPGA Platform.
platform->Init(); // Initialize the Platform.
Context::Make(&context, platform); // Create a Context for our data on the Platform.
context->QueueRecordBatch(number_batch); // Queue the RecordBatch to the Context.
context->Enable(); // Enable the Context, (potentially transferring the data to FPGA).
Kernel kernel(context); // Set up an interface to the Kernel, supplying the Context.
kernel.Start(); // Start the kernel.
kernel.PollUntilDone(); // Wait for the kernel to finish.
kernel.GetReturn(&result); // Obtain the result.
A Context for a platform where a RecordBatches can be prepared for processing by the Kernel.
Definition context.h:83
The Kernel class is used to manage the computational kernel of the accelerator.
Definition kernel.h:29
A Fletcher Platform. Links during run-time and abstracts access to lower-level platform-specific libr...
Definition platform.h:33

Documentation

C++ API Documentation