This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

GNA

Overview

The GNA API provides access to Intel’s Gaussian Mixture Model and Neural Network Accelerator (GNA).

Configuration Options

Related configuration options:

API Reference

group gna_interface

This file contains the driver APIs for Intel’s Gaussian Mixture Model and Neural Network Accelerator (GNA)

Enums

enum gna_result

Result of an inference operation

Values:

enumerator GNA_RESULT_INFERENCE_COMPLETE
enumerator GNA_RESULT_SATURATION_OCCURRED
enumerator GNA_RESULT_OUTPUT_BUFFER_FULL_ERROR
enumerator GNA_RESULT_PARAM_OUT_OF_RANGE_ERROR
enumerator GNA_RESULT_GENERIC_ERROR

Functions

static inline int gna_configure(const struct device *dev, struct gna_config *cfg)

Configure the GNA device.

Configure the GNA device. The GNA device must be configured before registering a model or performing inference

Parameters
  • dev – Pointer to the device structure for the driver instance.

  • cfg – Device configuration information

Returns

  • 0 – If the configuration is successful

  • A – negative error code in case of a failure.

static inline int gna_register_model(const struct device *dev, struct gna_model_info *model, void **model_handle)

Register a neural network model.

Register a neural network model with the GNA device A model needs to be registered before it can be used to perform inference

Parameters
  • dev – Pointer to the device structure for the driver instance.

  • model – Information about the neural network model

  • model_handle – Handle to the registered model if registration succeeds

Returns

  • 0 – If registration of the model is successful.

  • A – negative error code in case of a failure.

static inline int gna_deregister_model(const struct device *dev, void *model)

De-register a previously registered neural network model.

De-register a previously registered neural network model from the GNA device De-registration may be done to free up memory for registering another model Once de-registered, the model can no longer be used to perform inference

Parameters
  • dev – Pointer to the device structure for the driver instance.

  • model – Model handle output by gna_register_model API

Returns

  • 0 – If de-registration of the model is successful.

  • A – negative error code in case of a failure.

static inline int gna_infer(const struct device *dev, struct gna_inference_req *req, gna_callback callback)

Perform inference on a model with input vectors.

Make an inference request on a previously registered model with an of input data vector A callback is provided for notification of inference completion

Parameters
  • dev – Pointer to the device structure for the driver instance.

  • req – Information required to perform inference on a neural network

  • callback – A callback function to notify inference completion

Returns

  • 0 – If the request is accepted

  • A – negative error code in case of a failure.

struct gna_config
#include <gna.h>

GNA driver configuration structure. Currently empty.

struct gna_model_header
#include <gna.h>

GNA Neural Network model header Describes the key parameters of the neural network model

struct gna_model_info
#include <gna.h>

GNA Neural Network model information to be provided by application during model registration

struct gna_inference_req
#include <gna.h>

Request to perform inference on the given neural network model

struct gna_inference_stats
#include <gna.h>

Statistics of the inference operation returned after completion

struct gna_inference_resp
#include <gna.h>

Structure containing a response to the inference request