Scanner C++ API
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
scanner::StenciledBatchedKernel Class Referenceabstract

Interface for a unit of computation in a pipeline. More...

#include <kernel.h>

Inheritance diagram for scanner::StenciledBatchedKernel:
scanner::BaseKernel scanner::PythonKernel

Public Member Functions

 StenciledBatchedKernel (const KernelConfig &config)
 
virtual void execute_kernel (const StenciledBatchedElements &input_columns, BatchedElements &output_columns) override
 For internal use.
 
- Public Member Functions inherited from scanner::BaseKernel
 BaseKernel (const KernelConfig &config)
 
virtual void validate (proto::Result *result)
 Checks if kernel arguments are valid. More...
 
virtual void fetch_resources (proto::Result *result)
 Downloads any resources necessary for the kernel to run. More...
 
virtual void setup_with_resources (proto::Result *result)
 Runs any setup code that relies on fetched resources. More...
 
virtual void new_stream (const std::vector< u8 > &args)
 Called when the Kernel is about to process a new stream. More...
 
virtual void reset ()
 Requests that kernel resets its logical state. More...
 
virtual void set_profiler (Profiler *profiler)
 For internal use.
 

Static Public Attributes

static const i32 UnlimitedDevices = 0
 
- Static Public Attributes inherited from scanner::BaseKernel
static const i32 UnlimitedDevices = 0
 

Protected Member Functions

virtual void execute (const StenciledBatchedElements &input_columns, BatchedElements &output_columns)=0
 Runs the op on input elements and produces equal number of output elements. More...
 

Protected Attributes

Profilerprofiler_ = nullptr
 

Additional Inherited Members

- Public Attributes inherited from scanner::BaseKernel
Profilerprofiler_ = nullptr
 

Detailed Description

Interface for a unit of computation in a pipeline.

Kernels form the core of Scanner's interface. They are essentially functions that take elements of inputs and produce an equal number elements of outputs. Kernels are stateful operators that get reset when provided non-contiguous batches of input. See KernelFactory for how an op defines what hardware it can use for its computation.

Member Function Documentation

virtual void scanner::StenciledBatchedKernel::execute ( const StenciledBatchedElements &  input_columns,
BatchedElements &  output_columns 
)
protectedpure virtual

Runs the op on input elements and produces equal number of output elements.

Parameters
input_columnsvector of columns, where each column is a vector of inputs and each input is a byte array
output_columnsop output, each column must have same length as the number of input elements

Evaluate gets run on batches of inputs. At the beginning of a pipeline this is raw RGB images from the input images/videos, and after that the input becomes whatever was returned by the previous op.

Number of output columns must be non-zero.

Implemented in scanner::PythonKernel.

Member Data Documentation

Profiler* scanner::StenciledBatchedKernel::profiler_ = nullptr
protected

The profiler allows an op to save profiling data for later visualization. It is not guaranteed to be non-null, so check before use.


The documentation for this class was generated from the following files: