(S)CONV_MM

Single precision CONV_MM.

Description

Takes an image and a set of filters and performs a convolution using matrix multiplication. The image must be stored in channel major format.

Extension Interface

void sconv_mm(const bool biased, const float* src, const qml_int srcWidth,
              const qml_int srcHeight, const qml_int srcNumChannels,
              const float* filters, const qml_int numFilters,
              const qml_int filterX, const qml_int filterY, const qml_int padLeft,
              const qml_int padTop, const qml_int strideX, const qml_int strideY,
              float* output, const qml_int outputWidth, const qml_int outputHeight);

Arguments

biased Whether or not a bias has already been applied to the output
src Input image, assumed to be stored in channel major format
srcX Width of the image
srcY Height of the image
channels Number of channels in the image
filters Filters, assumed to be stored in channel major format
numFilters Number of filters
filterX Width of the filters
filterY Height of the filters
padX Amount of padding added to the left and right of the image
padY Amount of padding added to the top and bottom of the image
strideX Filter stride in the X dimension
strideY Filter stride in the Y dimension
output Output, assumed to be stored in channel major format
outputX Width of an individual output
outputy Height of an individual output