Basic Convolution Kernels
Module: Filtering Functions / Basic Convolution
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:
- task_args pointer to plp_conv_instance_i16 struct initialized by plp_conv_i16_parallel
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:
- task_args pointer to plp_conv_instance_i32 struct initialized by plp_conv_i32_parallel
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:
- task_args pointer to plp_conv_instance_i8 struct initialized by plp_conv_i8_parallel
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:
- task_args Holds the plp_conv_tree_add_instance that describes the vector 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