MCPcopy Create free account
hub / github.com/ARM-software/ComputeLibrary / validate

Method validate

src/gpu/cl/operators/ClConcatenate.cpp:145–222  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

143}
144
145Status ClConcatenate::validate(const std::vector<const ITensorInfo *> &src_vector, const ITensorInfo *dst, size_t axis)
146{
147 ARM_COMPUTE_RETURN_ERROR_ON(dst == nullptr);
148 const unsigned int num_inputs = src_vector.size();
149
150 ARM_COMPUTE_RETURN_ERROR_ON_NULLPTR(dst);
151 ARM_COMPUTE_RETURN_ERROR_ON(num_inputs < 2);
152
153 unsigned int offset = 0;
154 switch (axis)
155 {
156 case Window::DimX:
157 {
158 switch (num_inputs)
159 {
160 case 2:
161 // Validate WidthConcatenate2Tensors kernels if there are 2 inputs
162 ARM_COMPUTE_RETURN_ERROR_ON_NULLPTR(src_vector[0], src_vector[1]);
163 ARM_COMPUTE_RETURN_ON_ERROR(
164 kernels::ClWidthConcatenate2TensorsKernel::validate(src_vector[0], src_vector[1], dst));
165 break;
166 case 4:
167 // Validate WidthConcatenate4Tensors kernels if there are 4 inputs
168 ARM_COMPUTE_RETURN_ERROR_ON_NULLPTR(src_vector[0], src_vector[1], src_vector[2], src_vector[3]);
169 ARM_COMPUTE_RETURN_ON_ERROR(kernels::ClWidthConcatenate4TensorsKernel::validate(
170 src_vector[0], src_vector[1], src_vector[2], src_vector[3], dst));
171 break;
172 default:
173 // Validate generic case of WidthConcatenate kernel
174 for (const auto &src : src_vector)
175 {
176 ARM_COMPUTE_RETURN_ERROR_ON_NULLPTR(src);
177 ARM_COMPUTE_RETURN_ON_ERROR(kernels::ClWidthConcatenateKernel::validate(src, offset, dst));
178 offset += src->dimension(axis);
179 }
180 break;
181 }
182 break;
183 }
184 case Window::DimY:
185 {
186 for (const auto &src : src_vector)
187 {
188 ARM_COMPUTE_RETURN_ON_ERROR(kernels::ClHeightConcatenateKernel::validate(src, offset, dst));
189 offset += src->dimension(axis);
190 }
191 break;
192 }
193 case Window::DimZ:
194 {
195 for (const auto &src : src_vector)
196 {
197 ARM_COMPUTE_RETURN_ON_ERROR(kernels::ClDepthConcatenateKernel::validate(src, offset, dst));
198 offset += src->dimension(axis);
199 }
200 break;
201 }
202 case 3:

Callers

nothing calls this directly

Calls 5

validateFunction · 0.50
sizeMethod · 0.45
dimensionMethod · 0.45
total_sizeMethod · 0.45

Tested by

no test coverage detected