aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/backends/ClWorkloads/ClFullyConnectedWorkload.hpp
diff options
context:
space:
mode:
authorMatthew Bentham <matthew.bentham@arm.com>2018-09-17 11:17:41 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-10 16:16:56 +0100
commitab8cdc13443408d727fd38be42315cf942251940 (patch)
treef1576377150b72f1a2404915adcf1affd5eab3e4 /src/armnn/backends/ClWorkloads/ClFullyConnectedWorkload.hpp
parentca225f0ab9aac74ccc7c62cfcf46c95f7715b2ee (diff)
downloadarmnn-ab8cdc13443408d727fd38be42315cf942251940.tar.gz
IVGCVSW-949 Add 8-bit fully connected support
Change-Id: I0953bb8dbc4b76001f207e37c8c2742a6ebd888b
Diffstat (limited to 'src/armnn/backends/ClWorkloads/ClFullyConnectedWorkload.hpp')
-rw-r--r--src/armnn/backends/ClWorkloads/ClFullyConnectedWorkload.hpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/armnn/backends/ClWorkloads/ClFullyConnectedWorkload.hpp b/src/armnn/backends/ClWorkloads/ClFullyConnectedWorkload.hpp
new file mode 100644
index 0000000000..7aa9b86e15
--- /dev/null
+++ b/src/armnn/backends/ClWorkloads/ClFullyConnectedWorkload.hpp
@@ -0,0 +1,42 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include "backends/ClWorkloadUtils.hpp"
+
+#include "arm_compute/runtime/MemoryManagerOnDemand.h"
+
+#include <memory>
+
+namespace armnn
+{
+
+arm_compute::Status ClFullyConnectedWorkloadValidate(const TensorInfo& input,
+ const TensorInfo& output,
+ const TensorInfo& weights,
+ const TensorInfo& biases,
+ const FullyConnectedDescriptor& descriptor);
+
+class ClFullyConnectedWorkload : public armnn::BaseWorkload<armnn::FullyConnectedQueueDescriptor>
+{
+public:
+ ClFullyConnectedWorkload(const armnn::FullyConnectedQueueDescriptor& descriptor,
+ const armnn::WorkloadInfo& info,
+ std::shared_ptr<arm_compute::MemoryManagerOnDemand>& memoryManager);
+
+ using armnn::BaseWorkload<armnn::FullyConnectedQueueDescriptor>::m_Data;
+ void Execute() const override;
+
+private:
+ mutable arm_compute::CLFullyConnectedLayer m_FullyConnectedLayer;
+
+ std::unique_ptr<arm_compute::CLTensor> m_WeightsTensor;
+ std::unique_ptr<arm_compute::CLTensor> m_BiasesTensor;
+
+ void FreeUnusedTensors();
+};
+
+} //namespace armnn