From ceff0f9a991b693f568c25b1e0933582301082e7 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Mon, 19 Mar 2018 19:57:01 +0000 Subject: COMPMID-1016: Optimize kernel reconfiguration Optimizes kernel reconfiguration when memory manager is used. Note that this works only if every sub-sequent reconfigurations leads to sizes less than the first one. Change-Id: I08898e99929c3756147a02979b726c2380b6e11d Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/125114 Reviewed-by: Anthony Barbier Tested-by: Jenkins --- arm_compute/runtime/GLES_COMPUTE/GCBufferAllocator.h | 4 ++-- arm_compute/runtime/GLES_COMPUTE/GCMemoryGroup.h | 2 +- .../GLES_COMPUTE/functions/GCFullyConnectedLayer.h | 17 ++++++++++------- 3 files changed, 13 insertions(+), 10 deletions(-) (limited to 'arm_compute/runtime/GLES_COMPUTE') diff --git a/arm_compute/runtime/GLES_COMPUTE/GCBufferAllocator.h b/arm_compute/runtime/GLES_COMPUTE/GCBufferAllocator.h index 103ac37bdd..8fa13e59a6 100644 --- a/arm_compute/runtime/GLES_COMPUTE/GCBufferAllocator.h +++ b/arm_compute/runtime/GLES_COMPUTE/GCBufferAllocator.h @@ -33,7 +33,7 @@ namespace arm_compute { -/** Default gles buffer allocator implementation */ +/** Default GLES buffer allocator implementation */ class GCBufferAllocator : public IAllocator { public: @@ -44,5 +44,5 @@ public: void *allocate(size_t size, size_t alignment) override; void free(void *ptr) override; }; -} // arm_compute +} // namespace arm_compute #endif /*__ARM_COMPUTE_GCBUFFERALLOCATOR_H__ */ diff --git a/arm_compute/runtime/GLES_COMPUTE/GCMemoryGroup.h b/arm_compute/runtime/GLES_COMPUTE/GCMemoryGroup.h index 485aa0e024..10f4fc6b05 100644 --- a/arm_compute/runtime/GLES_COMPUTE/GCMemoryGroup.h +++ b/arm_compute/runtime/GLES_COMPUTE/GCMemoryGroup.h @@ -44,5 +44,5 @@ inline void MemoryGroupBase::associate_memory_group(GCTensor *obj) ARM_COMPUTE_ERROR_ON(allocator == nullptr); allocator->set_associated_memory_group(this); } -} // arm_compute +} // namespace arm_compute #endif /*__ARM_COMPUTE_GCMEMORYGROUP_H__ */ diff --git a/arm_compute/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.h b/arm_compute/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.h index 81be1de21a..1f8dc3e1a0 100644 --- a/arm_compute/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.h +++ b/arm_compute/runtime/GLES_COMPUTE/functions/GCFullyConnectedLayer.h @@ -67,14 +67,17 @@ public: GCFullyConnectedLayer(std::shared_ptr memory_manager = nullptr); /** Set the input and output tensors. * - * @param[in] input Source tensor. Data type supported: F16/F32. - * @param[in] weights Weights tensor. The weights must be 2 dimensional. Data type supported: Same as @p input - * @param[in] biases Bias tensor. It can be nullptr. Data type supported:Same as @p input. - * @param[out] output Destination tensor. Data type supported: Same as @p input. - * @param[in] transpose_weights (Optional) Transpose weights if true. Defaults to true. - * @param[in] are_weights_reshaped (Optional) Reshape the weights tensor if false. Defaults to false. + * @param[in] input Source tensor. Data type supported: F16/F32. + * @param[in] weights Weights tensor. The weights must be 2 dimensional. Data type supported: Same as @p input + * @param[in] biases Bias tensor. It can be nullptr. Data type supported:Same as @p input. + * @param[out] output Destination tensor. Data type supported: Same as @p input. + * @param[in] transpose_weights (Optional) Transpose weights if true. Defaults to true. + * @param[in] are_weights_reshaped (Optional) Reshape the weights tensor if false. Defaults to false. + * @param[in] retain_internal_weights (Optional) Retain internal reshaped weights. Defaults to false. + * Used for reconfiguration purposes. */ - void configure(const IGCTensor *input, const IGCTensor *weights, const IGCTensor *biases, IGCTensor *output, bool transpose_weights = true, bool are_weights_reshaped = false); + void configure(const IGCTensor *input, const IGCTensor *weights, const IGCTensor *biases, IGCTensor *output, + bool transpose_weights = true, bool are_weights_reshaped = false, bool retain_internal_weights = false); //Inherited methods override void run() override; -- cgit v1.2.1