47 _num_inputs = inputs_vector.size();
60 for(
unsigned int i = 0; i < _num_inputs; ++i)
62 auto kernel = std::make_unique<GCDepthConcatenateLayerKernel>();
63 kernel->configure(inputs_vector.at(i),
offset, output);
64 offset += inputs_vector.at(i)->info()->dimension(axis);
65 _concat_kernels.emplace_back(std::move(kernel));
76 for(
auto &kernel : _concat_kernels)
__global uchar * offset(const Image *img, int x, int y)
Get the pointer position of a Image.
void dispatch(IGCKernel &kernel, bool flush=true)
Schedule the execution of the passed kernel if possible.
#define ARM_COMPUTE_ERROR(msg)
Print the given message then throw an std::runtime_error.
GCConcatenateLayer()
Default constructor.
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
Interface for GLES Compute tensor.
Copyright (c) 2017-2021 Arm Limited.
static GCScheduler & get()
Access the scheduler singleton.
bool auto_init_if_empty(ITensorInfo &info, const TensorShape &shape, int num_channels, DataType data_type, QuantizationInfo quantization_info=QuantizationInfo())
Auto initialize the tensor info (shape, number of channels and data type) if the current assignment i...
virtual ITensorInfo * info() const =0
Interface to be implemented by the child class to return the tensor's metadata.
void configure(std::vector< IGCTensor *> inputs_vector, IGCTensor *output, size_t axis)
Initialise the kernel's inputs vector and output.
static constexpr size_t DimZ
Alias for dimension 2 also known as Z dimension.
Interface to enqueue GLES kernels and get/set the GLES CommandQueue.
void run() override
Run the kernels contained in the function.
TensorShape calculate_concatenate_shape(const std::vector< T *> &input, size_t axis)
Calculate the concatenate output shape of the concatenate operation along a single axis...
Describe a multidimensional execution window.