Skip to content

Basic Convolution Kernels

Module: Filtering Functions / Basic Convolution

More...

Functions

Name
void plp_conv_i16p_xpulpv2(void * task_args)
Parallel convolution of 16-bit integer vectors kernel for XPULPV2 extension.
void plp_conv_i16s_rv32im(const int16_t * pSrcA, const uint32_t srcALen, const int16_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Convolution of 16-bit integer vectors kernel for RV32IM extension.
void plp_conv_i16s_xpulpv2(const int16_t * pSrcA, const uint32_t srcALen, const int16_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Convolution of 16-bit integer vectors kernel for XPULPV2 extension.
void plp_conv_i32p_xpulpv2(void * task_args)
Parallel convolution of 32-bit integer vectors kernel for XPULPV2 extension.
void plp_conv_i32s_rv32im(const int32_t * pSrcA, const uint32_t srcALen, const int32_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Convolution of 32-bit integer vectors kernel for RV32IM extension.
void plp_conv_i32s_xpulpv2(const int32_t * pSrcA, const uint32_t srcALen, const int32_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Convolution of 32-bit integer vectors kernel for XPULPV2 extension.
void plp_conv_i8p_xpulpv2(void * task_args)
Parallel convolution of 8-bit integer vectors kernel for XPULPV2 extension.
void plp_conv_i8s_rv32im(const int8_t * pSrcA, const uint32_t srcALen, const int8_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Convolution of 8-bit integer vectors kernel for RV32IM extension.
void plp_conv_i8s_xpulpv2(const int8_t * pSrcA, const uint32_t srcALen, const int8_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Convolution of 8-bit integer vectors kernel for XPULPV2 extension.
void plp_conv_parallel_OLA(uint32_t nPE, uint32_t srcALen, uint32_t srcBLen, int32_t * resultsBuffer)
Helper function for parallelized overlap-adding of partial convolution results.
void plp_conv_parallel_OLA_kernel(void * task_args)
Helper function for parallelized overlap-adding of partial convolution results.
void plp_conv_valid_i16s_xpulpv2(const int16_t * pSrcA, const uint32_t srcALen, const int16_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Convolution of 16-bit integer vectors kernel for XPULPV2 extension.
void plp_conv_valid_i32s_xpulpv2(const int32_t * pSrcA, const uint32_t srcALen, const int32_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Convolution (valid) of 32-bit integer vectors kernel for XPULPV2 extension.
void plp_conv_valid_i8s_xpulpv2(const int8_t * pSrcA, const uint32_t srcALen, const int8_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Convolution of 8-bit integer vectors kernel for XPULPV2 extension.
void plp_conv_valid_rep_i16s_xpulpv2(const int16_t * pSrcA, const uint32_t srcALen, const uint32_t srcAMem, const int16_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Convolution of 16-bit integer vectors kernel for XPULPV2 extension.
void plp_conv_valid_rep_i8s_xpulpv2(const int8_t * pSrcA, const uint32_t srcALen, const uint32_t srcAMem, const int8_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Convolution of 8-bit integer vectors kernel for XPULPV2 extension.

Detailed Description

Computes 1D convolution of two vectors.

Functions Documentation

function plp_conv_i16p_xpulpv2

void plp_conv_i16p_xpulpv2(
    void * task_args
)

Parallel convolution of 16-bit integer vectors kernel for XPULPV2 extension.

Parameters:

Return: none

Setup code for parallel convolution of 16-bit integer vectors.

function plp_conv_i16s_rv32im

void plp_conv_i16s_rv32im(
    const int16_t * pSrcA,
    const uint32_t srcALen,
    const int16_t * pSrcB,
    const uint32_t srcBLen,
    int32_t * pRes
)

Convolution of 16-bit integer vectors kernel for RV32IM extension.

Parameters:

  • pSrcA points to the first input vector
  • srcALen Length of the first input vector
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here

Return: none

function plp_conv_i16s_xpulpv2

void plp_conv_i16s_xpulpv2(
    const int16_t * pSrcA,
    const uint32_t srcALen,
    const int16_t * pSrcB,
    const uint32_t srcBLen,
    int32_t * pRes
)

Convolution of 16-bit integer vectors kernel for XPULPV2 extension.

Parameters:

  • pSrcA points to the first input vector
  • srcALen Length of the first input vector
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here

Return: none

function plp_conv_i32p_xpulpv2

void plp_conv_i32p_xpulpv2(
    void * task_args
)

Parallel convolution of 32-bit integer vectors kernel for XPULPV2 extension.

Parameters:

Return: none

Setup code for parallel convolution of 32-bit integer vectors.

function plp_conv_i32s_rv32im

void plp_conv_i32s_rv32im(
    const int32_t * pSrcA,
    const uint32_t srcALen,
    const int32_t * pSrcB,
    const uint32_t srcBLen,
    int32_t * pRes
)

Convolution of 32-bit integer vectors kernel for RV32IM extension.

Parameters:

  • pSrcA points to the first input vector
  • srcALen Length of the first input vector
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here

Return: none

function plp_conv_i32s_xpulpv2

void plp_conv_i32s_xpulpv2(
    const int32_t * pSrcA,
    const uint32_t srcALen,
    const int32_t * pSrcB,
    const uint32_t srcBLen,
    int32_t * pRes
)

Convolution of 32-bit integer vectors kernel for XPULPV2 extension.

Parameters:

  • pSrcA points to the first input vector
  • srcALen Length of the first input vector
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here

Return: none

function plp_conv_i8p_xpulpv2

void plp_conv_i8p_xpulpv2(
    void * task_args
)

Parallel convolution of 8-bit integer vectors kernel for XPULPV2 extension.

Parameters:

Return: none

Setup code for parallel convolution of 8-bit integer vectors.

function plp_conv_i8s_rv32im

void plp_conv_i8s_rv32im(
    const int8_t * pSrcA,
    const uint32_t srcALen,
    const int8_t * pSrcB,
    const uint32_t srcBLen,
    int32_t * pRes
)

Convolution of 8-bit integer vectors kernel for RV32IM extension.

Parameters:

  • pSrcA points to the first input vector
  • srcALen Length of the first input vector
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here

Return: none

function plp_conv_i8s_xpulpv2

void plp_conv_i8s_xpulpv2(
    const int8_t * pSrcA,
    const uint32_t srcALen,
    const int8_t * pSrcB,
    const uint32_t srcBLen,
    int32_t * pRes
)

Convolution of 8-bit integer vectors kernel for XPULPV2 extension.

Parameters:

  • pSrcA points to the first input vector
  • srcALen Length of the first input vector
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here

Return: none

function plp_conv_parallel_OLA

void plp_conv_parallel_OLA(
    uint32_t nPE,
    uint32_t srcALen,
    uint32_t srcBLen,
    int32_t * resultsBuffer
)

Helper function for parallelized overlap-adding of partial convolution results.

Parameters:

  • nPE Number of processing cores
  • srcALen Length of the first original input vector
  • srcBLen Length of the second original input vector
  • resultsBuffer resultsBuffer array from plp_conv_i[XX]_parallel

Return: none

function plp_conv_parallel_OLA_kernel

void plp_conv_parallel_OLA_kernel(
    void * task_args
)

Helper function for parallelized overlap-adding of partial convolution results.

Parameters:

Return: none

function plp_conv_valid_i16s_xpulpv2

void plp_conv_valid_i16s_xpulpv2(
    const int16_t * pSrcA,
    const uint32_t srcALen,
    const int16_t * pSrcB,
    const uint32_t srcBLen,
    int32_t * pRes
)

Convolution of 16-bit integer vectors kernel for XPULPV2 extension.

Parameters:

  • pSrcA points to the first input vector
  • srcALen Length of the first input vector
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here

Return: none

Convolution (valid) of 16-bit integer vectors kernel for XPULPV2 extension.

function plp_conv_valid_i32s_xpulpv2

void plp_conv_valid_i32s_xpulpv2(
    const int32_t * pSrcA,
    const uint32_t srcALen,
    const int32_t * pSrcB,
    const uint32_t srcBLen,
    int32_t * pRes
)

Convolution (valid) of 32-bit integer vectors kernel for XPULPV2 extension.

Parameters:

  • pSrcA points to the first input vector
  • srcALen Length of the first input vector
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here

Return: none

function plp_conv_valid_i8s_xpulpv2

void plp_conv_valid_i8s_xpulpv2(
    const int8_t * pSrcA,
    const uint32_t srcALen,
    const int8_t * pSrcB,
    const uint32_t srcBLen,
    int32_t * pRes
)

Convolution of 8-bit integer vectors kernel for XPULPV2 extension.

Parameters:

  • pSrcA points to the first input vector
  • srcALen Length of the first input vector
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here

Return: none

Convolution (valid) of 8-bit integer vectors kernel for XPULPV2 extension.

function plp_conv_valid_rep_i16s_xpulpv2

void plp_conv_valid_rep_i16s_xpulpv2(
    const int16_t * pSrcA,
    const uint32_t srcALen,
    const uint32_t srcAMem,
    const int16_t * pSrcB,
    const uint32_t srcBLen,
    int32_t * pRes
)

Convolution of 16-bit integer vectors kernel for XPULPV2 extension.

Parameters:

  • pSrcA points to the first input vector of the replicated data
  • srcALen Number of elements in (unreplicated) vector a
  • srcAMem Number of elements between each replication
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here

Return: none

Convolution (valid with data replication) of 16-bit integer vectors kernel for XPULPV2 extension.

function plp_conv_valid_rep_i8s_xpulpv2

void plp_conv_valid_rep_i8s_xpulpv2(
    const int8_t * pSrcA,
    const uint32_t srcALen,
    const uint32_t srcAMem,
    const int8_t * pSrcB,
    const uint32_t srcBLen,
    int32_t * pRes
)

Convolution of 8-bit integer vectors kernel for XPULPV2 extension.

Parameters:

  • pSrcA points to the first input vector of the replicated data
  • srcALen Number of elements in (unreplicated) vector a
  • srcAMem Number of elements between each replication
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here

Return: none

Convolution (valid with data replication) of 8-bit integer vectors kernel for XPULPV2 extension.


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