Skip to content

Max Kernels

Module: Statistics Functions / Max

More...

Functions

Name
void plp_max_f32s_xpulpv2(const float restrict pSrc, uint32_t blockSize, float restrict pRes)
Max value of a 32-bit float vector for XPULPV2 extension.
void plp_max_i16s_rv32im(const int16_t restrict pSrc, uint32_t blockSize, int16_t restrict pRes)
Max value of a 16-bit integer vector for RV32IM extension.
void plp_max_i16s_xpulpv2(const int16_t restrict pSrc, uint32_t blockSize, int16_t restrict pRes)
Max value of a 16-bit integer vector for XPULPV2 extension.
void plp_max_i32s_rv32im(const int32_t restrict pSrc, uint32_t blockSize, int32_t restrict pRes)
Max value of a 32-bit integer vector for RV32IM extension.
void plp_max_i32s_xpulpv2(const int32_t restrict pSrc, uint32_t blockSize, int32_t restrict pRes)
Max value of a 32-bit integer vector for XPULPV2 extension.
void plp_max_i8s_rv32im(const int8_t restrict pSrc, uint32_t blockSize, int8_t restrict pRes)
Max value of a 8-bit integer vector for RV32IM extension.
void plp_max_i8s_xpulpv2(const int8_t restrict pSrc, uint32_t blockSize, int8_t restrict pRes)
Max value of a 8-bit integer vector for XPULPV2 extension.

Detailed Description

Calculates the max of the input vector. Max is defined as the greatest of the elements in the vector. There are separate functions for floating point, integer, and fixed point 32- 32- 8-bit data types. For lower precision integers (32- and 8-bit), functions exploiting SIMD instructions are provided.

The naming scheme of the functions follows the following pattern (for example plp_dot_prod_i32s): _ _ _ , with

data type = {f, i, q} respectively for floats, integers, fixed points

precision = {32, 32, 8} bits

method = {s, v, p} meaning single (or scalar, i.e. not using packed SIMD), vectorized (i.e. using SIMD instructions), and parallel (for multicore parallel computing), respectively.

isa extension = rv32im, xpulpv2, etc. of which rv32im is the most general one.

Functions Documentation

function plp_max_f32s_xpulpv2

void plp_max_f32s_xpulpv2(
    const float *__restrict__ pSrc,
    uint32_t blockSize,
    float *__restrict__ pRes
)

Max value of a 32-bit float vector for XPULPV2 extension.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes max value returned here

Return: none

Kernel for max value of a 32-bit float vector.

function plp_max_i16s_rv32im

void plp_max_i16s_rv32im(
    const int16_t *__restrict__ pSrc,
    uint32_t blockSize,
    int16_t *__restrict__ pRes
)

Max value of a 16-bit integer vector for RV32IM extension.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes max value returned here

Return: none

function plp_max_i16s_xpulpv2

void plp_max_i16s_xpulpv2(
    const int16_t *__restrict__ pSrc,
    uint32_t blockSize,
    int16_t *__restrict__ pRes
)

Max value of a 16-bit integer vector for XPULPV2 extension.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes max value returned here

Return: none

function plp_max_i32s_rv32im

void plp_max_i32s_rv32im(
    const int32_t *__restrict__ pSrc,
    uint32_t blockSize,
    int32_t *__restrict__ pRes
)

Max value of a 32-bit integer vector for RV32IM extension.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes max value returned here

Return: none

function plp_max_i32s_xpulpv2

void plp_max_i32s_xpulpv2(
    const int32_t *__restrict__ pSrc,
    uint32_t blockSize,
    int32_t *__restrict__ pRes
)

Max value of a 32-bit integer vector for XPULPV2 extension.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes max value returned here

Return: none

function plp_max_i8s_rv32im

void plp_max_i8s_rv32im(
    const int8_t *__restrict__ pSrc,
    uint32_t blockSize,
    int8_t *__restrict__ pRes
)

Max value of a 8-bit integer vector for RV32IM extension.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes max value returned here

Return: none

function plp_max_i8s_xpulpv2

void plp_max_i8s_xpulpv2(
    const int8_t *__restrict__ pSrc,
    uint32_t blockSize,
    int8_t *__restrict__ pRes
)

Max value of a 8-bit integer vector for XPULPV2 extension.

Parameters:

  • pSrc points to the input vector
  • blockSize number of samples in input vector
  • pRes max value returned here

Return: none


Updated on 2023-03-01 at 16:16:32 +0000