PULP DSP  Version 1.0
Digital Signal Processing library for PULP processors (pulp-platform.org)
 All Classes Files Functions Groups Pages
Functions
Basic Convolution Kernels

Functions

void plp_conv_i16p_xpulpv2 (void *task_args)
 Parallel convolution of 16-bit integer vectors kernel for XPULPV2 extension. More...
 
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. More...
 
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. More...
 
void plp_conv_i32p_xpulpv2 (void *task_args)
 Parallel convolution of 32-bit integer vectors kernel for XPULPV2 extension. More...
 
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. More...
 
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 16-bit integer vectors kernel for XPULPV2 extension. More...
 
void plp_conv_i8p_xpulpv2 (void *task_args)
 Parallel convolution of 8-bit integer vectors kernel for XPULPV2 extension. More...
 
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. More...
 
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. More...
 
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. More...
 
void plp_conv_parallel_OLA_kernel (void *task_args)
 Helper function for parallelized overlap-adding of partial convolution results. More...
 

Detailed Description

Computes 1D convolution of two vectors.

Function Documentation

void plp_conv_i16p_xpulpv2 ( void *  task_args)

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

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

Parameters
[in]task_argspointer to plp_conv_instance_i16 struct initialized by plp_conv_i16_parallel
Returns
none
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
[in]pSrcApoints to the first input vector
[in]srcALenLength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here
Returns
none
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
[in]pSrcApoints to the first input vector
[in]srcALenLength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here
Returns
none
void plp_conv_i32p_xpulpv2 ( void *  task_args)

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

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

Parameters
[in]task_argspointer to plp_conv_instance_i32 struct initialized by plp_conv_i32_parallel
Returns
none
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
[in]pSrcApoints to the first input vector
[in]srcALenLength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here
Returns
none
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 16-bit integer vectors kernel for XPULPV2 extension.

Parameters
[in]pSrcApoints to the first input vector
[in]srcALenLength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here
Returns
none
void plp_conv_i8p_xpulpv2 ( void *  task_args)

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

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

Parameters
[in]task_argspointer to plp_conv_instance_i8 struct initialized by plp_conv_i8_parallel
Returns
none
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
[in]pSrcApoints to the first input vector
[in]srcALenLength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here
Returns
none
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
[in]pSrcApoints to the first input vector
[in]srcALenLength of the first input vector
[in]pSrcBpoints to the second input vector
[in]srcBLenLength of the second input vector
[out]pResoutput result returned here
Returns
none
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
[in]nPENumber of processing cores
[in]srcALenLength of the first original input vector
[in]srcBLenLength of the second original input vector
[in]resultsBufferresultsBuffer array from plp_conv_i[XX]_parallel
Returns
none
void plp_conv_parallel_OLA_kernel ( void *  task_args)

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

Parameters
[in]task_argsHolds the plp_conv_tree_add_instance that describes the vector parameters
Returns
none