Simd Library Documentation.

Home | Release Notes | Download | Documentation | Issues | GitHub
Winograd functions

Functions to acceleratŠµ Winograd convolution algorithm in Synet Framework. More...

Functions

SIMD_API void SimdWinogradKernel1x3Block1x4SetFilter (const float *src, size_t size, float *dst, SimdBool trans)
 This function is used for filter conversion in Winograd F(1x4,1x3) or F(4x1,3x1) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel1x3Block1x4SetInput (const float *src, size_t srcChannels, size_t srcHeight, size_t srcWidth, size_t padY, size_t padX, size_t padH, size_t padW, float *dst, size_t dstStride, SimdBool trans)
 This function is used for input image conversion in Winograd F(1x4,1x3) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel1x3Block1x4SetOutput (const float *src, size_t srcStride, float *dst, size_t dstChannels, size_t dstHeight, size_t dstWidth, SimdBool trans)
 This function is used for output image conversion in Winograd F(1x4,1x3) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel1x5Block1x4SetFilter (const float *src, size_t size, float *dst, SimdBool trans)
 This function is used for filter conversion in Winograd F(1x4,1x5) or F(4x1,5x1) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel1x5Block1x4SetInput (const float *src, size_t srcChannels, size_t srcHeight, size_t srcWidth, size_t padY, size_t padX, size_t padH, size_t padW, float *dst, size_t dstStride, SimdBool trans)
 This function is used for input image conversion in Winograd F(1x4,1x5) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel1x5Block1x4SetOutput (const float *src, size_t srcStride, float *dst, size_t dstChannels, size_t dstHeight, size_t dstWidth, SimdBool trans)
 This function is used for output image conversion in Winograd F(1x4,1x5) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel2x2Block2x2SetFilter (const float *src, size_t size, float *dst, SimdBool trans)
 This function is used for filter conversion in Winograd F(2x2,2x2) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel2x2Block2x2SetInput (const float *src, size_t srcChannels, size_t srcHeight, size_t srcWidth, size_t padY, size_t padX, size_t padH, size_t padW, float *dst, size_t dstStride, SimdBool trans)
 This function is used for input image conversion in Winograd F(2x2,2x2) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel2x2Block2x2SetOutput (const float *src, size_t srcStride, float *dst, size_t dstChannels, size_t dstHeight, size_t dstWidth, SimdBool trans)
 This function is used for output image conversion in Winograd F(2x2,2x2) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel2x2Block4x4SetFilter (const float *src, size_t size, float *dst, SimdBool trans)
 This function is used for filter conversion in Winograd F(4x4,2x2) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel2x2Block4x4SetInput (const float *src, size_t srcChannels, size_t srcHeight, size_t srcWidth, size_t padY, size_t padX, size_t padH, size_t padW, float *dst, size_t dstStride, SimdBool trans)
 This function is used for input image conversion in Winograd F(4x4,2x2) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel2x2Block4x4SetOutput (const float *src, size_t srcStride, float *dst, size_t dstChannels, size_t dstHeight, size_t dstWidth, SimdBool trans)
 This function is used for output image conversion in Winograd F(4x4,2x2) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel3x3Block2x2SetFilter (const float *src, size_t size, float *dst, SimdBool trans)
 This function is used for filter conversion in Winograd F(2x2,3x3) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel3x3Block2x2SetInput (const float *src, size_t srcChannels, size_t srcHeight, size_t srcWidth, size_t padY, size_t padX, size_t padH, size_t padW, float *dst, size_t dstStride, SimdBool trans)
 This function is used for input image conversion in Winograd F(2x2,3x3) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel3x3Block2x2SetOutput (const float *src, size_t srcStride, float *dst, size_t dstChannels, size_t dstHeight, size_t dstWidth, SimdBool trans)
 This function is used for output image conversion in Winograd F(2x2,3x3) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel3x3Block3x3SetFilter (const float *src, size_t size, float *dst, SimdBool trans)
 This function is used for filter conversion in Winograd F(3x3,3x3) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel3x3Block3x3SetInput (const float *src, size_t srcChannels, size_t srcHeight, size_t srcWidth, size_t padY, size_t padX, size_t padH, size_t padW, float *dst, size_t dstStride, SimdBool trans)
 This function is used for input image conversion in Winograd F(3x3,3x3) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel3x3Block3x3SetOutput (const float *src, size_t srcStride, float *dst, size_t dstChannels, size_t dstHeight, size_t dstWidth, SimdBool trans)
 This function is used for output image conversion in Winograd F(3x3,3x3) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel3x3Block4x4SetFilter (const float *src, size_t size, float *dst, SimdBool trans)
 This function is used for filter conversion in Winograd F(4x4,3x3) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel3x3Block4x4SetInput (const float *src, size_t srcChannels, size_t srcHeight, size_t srcWidth, size_t padY, size_t padX, size_t padH, size_t padW, float *dst, size_t dstStride, SimdBool trans)
 This function is used for input image conversion in Winograd F(4x4,3x3) convolution algorithm. More...
 
SIMD_API void SimdWinogradKernel3x3Block4x4SetOutput (const float *src, size_t srcStride, float *dst, size_t dstChannels, size_t dstHeight, size_t dstWidth, SimdBool trans)
 This function is used for output image conversion in Winograd F(4x4,3x3) convolution algorithm. More...
 

Detailed Description

Functions to acceleratŠµ Winograd convolution algorithm in Synet Framework.

Function Documentation

◆ SimdWinogradKernel1x3Block1x4SetFilter()

void SimdWinogradKernel1x3Block1x4SetFilter ( const float *  src,
size_t  size,
float *  dst,
SimdBool  trans 
)

This function is used for filter conversion in Winograd F(1x4,1x3) or F(4x1,3x1) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input 32-bit float array with filter weights.
[in]size- (number of input channels)*(number of output channels).
[out]dst- a pointer to the output 32-bit float array with filter weights.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel1x3Block1x4SetInput()

void SimdWinogradKernel1x3Block1x4SetInput ( const float *  src,
size_t  srcChannels,
size_t  srcHeight,
size_t  srcWidth,
size_t  padY,
size_t  padX,
size_t  padH,
size_t  padW,
float *  dst,
size_t  dstStride,
SimdBool  trans 
)

This function is used for input image conversion in Winograd F(1x4,1x3) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcChannels- a number of input channels.
[in]srcHeight- a height of input image.
[in]srcWidth- a width of input image.
[in]padY- an additional zero padding of input image at the beginning of Y-axis.
[in]padX- an additional zero padding of input image at the beginning of X-axis.
[in]padH- an additional zero padding of input image at the end of Y-axis.
[in]padW- an additional zero padding of input image at the end of X-axis.
[out]dst- a pointer to the output array with converted image.
[in]dstStride- a stride of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel1x3Block1x4SetOutput()

void SimdWinogradKernel1x3Block1x4SetOutput ( const float *  src,
size_t  srcStride,
float *  dst,
size_t  dstChannels,
size_t  dstHeight,
size_t  dstWidth,
SimdBool  trans 
)

This function is used for output image conversion in Winograd F(1x4,1x3) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcStride- a stride of input image.
[out]dst- a pointer to the output image.
[in]dstChannels- a number of output channels.
[in]dstHeight- a height of output image.
[in]dstWidth- a width of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel1x5Block1x4SetFilter()

void SimdWinogradKernel1x5Block1x4SetFilter ( const float *  src,
size_t  size,
float *  dst,
SimdBool  trans 
)

This function is used for filter conversion in Winograd F(1x4,1x5) or F(4x1,5x1) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input 32-bit float array with filter weights.
[in]size- (number of input channels)*(number of output channels).
[out]dst- a pointer to the output 32-bit float array with filter weights.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel1x5Block1x4SetInput()

void SimdWinogradKernel1x5Block1x4SetInput ( const float *  src,
size_t  srcChannels,
size_t  srcHeight,
size_t  srcWidth,
size_t  padY,
size_t  padX,
size_t  padH,
size_t  padW,
float *  dst,
size_t  dstStride,
SimdBool  trans 
)

This function is used for input image conversion in Winograd F(1x4,1x5) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcChannels- a number of input channels.
[in]srcHeight- a height of input image.
[in]srcWidth- a width of input image.
[in]padY- an additional zero padding of input image at the beginning of Y-axis.
[in]padX- an additional zero padding of input image at the beginning of X-axis.
[in]padH- an additional zero padding of input image at the end of Y-axis.
[in]padW- an additional zero padding of input image at the end of X-axis.
[out]dst- a pointer to the output array with converted image.
[in]dstStride- a stride of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel1x5Block1x4SetOutput()

void SimdWinogradKernel1x5Block1x4SetOutput ( const float *  src,
size_t  srcStride,
float *  dst,
size_t  dstChannels,
size_t  dstHeight,
size_t  dstWidth,
SimdBool  trans 
)

This function is used for output image conversion in Winograd F(1x4,1x5) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcStride- a stride of input image.
[out]dst- a pointer to the output image.
[in]dstChannels- a number of output channels.
[in]dstHeight- a height of output image.
[in]dstWidth- a width of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel2x2Block2x2SetFilter()

void SimdWinogradKernel2x2Block2x2SetFilter ( const float *  src,
size_t  size,
float *  dst,
SimdBool  trans 
)

This function is used for filter conversion in Winograd F(2x2,2x2) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input 32-bit float array with filter weights.
[in]size- (number of input channels)*(number of output channels).
[out]dst- a pointer to the output 32-bit float array with filter weights.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel2x2Block2x2SetInput()

void SimdWinogradKernel2x2Block2x2SetInput ( const float *  src,
size_t  srcChannels,
size_t  srcHeight,
size_t  srcWidth,
size_t  padY,
size_t  padX,
size_t  padH,
size_t  padW,
float *  dst,
size_t  dstStride,
SimdBool  trans 
)

This function is used for input image conversion in Winograd F(2x2,2x2) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcChannels- a number of input channels.
[in]srcHeight- a height of input image.
[in]srcWidth- a width of input image.
[in]padY- an additional zero padding of input image at the beginning of Y-axis.
[in]padX- an additional zero padding of input image at the beginning of X-axis.
[in]padH- an additional zero padding of input image at the end of Y-axis.
[in]padW- an additional zero padding of input image at the end of X-axis.
[out]dst- a pointer to the output array with converted image.
[in]dstStride- a stride of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel2x2Block2x2SetOutput()

void SimdWinogradKernel2x2Block2x2SetOutput ( const float *  src,
size_t  srcStride,
float *  dst,
size_t  dstChannels,
size_t  dstHeight,
size_t  dstWidth,
SimdBool  trans 
)

This function is used for output image conversion in Winograd F(2x2,2x2) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcStride- a stride of input image.
[out]dst- a pointer to the output image.
[in]dstChannels- a number of output channels.
[in]dstHeight- a height of output image.
[in]dstWidth- a width of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel2x2Block4x4SetFilter()

void SimdWinogradKernel2x2Block4x4SetFilter ( const float *  src,
size_t  size,
float *  dst,
SimdBool  trans 
)

This function is used for filter conversion in Winograd F(4x4,2x2) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input 32-bit float array with filter weights.
[in]size- (number of input channels)*(number of output channels).
[out]dst- a pointer to the output 32-bit float array with filter weights.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel2x2Block4x4SetInput()

void SimdWinogradKernel2x2Block4x4SetInput ( const float *  src,
size_t  srcChannels,
size_t  srcHeight,
size_t  srcWidth,
size_t  padY,
size_t  padX,
size_t  padH,
size_t  padW,
float *  dst,
size_t  dstStride,
SimdBool  trans 
)

This function is used for input image conversion in Winograd F(4x4,2x2) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcChannels- a number of input channels.
[in]srcHeight- a height of input image.
[in]srcWidth- a width of input image.
[in]padY- an additional zero padding of input image at the beginning of Y-axis.
[in]padX- an additional zero padding of input image at the beginning of X-axis.
[in]padH- an additional zero padding of input image at the end of Y-axis.
[in]padW- an additional zero padding of input image at the end of X-axis.
[out]dst- a pointer to the output array with converted image.
[in]dstStride- a stride of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel2x2Block4x4SetOutput()

void SimdWinogradKernel2x2Block4x4SetOutput ( const float *  src,
size_t  srcStride,
float *  dst,
size_t  dstChannels,
size_t  dstHeight,
size_t  dstWidth,
SimdBool  trans 
)

This function is used for output image conversion in Winograd F(4x4,2x2) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcStride- a stride of input image.
[out]dst- a pointer to the output image.
[in]dstChannels- a number of output channels.
[in]dstHeight- a height of output image.
[in]dstWidth- a width of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel3x3Block2x2SetFilter()

void SimdWinogradKernel3x3Block2x2SetFilter ( const float *  src,
size_t  size,
float *  dst,
SimdBool  trans 
)

This function is used for filter conversion in Winograd F(2x2,3x3) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input 32-bit float array with filter weights.
[in]size- (number of input channels)*(number of output channels).
[out]dst- a pointer to the output 32-bit float array with filter weights.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel3x3Block2x2SetInput()

void SimdWinogradKernel3x3Block2x2SetInput ( const float *  src,
size_t  srcChannels,
size_t  srcHeight,
size_t  srcWidth,
size_t  padY,
size_t  padX,
size_t  padH,
size_t  padW,
float *  dst,
size_t  dstStride,
SimdBool  trans 
)

This function is used for input image conversion in Winograd F(2x2,3x3) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcChannels- a number of input channels.
[in]srcHeight- a height of input image.
[in]srcWidth- a width of input image.
[in]padY- an additional zero padding of input image at the beginning of Y-axis.
[in]padX- an additional zero padding of input image at the beginning of X-axis.
[in]padH- an additional zero padding of input image at the end of Y-axis.
[in]padW- an additional zero padding of input image at the end of X-axis.
[out]dst- a pointer to the output array with converted image.
[in]dstStride- a stride of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel3x3Block2x2SetOutput()

void SimdWinogradKernel3x3Block2x2SetOutput ( const float *  src,
size_t  srcStride,
float *  dst,
size_t  dstChannels,
size_t  dstHeight,
size_t  dstWidth,
SimdBool  trans 
)

This function is used for output image conversion in Winograd F(2x2,3x3) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcStride- a stride of input image.
[out]dst- a pointer to the output image.
[in]dstChannels- a number of output channels.
[in]dstHeight- a height of output image.
[in]dstWidth- a width of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel3x3Block3x3SetFilter()

void SimdWinogradKernel3x3Block3x3SetFilter ( const float *  src,
size_t  size,
float *  dst,
SimdBool  trans 
)

This function is used for filter conversion in Winograd F(3x3,3x3) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input 32-bit float array with filter weights.
[in]size- (number of input channels)*(number of output channels).
[out]dst- a pointer to the output 32-bit float array with filter weights.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel3x3Block3x3SetInput()

void SimdWinogradKernel3x3Block3x3SetInput ( const float *  src,
size_t  srcChannels,
size_t  srcHeight,
size_t  srcWidth,
size_t  padY,
size_t  padX,
size_t  padH,
size_t  padW,
float *  dst,
size_t  dstStride,
SimdBool  trans 
)

This function is used for input image conversion in Winograd F(3x3,3x3) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcChannels- a number of input channels.
[in]srcHeight- a height of input image.
[in]srcWidth- a width of input image.
[in]padY- an additional zero padding of input image at the beginning of Y-axis.
[in]padX- an additional zero padding of input image at the beginning of X-axis.
[in]padH- an additional zero padding of input image at the end of Y-axis.
[in]padW- an additional zero padding of input image at the end of X-axis.
[out]dst- a pointer to the output array with converted image.
[in]dstStride- a stride of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel3x3Block3x3SetOutput()

void SimdWinogradKernel3x3Block3x3SetOutput ( const float *  src,
size_t  srcStride,
float *  dst,
size_t  dstChannels,
size_t  dstHeight,
size_t  dstWidth,
SimdBool  trans 
)

This function is used for output image conversion in Winograd F(3x3,3x3) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcStride- a stride of input image.
[out]dst- a pointer to the output image.
[in]dstChannels- a number of output channels.
[in]dstHeight- a height of output image.
[in]dstWidth- a width of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel3x3Block4x4SetFilter()

void SimdWinogradKernel3x3Block4x4SetFilter ( const float *  src,
size_t  size,
float *  dst,
SimdBool  trans 
)

This function is used for filter conversion in Winograd F(4x4,3x3) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input 32-bit float array with filter weights.
[in]size- (number of input channels)*(number of output channels).
[out]dst- a pointer to the output 32-bit float array with filter weights.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel3x3Block4x4SetInput()

void SimdWinogradKernel3x3Block4x4SetInput ( const float *  src,
size_t  srcChannels,
size_t  srcHeight,
size_t  srcWidth,
size_t  padY,
size_t  padX,
size_t  padH,
size_t  padW,
float *  dst,
size_t  dstStride,
SimdBool  trans 
)

This function is used for input image conversion in Winograd F(4x4,3x3) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcChannels- a number of input channels.
[in]srcHeight- a height of input image.
[in]srcWidth- a width of input image.
[in]padY- an additional zero padding of input image at the beginning of Y-axis.
[in]padX- an additional zero padding of input image at the beginning of X-axis.
[in]padH- an additional zero padding of input image at the end of Y-axis.
[in]padW- an additional zero padding of input image at the end of X-axis.
[out]dst- a pointer to the output array with converted image.
[in]dstStride- a stride of output image.
[in]trans- a flag of transposed data.

◆ SimdWinogradKernel3x3Block4x4SetOutput()

void SimdWinogradKernel3x3Block4x4SetOutput ( const float *  src,
size_t  srcStride,
float *  dst,
size_t  dstChannels,
size_t  dstHeight,
size_t  dstWidth,
SimdBool  trans 
)

This function is used for output image conversion in Winograd F(4x4,3x3) convolution algorithm.

Note
This function is used in Synet Framework.
Parameters
[in]src- a pointer to the input image.
[in]srcStride- a stride of input image.
[out]dst- a pointer to the output image.
[in]dstChannels- a number of output channels.
[in]dstHeight- a height of output image.
[in]dstWidth- a width of output image.
[in]trans- a flag of transposed data.