API

The ElcoreNN API consists of the following parts:

  • elcorenn/elcorenn.h: ElcoreNN CPU library API.

ElcoreNN CPU library API

elcorenn/elcorenn.h defines the ElcoreNN CPU library API functions.

void InitBackend()

Initializes internal DSPs resources.

void ReleaseDevice()

Releases internal DSPs resources.

typedef unsigned int ENNModelId

Model ID.

ENNModelId is a model descriptor. That descriptor refers to the model loaded into DSP (Elcore50) memory. Use LoadModel function to easily load model into DSP memory.

ENNModelId LoadModel(const char *model_json, const char *model_weights)

Loads model from files.

Parameters
  • model_json[in] The description of the model saved in json format

  • model_weights[in] The binary file of model’s weights

Returns

Model ID

void InvokeModel(ENNModelId model_id, float *input_data, float *output_data, uint32_t batch_size)

Runs model inference.

Parameters
  • model_id[in] Model ID

  • input_data[in] Input data

  • output_data[out] Output data

  • batch_size[in] Batch size dimension in input data

The function takes model input as a float array and puts network’s result into a float array.

Note

ElcoreNN uses the data parallelization paradigm. Input data distributes between DSP cores by batch dimension.

void SaveModelStatisticToCSV(ENNModelId model_id, const char *file_path)

Saves model time statistic to a CSV file.

Parameters
  • model_id[in] Model ID

  • file_path[in] Path to CSV file

During inference, ElcoreNN collects number of cores cycles instructions for each layer. This can be useful for performance analysis.