Deep Neural Network Library (DNNL)  1.3.0
Performance library for Deep Learning
Classes | Functions
Convolution

A primitive to perform 1D, 2D or 3D convolution. More...

Classes

struct  dnnl::convolution_forward
 Convolution forward propagation primitive. More...
 
struct  dnnl::convolution_backward_data
 Convolution backward propagation primitive. More...
 
struct  dnnl::convolution_backward_weights
 Convolution weights gradient primitive. More...
 
struct  dnnl_convolution_desc_t
 A descriptor of a convolution operation. More...
 

Functions

dnnl_status_t DNNL_API dnnl_convolution_forward_desc_init (dnnl_convolution_desc_t *conv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
 Initializes a descriptor for a convolution forward propagation primitive. More...
 
dnnl_status_t DNNL_API dnnl_dilated_convolution_forward_desc_init (dnnl_convolution_desc_t *conv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
 Initializes a descriptor for a dilated convolution forward propagation primitive. More...
 
dnnl_status_t DNNL_API dnnl_convolution_backward_data_desc_init (dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
 Initializes a descriptor for a convolution backward propagation primitive. More...
 
dnnl_status_t DNNL_API dnnl_dilated_convolution_backward_data_desc_init (dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
 Initializes a descriptor for a dilated convolution backward propagation primitive. More...
 
dnnl_status_t DNNL_API dnnl_convolution_backward_weights_desc_init (dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
 Initializes a descriptor for a convolution weights gradient primitive. More...
 
dnnl_status_t DNNL_API dnnl_dilated_convolution_backward_weights_desc_init (dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
 Initializes a descriptor for a dilated convolution weights gradient primitive. More...
 

Detailed Description

A primitive to perform 1D, 2D or 3D convolution.

Supported variants are forward propagation, backward propagation, and weights gradient with or without bias.

See also
Convolution in developer guide

Function Documentation

◆ dnnl_convolution_forward_desc_init()

dnnl_status_t DNNL_API dnnl_convolution_forward_desc_init ( dnnl_convolution_desc_t conv_desc,
dnnl_prop_kind_t  prop_kind,
dnnl_alg_kind_t  alg_kind,
const dnnl_memory_desc_t src_desc,
const dnnl_memory_desc_t weights_desc,
const dnnl_memory_desc_t bias_desc,
const dnnl_memory_desc_t dst_desc,
const dnnl_dims_t  strides,
const dnnl_dims_t  padding_l,
const dnnl_dims_t  padding_r 
)

Initializes a descriptor for a convolution forward propagation primitive.

Note
Memory descriptors can be initialized with dnnl_format_tag_any or with format_kind set to dnnl_format_kind_any.

Inputs:

Outputs:

Parameters
conv_descOutput descriptor for a convolution primitive.
prop_kindPropagation kind. Possible values are dnnl_forward_training and dnnl_forward_inference.
alg_kindConvolution algorithm. Possible values are dnnl_convolution_direct, dnnl_convolution_winograd, dnnl_convolution_auto.
src_descSource memory descriptor.
weights_descWeights memory descriptor.
bias_descBias memory descriptor. Passing NULL, a zero memory descriptor, or a memory descriptor with format_kind set to dnnl_format_kind_undef disables the bias term.
dst_descDestination memory descriptor.
stridesArray of strides for spatial dimension.
padding_lArray of padding values for low indices for each spatial dimension (front, top, left).
padding_rArray of padding values for high indices for each spatial dimension (back, bottom, right). Can be NULL in which case padding is considered to be symmetrical.
Returns
dnnl_success on success and a status describing the error otherwise.
Examples:
cnn_inference_f32.c, and cpu_cnn_training_f32.c.

◆ dnnl_dilated_convolution_forward_desc_init()

dnnl_status_t DNNL_API dnnl_dilated_convolution_forward_desc_init ( dnnl_convolution_desc_t conv_desc,
dnnl_prop_kind_t  prop_kind,
dnnl_alg_kind_t  alg_kind,
const dnnl_memory_desc_t src_desc,
const dnnl_memory_desc_t weights_desc,
const dnnl_memory_desc_t bias_desc,
const dnnl_memory_desc_t dst_desc,
const dnnl_dims_t  strides,
const dnnl_dims_t  dilates,
const dnnl_dims_t  padding_l,
const dnnl_dims_t  padding_r 
)

Initializes a descriptor for a dilated convolution forward propagation primitive.

Note
Memory descriptors can be initialized with dnnl_format_tag_any or with format_kind set to dnnl_format_kind_any.

Inputs:

Outputs:

Parameters
conv_descOutput descriptor for a convolution primitive.
prop_kindPropagation kind. Possible values are dnnl_forward_training and dnnl_forward_inference.
alg_kindConvolution algorithm. Possible values are dnnl_convolution_direct, dnnl_convolution_winograd, dnnl_convolution_auto.
src_descSource memory descriptor.
weights_descWeights memory descriptor.
bias_descBias memory descriptor. Passing NULL, a zero memory descriptor, or a memory descriptor with format_kind set to dnnl_format_kind_undef disables the bias term.
dst_descDestination memory descriptor.
stridesArray of strides for spatial dimension.
dilatesArray of dilations for spatial dimension. A zero value means no dilation in the corresponding dimension.
padding_lArray of padding values for low indices for each spatial dimension (front, top, left).
padding_rArray of padding values for high indices for each spatial dimension (back, bottom, right). Can be NULL in which case padding is considered to be symmetrical.
Returns
dnnl_success on success and a status describing the error otherwise.

◆ dnnl_convolution_backward_data_desc_init()

dnnl_status_t DNNL_API dnnl_convolution_backward_data_desc_init ( dnnl_convolution_desc_t conv_desc,
dnnl_alg_kind_t  alg_kind,
const dnnl_memory_desc_t diff_src_desc,
const dnnl_memory_desc_t weights_desc,
const dnnl_memory_desc_t diff_dst_desc,
const dnnl_dims_t  strides,
const dnnl_dims_t  padding_l,
const dnnl_dims_t  padding_r 
)

Initializes a descriptor for a convolution backward propagation primitive.

Note
Memory descriptors can be initialized with dnnl_format_tag_any or with format_kind set to dnnl_format_kind_any.

Inputs:

Outputs:

Parameters
conv_descOutput descriptor for a convolution primitive.
alg_kindConvolution algorithm. Possible values are dnnl_convolution_direct, dnnl_convolution_winograd, dnnl_convolution_auto.
diff_src_descDiff source memory descriptor.
weights_descWeights memory descriptor.
diff_dst_descDiff destination memory descriptor.
stridesArray of strides for spatial dimension.
padding_lArray of padding values for low indices for each spatial dimension (front, top, left).
padding_rArray of padding values for high indices for each spatial dimension (back, bottom, right). Can be NULL in which case padding is considered to be symmetrical.
Returns
dnnl_success on success and a status describing the error otherwise.

◆ dnnl_dilated_convolution_backward_data_desc_init()

dnnl_status_t DNNL_API dnnl_dilated_convolution_backward_data_desc_init ( dnnl_convolution_desc_t conv_desc,
dnnl_alg_kind_t  alg_kind,
const dnnl_memory_desc_t diff_src_desc,
const dnnl_memory_desc_t weights_desc,
const dnnl_memory_desc_t diff_dst_desc,
const dnnl_dims_t  strides,
const dnnl_dims_t  dilates,
const dnnl_dims_t  padding_l,
const dnnl_dims_t  padding_r 
)

Initializes a descriptor for a dilated convolution backward propagation primitive.

Note
Memory descriptors can be initialized with dnnl_format_tag_any or with format_kind set to dnnl_format_kind_any.

Inputs:

Outputs:

Parameters
conv_descOutput descriptor for a convolution primitive.
alg_kindConvolution algorithm. Possible values are dnnl_convolution_direct, dnnl_convolution_winograd, dnnl_convolution_auto.
diff_src_descDiff source memory descriptor.
weights_descWeights memory descriptor.
diff_dst_descDiff destination memory descriptor.
stridesArray of strides for spatial dimension.
dilatesArray of dilations for spatial dimension. A zero value means no dilation in the corresponding dimension.
padding_lArray of padding values for low indices for each spatial dimension (front, top, left).
padding_rArray of padding values for high indices for each spatial dimension (back, bottom, right). Can be NULL in which case padding is considered to be symmetrical.
Returns
dnnl_success on success and a status describing the error otherwise.

◆ dnnl_convolution_backward_weights_desc_init()

dnnl_status_t DNNL_API dnnl_convolution_backward_weights_desc_init ( dnnl_convolution_desc_t conv_desc,
dnnl_alg_kind_t  alg_kind,
const dnnl_memory_desc_t src_desc,
const dnnl_memory_desc_t diff_weights_desc,
const dnnl_memory_desc_t diff_bias_desc,
const dnnl_memory_desc_t diff_dst_desc,
const dnnl_dims_t  strides,
const dnnl_dims_t  padding_l,
const dnnl_dims_t  padding_r 
)

Initializes a descriptor for a convolution weights gradient primitive.

Note
Memory descriptors can be initialized with dnnl_format_tag_any or with format_kind set to dnnl_format_kind_any.

Inputs:

Outputs:

Parameters
conv_descOutput descriptor for a convolution primitive.
alg_kindConvolution algorithm. Possible values are dnnl_convolution_direct, dnnl_convolution_winograd, dnnl_convolution_auto.
src_descSource memory descriptor.
diff_weights_descDiff weights memory descriptor.
diff_bias_descDiff bias memory descriptor. Passing NULL, a zero memory descriptor, or a memory descriptor with format_kind set to dnnl_format_kind_undef disables the bias term.
diff_dst_descDiff destination memory descriptor.
stridesArray of strides for spatial dimension.
padding_lArray of padding values for low indices for each spatial dimension (front, top, left).
padding_rArray of padding values for high indices for each spatial dimension (back, bottom, right). Can be NULL in which case padding is considered to be symmetrical.
Returns
dnnl_success on success and a status describing the error otherwise.
Examples:
cpu_cnn_training_f32.c.

◆ dnnl_dilated_convolution_backward_weights_desc_init()

dnnl_status_t DNNL_API dnnl_dilated_convolution_backward_weights_desc_init ( dnnl_convolution_desc_t conv_desc,
dnnl_alg_kind_t  alg_kind,
const dnnl_memory_desc_t src_desc,
const dnnl_memory_desc_t diff_weights_desc,
const dnnl_memory_desc_t diff_bias_desc,
const dnnl_memory_desc_t diff_dst_desc,
const dnnl_dims_t  strides,
const dnnl_dims_t  dilates,
const dnnl_dims_t  padding_l,
const dnnl_dims_t  padding_r 
)

Initializes a descriptor for a dilated convolution weights gradient primitive.

Note
Memory descriptors can be initialized with dnnl_format_tag_any or with format_kind set to dnnl_format_kind_any.

Inputs:

Outputs:

Parameters
conv_descOutput descriptor for a convolution primitive.
alg_kindConvolution algorithm. Possible values are dnnl_convolution_direct, dnnl_convolution_winograd, dnnl_convolution_auto.
src_descSource memory descriptor.
diff_weights_descDiff weights memory descriptor.
diff_bias_descDiff bias memory descriptor. Passing NULL, a zero memory descriptor, or a memory descriptor with format_kind set to dnnl_format_kind_undef disables the bias term.
diff_dst_descDiff destination memory descriptor.
stridesArray of strides for spatial dimension.
dilatesArray of dilations for spatial dimension. A zero value means no dilation in the corresponding dimension.
padding_lArray of padding values for low indices for each spatial dimension (front, top, left).
padding_rArray of padding values for high indices for each spatial dimension (back, bottom, right). Can be NULL in which case padding is considered to be symmetrical.
Returns
dnnl_success on success and a status describing the error otherwise.