20 #ifndef DOXYGEN_SHOULD_SKIP_THIS 55 template <
typename T,
typename traits=handle_traits<T>>
class handle {
57 std::shared_ptr<typename std::remove_pointer<T>::type> _data;
64 handle(T t = 0,
bool weak =
false): _data(0) {
68 bool operator==(
const T other)
const {
return other == _data.get(); }
69 bool operator!=(
const T other)
const {
return !(*
this == other); }
79 void reset(T t,
bool weak =
false) {
80 auto dummy_destructor = [](T) {
return decltype(traits::destructor(0))(0); };
81 _data.reset(t, weak ? dummy_destructor : traits::destructor);
85 T
get()
const {
return _data.get(); }
87 bool operator==(
const handle &other)
const {
return other._data.get() == _data.get(); }
99 friend class primitive_at;
100 using handle::handle;
127 struct error:
public std::exception {
143 , error_primitive(aerror_primitive, true)
159 if (
nullptr != error_primitive)
160 throw error(status, message, *error_primitive);
162 throw error(status, message,
nullptr);
171 data.output_index, &output),
172 "could not get an output primitive");
173 return primitive(const_cast<mkldnn_primitive_t>(output),
true);
179 "could not get primitive descriptor by primitive");
187 #ifndef DOXYGEN_SHOULD_SKIP_THIS 260 mkldnn_engine_t aengine;
264 "could not create an engine");
268 explicit engine(
const mkldnn_engine_t& aengine)
269 :
handle(aengine, true) {}
272 mkldnn_engine_t engine_q;
276 "could not get engine from primitive_desc");
277 reset(engine_q,
true);
280 template <
class primitive_desc>
282 mkldnn_engine_t engine_q;
286 "could not get engine from primitive_desc");
309 std::shared_ptr<char> _handle;
312 typedef std::vector<std::remove_extent<mkldnn_dims_t>::type>
dims;
317 "invalid dimensions");
389 validate_dims(adims);
392 adims.size() == 0 ? nullptr : &adims[0],
394 "could not initialize a memory descriptor");
416 "could not initialize a memory primitive descriptor");
455 "could not create a memory primitive");
457 auto _malloc = [](
size_t size,
int alignment) {
460 ptr = _aligned_malloc(size, alignment);
461 int rc = ((ptr)? 0 : errno);
463 int rc = ::posix_memalign(&ptr, alignment, size);
465 return (rc == 0) ? (
char*)ptr :
nullptr;
467 auto _free = [](
char* p) {
469 _aligned_free((
void*)p);
474 _handle.reset(_malloc(adesc.
get_size(), 4096), _free);
475 set_data_handle(_handle.get());
482 "could not create a memory primitive");
484 set_data_handle(ahandle);
493 "could not get primitive descriptor from a memory primitive");
495 adesc.
reset(const_cast<mkldnn_primitive_desc_t>(cdesc),
true);
504 "could not get native handle");
510 "could not set native handle");
600 &result, input.
get(), output.
get()),
601 "could not create a reorder primitive descriptor");
614 aprimitive_desc.
get(), inputs, outputs),
615 "could not create a reorder primitive");
629 reorder_d.get(), inputs, outputs),
630 "could not create a reorder primitive");
642 &result, input.
get(), &dims[0], &offsets[0]),
643 "could not create a view primitive descriptor");
655 "could not clone a dst primitive descriptor");
667 view_pd.
get(), inputs,
nullptr),
668 "could not create a view primitive");
678 view_pd.get(), inputs,
nullptr),
679 "could not create a view primitive");
686 std::vector<const_mkldnn_primitive_desc_t>
cpp_to_c(
687 std::vector<memory::primitive_desc> inputs) {
688 std::vector<const_mkldnn_primitive_desc_t> c_api_inputs;
689 c_api_inputs.reserve(inputs.size());
691 std::transform(inputs.begin(), inputs.end(),
697 std::vector<memory::primitive_desc> inputs) {
700 auto c_api_inputs = cpp_to_c(inputs);
703 &result, &output.
data, (
int)c_api_inputs.size(),
704 concat_dimension, &c_api_inputs[0]),
705 "could not create a concat primitive descriptor");
710 std::vector<memory::primitive_desc> inputs) {
713 auto c_api_inputs = cpp_to_c(inputs);
716 &result,
nullptr, (
int)c_api_inputs.size(),
717 concat_dimension, &c_api_inputs[0]),
718 "could not create a concat primitive descriptor");
729 "could not clone a dst primitive descriptor");
738 std::vector<primitive::at> &inputs,
const memory &output) {
741 std::vector<mkldnn_primitive_at_t> p_inputs;
742 for (
size_t i = 0; i < inputs.size(); i++)
743 p_inputs.push_back(inputs[i].data);
747 concat_pd.
get(), &p_inputs[0], outputs),
748 "could not create a concat primitive");
755 std::vector<const_mkldnn_primitive_desc_t>
cpp_to_c(
756 std::vector<memory::primitive_desc> inputs) {
757 std::vector<const_mkldnn_primitive_desc_t> c_api_inputs;
758 c_api_inputs.reserve(inputs.size());
760 std::transform(inputs.begin(), inputs.end(),
766 std::vector<memory::primitive_desc> inputs) {
769 auto c_api_inputs = cpp_to_c(inputs);
772 &result, &output.
data, (
int)c_api_inputs.size(),
773 &scale[0], &c_api_inputs[0]),
774 "could not create a sum primitive descriptor");
779 std::vector<memory::primitive_desc> inputs) {
782 auto c_api_inputs = cpp_to_c(inputs);
785 &result,
nullptr, (
int)c_api_inputs.size(), &scale[0],
787 "could not create a sum primitive descriptor");
799 "could not clone a dst primitive descriptor");
808 std::vector<primitive::at> &inputs,
const memory &output) {
811 std::vector<mkldnn_primitive_at_t> p_inputs;
812 for (
size_t i = 0; i < inputs.size(); i++)
813 p_inputs.push_back(inputs[i].data);
817 sum_pd.
get(), &p_inputs[0], outputs),
818 "could not create a sum primitive");
822 #ifndef DOXYGEN_SHOULD_SKIP_THIS 829 using handle::handle;
840 mkldnn_stream_t astream;
843 "could not create a stream");
854 if (primitives.size() == 0)
return *
this;
855 std::vector<mkldnn_primitive_t> c_api_primitives;
856 c_api_primitives.reserve(primitives.size());
858 std::transform(primitives.begin(), primitives.end(),
864 c_api_primitives.size(), &c_api_primitives[0],
865 &c_api_error_primitive),
866 "could not submit primitives to a stream",
867 &c_api_error_primitive);
881 block, &c_api_error_primitive);
885 &c_api_error_primitive);
893 "could not rerun a stream", &c_api_error_primitive);
916 &dst_desc.
data, &strides[0], &padding_l[0], &padding_r[0],
918 "could not create a convolution forward descriptor");
933 &src_desc.
data, &weights_desc.
data,
nullptr,
934 &dst_desc.
data, &strides[0], &padding_l[0], &padding_r[0],
936 "could not create a convolution forward descriptor");
956 &dst_desc.
data, &strides[0], &dilates[0],
957 &padding_l[0], &padding_r[0],
959 "could not create a dilated convolution forward descriptor");
977 &src_desc.
data, &weights_desc.
data,
nullptr,
978 &dst_desc.
data, &strides[0], &dilates[0],
979 &padding_l[0], &padding_r[0],
981 "could not create a dilated convolution forward descriptor");
988 &result, &adesc.
data, aengine.
get(),
nullptr),
989 "could not create a convolution forward primitive descriptor");
1000 "could not clone a src primititve descriptor");
1012 "could not clone a weights primitive descriptor");
1024 "could not clone a bias primitive descriptor");
1036 "could not clone a dst primitive descriptor");
1052 aprimitive_desc.
get(), inputs, outputs),
1053 "could not create a convolution forward bias primitive");
1064 aprimitive_desc.
get(), inputs, outputs),
1065 "could not create a convolution forward primitive");
1086 &weights_desc.
data, &diff_dst_desc.
data,
1087 &strides[0], &padding_l[0], &padding_r[0],
1089 "could not create a convolution backward data descriptor");
1095 &hint_fwd_primitive_desc) {
1098 &result, &adesc.
data, aengine.
get(),
1099 hint_fwd_primitive_desc.
get()),
1100 "could not create a convolution backward data primitive descriptor");
1110 "could not clone a diff_src primititve descriptor");
1122 "could not clone a weights primitive descriptor");
1134 "could not clone a diff_dst primitive descriptor");
1144 const memory &diff_src) {
1149 aprimitive_desc.
get(), inputs, outputs),
1150 "could not create a convolution backward data primitive");
1172 &diff_weights_desc.
data, &diff_bias_desc.
data,
1173 &diff_dst_desc.
data,
1174 &strides[0], &padding_l[0], &padding_r[0],
1176 "could not create a convolution backward weights descriptor");
1191 &diff_weights_desc.
data,
nullptr, &diff_dst_desc.
data,
1192 &strides[0], &padding_l[0], &padding_r[0],
1194 "could not create a convolution backward weights descriptor");
1201 &hint_fwd_primitive_desc) {
1204 &result, &adesc.
data, aengine.
get(),
1205 hint_fwd_primitive_desc.
get()),
1206 "could not create a convolution backward weights primitive descriptor");
1216 "could not clone a src primititve descriptor");
1228 "could not clone a diff_weights primitive descriptor");
1240 "could not clone a diff_bias primitive descriptor");
1252 "could not clone a diff_dst primitive descriptor");
1268 aprimitive_desc.
get(), inputs, outputs),
1269 "could not create a convolution backward weights primitive");
1274 const memory &diff_weights) {
1279 aprimitive_desc.
get(), inputs, outputs),
1280 "could not create a convolution backward weights primitive");
1289 const double negative_slope)
1292 &conv_desc.
data, negative_slope),
1293 "could not create a convolution_relu_forward descriptor");
1301 &result, &adesc.
data, aengine.
get(),
nullptr),
1302 "could not create a convolution relu forward descriptor");
1317 aprimitive_desc.
get(), inputs, outputs),
1318 "could not create a convolution relu forward primitive");
1329 aprimitive_desc.
get(), inputs, outputs),
1330 "could not create a convolution relu forward primitive");
1339 int local_size,
double alpha,
double beta,
double k)
1343 &src_desc.
data, local_size, alpha, beta, k),
1344 "could not create a lrn forward descriptor");
1348 int local_size,
double alpha,
double beta)
1352 &src_desc.
data, local_size, alpha, beta,
double(1.0)),
1353 "could not create a lrn forward descriptor");
1361 &result, &adesc.
data, aengine.
get(),
nullptr),
1362 "could not create a lrn forward primitive descriptor");
1373 "could not clone a src primitive descriptor");
1385 "could not clone a workspace primitive descriptor");
1397 "could not clone a dst primitive descriptor");
1413 aprimitive_desc.
get(), inputs, outputs),
1414 "could not create a lrn forward primitive");
1424 aprimitive_desc.
get(), inputs, outputs),
1425 "could not create a lrn forward primitive");
1436 int local_size,
double alpha,
double beta,
double k)
1440 &data_desc.
data, local_size, alpha, beta, k),
1441 "could not create a lrn backward descriptor");
1446 int local_size,
double alpha,
double beta)
1450 &data_desc.
data, local_size, alpha, beta,
double(1.0)),
1451 "could not create a lrn backward descriptor");
1460 &result, &adesc.
data, aengine.
get(),
1461 hint_fwd_primitive_desc.
get()),
1462 "could not create a backward lrn primitive descriptor");
1473 "could not clone a diff_src primitive descriptor");
1485 "could not clone a workspace primitive descriptor");
1497 "could not clone a diff_dst primitive descriptor");
1513 aprimitive_desc.
get(), inputs, outputs),
1514 "could not create a lrn backward primitive");
1520 const memory &diff_src) {
1525 aprimitive_desc.
get(), inputs, outputs),
1526 "could not create a lrn backward primitive");
1550 &strides[0], &kernel[0],
1551 &padding_l[0], &padding_r[0],
1553 "could not init a forward pooling descriptor");
1561 &result, &adesc.
data, aengine.
get(),
nullptr),
1562 "could not create a forward pooling primitive descriptor");
1573 "could not clone a workspace primititve descriptor");
1585 "could not clone a dst primitive descriptor");
1599 aprimitive_desc.
get(), inputs, outputs),
1600 "could not create a pooling forward primitive");
1610 aprimitive_desc.
get(), inputs, outputs),
1611 "could not create a pooling forward primitive");
1633 &diff_src_desc.
data, &diff_dst_desc.
data,
1634 &strides[0], &kernel[0],
1635 &padding_l[0], &padding_r[0],
1637 "could not init a backward pooling descriptor");
1646 &result, &adesc.
data, aengine.
get(),
1647 hint_fwd_primitive_desc.
get()),
1648 "could not create a backward pooling primitive descriptor");
1659 "could not clone a diff src primitive descriptor");
1668 const memory &diff_src) {
1673 aprimitive_desc.
get(), inputs, outputs),
1674 "could not create a pooling backward primitive");
1684 aprimitive_desc.
get(), inputs, outputs),
1685 "could not create a pooling backward primitive");
1693 template <
typename T>
1695 const memory::desc &src_desc, T alpha = 0, T beta = 0) {
1699 static_cast<double>(alpha), static_cast<double>(beta)),
1700 "could not create a eltwise forward descriptor");
1704 template <
typename T>
1715 &result, &adesc.
data, aengine.
get(),
nullptr),
1716 "could not create a eltwise forward primitive descriptor");
1728 "could not clone a dst primitive descriptor");
1742 aprimitive_desc.
get(), inputs, outputs),
1743 "could not create a eltwise forward primitive");
1754 template <
typename T>
1756 const memory::desc &data_desc, T alpha = 0, T beta = 0) {
1759 &data_desc.
data, static_cast<double>(alpha),
1760 static_cast<double>(beta)),
1761 "could not create a eltwise backward descriptor");
1765 template <
typename T>
1777 &result, &adesc.
data, aengine.
get(),
1778 hint_fwd_primitive_desc.
get()),
1779 "could not create a eltwise backward primitive descriptor");
1790 "could not clone a diff src primitive descriptor");
1800 const memory &diff_src) {
1805 aprimitive_desc.
get(), inputs, outputs),
1806 "could not create a eltwise backward primitive");
1821 "could not create a softmax forward descriptor");
1829 &result, &adesc.
data, aengine.
get(),
nullptr),
1830 "could not create a softmax forward primitive descriptor");
1843 aprimitive_desc.
get(), inputs, outputs),
1844 "could not create a softmax forward primitive");
1852 template <
typename T>
1858 static_cast<double>(epsilon), flags),
1859 "could not create a batch normalization forward descriptor");
1867 &result, &adesc.
data, aengine.
get(),
nullptr),
1868 "could not create a batch normalization forward primitive descriptor");
1880 "could not clone a weights primitive descriptor");
1881 adesc.
reset(bndesc);
1891 "could not get a batch-normalization descriptor");
1900 "could not clone a mean primitive descriptor");
1901 aprimitive_desc.
reset(bndesc);
1902 return aprimitive_desc;
1911 "could not get a batch-normalization descriptor");
1920 "could not clone a variance primitive descriptor");
1921 aprimitive_desc.
reset(bndesc);
1922 return aprimitive_desc;
1933 "could not clone a dst primitive descriptor");
1950 aprimitive_desc.
get(), inputs, outputs),
1951 "could not create a batch normalization forward primitive");
1963 aprimitive_desc.
get(), inputs, outputs),
1964 "could not create a batch normalization forward primitive");
1974 mean.
get(), variance.
get() };
1976 aprimitive_desc.
get(), inputs, outputs),
1977 "could not create a batch normalization forward primitive");
1983 const memory &variance) {
1987 mean.
get(), variance.
get() };
1989 aprimitive_desc.
get(), inputs, outputs),
1990 "could not create a batch normalization forward primitive");
2001 aprimitive_desc.
get(), inputs, outputs),
2002 "could not create a batch normalization forward primitive");
2012 aprimitive_desc.
get(), inputs, outputs),
2013 "could not create a batch normalization forward primitive");
2021 template <
typename T>
2023 const memory::desc &data_desc, T epsilon,
unsigned flags) {
2027 &diff_data_desc.
data, &data_desc.
data,
2028 static_cast<double>(epsilon), flags),
2029 "could not create a batch normalization backward descriptor");
2036 &hint_fwd_primitive_desc) {
2039 &result, &adesc.
data, aengine.
get(),
2040 hint_fwd_primitive_desc.
get()),
2041 "could not create a batch normalization backward primitive descriptor");
2053 "could not clone a weights primitive descriptor");
2054 adesc.
reset(bndesc);
2066 "could not clone a diff_weights primitive descriptor");
2067 adesc.
reset(bndesc);
2079 "could not clone a mean primitive descriptor");
2080 adesc.
reset(bndesc);
2092 "could not clone a variance primitive descriptor");
2093 adesc.
reset(bndesc);
2105 "could not clone a dst primitive descriptor");
2118 const memory &diff_weights) {
2123 diff_weights.
get() };
2125 aprimitive_desc.
get(), inputs, outputs),
2126 "could not create a batch normalization backward primitive");
2140 aprimitive_desc.
get(), inputs, outputs),
2141 "could not create a batch normalization backward primitive");
2149 const memory &diff_src) {
2155 aprimitive_desc.
get(), inputs, outputs),
2156 "could not create a batch normalization backward primitive");
2172 "could not create a inner product forward descriptor");
2181 &weights_desc.
data,
nullptr, &dst_desc.
data),
2182 "could not create a inner product forward descriptor");
2190 &result, &adesc.
data, aengine.
get(),
nullptr),
2191 "could not create a inner product forward primitive descriptor");
2202 "could not clone a src primititve descriptor");
2214 "could not clone a weights primitive descriptor");
2226 "could not clone a bias primitive descriptor");
2238 "could not clone a dst primitive descriptor");
2254 aprimitive_desc.
get(), inputs, outputs),
2255 "could not create a inner product forward primitive");
2266 aprimitive_desc.
get(), inputs, outputs),
2267 "could not create a inner product forward primitive");
2280 &diff_src_desc.
data, &weights_desc.
data,
2281 &diff_dst_desc.
data),
2282 "could not create a inner product backward data descriptor");
2289 &hint_fwd_primitive_desc) {
2292 &adesc.
data, aengine.
get(), hint_fwd_primitive_desc.
get()),
2293 "could not create a inner product backward data primitive descriptor");
2304 "could not clone a diff dst primititve descriptor");
2316 "could not clone a weights primitive descriptor");
2328 "could not clone a diff src primitive descriptor");
2338 const memory &diff_src) {
2343 aprimitive_desc.
get(), inputs, outputs),
2344 "could not create a inner product backward data primitive");
2358 &data, &src_desc.
data, &diff_weights_desc.
data,
2359 &diff_bias_desc.
data, &diff_dst_desc.
data),
2360 "could not create a inner product backward weights descriptor");
2367 &data, &src_desc.
data, &diff_weights_desc.
data,
2368 nullptr, &diff_dst_desc.
data),
2369 "could not create a inner product backward weights descriptor");
2376 &hint_fwd_primitive_desc) {
2379 &adesc.
data, aengine.
get(), hint_fwd_primitive_desc.
get()),
2380 "could not create a inner product backward weights primitive descriptor");
2391 "could not clone a diff dst primititve descriptor");
2403 "could not clone a diff weights primitive descriptor");
2415 "could not clone a diff bias primitive descriptor");
2427 "could not clone a src primitive descriptor");
2437 const memory &diff_weights) {
2442 aprimitive_desc.
get(), inputs, outputs),
2443 "could not create a inner product backward weights primitive");
2453 { diff_weights.
get(), diff_bias.
get()};
2455 aprimitive_desc.
get(), inputs, outputs),
2456 "could not create a inner product backward weights primitive");
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:1005
Definition: mkldnn.hpp:1772
LRN within a single channel.
Definition: mkldnn_types.h:318
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1298
A descriptor of a Local Response Normalization (LRN) operation.
Definition: mkldnn_types.h:551
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1029
Definition: mkldnn.hpp:1286
mkldnn_inner_product_desc_t data
Definition: mkldnn.hpp:2274
Definition: mkldnn.hpp:216
mkldnn_status_t MKLDNN_API mkldnn_convolution_backward_weights_desc_init(mkldnn_convolution_desc_t *conv_desc, mkldnn_alg_kind_t alg_kind, const mkldnn_memory_desc_t *src_desc, const mkldnn_memory_desc_t *diff_weights_desc, const mkldnn_memory_desc_t *diff_bias_desc, const mkldnn_memory_desc_t *diff_dst_desc, const mkldnn_dims_t strides, const mkldnn_dims_t padding_l, const mkldnn_dims_t padding_r, mkldnn_padding_kind_t padding_kind)
Initializes a convolution descriptor conv_desc for backward propagation with respect to weights using...
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:1872
4D weights tensor in the format (output channels, width, height, input channels) with output channels...
Definition: mkldnn_types.h:173
number of outputs expected
Definition: mkldnn_types.h:764
mkldnn_status_t MKLDNN_API mkldnn_stream_destroy(mkldnn_stream_t stream)
Destroys an execution stream.
T get() const
Returns the value of the underlying C handle.
Definition: mkldnn.hpp:85
Definition: mkldnn.hpp:1616
desc(algorithm aalgorithm, const memory::desc &diff_src_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &kernel, const memory::dims &padding_l, const memory::dims &padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:1619
mkldnn_status_t
Status values returned by Intel(R) MKL-DNN functions.
Definition: mkldnn_types.h:39
concat(const primitive_desc &concat_pd, std::vector< primitive::at > &inputs, const memory &output)
Definition: mkldnn.hpp:737
Definition: mkldnn.hpp:1557
A descriptor of a convolution operation.
Definition: mkldnn_types.h:428
Definition: mkldnn.hpp:1532
engine(kind akind, size_t index)
Constructs an engine.
Definition: mkldnn.hpp:259
Definition: mkldnn.hpp:578
Definition: mkldnn.hpp:573
The operation failed and should be retried.
Definition: mkldnn_types.h:45
mkldnn_status_t MKLDNN_API mkldnn_memory_primitive_desc_create(mkldnn_primitive_desc_t *memory_primitive_desc, const mkldnn_memory_desc_t *memory_desc, mkldnn_engine_t engine)
Creates a memory_primitive_desc memory primitive descriptor using memory_desc and engine...
Definition: mkldnn.hpp:215
mkldnn_status_t MKLDNN_API mkldnn_convolution_relu_desc_init(mkldnn_convolution_relu_desc_t *conv_relu_desc, const mkldnn_convolution_desc_t *conv_desc, double negative_slope)
Initializes a merged convolution-relu descriptor conv_relu_desc for forward propagation (supported in...
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_destroy(mkldnn_primitive_desc_t primitive_desc)
Deletes a primitive_desc.
handle & operator=(const handle &other)
Definition: mkldnn.hpp:72
mkldnn_status_t MKLDNN_API mkldnn_concat_primitive_desc_create(mkldnn_primitive_desc_t *concat_primitive_desc, const mkldnn_memory_desc_t *output_desc, int n, int concat_dimension, const_mkldnn_primitive_desc_t *input_pds)
Creates out-of-place concat_primitive_desc for concatenation of n inputs by concat_dimension with res...
Definition: mkldnn.hpp:585
kind
Definition: mkldnn.hpp:831
4D data tensor in the chwn format typically used in Neon.
Definition: mkldnn_types.h:118
MKLDNN_DEPRECATED desc(const memory::desc &diff_data_desc, const memory::desc &data_desc, T negative_slope)
Definition: mkldnn.hpp:1767
The operation failed because of incorrect function arguments.
Definition: mkldnn_types.h:47
bool operator!=(const handle &other) const
Definition: mkldnn.hpp:88
Forward data propagation (alias for mkldnn_forward_inference)
Definition: mkldnn_types.h:246
Definition: mkldnn.hpp:1335
desc(dims adims, data_type adata_type, format aformat)
Constructs a memory descriptor.
Definition: mkldnn.hpp:387
desc(prop_kind aprop_kind, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc)
Definition: mkldnn.hpp:2164
Definition: mkldnn.hpp:200
Definition: mkldnn.hpp:2186
Backward data propagation.
Definition: mkldnn_types.h:252
Definition: mkldnn.hpp:220
handle(const handle &other)
Definition: mkldnn.hpp:71
mkldnn_status_t MKLDNN_API mkldnn_memory_desc_init(mkldnn_memory_desc_t *memory_desc, int ndims, const mkldnn_dims_t dims, mkldnn_data_type_t data_type, mkldnn_memory_format_t format)
Initializes a memory_desc memory descriptor using ndims, dims, data_type, and data format...
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:722
eltwise_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:1736
Undefined memory format, used for empty memory descriptors.
Definition: mkldnn_types.h:101
Definition: mkldnn.hpp:208
primitive_desc(const desc &adesc, const engine &aengine, const pooling_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:1642
#define TENSOR_MAX_DIMS
Maximum number of dimensions a tensor can have.
Definition: mkldnn_types.h:368
algorithm
Definition: mkldnn.hpp:570
4D weights tensor in the format (input channels, output channels, width, height). ...
Definition: mkldnn_types.h:131
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:1783
A descriptor of a Softmax operation.
Definition: mkldnn_types.h:503
Definition: mkldnn.hpp:558
mkldnn_batch_normalization_desc_t data
Definition: mkldnn.hpp:2020
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_clone(mkldnn_primitive_desc_t *primitive_desc, const_mkldnn_primitive_desc_t existing_primitive_desc)
Makes a copy of a primitive_desc.
Definition: mkldnn.hpp:581
4D data tensor in the nchw format with channels data laid out in memory in 8-element blocks...
Definition: mkldnn_types.h:121
mkldnn_status_t MKLDNN_API mkldnn_memory_get_data_handle(const_mkldnn_primitive_t memory, void **handle)
For a memory primitive, returns the data handle.
engine get_engine()
Definition: mkldnn.hpp:804
mkldnn_status_t MKLDNN_API mkldnn_convolution_backward_data_desc_init(mkldnn_convolution_desc_t *conv_desc, mkldnn_alg_kind_t alg_kind, const mkldnn_memory_desc_t *diff_src_desc, const mkldnn_memory_desc_t *weights_desc, const mkldnn_memory_desc_t *diff_dst_desc, const mkldnn_dims_t strides, const mkldnn_dims_t padding_l, const mkldnn_dims_t padding_r, mkldnn_padding_kind_t padding_kind)
Initializes a convolution descriptor conv_desc for backward propagation with respect to data using al...
A descriptor of an inner product operation.
Definition: mkldnn_types.h:609
desc(const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_desc)
Definition: mkldnn.hpp:2352
An opaque structure to describe a primitive descriptor .
batch normalization descriptor
Definition: mkldnn_types.h:782
mkldnn_status_t status
Definition: mkldnn.hpp:128
batch_normalization_backward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &mean, const primitive::at &variance, const primitive::at &diff_dst, const primitive::at &weights, const memory &diff_src, const memory &diff_weights)
Definition: mkldnn.hpp:2114
static size_t get_count(kind akind)
Returns the number of engines of a certain kind.
Definition: mkldnn.hpp:249
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc, const memory::dims strides, const memory::dims dilates, const memory::dims padding_l, const memory::dims padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:938
padding_kind
Definition: mkldnn.hpp:549
mkldnn_status_t MKLDNN_API mkldnn_memory_set_data_handle(mkldnn_primitive_t memory, void *handle)
For a memory primitive, sets the data handle.
static void wrap_c_api(mkldnn_status_t status, std::string message, mkldnn_primitive_t *error_primitive=0)
A convenience function for wrapping calls to the C API. Checks the return status and throws an error ...
Definition: mkldnn.hpp:154
4D data tensor in the nchw format with channels data laid out in memory in 16-element blocks...
Definition: mkldnn_types.h:124
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:2321
An execution engine.
Definition: mkldnn.hpp:233
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1390
Definition: mkldnn.hpp:579
engine get_engine()
Definition: mkldnn.hpp:1834
view(const primitive_desc &view_pd, primitive::at input)
Definition: mkldnn.hpp:663
primitive_desc(const memory::desc &output, int concat_dimension, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:696
engine(const handle< mkldnn_primitive_desc_t > &pd)
Definition: mkldnn.hpp:271
convolution-relu descriptor
Definition: mkldnn_types.h:784
engine get_engine()
Definition: mkldnn.hpp:1257
batch_normalization_flag
Definition: mkldnn.hpp:584
mkldnn_status_t MKLDNN_API mkldnn_lrn_backward_desc_init(mkldnn_lrn_desc_t *lrn_desc, mkldnn_alg_kind_t alg_kind, const mkldnn_memory_desc_t *diff_data_desc, const mkldnn_memory_desc_t *data_desc, int local_size, double alpha, double beta, double k)
Initializes an lrn_desc for backward propagation using alg_kind, memory descriptors data_desc...
mkldnn_convolution_desc_t data
Definition: mkldnn.hpp:1157
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:791
Definition: mkldnn.hpp:574
Definition: mkldnn_types.h:314
Definition: mkldnn.hpp:1750
mkldnn_primitive_at_t MKLDNN_API mkldnn_primitive_at(const_mkldnn_primitive_t primitive, size_t output_index)
Creates an mkldnn_primitive_at_t structure from a primitive and output_index.
batch_normalization_backward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &mean, const primitive::at &variance, const primitive::at &diff_dst, const primitive::at &weights, const memory &diff_src)
Definition: mkldnn.hpp:2131
engine get_engine()
Definition: mkldnn.hpp:2110
void reset(T t, bool weak=false)
Resets the value of a C handle.
Definition: mkldnn.hpp:79
Definition: mkldnn.hpp:1825
32-bit signed integer.
Definition: mkldnn_types.h:68
Max pooling.
Definition: mkldnn_types.h:309
batch_normalization_backward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &mean, const primitive::at &variance, const primitive::at &diff_dst, const memory &diff_src)
Definition: mkldnn.hpp:2146
mkldnn_status_t MKLDNN_API mkldnn_softmax_forward_desc_init(mkldnn_softmax_desc_t *softmax_desc, mkldnn_prop_kind_t prop_kind, const mkldnn_memory_desc_t *data_desc, int softmax_axis)
Initializes a softmax_desc for forward propagation using prop_kind (possible value are mkldnn_forward...
Definition: mkldnn.hpp:580
execution engine
Definition: mkldnn_types.h:760
Definition: mkldnn.hpp:636
Definition: mkldnn.hpp:576
mkldnn_status_t MKLDNN_API mkldnn_pooling_backward_desc_init(mkldnn_pooling_desc_t *pool_desc, mkldnn_alg_kind_t alg_kind, const mkldnn_memory_desc_t *diff_src_desc, const mkldnn_memory_desc_t *diff_dst_desc, const mkldnn_dims_t strides, const mkldnn_dims_t kernel, const mkldnn_dims_t padding_l, const mkldnn_dims_t padding_r, mkldnn_padding_kind_t padding_kind)
Initializes a pooling descriptor pool_desc for backward propagation using alg_kind, memory descriptors, and pooling parameters in spatial domain: strides, kernel sizes, padding_l, padding_r, and padding_kind.
Definition: mkldnn.hpp:1531
4D weights tensor in the oihw format with input channels data laid out in memory in 16-element blocks...
Definition: mkldnn_types.h:151
Definition: mkldnn.hpp:2033
engine get_engine()
Definition: mkldnn.hpp:441
A descriptor of a convolution followed by relu operation.
Definition: mkldnn_types.h:638
mkldnn_status_t MKLDNN_API mkldnn_stream_submit(mkldnn_stream_t stream, size_t n, mkldnn_primitive_t primitives[], mkldnn_primitive_t *error_primitive)
Submits primitives to an execution stream.
input memory primitive desc
Definition: mkldnn_types.h:788
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1578
5D weights tensor in the oihw format with extra outer dimension for groups.
Definition: mkldnn_types.h:179
memory::primitive_desc diff_weights_primitive_desc() const
Definition: mkldnn.hpp:2396
mkldnn_status_t MKLDNN_API mkldnn_batch_normalization_backward_desc_init(mkldnn_batch_normalization_desc_t *bnrm_desc, mkldnn_prop_kind_t prop_kind, const mkldnn_memory_desc_t *diff_data_desc, const mkldnn_memory_desc_t *data_desc, double epsilon, unsigned flags)
Initializes a batch normalization descriptor bnrm_desc for backward propagation with respect to data ...
static engine query(const primitive_desc &pd)
Definition: mkldnn.hpp:281
A descriptor of a element-wise operation.
Definition: mkldnn_types.h:470
softmax_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:1837
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1358
Definition: mkldnn.hpp:2286
primitive error_primitive
Definition: mkldnn.hpp:130
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:2045
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:2297
destination grad.
Definition: mkldnn_types.h:795
Definition: mkldnn.hpp:1751
mkldnn_status_t MKLDNN_API mkldnn_stream_wait(mkldnn_stream_t stream, int block, mkldnn_primitive_t *error_primitive)
Waits for all primitives in the execution stream to finish.
desc(prop_kind aprop_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, T epsilon, unsigned flags)
Definition: mkldnn.hpp:2022
primitive_desc(int concat_dimension, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:709
mkldnn_pooling_desc_t data
Definition: mkldnn.hpp:1533
Definition: mkldnn.hpp:684
eltwise descriptor
Definition: mkldnn_types.h:777
const_mkldnn_primitive_desc_t get_primitive_desc() const
Returns the descriptor of the underlying C API primitive.
Definition: mkldnn.hpp:176
size_t MKLDNN_API mkldnn_engine_get_count(mkldnn_engine_kind_t kind)
Returns the number of engines of a particular kind.
memory::primitive_desc diff_weights_primitive_desc() const
Definition: mkldnn.hpp:2058
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 1...
Definition: mkldnn_types.h:157
memory::primitive_desc variance_primitive_desc() const
Definition: mkldnn.hpp:1905
inner_product_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at weights, const memory &dst)
Definition: mkldnn.hpp:2259
Definition: mkldnn.hpp:1092
engine get_engine()
Definition: mkldnn.hpp:2432
convolution_relu_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const memory &dst)
Definition: mkldnn.hpp:1322
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1558
static mkldnn_memory_format_t convert_to_c(format aformat)
Definition: mkldnn.hpp:517
Definition: mkldnn.hpp:2273
Definition: mkldnn.hpp:898
Backward weights propagation.
Definition: mkldnn_types.h:254
Definition: mkldnn.hpp:218
32-bit/single-precision floating point.
Definition: mkldnn_types.h:66
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:1490
2D weights tensor in the format (input channels, output channels).
Definition: mkldnn_types.h:126
Omit statistics.
Definition: mkldnn_types.h:357
Memory descriptor.
Definition: mkldnn_types.h:404
Definition: mkldnn.hpp:199
Definition: mkldnn.hpp:2162
mkldnn_status_t MKLDNN_API mkldnn_inner_product_backward_data_desc_init(mkldnn_inner_product_desc_t *ip_desc, const mkldnn_memory_desc_t *diff_src_desc, const mkldnn_memory_desc_t *weights_desc, const mkldnn_memory_desc_t *diff_dst_desc)
Initializes an inner product descriptor ip_desc for backward propagation with respect to data using m...
Base class for all computational primitives.
Definition: mkldnn.hpp:96
mkldnn_lrn_desc_t data
Definition: mkldnn.hpp:1432
engine get_engine()
Definition: mkldnn.hpp:605
static void validate_dims(std::vector< T > v)
Definition: mkldnn.hpp:314
Definition: mkldnn.hpp:2161
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:2207
pooling descriptor
Definition: mkldnn_types.h:780
Definition: mkldnn.hpp:1617
primitive_desc(const memory::desc &output, std::vector< double > scale, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:765
const mkldnn_memory_desc_t MKLDNN_API * mkldnn_primitive_desc_query_memory_d(const_mkldnn_primitive_desc_t primitive_desc)
Queries primitive descriptor for memory descriptor.
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:1366
desc(algorithm aalgorithm, const memory::desc &data_desc, const memory::desc &diff_data_desc, int local_size, double alpha, double beta)
Definition: mkldnn.hpp:1443
MKLDNN_DEPRECATED desc(prop_kind aprop_kind, const memory::desc &src_desc, T negative_slope)
Definition: mkldnn.hpp:1706
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc, const memory::dims strides, const memory::dims padding_l, const memory::dims padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:901
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:2420
std::vector< std::remove_extent< mkldnn_dims_t >::type > dims
Definition: mkldnn.hpp:312
desc(algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_desc, const memory::dims strides, const memory::dims padding_l, const memory::dims padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:1158
4D weights tensor in the format (output channels, input channels, height, width) with output channels...
Definition: mkldnn_types.h:165
The operation was successful.
Definition: mkldnn_types.h:41
mkldnn_status_t MKLDNN_API mkldnn_engine_create(mkldnn_engine_t *engine, mkldnn_engine_kind_t kind, size_t index)
Creates an engine of particular kind and index.
5D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:183
5D weights tensor in the oihw format with output channels data laid out in memory in 16-element block...
Definition: mkldnn_types.h:191
stream(kind akind)
Constructs a stream.
Definition: mkldnn.hpp:839
Backward propagation (with respect to all parameters.
Definition: mkldnn_types.h:250
softmax descriptor
Definition: mkldnn_types.h:779
query
Definition: mkldnn.hpp:193
engine get_engine()
Definition: mkldnn.hpp:1041
Use global statistics.
Definition: mkldnn_types.h:335
Definition: mkldnn.hpp:31
4D weights tensor in the format (output channels, width, height, input channels) with output channels...
Definition: mkldnn_types.h:169
no query
Definition: mkldnn_types.h:758
Definition: mkldnn.hpp:2350
lrn_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:1418
5D weights tensor in the blocked version of goihw format with output channels data laid out in memory...
Definition: mkldnn_types.h:212
mkldnn_status_t MKLDNN_API mkldnn_convolution_forward_desc_init(mkldnn_convolution_desc_t *conv_desc, mkldnn_prop_kind_t prop_kind, mkldnn_alg_kind_t alg_kind, const mkldnn_memory_desc_t *src_desc, const mkldnn_memory_desc_t *weights_desc, const mkldnn_memory_desc_t *bias_desc, const mkldnn_memory_desc_t *dst_desc, const mkldnn_dims_t strides, const mkldnn_dims_t padding_l, const mkldnn_dims_t padding_r, mkldnn_padding_kind_t padding_kind)
Initializes a convolution descriptor conv_desc for forward propagation using prop_kind (possible valu...
mkldnn_status_t MKLDNN_API mkldnn_view_primitive_desc_create(mkldnn_primitive_desc_t *view_primitive_desc, const_mkldnn_primitive_desc_t memory_primitive_desc, const mkldnn_dims_t dims, const mkldnn_dims_t offsets)
Creates a view_primitive_desc for a given memory_primitive_desc, with dims sizes and offset offsets...
8-bit unsigned integer.
Definition: mkldnn_types.h:74
size_t get_size() const
Returns the number of data elements in the memory described.
Definition: mkldnn.hpp:429
memory::primitive_desc diff_bias_primitive_desc() const
Definition: mkldnn.hpp:2408
Average pooling include padding.
Definition: mkldnn_types.h:311
Unspecified format.
Definition: mkldnn_types.h:104
Definition: mkldnn.hpp:1357
destination memory primitive desc
Definition: mkldnn_types.h:794
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:1245
engine get_engine()
Definition: mkldnn.hpp:1664
convolution_backward_weights(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &diff_dst, const memory &diff_weights)
Definition: mkldnn.hpp:1272
convolution_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const memory &dst)
Definition: mkldnn.hpp:1057
Local response normalization (LRN) across multiple channels.
Definition: mkldnn_types.h:316
4D weights tensor in the oihw format with input channels data laid out in memory in 16-element blocks...
Definition: mkldnn_types.h:224
Eager stream.
Definition: mkldnn_types.h:809
engine get_engine()
Definition: mkldnn.hpp:1938
implementation name
Definition: mkldnn_types.h:771
Definition: mkldnn.hpp:899
convolution_backward_weights(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &diff_dst, const memory &diff_weights, const memory &diff_bias)
Definition: mkldnn.hpp:1260
engine get_engine()
Definition: mkldnn.hpp:1502
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1925
memory(const primitive_desc &adesc, void *ahandle)
Definition: mkldnn.hpp:478
Definition: mkldnn.hpp:213
Eltwise: parametric exponential linear unit (elu)
Definition: mkldnn_types.h:307
memory::primitive_desc diff_weights_primitive_desc() const
Definition: mkldnn.hpp:1221
Definition: mkldnn.hpp:1431
Definition: mkldnn.hpp:2272
Intel(R) MKL-DNN exception class.
Definition: mkldnn.hpp:127
bool operator==(mkldnn_data_type_t a, memory::data_type b)
Definition: mkldnn.hpp:523
Eltwise: ReLU.
Definition: mkldnn_types.h:303
memory::primitive_desc variance_primitive_desc() const
Definition: mkldnn.hpp:2084
Definition: mkldnn.hpp:1813
1D data tensor.
Definition: mkldnn_types.h:110
Definition: mkldnn.hpp:202
Definition: mkldnn.hpp:222
std::vector< const_mkldnn_primitive_desc_t > cpp_to_c(std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:686
mkldnn_convolution_desc_t data
Definition: mkldnn.hpp:1072
4D weights tensor in the format (input channels, height, width, output channels). ...
Definition: mkldnn_types.h:134
mkldnn_memory_format_t
Memory format specification.
Definition: mkldnn_types.h:99
Definition: mkldnn.hpp:635
batch_normalization_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:2006
primitive_desc(const desc &adesc, const engine &aengine, const eltwise_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:1773
engine get_engine()
Definition: mkldnn.hpp:1306
engine get_engine()
Definition: mkldnn.hpp:2333
Definition: mkldnn.hpp:753
Definition: mkldnn.hpp:223
kind
Kinds of engines.
Definition: mkldnn.hpp:238
sum(const primitive_desc &sum_pd, std::vector< primitive::at > &inputs, const memory &output)
Definition: mkldnn.hpp:807
pooling_backward(const primitive_desc &aprimitive_desc, const primitive::at &diff_dst, const memory &diff_src)
Definition: mkldnn.hpp:1667
int MKLDNN_API mkldnn_memory_primitive_desc_equal(const_mkldnn_primitive_desc_t lhs, const_mkldnn_primitive_desc_t rhs)
Compares two descriptors of memory primitives.
bool operator==(const T other) const
Definition: mkldnn.hpp:68
stream & rerun()
Definition: mkldnn.hpp:889
Definition: mkldnn.hpp:209
4D data tensor in the nhwc format typically used in TensorFlow.
Definition: mkldnn_types.h:116
static mkldnn_stream_kind_t convert_to_c(kind akind)
Definition: mkldnn.hpp:835
desc(const convolution_forward::desc conv_desc, const double negative_slope)
Definition: mkldnn.hpp:1288
static mkldnn_data_type_t convert_to_c(data_type adata_type)
Definition: mkldnn.hpp:514
Backward bias propagation.
Definition: mkldnn_types.h:256
Definition: mkldnn.hpp:594
5D weights tensor in the goihw format with both input and output channels data laid out in memory in ...
Definition: mkldnn_types.h:218
Use scale and shift parameters.
Definition: mkldnn_types.h:348
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:647
Definition: mkldnn.hpp:197
engine get_engine()
Definition: mkldnn.hpp:1733
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_query(const_mkldnn_primitive_desc_t primitive_desc, mkldnn_query_t what, int index, void *result)
Queries primitive descriptor.
Definition: mkldnn.hpp:577
4D weights tensor in the oihw format with input channels data laid out in memory in 8-element blocks...
Definition: mkldnn_types.h:221
5D weights tensor in the oihw format with input channels data laid out in memory in 16-element blocks...
Definition: mkldnn_types.h:195
mkldnn_primitive_at_t data
The underlying C API structure.
Definition: mkldnn.hpp:105
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1826
Definition: mkldnn.hpp:1334
Definition: mkldnn.hpp:685
mkldnn_convolution_desc_t data
Definition: mkldnn.hpp:900
batch_normalization_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const memory &dst, const memory &mean, const memory &variance)
Definition: mkldnn.hpp:1968
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:1378
primitive_desc(const desc &adesc, const engine &aengine, const batch_normalization_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:2034
Definition: mkldnn.hpp:1455
Definition: mkldnn.hpp:1155
mkldnn_status_t MKLDNN_API mkldnn_primitive_get_output(const_mkldnn_primitive_t primitive, size_t index, const_mkldnn_primitive_t *output)
For a primitive, returns output at the index position.
Definition: mkldnn.hpp:219
Definition: mkldnn.hpp:207
Definition: mkldnn.hpp:563
mkldnn_prop_kind_t
Kinds of propagation.
Definition: mkldnn_types.h:234
A wrapper structure to specify a particular output of a primitive.
Definition: mkldnn.hpp:103
CPU engine.
Definition: mkldnn_types.h:659
mkldnn_stream_kind_t
Kinds of streams.
Definition: mkldnn_types.h:805
desc(algorithm aalgorithm, const memory::desc &data_desc, const memory::desc &diff_data_desc, int local_size, double alpha, double beta, double k)
Definition: mkldnn.hpp:1433
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:1652
4D weights tensor in the format (height, width, input channels, output channels). ...
Definition: mkldnn_types.h:137
A wrapper structure to specify a particular output of a primitive.
Definition: mkldnn_types.h:719
Winograd convolution.
Definition: mkldnn_types.h:301
view(memory input, memory::dims dims, memory::dims offsets)
Definition: mkldnn.hpp:672
mkldnn_status_t MKLDNN_API mkldnn_lrn_forward_desc_init(mkldnn_lrn_desc_t *lrn_desc, mkldnn_prop_kind_t prop_kind, mkldnn_alg_kind_t alg_kind, const mkldnn_memory_desc_t *data_desc, int local_size, double alpha, double beta, double k)
Initializes an lrn_desc for forward propagation using prop_kind (possible values are mkldnn_forward_t...
bool wait(bool block=true)
Waits for all computations submitted to the stream to complete.
Definition: mkldnn.hpp:878
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &dst_desc, const memory::dims strides, const memory::dims kernel, const memory::dims padding_l, const memory::dims padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:1534
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:1103
inner_product_backward_weights(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at diff_dst, const memory &diff_weights, const memory &diff_bias)
Definition: mkldnn.hpp:2447
Definition: mkldnn.hpp:2018
Direct convolution.
Definition: mkldnn_types.h:299
inner_product_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at weights, const primitive::at &bias, const memory &dst)
Definition: mkldnn.hpp:2246
source gradient memory primitive desc
Definition: mkldnn_types.h:791
convolution_backward_data(const primitive_desc &aprimitive_desc, const primitive::at &diff_dst, const primitive::at &weights, const memory &diff_src)
Definition: mkldnn.hpp:1142
Definition: mkldnn.hpp:1071
primitive_desc(const desc &adesc, const engine &aengine)
Constructs a memory primitive descriptor.
Definition: mkldnn.hpp:411
engine(const mkldnn_engine_t &aengine)
Definition: mkldnn.hpp:268
mkldnn_status_t MKLDNN_API mkldnn_pooling_forward_desc_init(mkldnn_pooling_desc_t *pool_desc, mkldnn_prop_kind_t prop_kind, mkldnn_alg_kind_t alg_kind, const mkldnn_memory_desc_t *src_desc, const mkldnn_memory_desc_t *dst_desc, const mkldnn_dims_t strides, const mkldnn_dims_t kernel, const mkldnn_dims_t padding_l, const mkldnn_dims_t padding_r, mkldnn_padding_kind_t padding_kind)
Initializes a pooling descriptor pool_desc for forward propagation using prop_kind (possible values a...
runtime estimation (seconds)
Definition: mkldnn_types.h:766
5D weights tensor in the blocked version of goihw format with output channels data laid out in memory...
Definition: mkldnn_types.h:215
Definition: mkldnn.hpp:1198
primitive_desc get_primitive_desc() const
Returns the descriptor of the memory primitive.
Definition: mkldnn.hpp:488
mkldnn_status_t MKLDNN_API mkldnn_stream_create(mkldnn_stream_t *stream, mkldnn_stream_kind_t stream_kind)
Creates an execution stream of stream_kind.
eltwise_forward relu_forward
Definition: mkldnn.hpp:1748
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 8...
Definition: mkldnn_types.h:140
Definition: mkldnn.hpp:587
void * get_data_handle() const
Returns a handle of the data contained in the memory primitive. On the CPU engine, this is a pointer to the allocated memory.
Definition: mkldnn.hpp:501
mkldnn_inner_product_desc_t data
Definition: mkldnn.hpp:2163
Undefined data type, used for empty memory descriptors.
Definition: mkldnn_types.h:64
engine get_engine()
Definition: mkldnn.hpp:734
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:1209
16-bit signed integer.
Definition: mkldnn_types.h:70
Definition: mkldnn.hpp:1691
batch_normalization_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const memory &dst)
Definition: mkldnn.hpp:1994
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:2384
mkldnn_status_t MKLDNN_API mkldnn_primitive_get_primitive_desc(const_mkldnn_primitive_t primitive, const_mkldnn_primitive_desc_t *primitive_desc)
Retrieves a reference to the primitive_desc descriptor of given primitive.
Definition: mkldnn.hpp:2373
engine get_engine()
Definition: mkldnn.hpp:2243
mkldnn_memory_desc_t data
The underlying C API data structure.
Definition: mkldnn.hpp:380
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:993
eltwise_backward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &diff_dst, const memory &diff_src)
Definition: mkldnn.hpp:1798
Definition: mkldnn.hpp:562
pooling_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:1593
mkldnn_query_t
Primitive descriptor query specification.
Definition: mkldnn_types.h:757
A descriptor of a Batch Normalization operation.
Definition: mkldnn_types.h:578
convolution_relu_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const primitive::at &bias, const memory &dst)
Definition: mkldnn.hpp:1309
mkldnn_lrn_desc_t data
Definition: mkldnn.hpp:1336
Definition: mkldnn.hpp:550
mkldnn_status_t MKLDNN_API mkldnn_eltwise_forward_desc_init(mkldnn_eltwise_desc_t *eltwise_desc, mkldnn_prop_kind_t prop_kind, mkldnn_alg_kind_t alg_kind, const mkldnn_memory_desc_t *data_desc, double alpha, double beta)
Initializes a eltwise_desc for forward propagation using prop_kind (possible values are mkldnn_forwar...
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_create(mkldnn_primitive_desc_t *primitive_desc, const_mkldnn_op_desc_t op_desc, mkldnn_engine_t engine, const_mkldnn_primitive_desc_t hint_forward_primitive_desc)
Creates a primitive_desc using op_desc, engine, and optionally a hint primitive descriptor from forwa...
5D weights tensor in the blocked version of goihw format with output channels data laid out in memory...
Definition: mkldnn_types.h:206
unsigned flags
Definition: mkldnn_types.h:605
Definition: mkldnn.hpp:203
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc, const memory::dims strides, const memory::dims dilates, const memory::dims padding_l, const memory::dims padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:961
batch_normalization_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &mean, const primitive::at &variance, const memory &dst)
Definition: mkldnn.hpp:1955
desc(prop_kind aprop_kind, const memory::desc &src_desc, T epsilon, unsigned flags)
Definition: mkldnn.hpp:1853
engine get_engine()
Definition: mkldnn.hpp:1402
mkldnn_status_t MKLDNN_API mkldnn_stream_rerun(mkldnn_stream_t stream, mkldnn_primitive_t *error_primitive)
Reruns all the primitives within the stream.
2D weights tensor in the format (input channels, output channels).
Definition: mkldnn_types.h:128
memory consumption – extra (scratch) memory, additional to all inputs and outputs memory (bytes) ...
Definition: mkldnn_types.h:767
Definition: mkldnn.hpp:575
A class for wrapping an Intel(R) MKL-DNN handle. It is used as the base class for primitive (mkldnn_p...
Definition: mkldnn.hpp:55
Definition: mkldnn.hpp:1690
A descriptor of a pooling operation.
Definition: mkldnn_types.h:517
bool operator==(const handle &other) const
Definition: mkldnn.hpp:87
Definition: mkldnn.hpp:828
primitive_desc(const memory::primitive_desc &input, memory::dims dims, memory::dims offsets)
Definition: mkldnn.hpp:637
format
Memory format specification. See mkldnn_memory_format_t for a detailed description.
Definition: mkldnn.hpp:333
Definition: mkldnn.hpp:210
desc(algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_dst_desc, const memory::dims strides, const memory::dims padding_l, const memory::dims padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:1178
Definition: mkldnn.hpp:211
lrn_backward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &diff_dst, const primitive::at &workspace, const memory &diff_src)
Definition: mkldnn.hpp:1505
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:1478
8-bit signed integer.
Definition: mkldnn_types.h:72
mkldnn_status_t MKLDNN_API mkldnn_reorder_primitive_desc_create(mkldnn_primitive_desc_t *reorder_primitive_desc, const_mkldnn_primitive_desc_t input, const_mkldnn_primitive_desc_t output)
Initializes a reorder_primitive_desc using descriptors of input and output memory primitives...
The data in padding regions is zero.
Definition: mkldnn_types.h:230
desc(prop_kind aprop_kind, const memory::desc &data_desc, int softmax_axis)
Definition: mkldnn.hpp:1816
Definition: mkldnn.hpp:1711
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, int local_size, double alpha, double beta, double k)
Definition: mkldnn.hpp:1337
source memory primitive desc
Definition: mkldnn_types.h:790
number of inputs expected
Definition: mkldnn_types.h:763
mkldnn_convolution_relu_desc_t data
Definition: mkldnn.hpp:1287
mkldnn_inner_product_desc_t data
Definition: mkldnn.hpp:2351
Definition: mkldnn.hpp:2019
Definition: mkldnn.hpp:1850
mkldnn_status_t MKLDNN_API mkldnn_eltwise_backward_desc_init(mkldnn_eltwise_desc_t *eltwise_desc, mkldnn_alg_kind_t alg_kind, const mkldnn_memory_desc_t *diff_data_desc, const mkldnn_memory_desc_t *data_desc, double alpha, double beta)
Initializes a eltwise_desc for backward propagation using alg_kind algorithm memory descriptors diff_...
An unspecified engine.
Definition: mkldnn_types.h:807
Definition: mkldnn.hpp:559
std::string message
Definition: mkldnn.hpp:129
Definition: mkldnn.hpp:557
size_t MKLDNN_API mkldnn_memory_primitive_desc_get_size(const_mkldnn_primitive_desc_t memory_primitive_desc)
Returns the size (in bytes) that is required for given memory_primitive_desc.
4D weights tensor in the format (output channels, input channels, height, width) with output channels...
Definition: mkldnn_types.h:161
mkldnn_softmax_desc_t data
Definition: mkldnn.hpp:1815
Definition: mkldnn.hpp:1156
desc(algorithm alg_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, T alpha=0, T beta=0)
Definition: mkldnn.hpp:1755
Average pooling exclude padding.
Definition: mkldnn_types.h:313
mkldnn_status_t MKLDNN_API mkldnn_primitive_create(mkldnn_primitive_t *primitive, const_mkldnn_primitive_desc_t primitive_desc, const mkldnn_primitive_at_t *inputs, const_mkldnn_primitive_t *outputs)
Creates a primitive using a primitive_desc descriptor and arrays of inputs and outputs.
Forward data propagation (inference mode).
Definition: mkldnn_types.h:244
convolution_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const primitive::at &bias, const memory &dst)
Definition: mkldnn.hpp:1044
A class that provides the destructor for an Intel(R) MKL-DNN C handle.
Definition: mkldnn.hpp:40
desc(const memory::desc &diff_src_desc, const memory::desc &weights_desc, const memory::desc &diff_dst_desc)
Definition: mkldnn.hpp:2275
memory::primitive_desc diff_bias_primitive_desc() const
Definition: mkldnn.hpp:1233
memory::primitive_desc mean_primitive_desc() const
Definition: mkldnn.hpp:2071
desc(prop_kind aprop_kind, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc)
Definition: mkldnn.hpp:2175
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1864
Definition: mkldnn.hpp:194
mkldnn_eltwise_desc_t data
Definition: mkldnn.hpp:1692
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 1...
Definition: mkldnn_types.h:143
eltwise_backward relu_backward
Definition: mkldnn.hpp:1811
A memory descriptor.
Definition: mkldnn.hpp:377
reorder(const primitive_desc &aprimitive_desc, const primitive::at &input, const memory &output)
Definition: mkldnn.hpp:608
Definition: mkldnn.hpp:226
pooling_backward(const primitive_desc &aprimitive_desc, const primitive::at &diff_dst, const primitive::at &workspace, const memory &diff_src)
Definition: mkldnn.hpp:1678
5D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:199
bool operator!=(mkldnn_data_type_t a, memory::data_type b)
Definition: mkldnn.hpp:526
void set_data_handle(void *handle) const
Definition: mkldnn.hpp:508
mkldnn_status_t MKLDNN_API mkldnn_dilated_convolution_forward_desc_init(mkldnn_convolution_desc_t *conv_desc, mkldnn_prop_kind_t prop_kind, mkldnn_alg_kind_t alg_kind, const mkldnn_memory_desc_t *src_desc, const mkldnn_memory_desc_t *weights_desc, const mkldnn_memory_desc_t *bias_desc, const mkldnn_memory_desc_t *dst_desc, const mkldnn_dims_t strides, const mkldnn_dims_t dilates, const mkldnn_dims_t padding_l, const mkldnn_dims_t padding_r, mkldnn_padding_kind_t padding_kind)
Initializes a dilated convolution descriptor conv_desc for forward propagation using prop_kind (possi...
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: mkldnn_types.h:305
mkldnn_status_t MKLDNN_API mkldnn_engine_destroy(mkldnn_engine_t engine)
Destroys an engine.
bool operator==(const primitive_desc &other) const
Definition: mkldnn.hpp:433
2D data tensor.
Definition: mkldnn_types.h:112
Definition: mkldnn.hpp:205
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:2097
memory descriptor for memory and view
Definition: mkldnn_types.h:775
Definition: mkldnn.hpp:984
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:2231
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:1566
mkldnn_padding_kind_t
Kinds of padding.
Definition: mkldnn_types.h:228
mkldnn_query_t convert_to_c(query aquery)
Definition: mkldnn.hpp:228
Lazy stream.
Definition: mkldnn_types.h:811
mkldnn_batch_normalization_desc_t data
Definition: mkldnn.hpp:1851
5D weights tensor in the blocked version of goihw format with output channels data laid out in memory...
Definition: mkldnn_types.h:209
memory::primitive_desc bias_primitive_desc() const
Definition: mkldnn.hpp:1017
Definition: mkldnn.hpp:560
desc(const mkldnn_memory_desc_t &adata)
Constructs a memory descriptor from a C API data structure.
Definition: mkldnn.hpp:400
const_mkldnn_primitive_desc_t MKLDNN_API mkldnn_primitive_desc_query_pd(const_mkldnn_primitive_desc_t primitive_desc, mkldnn_query_t what, int index)
Queries primitive descriptor for primitive descriptor.
prop_kind
Definition: mkldnn.hpp:556
Definition: mkldnn.hpp:2349
Forward data propagation (training mode).
Definition: mkldnn_types.h:240
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:2195
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1720
handle(T t=0, bool weak=false)
Constructs a C handle wrapper.
Definition: mkldnn.hpp:64
memory::desc desc()
Returns the memory primitive descriptor.
Definition: mkldnn.hpp:421
An opaque structure to describe a primitive.
Definition: mkldnn.hpp:214
A tensor in a generic format described by the stride and blocking values in each dimension.
Definition: mkldnn_types.h:108
batch_normalization_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &mean, const primitive::at &variance, const primitive::at &weights, const memory &dst)
Definition: mkldnn.hpp:1941
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, int local_size, double alpha, double beta)
Definition: mkldnn.hpp:1346
bool operator!=(const T other) const
Definition: mkldnn.hpp:69
desc(algorithm aalgorithm, const memory::desc &diff_src_desc, const memory::desc &weights_desc, const memory::desc &diff_dst_desc, const memory::dims strides, const memory::dims padding_l, const memory::dims padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:1073
mkldnn_data_type_t
Data type specification.
Definition: mkldnn_types.h:62
Definition: mkldnn.hpp:1070
convolution descriptor
Definition: mkldnn_types.h:776
primitive_desc(const desc &adesc, const engine &aengine, const inner_product_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:2374
error(mkldnn_status_t astatus, std::string amessage, mkldnn_primitive_t aerror_primitive=0)
Constructs an error instance.
Definition: mkldnn.hpp:139
A memory primitive descriptor.
Definition: mkldnn.hpp:404
bool operator!=(const primitive_desc &other) const
Definition: mkldnn.hpp:437
Definition: mkldnn.hpp:225
mkldnn_pooling_desc_t data
Definition: mkldnn.hpp:1618
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 1...
Definition: mkldnn_types.h:176
mkldnn_eltwise_desc_t data
Definition: mkldnn.hpp:1752
Definition: mkldnn.hpp:1814
data_type
Data type specification. See mkldnn_data_type_t for a detailed description.
Definition: mkldnn.hpp:322
pooling_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst, const memory &workspace)
Definition: mkldnn.hpp:1604
mkldnn_engine_kind_t
Kinds of engines.
Definition: mkldnn_types.h:655
primitive_desc(const memory::primitive_desc &input, const memory::primitive_desc &output)
Definition: mkldnn.hpp:596
lrn_backward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &diff_dst, const memory &diff_src)
Definition: mkldnn.hpp:1518
engine get_engine()
Definition: mkldnn.hpp:660
Memory primitive that describes the data.
Definition: mkldnn.hpp:307
primitive_desc(const desc &adesc, const engine &aengine, const convolution_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:1199
Definition: mkldnn.hpp:1430
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc, const memory::dims strides, const memory::dims padding_l, const memory::dims padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:920
primitive_desc(const desc &adesc, const engine &aengine, const convolution_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:1093
Definition: mkldnn.hpp:1849
desc(const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_dst_desc)
Definition: mkldnn.hpp:2362
Definition: mkldnn.hpp:221
primitive_desc()
Definition: mkldnn.hpp:408
engine get_engine()
Definition: mkldnn.hpp:1139
batch_normalization_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst, const memory &mean, const memory &variance)
Definition: mkldnn.hpp:1981
5D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:203
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:1115
An unspecified engine.
Definition: mkldnn_types.h:657
Definition: mkldnn.hpp:1297
Definition: mkldnn.hpp:754
memory(const primitive &aprimitive)
Constructs a memory primitive from a generic primitive.
Definition: mkldnn.hpp:447
Definition: mkldnn.hpp:196
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1712
5D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:187
mkldnn_alg_kind_t
Kinds of algorithms.
Definition: mkldnn_types.h:297
inner product descriptor
Definition: mkldnn_types.h:783
weights memory primitive descriptor desc
Definition: mkldnn_types.h:792
output memory primitive desc
Definition: mkldnn_types.h:789
reorder(const primitive::at &input, const memory &output)
Definition: mkldnn.hpp:619
Definition: mkldnn.hpp:1641
memory(const primitive_desc &adesc)
Constructs a memory primitive.
Definition: mkldnn.hpp:451
engine get_engine()
Definition: mkldnn.hpp:1590
Definition: mkldnn.hpp:595
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:1127
mkldnn_status_t MKLDNN_API mkldnn_primitive_destroy(mkldnn_primitive_t primitive)
Deletes a primitive.
Definition: mkldnn.hpp:564
Definition: mkldnn.hpp:212
lrn_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &workspace, const memory &dst)
Definition: mkldnn.hpp:1405
Definition: mkldnn.hpp:1863
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:2309
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 8...
Definition: mkldnn_types.h:154
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:1466
Forward data propagation (alias for mkldnn_forward_training)
Definition: mkldnn_types.h:248
lrn descriptor
Definition: mkldnn_types.h:781
workspace memory primitive desc
Definition: mkldnn_types.h:796
Definition: mkldnn.hpp:224
Definition: mkldnn.hpp:561
mkldnn_status_t MKLDNN_API mkldnn_inner_product_backward_weights_desc_init(mkldnn_inner_product_desc_t *ip_desc, const mkldnn_memory_desc_t *src_desc, const mkldnn_memory_desc_t *diff_weights_desc, const mkldnn_memory_desc_t *diff_bias_desc, const mkldnn_memory_desc_t *diff_dst_desc)
Initializes an inner product descriptor ip_desc for backward propagation with respect to weights usin...
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:2187
primitive_desc(const desc &adesc, const engine &aengine, const inner_product_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:2287
at(const primitive &aprimitive, size_t at=0)
Constructs a wrapper specifying aprimitive output with index at.
Definition: mkldnn.hpp:112
memory::primitive_desc mean_primitive_desc() const
Definition: mkldnn.hpp:1885
Definition: mkldnn_types.h:778
engine get_engine()
Definition: mkldnn.hpp:1795
weights grad.
Definition: mkldnn_types.h:793
inner_product_backward_data(const primitive_desc &aprimitive_desc, const primitive::at &diff_dst, const primitive::at weights, const memory &diff_src)
Definition: mkldnn.hpp:2336
4D data tensor in the nchw format typically used in Caffe.
Definition: mkldnn_types.h:114
desc(prop_kind aprop_kind, algorithm alg_kind, const memory::desc &src_desc, T alpha=0, T beta=0)
Definition: mkldnn.hpp:1694
primitive kind
Definition: mkldnn_types.h:761
primitive_desc(std::vector< double > scale, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:778
Definition: mkldnn.hpp:586
memory::primitive_desc bias_primitive_desc() const
Definition: mkldnn.hpp:2219
primitive_desc(const desc &adesc, const engine &aengine, const lrn_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:1456
mkldnn_status_t MKLDNN_API mkldnn_batch_normalization_forward_desc_init(mkldnn_batch_normalization_desc_t *bnrm_desc, mkldnn_prop_kind_t prop_kind, const mkldnn_memory_desc_t *data_desc, double epsilon, unsigned flags)
Initializes a batch normalization descriptor bnrm_desc for forward propagation using prop_kind...
4D weights tensor in the oihw format with output channels data laid out in memory in 16-element block...
Definition: mkldnn_types.h:147
inner_product_backward_weights(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at diff_dst, const memory &diff_weights)
Definition: mkldnn.hpp:2435
Definition: mkldnn.hpp:1285
std::vector< const_mkldnn_primitive_desc_t > cpp_to_c(std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:755
Definition: mkldnn.hpp:571
stream & submit(std::vector< primitive > primitives)
Submits a vector of primitives to a stream for computations.
Definition: mkldnn.hpp:851
mkldnn_status_t MKLDNN_API mkldnn_sum_primitive_desc_create(mkldnn_primitive_desc_t *sum_primitive_desc, const mkldnn_memory_desc_t *output_desc, int n, double *scale, const_mkldnn_primitive_desc_t *input_pds)
Creates out-of-place sum_primitive_desc for sum of n inputs multiplied by scale with resulting output...
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:985
Definition: mkldnn.hpp:572
mkldnn_status_t MKLDNN_API mkldnn_inner_product_forward_desc_init(mkldnn_inner_product_desc_t *ip_desc, mkldnn_prop_kind_t prop_kind, const mkldnn_memory_desc_t *src_desc, const mkldnn_memory_desc_t *weights_desc, const mkldnn_memory_desc_t *bias_desc, const mkldnn_memory_desc_t *dst_desc)
Initializes an inner product descriptor ip_desc for forward propagation using prop_kind (possible val...