*** 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. .. doxygentypedef:: ENNModelId ``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. .. doxygenfunction:: InitBackend() .. doxygenfunction:: InitBackend(uint32_t devices_count, uint32_t* devices) .. doxygenfunction:: ReleaseDevice .. doxygenfunction:: LoadModel .. doxygenfunction:: GetInputsNumber .. doxygenfunction:: GetOutputsNumber .. doxygenfunction:: GetInputName .. doxygenfunction:: GetInputShape .. doxygenfunction:: GetOutputName .. doxygenfunction:: GetOutputShape .. doxygenfunction:: InvokeModel(ENNModelId model_id, float** input_data, float** output_data, uint32_t batch_size) The function takes model inputs as a float arrays and puts network's result into a float arrays. .. doxygenfunction:: InvokeModel(ENNModelId model_id, int* in_data_dmabuf_fd_array, float* output_data, uint32_t batch_size) .. note:: ElcoreNN uses the data parallelization paradigm. Input data distributes between DSP cores by batch dimension. .. doxygenfunction:: SaveModelStatisticToCSV During inference, ElcoreNN collects number of cores cycles instructions for each layer. This can be useful for performance analysis.