Function arm_concatenation_s8_z

Function Documentation

void arm_concatenation_s8_z(const int8_t *input, const uint16_t input_x, const uint16_t input_y, const uint16_t input_z, const uint16_t input_w, int8_t *output, const uint16_t output_z, const uint32_t offset_z)

int8/uint8 concatenation function to be used for concatenating N-tensors along the Z axis This function should be called for each input tensor to concatenate. The argument offset_z will be used to store the input tensor in the correct position in the output tensor

i.e. offset_z = 0 for(i = 0 i < num_input_tensors; ++i) { arm_concatenation_s8_z(&input[i], …, &output, …, …, offset_z) offset_z += input_z[i] }

This function assumes that the output tensor has:

  1. The same width of the input tensor

  2. The same height of the input tensor

  3. The same batch size of the input tensor

Unless specified otherwise, arguments are mandatory.

Input constraints offset_z is less than output_z

Note

This function, data layout independent, can be used to concatenate either int8 or uint8 tensors because it does not involve any arithmetic operation

Parameters:
  • input[in] Pointer to input tensor. Input tensor must not overlap with output tensor.

  • input_x[in] Width of input tensor

  • input_y[in] Height of input tensor

  • input_z[in] Channels in input tensor

  • input_w[in] Batch size in input tensor

  • output[out] Pointer to output tensor. Expected to be at least (input_x * input_y * input_z * input_w) + offset_z bytes.

  • output_z[in] Channels in output tensor

  • offset_z[in] The offset on the Z axis to start concatenating the input tensor It is user responsibility to provide the correct value