From 7805a20d7bb3920ca9868fb97e80c2ea3bcaa129 Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Wed, 18 Sep 2024 13:00:02 +0200 Subject: [PATCH] etnaviv/nn: Enable fused ReLU activation Handle fused ReLU activation by setting the corresponding flag in the NN engine configuration. Reviewed-by: Tomeu Vizoso Signed-off-by: Philipp Zabel Part-of: --- src/gallium/drivers/etnaviv/etnaviv_ml.h | 1 + src/gallium/drivers/etnaviv/etnaviv_ml_nn.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/etnaviv/etnaviv_ml.h b/src/gallium/drivers/etnaviv/etnaviv_ml.h index 909df16a03c..5f333cb299d 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_ml.h +++ b/src/gallium/drivers/etnaviv/etnaviv_ml.h @@ -69,6 +69,7 @@ struct etna_operation { bool pointwise; bool pooling_first_pixel; bool padding_same; + bool relu; unsigned stride; diff --git a/src/gallium/drivers/etnaviv/etnaviv_ml_nn.c b/src/gallium/drivers/etnaviv/etnaviv_ml_nn.c index 77f76ab7314..66149229ca4 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_ml_nn.c +++ b/src/gallium/drivers/etnaviv/etnaviv_ml_nn.c @@ -432,6 +432,7 @@ etna_ml_lower_convolution(struct etna_ml_subgraph *subgraph, operation->addition = false; operation->depthwise = poperation->conv.depthwise; operation->pointwise = poperation->conv.pointwise; + operation->relu = poperation->conv.relu; operation->pooling_first_pixel = calc_pooling_first_pixel(subgraph, poperation); operation->padding_same = poperation->conv.padding_same; operation->stride = poperation->conv.stride_x; @@ -692,7 +693,7 @@ create_nn_config(struct etna_ml_subgraph *subgraph, const struct etna_operation map->nn_layer_flush = 0x1; map->brick_mode = 0x0; map->brick_distance = 0x0; - map->relu = 0x0; + map->relu = operation->relu; map->no_flush = nn_core_version == 8; map->rounding_mode = 0x1; map->partial_cache_data_unit = 0x0;