Computational kernel
A computational kernel is a user-defined accelerator routine that takes a given set of input data and returns the output data based on the given input.
Task descriptor
A task descriptor contains all the relevant task descriptions. To maximize accelerator performance, ALF employs a static memory allocation model per task execution on the accelerator. This means that ALF requires you to provide information about buffers, stack usage, and the number of data transfer list entries ahead of time.
Work blocks
A work block represents an invocation of a task with a specific set of related input data, output data, and parameters. The input and output data are described by corresponding data transfer lists. The parameters are provided through the ALF APIs. Depending on the application, the data transfer list can either be generated on the host (host data partition) or by the accelerators (accelerator data partition).
Data set
An ALF data set is a logical set of data buffers. A data set informs the ALF runtime about the set of all data to which the task's work blocks refer. The ALF runtime uses this information to optimize how data is moved from the host's memory to the accelerator's memory and back.
Error handling
ALF supports limited capability to handle runtime errors. Upon encountering an error, the ALF runtime tries to free up resources, then exits by default. To allow the accelerated library developers to handle errors in a more graceful manner, you can register a callback error handler function to the ALF runtime. Depending on the type of error, the error handler function can direct the ALF runtime to retry the current operation, stop the current operation, or shut down. These are controlled by the return values of the callback error handler function.