SortVpu#

Fully qualified name: pvaApl::SortVpu

Defined in public/src/primitive/pvaAplSortVpu.hpp

template<typename DataType, int Size>
class SortVpu#

Sort primitive template class.

Template Parameters:
  • DataType – Data Type of the input array. Must be one of: uint16_t, int16_t, uint32_t, int32_t.

  • Size – Number of elements to sort. For 16-bit data type, must be one of: 1024, 2048, 4096, 8192, 16384. For 32-bit data type, must be one of: 256, 512, 1024, 2048, 4096, 8192.

Public Functions

inline SortVpu()#
inline void Init(DataType *src, DataType *dst, SortContext *context)#

Initialize the Sort algorithm parameters, setup agens for the Execute method.

The Sort primitive only supports ascending sort.

Parameters:
  • src – Pointer to the src buffer which contains the input data. The input data should be consecutively stored in a 1D array with no pitch. Input buffer size should be at least MIN_INPUT_BUFFER_SIZE.

  • dst – Pointer to the dst buffer where the result is written to. The output data will be stored in a 2D array with for 16-bit data type: width = Size / 32, height = 32, pitch = Size / 32 + 1 for 32-bit data type: width = Size / 16, height = 16, pitch = Size / 16 + 1 Output buffer size should be at least MIN_OUTPUT_BUFFER_SIZE.

  • context – Pointer to the Sort algorithm context parameters.

inline void Execute(SortContext *context)#

Execute the Sort algorithm.

Public Static Attributes

static constexpr size_t MIN_INPUT_BUFFER_SIZE{(pva_elementsof(DVTYPEX) + 1) * (Size / pva_elementsof(DVTYPEX)) * sizeof(DataType)}#

Minimum required size in bytes for the input buffer.

Can be used to allocate appropriately sized input buffers or verify buffer sizes with static_assert.

static constexpr size_t MIN_OUTPUT_BUFFER_SIZE{(Size / pva_elementsof(DVTYPEX) + 1) * pva_elementsof(DVTYPEX) * sizeof(DataType)}#

Minimum required size in bytes for the output buffer.

Can be used to allocate appropriately sized output buffers or verify buffer sizes with static_assert.