Skip to content

Basic Convolution

Module: Filtering Functions

More...

Modules

Name
Basic Convolution Kernels

Functions

Name
void plp_conv_i16(const int16_t * pSrcA, const uint32_t srcALen, const int16_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Glue code for convolution of 16-bit integer vectors.
void plp_conv_i16_parallel(const int16_t * pSrcA, const uint32_t srcALen, const int16_t * pSrcB, const uint32_t srcBLen, const uint8_t nPE, int32_t * pRes)
Glue code for parallel convolution of 16-bit integer vectors.
void plp_conv_i32(const int32_t * pSrcA, const uint32_t srcALen, const int32_t * pSrcB, const uint32_t srcBLen, int32_t *restrict pRes)
Glue code for convolution of 32-bit integer vectors.
void plp_conv_i32_parallel(const int32_t * pSrcA, const uint32_t srcALen, const int32_t * pSrcB, const uint32_t srcBLen, const uint8_t nPE, int32_t * pRes)
Glue code for parallel convolution of 32-bit integer vectors.
void plp_conv_i8(const int8_t * pSrcA, const uint32_t srcALen, const int8_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Glue code for convolution of 8-bit integer vectors.
void plp_conv_i8_parallel(const int8_t * pSrcA, const uint32_t srcALen, const int8_t * pSrcB, const uint32_t srcBLen, const uint8_t nPE, int32_t * pRes)
Glue code for parallel convolution of 8-bit integer vectors.
void plp_conv_valid_i16(const int16_t * pSrcA, const uint32_t srcALen, const int16_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Glue code for convolution of 16-bit integer vectors in valid range.
void plp_conv_valid_i32(const int32_t * pSrcA, const uint32_t srcALen, const int32_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Glue code for convolution of 32-bit integer vectors in valid range.
void plp_conv_valid_i8(const int8_t * pSrcA, const uint32_t srcALen, const int8_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Glue code for convolution of 8-bit integer vectors in valid range.
void plp_conv_valid_rep_i16(const int16_t * pSrcA, const uint32_t srcALen, const int16_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Glue code for convolution of 16-bit integer vectors in valid range.
void plp_conv_valid_rep_i8(const int8_t * pSrcA, const uint32_t srcALen, const int8_t * pSrcB, const uint32_t srcBLen, int32_t * pRes)
Glue code for convolution of 8-bit integer vectors in valid range.

Detailed Description

This module contains the glue code for Basic Convolution. The kernel codes (kernels) are in the Moducle Basic Convolution Kernels.

Functions Documentation

function plp_conv_i16

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

Glue code for convolution of 16-bit integer vectors.

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_i16_parallel

void plp_conv_i16_parallel(
    const int16_t * pSrcA,
    const uint32_t srcALen,
    const int16_t * pSrcB,
    const uint32_t srcBLen,
    const uint8_t nPE,
    int32_t * pRes
)

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

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
  • nPE Number of cores to compute on
  • pRes output result returned here

Return: none

function plp_conv_i32

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

Glue code for convolution of 32-bit integer vectors.

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_i32_parallel

void plp_conv_i32_parallel(
    const int32_t * pSrcA,
    const uint32_t srcALen,
    const int32_t * pSrcB,
    const uint32_t srcBLen,
    const uint8_t nPE,
    int32_t * pRes
)

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

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
  • nPE Number of cores to compute on
  • pRes output result returned here

Return: none

function plp_conv_i8

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

Glue code for convolution of 8-bit integer vectors.

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_i8_parallel

void plp_conv_i8_parallel(
    const int8_t * pSrcA,
    const uint32_t srcALen,
    const int8_t * pSrcB,
    const uint32_t srcBLen,
    const uint8_t nPE,
    int32_t * pRes
)

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

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
  • nPE Number of cores to compute on
  • pRes output result returned here

Return: none

function plp_conv_valid_i16

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

Glue code for convolution of 16-bit integer vectors in valid range.

Parameters:

  • pSrcA points to the first input vector
  • srcALen ength of the first input vector
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here, of size |srcALen - srcBLen| + 1

Return: none

Glue code for convolution (valid) of 16-bit integer vectors.

function plp_conv_valid_i32

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

Glue code for convolution of 32-bit integer vectors in valid range.

Parameters:

  • pSrcA points to the first input vector
  • srcALen ength of the first input vector
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here, of size |srcALen - srcBLen| + 1

Return: none

Glue code for convolution (valid) of 32-bit integer vectors.

function plp_conv_valid_i8

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

Glue code for convolution of 8-bit integer vectors in valid range.

Parameters:

  • pSrcA points to the first input vector
  • srcALen ength of the first input vector
  • pSrcB points to the second input vector
  • srcBLen Length of the second input vector
  • pRes output result returned here, of size |srcALen - srcBLen| + 1

Return: none

Glue code for convolution (valid) of 8-bit integer vectors.

function plp_conv_valid_rep_i16

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

Glue code for convolution of 16-bit integer vectors in valid range.

Parameters:

  • pSrcA points to the first input vector, must be on L2
  • srcALen ength of the first input vector
  • pSrcB points to the second input vector, must be on L2
  • srcBLen Length of the second input vector
  • pRes output result returned here, of size |srcALen - srcBLen| + 1, preferably in L1

Return: none

Glue code for convolution (valid with replication) of 16-bit integer vectors.

function plp_conv_valid_rep_i8

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

Glue code for convolution of 8-bit integer vectors in valid range.

Parameters:

  • pSrcA points to the first input vector, must be on L2
  • srcALen ength of the first input vector
  • pSrcB points to the second input vector, must be on L2
  • srcBLen Length of the second input vector
  • pRes output result returned here, of size |srcALen - srcBLen| + 1, preferably in L1

Return: none

Glue code for convolution (valid with data replication) of 8-bit integer vectors.


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