summaryrefslogtreecommitdiff
path: root/runtime/onert/backend/cpu/ops/FullyConnectedLayer.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/onert/backend/cpu/ops/FullyConnectedLayer.h')
-rw-r--r--runtime/onert/backend/cpu/ops/FullyConnectedLayer.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/runtime/onert/backend/cpu/ops/FullyConnectedLayer.h b/runtime/onert/backend/cpu/ops/FullyConnectedLayer.h
index dd5ef2436..f1242677c 100644
--- a/runtime/onert/backend/cpu/ops/FullyConnectedLayer.h
+++ b/runtime/onert/backend/cpu/ops/FullyConnectedLayer.h
@@ -18,6 +18,7 @@
#define __ONERT_BACKEND_CPU_OPS_FULLYCONNECTEDLAYER_H__
#include <backend/IPortableTensor.h>
+#include "../ExternalContext.h"
#include "OperationUtils.h"
#include <exec/IFunction.h>
@@ -52,8 +53,11 @@ public:
void fullyConnectedHybrid();
+ void fullyConnectedSparseWeight();
+
void configure(const IPortableTensor *input, const IPortableTensor *weights,
- const IPortableTensor *bias, ir::Activation activation, IPortableTensor *output);
+ const IPortableTensor *bias, ir::Activation activation, IPortableTensor *output,
+ const std::shared_ptr<ExternalContext> &external_context);
void run() override;
@@ -68,10 +72,13 @@ private:
ir::Activation _activation;
std::unique_ptr<nnfw::cker::FCTempArena> _temp_arena;
+ std::shared_ptr<ExternalContext> _external_context;
+
bool _is_hybrid;
#ifdef USE_RUY_GEMV
uint8_t *_cached_weights = nullptr; // weights to be cached and a key
+ bool _is_weights_freed = false; // is weights freed?
#endif
};