summaryrefslogtreecommitdiff
path: root/runtime/onert/backend/cpu/ops/ConvolutionLayer.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/onert/backend/cpu/ops/ConvolutionLayer.h')
-rw-r--r--runtime/onert/backend/cpu/ops/ConvolutionLayer.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/runtime/onert/backend/cpu/ops/ConvolutionLayer.h b/runtime/onert/backend/cpu/ops/ConvolutionLayer.h
index 398892e65..5e1bd0b08 100644
--- a/runtime/onert/backend/cpu/ops/ConvolutionLayer.h
+++ b/runtime/onert/backend/cpu/ops/ConvolutionLayer.h
@@ -29,7 +29,9 @@ namespace nnfw
namespace cker
{
class Conv;
-}
+struct ConvHybridTempArena;
+class Shape;
+} // namespace cker
} // namespace nnfw
namespace onert
@@ -48,10 +50,6 @@ public:
~ConvolutionLayer();
public:
- void convFloat32();
-
- void convQuant8();
-
void configure(const IPortableTensor *input, const IPortableTensor *kernel,
const IPortableTensor *bias, ir::PaddingType _paddingType,
const uint32_t paddingLeft, const uint32_t paddingRight, const uint32_t paddingTop,
@@ -59,10 +57,15 @@ public:
const uint32_t strideHeight, const uint32_t dilationWidthFactor,
const uint32_t dilationHeightFactor, const ir::Activation activation,
IPortableTensor *output);
-
+ void prepare() override;
void run() override;
- void prepare() override;
+private:
+ void convFloat32();
+ void convQ8uPerTensor();
+ void convQ8uPerChannel();
+ void convQ8i();
+ void convQ8iHybridPerChannel();
private:
const IPortableTensor *_input;
@@ -84,8 +87,10 @@ private:
ir::Activation _activation;
std::unique_ptr<nnfw::cker::Conv> _conv_kernel;
+ std::unique_ptr<nnfw::cker::ConvHybridTempArena> _hybrid_arena;
bool _prepare;
+ bool _is_hybrid;
};
} // namespace ops