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

Method configure

src/runtime/NEON/functions/NEUnstack.cpp:66–96  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64}
65
66void NEUnstack::configure(const ITensor *input, const std::vector<ITensor *> &output_vector, int axis)
67{
68 ARM_COMPUTE_TRACE_EVENT(ARM_COMPUTE_PROF_CAT_CPU, ARM_COMPUTE_PROF_LVL_CPU, "NEUnstack::configure");
69 std::vector<ITensorInfo *> outputs_vector_info(output_vector.size());
70 std::transform(output_vector.begin(), output_vector.end(), outputs_vector_info.begin(),
71 [](ITensor *t)
72 {
73 ARM_COMPUTE_ERROR_ON_NULLPTR(t);
74 return t->info();
75 });
76
77 ARM_COMPUTE_ERROR_ON_NULLPTR(input);
78 ARM_COMPUTE_ERROR_THROW_ON(NEUnstack::validate(input->info(), outputs_vector_info, axis));
79 ARM_COMPUTE_LOG_PARAMS(input, output_vector, axis);
80
81 // Wrap around negative values
82 const unsigned int axis_u = wrap_axis(axis, input->info());
83 _num_slices = std::min(outputs_vector_info.size(), input->info()->dimension(axis_u));
84 _strided_slice_vector.resize(_num_slices);
85
86 Coordinates slice_start;
87 int32_t slice_end_mask;
88 setup_slice_coordinates_and_mask(slice_start, slice_end_mask, input->info()->tensor_shape().num_dimensions());
89 for (unsigned int slice = 0; slice < _num_slices; ++slice)
90 {
91 // Adjusts start and end coordinates to take a 2D slice at a time
92 slice_start.set(axis_u, slice);
93 _strided_slice_vector[slice].configure(input, output_vector[slice], slice_start, Coordinates(), BiStrides(), 0,
94 slice_end_mask, (1 << axis_u));
95 }
96}
97
98Status NEUnstack::validate(const ITensorInfo *input, const std::vector<ITensorInfo *> &output_vector, int axis)
99{

Callers

nothing calls this directly

Calls 13

transformFunction · 0.85
wrap_axisFunction · 0.70
validateFunction · 0.50
CoordinatesClass · 0.50
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
infoMethod · 0.45
dimensionMethod · 0.45
resizeMethod · 0.45
num_dimensionsMethod · 0.45

Tested by

no test coverage detected