Edge AI Add-on API 2.3.0
Loading...
Searching...
No Matches
nrf_axon_nn_op_extensions.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
7#pragma once
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12#include <stdint.h>
13#include <stdbool.h>
14#include "nrf_axon_driver.h"
15
25 (uint16_t arg_size, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args);
26
46typedef struct {
47 int8_t *input;
48 int8_t *output;
93
98
99
118typedef struct {
119 struct {
122 int8_t *input;
124 int8_t *output;
125 } ptr_args;
126 struct {
127 union {
129 struct {
130 /*< height in elements of the input */
131 uint16_t input_height;
132 /*< width in elements of the input */
133 uint16_t input_width;
134 };
135 };
136 union {
138 struct {
139 /*< height in elements of the output */
141 /*< width in elements of the output */
142 uint16_t output_width;
143 };
144 };
145 union {
147 struct {
148 /*< channel count in elements of the input */
150 /*< channel count in elements of the output */
152 };
153 };
154 union {
156 struct {
158 uint16_t input_stride;
159 };
160 };
161 } remaining_args;
163
164
173 uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args);
174
186 uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args);
187
191#define NRF_AXON_SIG_TANH_INPUT16_RADIX 12
192
196#define NRF_AXON_SIG_TANH_OUTPUT16_RADIX 14
207void nrf_axon_compiler_sig_tanh_dequant_consts(int32_t *multiplier, uint8_t *shift);
208
253
265 uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args);
266
280
292 uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args);
293
305 uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args);
306
320
330 uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args);
331
333 uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args);
334
347typedef struct {
348 struct {
351 int8_t *input;
353 int8_t *output;
354 } ptr_args;
355 struct {
356 union {
358 struct {
360 uint16_t input_height;
362 uint16_t input_width;
363 };
364 };
365 union {
367 struct {
371 uint16_t output_width;
372 };
373 };
374 union {
376 struct {
381 };
382 };
383 union {
385 struct {
387 uint16_t input_stride;
390 };
391 };
392 } remaining_args;
394
405 uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args);
406
407
408
421typedef struct {
422 struct {
425 int8_t *space;
427 int8_t *batch;
428 } ptr_args;
429 struct {
430 union {
432 struct {
434 uint16_t space_height;
436 uint16_t space_width;
437 };
438 };
439 union {
441 struct {
443 uint16_t batch_height;
445 uint16_t batch_width;
446 };
447 };
448 union {
450 struct {
452 uint16_t channel_cnt;
454 uint16_t zero_point;
455 };
456 };
457 union {
459 struct {
465 uint16_t input_stride;
467 uint16_t batch_cnt;
468 };
469 };
470 union {
472 struct {
477 uint8_t pad_top;
478 uint8_t pad_bottom;
479 uint8_t pad_left;
480 uint8_t pad_right;
481 };
482 };
483 union {
485 struct {
486 uint16_t block_height;
487 uint16_t block_width;
488 };
489 };
490 } remaining_args;
492
503 uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args);
504
515 uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args);
516
517#ifdef __cplusplus
518} /* extern "C" { */
519#endif
nrf_axon_result_e
Axon driver return codes.
Definition nrf_axon_driver.h:109
uint32_t NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE
Definition nrf_axon_driver.h:89
nrf_axon_result_e nrf_axon_nn_op_extension_sigmoid(uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
Implements sigmoid operator.
nrf_axon_result_e nrf_axon_nn_op_extension_tanh(uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
Implements tanh operator.
nrf_axon_result_e nrf_axon_nn_op_extension_tanh_dequantize_input(uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
Implements tanh operator.
nrf_axon_result_e nrf_axon_nn_op_extension_tanh_v2(uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
Implements tanh operator.
nrf_axon_result_e nrf_axon_nn_op_extension_reshape_from_axon(uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
nrf_axon_result_e nrf_axon_nn_op_extension_sigmoid_dequantize_input(uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
Implements sigmoid operator.
nrf_axon_result_e(* axon_op_extension_func)(uint16_t arg_size, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
Function prototype for all operation extension functions.
Definition nrf_axon_nn_op_extensions.h:25
nrf_axon_result_e nrf_axon_nn_op_extension_resize_nearest_neighbor(uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
Implements resize_nearest_neighbor operator.
nrf_axon_result_e nrf_axon_nn_op_extension_reshape(uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
Implements reshape operator.
void nrf_axon_compiler_sig_tanh_dequant_consts(int32_t *multiplier, uint8_t *shift)
adjusts dequantization multiplier and scaler to produce a q3.12
nrf_axon_result_e nrf_axon_nn_op_extension_sigmoid_v2(uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
Implements sigmoid operator.
nrf_axon_result_e nrf_axon_nn_op_extension_softmax(uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
Implements softmax operator.
nrf_axon_result_e nrf_axon_nn_cpu_op_batch_to_space(uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
Implements batch_to_space operator.
nrf_axon_result_e nrf_axon_nn_cpu_op_space_to_batch(uint16_t argc, NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE *args)
Implements space_to_batch operator.
nrf_axon_nn_op_extension_base1_ptr_args_s ptr_args
Definition nrf_axon_nn_op_extensions.h:95
nrf_axon_nn_op_extension_base1_remaining_args_s remaining_args
Definition nrf_axon_nn_op_extensions.h:96
Definition nrf_axon_nn_op_extensions.h:94
int8_t * input
Definition nrf_axon_nn_op_extensions.h:47
int8_t * output
Definition nrf_axon_nn_op_extensions.h:48
Structure compiled into the command buffer then passed to some CPU op extension functions.
Definition nrf_axon_nn_op_extensions.h:46
uint16_t channel_cnt
Definition nrf_axon_nn_op_extensions.h:72
uint16_t width
Definition nrf_axon_nn_op_extensions.h:65
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer1
Definition nrf_axon_nn_op_extensions.h:60
uint8_t output_bytewidth
Definition nrf_axon_nn_op_extensions.h:83
uint32_t output_multiplier
Definition nrf_axon_nn_op_extensions.h:57
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer3
Definition nrf_axon_nn_op_extensions.h:80
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer0
Definition nrf_axon_nn_op_extensions.h:52
int8_t output_zeropoint
Definition nrf_axon_nn_op_extensions.h:76
bool quantization_enabled
Definition nrf_axon_nn_op_extensions.h:85
uint8_t output_rounding
Definition nrf_axon_nn_op_extensions.h:74
bool input_is_packed
Definition nrf_axon_nn_op_extensions.h:89
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer2
Definition nrf_axon_nn_op_extensions.h:69
uint16_t height
Definition nrf_axon_nn_op_extensions.h:63
Definition nrf_axon_nn_op_extensions.h:50
uint16_t input_height
Definition nrf_axon_nn_op_extensions.h:131
int8_t * input
Definition nrf_axon_nn_op_extensions.h:122
uint16_t input_width
Definition nrf_axon_nn_op_extensions.h:133
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer2
Definition nrf_axon_nn_op_extensions.h:146
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer0
Definition nrf_axon_nn_op_extensions.h:128
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer3
Definition nrf_axon_nn_op_extensions.h:155
uint16_t input_channel_cnt
Definition nrf_axon_nn_op_extensions.h:149
uint16_t input_stride
Definition nrf_axon_nn_op_extensions.h:158
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer1
Definition nrf_axon_nn_op_extensions.h:137
uint16_t output_height
Definition nrf_axon_nn_op_extensions.h:140
uint16_t output_width
Definition nrf_axon_nn_op_extensions.h:142
uint16_t output_channel_cnt
Definition nrf_axon_nn_op_extensions.h:151
int8_t * output
Definition nrf_axon_nn_op_extensions.h:124
Structure compiled into the command buffer then passed to some CPU op extension functions.
Definition nrf_axon_nn_op_extensions.h:118
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer1
Definition nrf_axon_nn_op_extensions.h:366
uint16_t input_width
Definition nrf_axon_nn_op_extensions.h:362
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer2
Definition nrf_axon_nn_op_extensions.h:375
uint16_t output_channel_cnt
Definition nrf_axon_nn_op_extensions.h:380
uint16_t output_height
Definition nrf_axon_nn_op_extensions.h:369
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer3
Definition nrf_axon_nn_op_extensions.h:384
int8_t * input
Definition nrf_axon_nn_op_extensions.h:351
uint16_t input_stride
Definition nrf_axon_nn_op_extensions.h:387
uint16_t output_width
Definition nrf_axon_nn_op_extensions.h:371
int8_t * output
Definition nrf_axon_nn_op_extensions.h:353
uint16_t input_height
Definition nrf_axon_nn_op_extensions.h:360
uint16_t input_channel_cnt
Definition nrf_axon_nn_op_extensions.h:378
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer0
Definition nrf_axon_nn_op_extensions.h:357
bool half_pixel_centers
Definition nrf_axon_nn_op_extensions.h:389
bool align_corners
Definition nrf_axon_nn_op_extensions.h:388
Structure compiled into the command buffer then passed to the CPU op extension function resize_neares...
Definition nrf_axon_nn_op_extensions.h:347
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer4
Definition nrf_axon_nn_op_extensions.h:236
uint32_t input_dequant_multiplier
Definition nrf_axon_nn_op_extensions.h:238
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer5
Definition nrf_axon_nn_op_extensions.h:241
uint8_t input_byte_width
Definition nrf_axon_nn_op_extensions.h:248
nrf_axon_nn_op_extension_base1_ptr_args_s base1
Definition nrf_axon_nn_op_extensions.h:230
uint8_t input_dequant_rounding_bits
Definition nrf_axon_nn_op_extensions.h:246
nrf_axon_nn_op_extension_base1_remaining_args_s base1
Definition nrf_axon_nn_op_extensions.h:234
int8_t input_dequant_zero_pt
Definition nrf_axon_nn_op_extensions.h:244
int8_t * scratch
Definition nrf_axon_nn_op_extensions.h:231
Structure compiled into the command buffer then passed to some CPU op extension functions.
Definition nrf_axon_nn_op_extensions.h:228
uint16_t batch_width
Definition nrf_axon_nn_op_extensions.h:445
uint16_t space_height
Definition nrf_axon_nn_op_extensions.h:434
uint16_t batch_height
Definition nrf_axon_nn_op_extensions.h:443
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE space5
Definition nrf_axon_nn_op_extensions.h:484
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer2
Definition nrf_axon_nn_op_extensions.h:449
uint16_t input_stride
Definition nrf_axon_nn_op_extensions.h:465
uint16_t batch_cnt
Definition nrf_axon_nn_op_extensions.h:467
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer4
Definition nrf_axon_nn_op_extensions.h:471
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer0
Definition nrf_axon_nn_op_extensions.h:431
uint8_t pad_right
Definition nrf_axon_nn_op_extensions.h:480
uint16_t zero_point
Definition nrf_axon_nn_op_extensions.h:454
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer3
Definition nrf_axon_nn_op_extensions.h:458
uint16_t block_width
Definition nrf_axon_nn_op_extensions.h:487
uint8_t pad_top
Definition nrf_axon_nn_op_extensions.h:477
uint16_t block_height
Definition nrf_axon_nn_op_extensions.h:486
NRF_AXON_PLATFORM_BITWIDTH_UNSIGNED_TYPE spacer1
Definition nrf_axon_nn_op_extensions.h:440
int8_t * batch
Definition nrf_axon_nn_op_extensions.h:427
int8_t * space
Definition nrf_axon_nn_op_extensions.h:425
uint16_t space_width
Definition nrf_axon_nn_op_extensions.h:436
uint16_t channel_cnt
Definition nrf_axon_nn_op_extensions.h:452
uint8_t pad_bottom
Definition nrf_axon_nn_op_extensions.h:478
uint8_t pad_left
Definition nrf_axon_nn_op_extensions.h:479
Structure compiled into the command buffer then passed to the CPU op extension functions space_to_bat...
Definition nrf_axon_nn_op_extensions.h:421