Simd Library Documentation.

Home | Release Notes | Download | Documentation | Issues | GitHub
INT8 merged convolution frameworks

A framework to accelerate INT8 merged convolution in Synet Framework. More...

Functions

SIMD_API void * SimdSynetMergedConvolution8iInit (size_t batch, const SimdConvolutionParameters *convs, size_t count, SimdSynetCompatibilityType compatibility)
 Initilizes INT8 merged convolution algorithm. More...
 
SIMD_API size_t SimdSynetMergedConvolution8iExternalBufferSize (const void *context)
 Gets size in bytes of external temporary buffer required for INT8 merged convolution algorithm. More...
 
SIMD_API size_t SimdSynetMergedConvolution8iInternalBufferSize (const void *context)
 Gets size in bytes of internal buffer used inside INT8 merged convolution algorithm. More...
 
SIMD_API const char * SimdSynetMergedConvolution8iInfo (const void *context)
 Gets description of internal implementation of INT8 merged convolution algorithm. More...
 
SIMD_API void SimdSynetMergedConvolution8iSetParams (void *context, const float *const *weight, SimdBool *internal, const float *const *bias, const float *const *params, const float *const *stats)
 Sets weights, beases and parameters of activation function required for INT8 merged convolution algorithm. More...
 
SIMD_API void SimdSynetMergedConvolution8iForward (void *context, const uint8_t *src, uint8_t *buf, uint8_t *dst)
 Performs forward propagation of INT8 merged convolution algorithm. More...
 

Detailed Description

A framework to accelerate INT8 merged convolution in Synet Framework.

Function Documentation

◆ SimdSynetMergedConvolution8iInit()

void * SimdSynetMergedConvolution8iInit ( size_t  batch,
const SimdConvolutionParameters convs,
size_t  count,
SimdSynetCompatibilityType  compatibility 
)

Initilizes INT8 merged convolution algorithm.

Parameters
[in]batch- a batch size.
[in]convs- an array with convolutions parameters.
[in]count- a number of merged convolutions.
[in]compatibility- a flags of calculation compatibility.
Returns
a pointer to INT8 merged convolution context. On error it returns NULL. It must be released with using of function SimdRelease. This pointer is used in functions SimdSynetMergedConvolution8iExternalBufferSize, SimdSynetMergedConvolution8iInternalBufferSize, SimdSynetMergedConvolution8iInfo, SimdSynetMergedConvolution8iSetParams and SimdSynetMergedConvolution8iForward.

◆ SimdSynetMergedConvolution8iExternalBufferSize()

size_t SimdSynetMergedConvolution8iExternalBufferSize ( const void *  context)

Gets size in bytes of external temporary buffer required for INT8 merged convolution algorithm.

Parameters
[in]context- a pointer to INT8 merged convolution context. It must be created by function SimdSynetMergedConvolution8iInit and released by function SimdRelease.
Returns
size in bytes of external temporary buffer required for INT8 merged convolution algorithm.

◆ SimdSynetMergedConvolution8iInternalBufferSize()

size_t SimdSynetMergedConvolution8iInternalBufferSize ( const void *  context)

Gets size in bytes of internal buffer used inside INT8 merged convolution algorithm.

Parameters
[in]context- a pointer to INT8 merged convolution context. It must be created by function SimdSynetMergedConvolution8iInit and released by function SimdRelease.
Returns
size in bytes of internal buffer used inside INT8 merged convolution algorithm.

◆ SimdSynetMergedConvolution8iInfo()

const char * SimdSynetMergedConvolution8iInfo ( const void *  context)

Gets description of internal implementation of INT8 merged convolution algorithm.

Parameters
[in]context- a pointer to INT8 merged convolution context. It must be created by function SimdSynetMergedConvolution8iInit and released by function SimdRelease.
Returns
string with description of internal implementation of INT8 merged convolution algorithm.

◆ SimdSynetMergedConvolution8iSetParams()

void SimdSynetMergedConvolution8iSetParams ( void *  context,
const float *const *  weight,
SimdBool internal,
const float *const *  bias,
const float *const *  params,
const float *const *  stats 
)

Sets weights, beases and parameters of activation function required for INT8 merged convolution algorithm.

Parameters
[in,out]context- a pointer to INT8 merged convolution context. It must be created by function SimdSynetMergedConvolution8iInit and released by function SimdRelease.
[in]weight- a pointer to the array with pointers to convolution weights. The array size is determined by number of merged convolutions.
[out]internal- a ponter to the array of flags signalized that weights are stored in the internal buffer. The array size is determined by number of merged convolutions. Can be NULL.
[in]bias- a pointer to the array with pointers to bias. The array size is determined by number of merged convolutions. Can be NULL.
[in]params- a pointer to the array with pointers to parameters of the activation functions (see SimdConvolutionActivationType). The array size is determined by number of merged convolutions. Can be NULL.
[in]stats- a pointer to pointers with statistics of input(min - stats[0], max - stats[1]), interim(min - stats[2], max - stats[3]) and output(min - stats[4], max - stats[5]) tensors.

◆ SimdSynetMergedConvolution8iForward()

void SimdSynetMergedConvolution8iForward ( void *  context,
const uint8_t *  src,
uint8_t *  buf,
uint8_t *  dst 
)

Performs forward propagation of INT8 merged convolution algorithm.

Parameters
[in]context- a pointer to INT8 merged convolution context. It must be created by function SimdSynetMergedConvolution8iInit and released by function SimdRelease.
[in]src- a pointer to input image.
[out]buf- a pointer to external temporary buffer. The size in bytes of the external temporary buffer is determined by function SimdSynetMergedConvolution8iExternalBufferSize. Can be NULL (it causes usage of internal buffer).
[out]dst- a pointer to output image.