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(); }
91 #ifndef DOXYGEN_SHOULD_SKIP_THIS 105 friend class primitive_at;
106 using handle::handle;
157 struct error:
public std::exception {
170 mkldnn_primitive_t aerror_primitive = 0)
173 , error_primitive(aerror_primitive, true)
186 mkldnn_primitive_t *error_primitive = 0)
189 if (
nullptr != error_primitive)
190 throw error(status, message, *error_primitive);
192 throw error(status, message,
nullptr);
201 data.output_index, &output),
202 "could not get an output primitive");
203 return primitive(const_cast<mkldnn_primitive_t>(output),
true);
209 "could not get primitive descriptor by primitive");
331 #ifndef DOXYGEN_SHOULD_SKIP_THIS 339 mkldnn_post_ops_t result;
341 "could not create post operation sequence");
350 "post_ops index is out of range");
357 "could not append sum");
362 "could not get sum params");
369 "could not append eltwise");
373 float &alpha,
float &beta)
const {
376 &scale, &c_alg, &alpha, &beta),
377 "could not get eltwise params");
382 #ifndef DOXYGEN_SHOULD_SKIP_THIS 390 mkldnn_primitive_attr_t result;
392 "could not create a primitive attr");
399 get(), &result),
"could not get int output round mode");
406 "could not set int output round mode");
412 const float *c_scales;
414 &count, &c_mask, &c_scales),
415 "could not get int output scales");
416 scales.resize(count);
419 for (
int c = 0; c < count; ++c)
420 scales[c] = c_scales[c];
426 (
int)scales.size(), mask, &scales[0]),
427 "could not set int output scales");
434 "could not get post operation sequence");
435 result.
reset(const_cast<mkldnn_post_ops_t>(c_result),
true);
441 "could not set post operation sequence");
450 #ifndef DOXYGEN_SHOULD_SKIP_THIS 484 mkldnn_engine_t aengine;
488 "could not create an engine");
492 explicit engine(
const mkldnn_engine_t& aengine)
493 :
handle(aengine, true) {}
496 mkldnn_engine_t engine_q;
500 "could not get engine from primitive_desc");
501 reset(engine_q,
true);
504 template <
class primitive_desc>
506 mkldnn_engine_t engine_q;
510 "could not get engine from primitive_desc");
532 std::shared_ptr<char> _handle;
535 typedef std::vector<std::remove_extent<mkldnn_dims_t>::type>
dims;
540 "invalid dimensions");
618 validate_dims(adims);
621 adims.size() == 0 ? nullptr : &adims[0],
623 "could not initialize a memory descriptor");
641 mkldnn_primitive_desc_t result;
645 "could not initialize a memory primitive descriptor");
679 mkldnn_primitive_t result;
682 "could not create a memory primitive");
684 auto _malloc = [](
size_t size,
int alignment) {
687 ptr = _aligned_malloc(size, alignment);
688 int rc = ((ptr)? 0 : errno);
690 int rc = ::posix_memalign(&ptr, alignment, size);
692 return (rc == 0) ? (
char*)ptr :
nullptr;
694 auto _free = [](
char* p) {
696 _aligned_free((
void*)p);
701 _handle.reset(_malloc(adesc.
get_size(), 4096), _free);
702 set_data_handle(_handle.get());
706 mkldnn_primitive_t result;
709 "could not create a memory primitive");
711 set_data_handle(ahandle);
720 "could not get primitive descriptor from a memory primitive");
722 adesc.
reset(const_cast<mkldnn_primitive_desc_t>(cdesc),
true);
731 "could not get native handle");
737 "could not set native handle");
784 mkldnn_primitive_desc_t result;
786 &result, input.
get(), output.
get()),
787 "could not create a reorder primitive descriptor");
794 mkldnn_primitive_desc_t result;
796 &result, input.
get(), output.
get(), aattr.
get()),
797 "could not create a reorder primitive descriptor");
806 mkldnn_primitive_t result;
810 aprimitive_desc.
get(), inputs, outputs),
811 "could not create a reorder primitive");
821 mkldnn_primitive_t result;
825 reorder_d.get(), inputs, outputs),
826 "could not create a reorder primitive");
840 mkldnn_primitive_desc_t result;
843 &result, input.
get(), &dims[0], &offsets[0]),
844 "could not create a view primitive descriptor");
850 mkldnn_primitive_desc_t cdesc;
856 "could not clone a dst primitive descriptor");
865 mkldnn_primitive_t result;
868 view_pd.
get(), inputs,
nullptr),
869 "could not create a view primitive");
874 mkldnn_primitive_t result;
879 view_pd.get(), inputs,
nullptr),
880 "could not create a view primitive");
892 std::vector<const_mkldnn_primitive_desc_t>
cpp_to_c(
893 std::vector<memory::primitive_desc> inputs) {
894 std::vector<const_mkldnn_primitive_desc_t> c_api_inputs;
895 c_api_inputs.reserve(inputs.size());
897 std::transform(inputs.begin(), inputs.end(),
903 std::vector<memory::primitive_desc> inputs) {
904 mkldnn_primitive_desc_t result;
906 auto c_api_inputs = cpp_to_c(inputs);
909 &result, &output.
data, (
int)c_api_inputs.size(),
910 concat_dimension, &c_api_inputs[0]),
911 "could not create a concat primitive descriptor");
916 std::vector<memory::primitive_desc> inputs) {
917 mkldnn_primitive_desc_t result;
919 auto c_api_inputs = cpp_to_c(inputs);
922 &result,
nullptr, (
int)c_api_inputs.size(),
923 concat_dimension, &c_api_inputs[0]),
924 "could not create a concat primitive descriptor");
930 mkldnn_primitive_desc_t cdesc;
935 "could not clone a dst primitive descriptor");
944 std::vector<primitive::at> &inputs,
const memory &output) {
945 mkldnn_primitive_t result;
947 std::vector<mkldnn_primitive_at_t> p_inputs;
948 for (
size_t i = 0; i < inputs.size(); i++)
949 p_inputs.push_back(inputs[i].data);
953 concat_pd.
get(), &p_inputs[0], outputs),
954 "could not create a concat primitive");
966 std::vector<const_mkldnn_primitive_desc_t>
cpp_to_c(
967 std::vector<memory::primitive_desc> inputs) {
968 std::vector<const_mkldnn_primitive_desc_t> c_api_inputs;
969 c_api_inputs.reserve(inputs.size());
971 std::transform(inputs.begin(), inputs.end(),
977 const std::vector<float> &scales,
978 std::vector<memory::primitive_desc> inputs) {
979 mkldnn_primitive_desc_t result;
981 auto c_api_inputs = cpp_to_c(inputs);
984 &result, &output.
data, (
int)c_api_inputs.size(),
985 &scales[0], &c_api_inputs[0]),
986 "could not create a sum primitive descriptor");
991 std::vector<memory::primitive_desc> inputs) {
992 mkldnn_primitive_desc_t result;
994 auto c_api_inputs = cpp_to_c(inputs);
997 &result,
nullptr, (
int)c_api_inputs.size(), &scales[0],
999 "could not create a sum primitive descriptor");
1006 std::vector<memory::primitive_desc> inputs) {
1007 mkldnn_primitive_desc_t result;
1009 auto c_api_inputs = cpp_to_c(inputs);
1010 auto scale_f = scale_to_float(scale);
1013 &result, &output.
data, (
int)c_api_inputs.size(),
1014 &scale_f[0], &c_api_inputs[0]),
1015 "could not create a sum primitive descriptor");
1022 std::vector<memory::primitive_desc> inputs) {
1023 mkldnn_primitive_desc_t result;
1025 auto c_api_inputs = cpp_to_c(inputs);
1026 auto scale_f = scale_to_float(scale);
1029 &result,
nullptr, (
int)c_api_inputs.size(), &scale_f[0],
1031 "could not create a sum primitive descriptor");
1037 mkldnn_primitive_desc_t cdesc;
1043 "could not clone a dst primitive descriptor");
1052 std::vector<primitive::at> &inputs,
const memory &output) {
1053 mkldnn_primitive_t result;
1055 std::vector<mkldnn_primitive_at_t> p_inputs;
1056 for (
size_t i = 0; i < inputs.size(); i++)
1057 p_inputs.push_back(inputs[i].data);
1061 sum_pd.
get(), &p_inputs[0], outputs),
1062 "could not create a sum primitive");
1067 static std::vector<float> scale_to_float(
const std::vector<double> &vd) {
1068 std::vector<float> vf(vd.size());
1069 std::transform(vd.begin(), vd.end(), vf.begin(),
1070 [=](
double x){
return (
float)x;});
1098 &dst_desc.
data, &strides[0], &padding_l[0], &padding_r[0],
1100 "could not create a convolution forward descriptor");
1115 &src_desc.
data, &weights_desc.
data,
nullptr,
1116 &dst_desc.
data, &strides[0], &padding_l[0], &padding_r[0],
1118 "could not create a convolution forward descriptor");
1138 &dst_desc.
data, &strides[0], &dilates[0],
1139 &padding_l[0], &padding_r[0],
1141 "could not create a dilated convolution forward descriptor");
1159 &src_desc.
data, &weights_desc.
data,
nullptr,
1160 &dst_desc.
data, &strides[0], &dilates[0],
1161 &padding_l[0], &padding_r[0],
1163 "could not create a dilated convolution forward descriptor");
1168 mkldnn_primitive_desc_t result;
1170 &result, &adesc.
data, aengine.
get(),
nullptr),
1171 "could not create a convolution forward primitive descriptor");
1177 mkldnn_primitive_desc_t result;
1179 &result, &adesc.
data, aattr.
get(),
1180 aengine.
get(),
nullptr),
1181 "could not create a convolution forward primitive descriptor");
1187 mkldnn_primitive_desc_t cdesc;
1192 "could not clone a src primititve descriptor");
1199 mkldnn_primitive_desc_t cdesc;
1204 "could not clone a weights primitive descriptor");
1211 mkldnn_primitive_desc_t cdesc;
1216 "could not clone a bias primitive descriptor");
1223 mkldnn_primitive_desc_t cdesc;
1228 "could not clone a dst primitive descriptor");
1239 mkldnn_primitive_t result;
1244 aprimitive_desc.
get(), inputs, outputs),
1245 "could not create a convolution forward bias primitive");
1252 mkldnn_primitive_t result;
1256 aprimitive_desc.
get(), inputs, outputs),
1257 "could not create a convolution forward primitive");
1278 &weights_desc.
data, &diff_dst_desc.
data,
1279 &strides[0], &padding_l[0], &padding_r[0],
1281 "could not create a convolution backward data descriptor");
1299 &weights_desc.
data, &diff_dst_desc.
data,
1300 &strides[0], &dilates[0], &padding_l[0], &padding_r[0],
1302 "could not create a convolution backward data descriptor");
1308 &hint_fwd_primitive_desc) {
1309 mkldnn_primitive_desc_t result;
1311 &result, &adesc.
data, aengine.
get(),
1312 hint_fwd_primitive_desc.
get()),
1313 "could not create a convolution backward data primitive descriptor");
1318 mkldnn_primitive_desc_t cdesc;
1323 "could not clone a diff_src primititve descriptor");
1330 mkldnn_primitive_desc_t cdesc;
1335 "could not clone a weights primitive descriptor");
1342 mkldnn_primitive_desc_t cdesc;
1347 "could not clone a diff_dst primitive descriptor");
1357 const memory &diff_src) {
1358 mkldnn_primitive_t result;
1362 aprimitive_desc.
get(), inputs, outputs),
1363 "could not create a convolution backward data primitive");
1385 &diff_weights_desc.
data, &diff_bias_desc.
data,
1386 &diff_dst_desc.
data,
1387 &strides[0], &padding_l[0], &padding_r[0],
1389 "could not create a convolution backward weights descriptor");
1404 &diff_weights_desc.
data,
nullptr, &diff_dst_desc.
data,
1405 &strides[0], &padding_l[0], &padding_r[0],
1407 "could not create a convolution backward weights descriptor");
1425 &diff_weights_desc.
data, &diff_bias_desc.
data,
1426 &diff_dst_desc.
data,
1427 &strides[0], &dilates[0], &padding_l[0], &padding_r[0],
1429 "could not create a convolution backward weights descriptor");
1446 &diff_weights_desc.
data,
nullptr, &diff_dst_desc.
data,
1447 &strides[0], &dilates[0], &padding_l[0], &padding_r[0],
1449 "could not create a convolution backward weights descriptor");
1457 &hint_fwd_primitive_desc) {
1458 mkldnn_primitive_desc_t result;
1460 &result, &adesc.
data, aengine.
get(),
1461 hint_fwd_primitive_desc.
get()),
1462 "could not create a convolution backward weights primitive descriptor");
1467 mkldnn_primitive_desc_t cdesc;
1472 "could not clone a src primititve descriptor");
1479 mkldnn_primitive_desc_t cdesc;
1484 "could not clone a diff_weights primitive descriptor");
1491 mkldnn_primitive_desc_t cdesc;
1496 "could not clone a diff_bias primitive descriptor");
1503 mkldnn_primitive_desc_t cdesc;
1508 "could not clone a diff_dst primitive descriptor");
1519 mkldnn_primitive_t result;
1524 aprimitive_desc.
get(), inputs, outputs),
1525 "could not create a convolution backward weights primitive");
1530 const memory &diff_weights) {
1531 mkldnn_primitive_t result;
1535 aprimitive_desc.
get(), inputs, outputs),
1536 "could not create a convolution backward weights primitive");
1545 const float negative_slope)
1548 &conv_desc.
data, negative_slope),
1549 "could not create a convolution_relu_forward descriptor");
1555 mkldnn_primitive_desc_t result;
1557 &result, &adesc.
data, aengine.
get(),
nullptr),
1558 "could not create a convolution relu forward descriptor");
1568 mkldnn_primitive_t result;
1573 aprimitive_desc.
get(), inputs, outputs),
1574 "could not create a convolution relu forward primitive");
1581 mkldnn_primitive_t result;
1585 aprimitive_desc.
get(), inputs, outputs),
1586 "could not create a convolution relu forward primitive");
1601 int local_size,
float alpha,
float beta,
float k)
1605 &src_desc.
data, local_size, alpha, beta, k),
1606 "could not create a lrn forward descriptor");
1610 int local_size,
float alpha,
float beta)
1614 &src_desc.
data, local_size, alpha, beta,
float(1.0)),
1615 "could not create a lrn forward descriptor");
1621 mkldnn_primitive_desc_t result;
1623 &result, &adesc.
data, aengine.
get(),
nullptr),
1624 "could not create a lrn forward primitive descriptor");
1630 mkldnn_primitive_desc_t cdesc;
1635 "could not clone a src primitive descriptor");
1642 mkldnn_primitive_desc_t ldesc;
1647 "could not clone a workspace primitive descriptor");
1654 mkldnn_primitive_desc_t cdesc;
1659 "could not clone a dst primitive descriptor");
1670 mkldnn_primitive_t result;
1675 aprimitive_desc.
get(), inputs, outputs),
1676 "could not create a lrn forward primitive");
1682 mkldnn_primitive_t result;
1686 aprimitive_desc.
get(), inputs, outputs),
1687 "could not create a lrn forward primitive");
1698 int local_size,
float alpha,
float beta,
float k)
1702 &data_desc.
data, local_size, alpha, beta, k),
1703 "could not create a lrn backward descriptor");
1708 int local_size,
float alpha,
float beta)
1712 &data_desc.
data, local_size, alpha, beta,
float(1.0)),
1713 "could not create a lrn backward descriptor");
1720 mkldnn_primitive_desc_t result;
1722 &result, &adesc.
data, aengine.
get(),
1723 hint_fwd_primitive_desc.
get()),
1724 "could not create a backward lrn primitive descriptor");
1730 mkldnn_primitive_desc_t cdesc;
1735 "could not clone a diff_src primitive descriptor");
1742 mkldnn_primitive_desc_t ldesc;
1747 "could not clone a workspace primitive descriptor");
1754 mkldnn_primitive_desc_t cdesc;
1759 "could not clone a diff_dst primitive descriptor");
1770 mkldnn_primitive_t result;
1775 aprimitive_desc.
get(), inputs, outputs),
1776 "could not create a lrn backward primitive");
1782 const memory &diff_src) {
1783 mkldnn_primitive_t result;
1787 aprimitive_desc.
get(), inputs, outputs),
1788 "could not create a lrn backward primitive");
1817 &strides[0], &kernel[0],
1818 &padding_l[0], &padding_r[0],
1820 "could not init a forward pooling descriptor");
1826 mkldnn_primitive_desc_t result;
1828 &result, &adesc.
data, aengine.
get(),
nullptr),
1829 "could not create a forward pooling primitive descriptor");
1835 mkldnn_primitive_desc_t cdesc;
1840 "could not clone a workspace primititve descriptor");
1847 mkldnn_primitive_desc_t cdesc;
1852 "could not clone a dst primitive descriptor");
1862 mkldnn_primitive_t result;
1866 aprimitive_desc.
get(), inputs, outputs),
1867 "could not create a pooling forward primitive");
1873 mkldnn_primitive_t result;
1877 aprimitive_desc.
get(), inputs, outputs),
1878 "could not create a pooling forward primitive");
1900 &diff_src_desc.
data, &diff_dst_desc.
data,
1901 &strides[0], &kernel[0],
1902 &padding_l[0], &padding_r[0],
1904 "could not init a backward pooling descriptor");
1911 mkldnn_primitive_desc_t result;
1913 &result, &adesc.
data, aengine.
get(),
1914 hint_fwd_primitive_desc.
get()),
1915 "could not create a backward pooling primitive descriptor");
1921 mkldnn_primitive_desc_t cdesc;
1926 "could not clone a diff src primitive descriptor");
1935 const memory &diff_src) {
1936 mkldnn_primitive_t result;
1940 aprimitive_desc.
get(), inputs, outputs),
1941 "could not create a pooling backward primitive");
1947 mkldnn_primitive_t result;
1951 aprimitive_desc.
get(), inputs, outputs),
1952 "could not create a pooling backward primitive");
1965 template <
typename T>
1967 const memory::desc &src_desc, T alpha = 0, T beta = 0) {
1971 static_cast<float>(alpha), static_cast<float>(beta)),
1972 "could not create a eltwise forward descriptor");
1976 template <
typename T>
1985 mkldnn_primitive_desc_t result;
1987 &result, &adesc.
data, aengine.
get(),
nullptr),
1988 "could not create a eltwise forward primitive descriptor");
1994 mkldnn_primitive_desc_t cdesc;
2000 "could not clone a dst primitive descriptor");
2010 mkldnn_primitive_t result;
2014 aprimitive_desc.
get(), inputs, outputs),
2015 "could not create a eltwise forward primitive");
2026 template <
typename T>
2028 const memory::desc &data_desc, T alpha = 0, T beta = 0) {
2031 &data_desc.
data, static_cast<float>(alpha),
2032 static_cast<float>(beta)),
2033 "could not create a eltwise backward descriptor");
2037 template <
typename T>
2047 mkldnn_primitive_desc_t result;
2049 &result, &adesc.
data, aengine.
get(),
2050 hint_fwd_primitive_desc.
get()),
2051 "could not create a eltwise backward primitive descriptor");
2057 mkldnn_primitive_desc_t cdesc;
2062 "could not clone a diff src primitive descriptor");
2072 const memory &diff_src) {
2073 mkldnn_primitive_t result;
2077 aprimitive_desc.
get(), inputs, outputs),
2078 "could not create a eltwise backward primitive");
2098 "could not create a softmax forward descriptor");
2104 mkldnn_primitive_desc_t result;
2106 &result, &adesc.
data, aengine.
get(),
nullptr),
2107 "could not create a softmax forward primitive descriptor");
2116 mkldnn_primitive_t result;
2120 aprimitive_desc.
get(), inputs, outputs),
2121 "could not create a softmax forward primitive");
2134 template <
typename T>
2140 static_cast<float>(epsilon), flags),
2141 "could not create a batch normalization forward descriptor");
2147 mkldnn_primitive_desc_t result;
2149 &result, &adesc.
data, aengine.
get(),
nullptr),
2150 "could not create a batch normalization forward primitive descriptor");
2156 mkldnn_primitive_desc_t result;
2158 &result, &adesc.
data, aattr.
get(), aengine.
get(),
2160 "could not create a batch normalization forward " 2161 "primitive descriptor");
2167 mkldnn_primitive_desc_t bndesc;
2173 "could not clone a weights primitive descriptor");
2174 adesc.
reset(bndesc);
2180 mkldnn_primitive_desc_t bndesc;
2184 "could not get a batch-normalization descriptor");
2193 "could not clone a mean primitive descriptor");
2194 aprimitive_desc.
reset(bndesc);
2195 return aprimitive_desc;
2200 mkldnn_primitive_desc_t bndesc;
2204 "could not get a batch-normalization descriptor");
2213 "could not clone a variance primitive descriptor");
2214 aprimitive_desc.
reset(bndesc);
2215 return aprimitive_desc;
2220 mkldnn_primitive_desc_t cdesc;
2225 "could not clone a workspace primitive descriptor");
2232 mkldnn_primitive_desc_t cdesc;
2238 "could not clone a dst primitive descriptor");
2250 mkldnn_primitive_t result;
2255 aprimitive_desc.
get(), inputs, outputs),
2256 "could not create a batch normalization forward primitive");
2263 mkldnn_primitive_t result;
2268 aprimitive_desc.
get(), inputs, outputs),
2269 "could not create a batch normalization forward primitive");
2283 mkldnn_primitive_t result;
2286 mean.
get(), variance.
get() };
2288 aprimitive_desc.
get(), inputs, outputs),
2289 "could not create a batch normalization forward primitive");
2296 const memory &workspace) {
2297 mkldnn_primitive_t result;
2300 mean.
get(), variance.
get(), workspace.
get() };
2302 aprimitive_desc.
get(), inputs, outputs),
2303 "could not create a batch normalization forward primitive");
2309 const memory &variance) {
2310 mkldnn_primitive_t result;
2313 mean.
get(), variance.
get() };
2315 aprimitive_desc.
get(), inputs, outputs),
2316 "could not create a batch normalization forward primitive");
2334 mkldnn_primitive_t result;
2337 mean.
get(), variance.
get(), workspace.
get() };
2344 if (n_inputs_expected == 2 && n_outputs_expected == 3) {
2346 auto _weights = dst;
2347 inputs[1] = {_weights.get(), 0};
2349 auto _dst = mean, _mean = variance, _variance = workspace;
2350 outputs[0] = _dst.get();
2351 outputs[1] = _mean.get();
2352 outputs[2] = _variance.get();
2353 outputs[3] =
nullptr;
2357 aprimitive_desc.
get(), inputs, outputs),
2358 "could not create a batch normalization forward primitive");
2365 mkldnn_primitive_t result;
2369 aprimitive_desc.
get(), inputs, outputs),
2370 "could not create a batch normalization forward primitive");
2376 mkldnn_primitive_t result;
2380 aprimitive_desc.
get(), inputs, outputs),
2381 "could not create a batch normalization forward primitive");
2389 template <
typename T>
2391 const memory::desc &data_desc, T epsilon,
unsigned flags) {
2395 &diff_data_desc.
data, &data_desc.
data,
2396 static_cast<float>(epsilon), flags),
2397 "could not create a batch normalization backward descriptor");
2404 &hint_fwd_primitive_desc) {
2405 mkldnn_primitive_desc_t result;
2407 &result, &adesc.
data, aengine.
get(),
2408 hint_fwd_primitive_desc.
get()),
2409 "could not create a batch normalization backward primitive descriptor");
2415 mkldnn_primitive_desc_t bndesc;
2421 "could not clone a weights primitive descriptor");
2422 adesc.
reset(bndesc);
2428 mkldnn_primitive_desc_t bndesc;
2434 "could not clone a diff_weights primitive descriptor");
2435 adesc.
reset(bndesc);
2441 mkldnn_primitive_desc_t bndesc;
2447 "could not clone a mean primitive descriptor");
2448 adesc.
reset(bndesc);
2454 mkldnn_primitive_desc_t bndesc;
2460 "could not clone a variance primitive descriptor");
2461 adesc.
reset(bndesc);
2467 mkldnn_primitive_desc_t cdesc;
2472 "could not clone a workspace primitive descriptor");
2479 mkldnn_primitive_desc_t cdesc;
2485 "could not clone a dst primitive descriptor");
2498 const memory &diff_weights) {
2499 mkldnn_primitive_t result;
2503 diff_weights.
get() };
2505 aprimitive_desc.
get(), inputs, outputs),
2506 "could not create a batch normalization backward primitive");
2516 mkldnn_primitive_t result;
2520 diff_weights.
get() };
2522 aprimitive_desc.
get(), inputs, outputs),
2523 "could not create a batch normalization backward primitive");
2535 mkldnn_primitive_t result;
2537 diff_dst.
data, weights_or_workspace.
data };
2540 aprimitive_desc.
get(), inputs, outputs),
2541 "could not create a batch normalization backward primitive");
2549 const memory &diff_src) {
2550 mkldnn_primitive_t result;
2555 aprimitive_desc.
get(), inputs, outputs),
2556 "could not create a batch normalization backward primitive");
2577 "could not create a inner product forward descriptor");
2586 &weights_desc.
data,
nullptr, &dst_desc.
data),
2587 "could not create a inner product forward descriptor");
2593 mkldnn_primitive_desc_t result;
2595 &result, &adesc.
data, aengine.
get(),
nullptr),
2596 "could not create a inner product forward primitive descriptor");
2602 mkldnn_primitive_desc_t result;
2604 &result, &adesc.
data, aattr.
get(), aengine.
get(),
nullptr),
2605 "could not create a inner product " 2606 "forward primitive descriptor");
2612 mkldnn_primitive_desc_t cdesc;
2617 "could not clone a src primitive descriptor");
2624 mkldnn_primitive_desc_t cdesc;
2629 "could not clone a weights primitive descriptor");
2636 mkldnn_primitive_desc_t cdesc;
2641 "could not clone a bias primitive descriptor");
2648 mkldnn_primitive_desc_t cdesc;
2653 "could not clone a dst primitive descriptor");
2664 mkldnn_primitive_t result;
2669 aprimitive_desc.
get(), inputs, outputs),
2670 "could not create a inner product forward primitive");
2677 mkldnn_primitive_t result;
2681 aprimitive_desc.
get(), inputs, outputs),
2682 "could not create a inner product forward primitive");
2695 &diff_src_desc.
data, &weights_desc.
data,
2696 &diff_dst_desc.
data),
2697 "could not create a inner product backward data descriptor");
2704 &hint_fwd_primitive_desc) {
2705 mkldnn_primitive_desc_t result;
2707 &adesc.
data, aengine.
get(), hint_fwd_primitive_desc.
get()),
2708 "could not create a inner product backward data primitive descriptor");
2714 mkldnn_primitive_desc_t cdesc;
2719 "could not clone a diff dst primititve descriptor");
2726 mkldnn_primitive_desc_t cdesc;
2731 "could not clone a weights primitive descriptor");
2738 mkldnn_primitive_desc_t cdesc;
2743 "could not clone a diff src primitive descriptor");
2753 const memory &diff_src) {
2754 mkldnn_primitive_t result;
2758 aprimitive_desc.
get(), inputs, outputs),
2759 "could not create a inner product backward data primitive");
2773 &data, &src_desc.
data, &diff_weights_desc.
data,
2774 &diff_bias_desc.
data, &diff_dst_desc.
data),
2775 "could not create a inner product backward weights descriptor");
2782 &data, &src_desc.
data, &diff_weights_desc.
data,
2783 nullptr, &diff_dst_desc.
data),
2784 "could not create a inner product backward weights descriptor");
2791 &hint_fwd_primitive_desc) {
2792 mkldnn_primitive_desc_t result;
2794 &adesc.
data, aengine.
get(), hint_fwd_primitive_desc.
get()),
2795 "could not create a inner product backward weights primitive descriptor");
2801 mkldnn_primitive_desc_t cdesc;
2806 "could not clone a diff dst primititve descriptor");
2813 mkldnn_primitive_desc_t cdesc;
2818 "could not clone a diff weights primitive descriptor");
2825 mkldnn_primitive_desc_t cdesc;
2830 "could not clone a diff bias primitive descriptor");
2837 mkldnn_primitive_desc_t cdesc;
2842 "could not clone a src primitive descriptor");
2852 const memory &diff_weights) {
2853 mkldnn_primitive_t result;
2857 aprimitive_desc.
get(), inputs, outputs),
2858 "could not create a inner product backward weights primitive");
2865 mkldnn_primitive_t result;
2868 { diff_weights.
get(), diff_bias.
get()};
2870 aprimitive_desc.
get(), inputs, outputs),
2871 "could not create a inner product backward weights primitive");
2883 #ifndef DOXYGEN_SHOULD_SKIP_THIS 2890 using handle::handle;
2901 mkldnn_stream_t astream;
2904 "could not create a stream");
2915 if (primitives.size() == 0)
return *
this;
2916 std::vector<mkldnn_primitive_t> c_api_primitives;
2917 c_api_primitives.reserve(primitives.size());
2919 std::transform(primitives.begin(), primitives.end(),
2922 mkldnn_primitive_t c_api_error_primitive;
2925 c_api_primitives.size(), &c_api_primitives[0],
2926 &c_api_error_primitive),
2927 "could not submit primitives to a stream",
2928 &c_api_error_primitive);
2940 mkldnn_primitive_t c_api_error_primitive;
2942 block, &c_api_error_primitive);
2946 &c_api_error_primitive);
2951 mkldnn_primitive_t c_api_error_primitive;
2954 "could not rerun a stream", &c_api_error_primitive);
void append_sum(float scale=1.)
Definition: mkldnn.hpp:355
Definition: mkldnn.hpp:2044
LRN within a single channel.
Definition: mkldnn_types.h:361
primitive error_primitive
Definition: mkldnn.hpp:160
A descriptor of a Local Response Normalization (LRN) operation.
Definition: mkldnn_types.h:612
memory::primitive_desc diff_bias_primitive_desc() const
Definition: mkldnn.hpp:1489
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1845
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 dilates, const memory::dims padding_l, const memory::dims padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:1283
Definition: mkldnn.hpp:315
Definition: mkldnn.hpp:1542
inner_product_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at weights, const memory &dst)
Definition: mkldnn.hpp:2674
Definition: mkldnn.hpp:259
std::vector< const_mkldnn_primitive_desc_t > cpp_to_c(std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:892
engine get_engine()
Definition: mkldnn.hpp:2490
primitive_desc(const memory::desc &output, int concat_dimension, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:902
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...
4D weights tensor in the format (output channels, width, height, input channels) with output channels...
Definition: mkldnn_types.h:188
mkldnn_status_t MKLDNN_API mkldnn_primitive_attr_destroy(mkldnn_primitive_attr_t attr)
Deletes an attr.
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, const float *scales, 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...
A Softmax primitive.
Definition: mkldnn_types.h:312
number of outputs expected
Definition: mkldnn_types.h:873
bool operator!=(const handle &other) const
Definition: mkldnn.hpp:88
mkldnn_status_t MKLDNN_API mkldnn_stream_destroy(mkldnn_stream_t stream)
Destroys an execution stream.
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:1516
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:2246
engine get_engine()
Definition: mkldnn.hpp:1233
stream & submit(std::vector< primitive > primitives)
Submits a vector of primitives to a stream for computations.
Definition: mkldnn.hpp:2912
bool operator==(const primitive_desc &other) const
Definition: mkldnn.hpp:660
Definition: mkldnn.hpp:1883
mkldnn_status_t
Status values returned by Intel(R) MKL-DNN functions.
Definition: mkldnn_types.h:39
stream & rerun()
Definition: mkldnn.hpp:2950
Definition: mkldnn.hpp:1824
A descriptor of a convolution operation.
Definition: mkldnn_types.h:480
Definition: mkldnn.hpp:1799
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...
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:2622
mkldnn_status_t MKLDNN_API mkldnn_post_ops_create(mkldnn_post_ops_t *post_ops)
Creates an empty sequence of post operations post_ops.
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_destroy(mkldnn_primitive_desc_t primitive_desc)
Deletes a primitive_desc.
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 dilates, const memory::dims padding_l, const memory::dims padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:1409
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...
4D data tensor in the chwn format typically used in Neon.
Definition: mkldnn_types.h:126
Definition: mkldnn.hpp:255
padding_kind
Definition: mkldnn.hpp:226
The operation failed because of incorrect function arguments.
Definition: mkldnn_types.h:47
Forward data propagation (alias for mkldnn_forward_inference)
Definition: mkldnn_types.h:275
Definition: mkldnn.hpp:1597
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:1371
Definition: mkldnn.hpp:2591
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:2218
Backward data propagation.
Definition: mkldnn_types.h:281
static void validate_dims(std::vector< T > v)
Definition: mkldnn.hpp:537
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...
desc(prop_kind aprop_kind, const memory::desc &data_desc, int softmax_axis)
Definition: mkldnn.hpp:2093
Definition: mkldnn.hpp:264
engine get_engine()
Definition: mkldnn.hpp:2658
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 1...
Definition: mkldnn_types.h:172
Undefined memory format, used for empty memory descriptors.
Definition: mkldnn_types.h:109
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1984
const_mkldnn_primitive_desc_t get_primitive_desc() const
Returns the descriptor of the underlying C API primitive.
Definition: mkldnn.hpp:206
MKLDNN_DEPRECATED desc(const memory::desc &diff_data_desc, const memory::desc &data_desc, T negative_slope)
Definition: mkldnn.hpp:2039
concat(const primitive_desc &concat_pd, std::vector< primitive::at > &inputs, const memory &output)
Definition: mkldnn.hpp:943
memory::desc desc()
Returns the memory primitive descriptor.
Definition: mkldnn.hpp:650
mkldnn_status_t MKLDNN_API mkldnn_dilated_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 dilates, 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...
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:2146
#define TENSOR_MAX_DIMS
Maximum number of dimensions a tensor can have.
Definition: mkldnn_types.h:420
primitive_desc(const desc &adesc, const engine &aengine, const pooling_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:1909
format
Memory format specification. See mkldnn_memory_format_t for a detailed description.
Definition: mkldnn.hpp:556
Definition: mkldnn.hpp:276
4D weights tensor in the format (input channels, output channels, width, height). ...
Definition: mkldnn_types.h:139
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:1640
MKLDNN_DEPRECATED primitive_desc(std::vector< double > scale, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:1021
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:2799
A descriptor of a Softmax operation.
Definition: mkldnn_types.h:564
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.
softmax_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:2114
memory::primitive_desc diff_weights_primitive_desc() const
Definition: mkldnn.hpp:2811
4D data tensor in the nchw format with channels data laid out in memory in 8-element blocks...
Definition: mkldnn_types.h:129
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.
Definition: mkldnn.hpp:238
primitive_desc(const desc &adesc, const engine &aengine, const lrn_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:1718
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:670
mkldnn_status_t MKLDNN_API mkldnn_post_ops_destroy(mkldnn_post_ops_t post_ops)
Deletes a post_ops sequence.
std::vector< std::remove_extent< mkldnn_dims_t >::type > dims
Definition: mkldnn.hpp:535
An opaque structure for a chain of post operations.
An opaque structure to describe a primitive descriptor .
batch normalization descriptor
Definition: mkldnn_types.h:891
void reset(T t, bool weak=false)
Resets the value of a C handle.
Definition: mkldnn.hpp:79
A convolution primitive.
Definition: mkldnn_types.h:306
mkldnn_lrn_desc_t data
Definition: mkldnn.hpp:1694
mkldnn_status_t MKLDNN_API mkldnn_memory_set_data_handle(mkldnn_primitive_t memory, void *handle)
For a memory primitive, sets the data handle.
engine(const mkldnn_engine_t &aengine)
Definition: mkldnn.hpp:492
engine(const handle< mkldnn_primitive_desc_t > &pd)
Definition: mkldnn.hpp:495
desc(dims adims, data_type adata_type, format aformat)
Constructs a memory descriptor.
Definition: mkldnn.hpp:616
4D data tensor in the nchw format with channels data laid out in memory in 16-element blocks...
Definition: mkldnn_types.h:132
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, float epsilon, unsigned flags)
Initializes a batch normalization descriptor bnrm_desc for forward propagation using prop_kind...
Definition: mkldnn.hpp:219
mkldnn_inner_product_desc_t data
Definition: mkldnn.hpp:2568
sum(const primitive_desc &sum_pd, std::vector< primitive::at > &inputs, const memory &output)
Definition: mkldnn.hpp:1051
An execution engine.
Definition: mkldnn.hpp:457
memory(const primitive_desc &adesc, void *ahandle)
Definition: mkldnn.hpp:705
mkldnn_inner_product_desc_t data
Definition: mkldnn.hpp:2689
mkldnn_status_t MKLDNN_API mkldnn_post_ops_append_eltwise(mkldnn_post_ops_t post_ops, float scale, mkldnn_alg_kind_t alg, float alpha, float beta)
Appends eltwise post operation to the post_ops with given parameters kind, alpha and beta (...
mkldnn_pooling_desc_t data
Definition: mkldnn.hpp:1885
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:1752
Undefined primitive (XXX: why do we have it?).
Definition: mkldnn_types.h:292
An inner product primitive.
Definition: mkldnn_types.h:320
engine get_engine()
Definition: mkldnn.hpp:1764
Round down.
Definition: mkldnn_types.h:82
convolution-relu descriptor
Definition: mkldnn_types.h:893
Definition: mkldnn.hpp:254
round_mode get_int_output_round_mode() const
Definition: mkldnn.hpp:396
primitive_attr()
Definition: mkldnn.hpp:389
Definition: mkldnn_types.h:357
Definition: mkldnn.hpp:2022
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.
Definition: mkldnn.hpp:2102
void get_params_sum(int index, float &scale) const
Definition: mkldnn.hpp:360
Definition: mkldnn.hpp:241
32-bit signed integer.
Definition: mkldnn_types.h:68
Max pooling.
Definition: mkldnn_types.h:352
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:1143
primitive_desc(const memory::primitive_desc &input, memory::dims dims, memory::dims offsets)
Definition: mkldnn.hpp:838
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...
4D weights tensor in the oihw format with output channels data laid out in memory in 16-element block...
Definition: mkldnn_types.h:155
const post_ops get_post_ops() const
Definition: mkldnn.hpp:430
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:1801
Definition: mkldnn.hpp:303
execution engine
Definition: mkldnn_types.h:869
stream(kind akind)
Constructs a stream.
Definition: mkldnn.hpp:2900
Definition: mkldnn.hpp:837
Definition: mkldnn.hpp:308
desc(const memory::desc &diff_src_desc, const memory::desc &weights_desc, const memory::desc &diff_dst_desc)
Definition: mkldnn.hpp:2690
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.
memory::primitive_desc bias_primitive_desc() const
Definition: mkldnn.hpp:2634
Definition: mkldnn.hpp:1798
engine get_engine()
Definition: mkldnn.hpp:1664
4D weights tensor in the oihw format with input channels data laid out in memory in 16-element blocks...
Definition: mkldnn_types.h:163
static mkldnn_memory_format_t convert_to_c(format aformat)
Definition: mkldnn.hpp:744
memory::primitive_desc bias_primitive_desc() const
Definition: mkldnn.hpp:1209
Definition: mkldnn.hpp:2401
Definition: mkldnn.hpp:295
mkldnn_status_t MKLDNN_API mkldnn_primitive_attr_create(mkldnn_primitive_attr_t *attr)
Creates an empty (default) attr attribute.
primitive_desc(const desc &adesc, const engine &aengine, const batch_normalization_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:2402
A descriptor of a convolution followed by relu operation.
Definition: mkldnn_types.h:699
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.
algorithm
Definition: mkldnn.hpp:249
input memory primitive desc
Definition: mkldnn_types.h:897
5D weights tensor in the oihw format with extra outer dimension for groups.
Definition: mkldnn_types.h:194
Definition: mkldnn.hpp:275
A descriptor of a element-wise operation.
Definition: mkldnn_types.h:522
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:1328
memory::primitive_desc variance_primitive_desc() const
Definition: mkldnn.hpp:2198
An element-wise primitive.
Definition: mkldnn_types.h:308
Definition: mkldnn.hpp:2701
memory::primitive_desc diff_weights_primitive_desc() const
Definition: mkldnn.hpp:1477
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:1340
engine get_engine()
Definition: mkldnn.hpp:2005
memory::primitive_desc diff_bias_primitive_desc() const
Definition: mkldnn.hpp:2823
destination grad.
Definition: mkldnn_types.h:904
engine get_engine()
Definition: mkldnn.hpp:1048
Definition: mkldnn.hpp:2023
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.
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1035
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:1120
Definition: mkldnn.hpp:890
Definition: mkldnn.hpp:267
Definition: mkldnn.hpp:251
eltwise descriptor
Definition: mkldnn_types.h:886
batch_normalization_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst, const memory &mean, const memory &variance, const memory &workspace)
Definition: mkldnn.hpp:2331
Definition: mkldnn.hpp:266
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_or_workspace, const memory &diff_src)
Definition: mkldnn.hpp:2531
lrn_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:1680
size_t MKLDNN_API mkldnn_engine_get_count(mkldnn_engine_kind_t kind)
Returns the number of engines of a particular kind.
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:2767
batch_normalization_flag
Definition: mkldnn.hpp:274
A memory primitive.
Definition: mkldnn_types.h:294
MKLDNN_DEPRECATED desc(prop_kind aprop_kind, const memory::desc &src_desc, T negative_slope)
Definition: mkldnn.hpp:1978
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 1...
Definition: mkldnn_types.h:169
Eltwise: soft_relu.
Definition: mkldnn_types.h:348
Definition: mkldnn.hpp:1305
void set_post_ops(post_ops ops)
Definition: mkldnn.hpp:439
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:2661
Definition: mkldnn.hpp:314
mkldnn_primitive_kind_t MKLDNN_API mkldnn_post_ops_get_kind(const_mkldnn_post_ops_t post_ops, int index)
Returns the type of post operation with index index in given post_ops.
Definition: mkldnn.hpp:337
engine get_engine()
Definition: mkldnn.hpp:2111
Definition: mkldnn.hpp:2688
bool operator==(const handle &other) const
Definition: mkldnn.hpp:87
Definition: mkldnn.hpp:1080
Backward weights propagation.
Definition: mkldnn_types.h:283
void set_int_output_round_mode(round_mode mode)
Definition: mkldnn.hpp:403
primitive_desc(const desc &adesc, const engine &aengine, const inner_product_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:2789
eltwise_forward relu_forward
Definition: mkldnn.hpp:2020
32-bit/single-precision floating point.
Definition: mkldnn_types.h:66
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:1391
pooling_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:1860
2D weights tensor in the format (input channels, output channels).
Definition: mkldnn_types.h:134
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:1919
Omit statistics.
Definition: mkldnn_types.h:400
Memory descriptor.
Definition: mkldnn_types.h:456
Definition: mkldnn.hpp:2567
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:102
mkldnn_batch_normalization_flag_t
Flags for batch-normalization primititve.
Definition: mkldnn_types.h:365
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:1833
convolution_backward_weights(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &diff_dst, const memory &diff_weights)
Definition: mkldnn.hpp:1528
mkldnn_lrn_desc_t data
Definition: mkldnn.hpp:1598
Definition: mkldnn.hpp:2566
desc(prop_kind aprop_kind, const memory::desc &src_desc, T epsilon, unsigned flags)
Definition: mkldnn.hpp:2135
pooling descriptor
Definition: mkldnn_types.h:889
Definition: mkldnn.hpp:1884
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.
prop_kind
Definition: mkldnn.hpp:234
mkldnn_pooling_desc_t data
Definition: mkldnn.hpp:1800
Definition: mkldnn.hpp:257
memory::primitive_desc variance_primitive_desc() const
Definition: mkldnn.hpp:2452
4D weights tensor in the format (output channels, input channels, height, width) with output channels...
Definition: mkldnn_types.h:180
convolution_backward_data(const primitive_desc &aprimitive_desc, const primitive::at &diff_dst, const primitive::at &weights, const memory &diff_src)
Definition: mkldnn.hpp:1355
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:201
5D weights tensor in the oihw format with output channels data laid out in memory in 16-element block...
Definition: mkldnn_types.h:213
Definition: mkldnn.hpp:300
Definition: mkldnn.hpp:239
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:2610
mkldnn_status_t MKLDNN_API mkldnn_primitive_attr_get_int_output_round_mode(const_mkldnn_primitive_attr_t attr, mkldnn_round_mode_t *round_mode)
Returns integer output rounding mode round_mode for a given attr, previously set by mkldnn_primitive_...
primitive_desc(const desc &adesc, const primitive_attr &aattr, const engine &aengine)
Definition: mkldnn.hpp:2600
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:2465
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1992
Backward propagation (with respect to all parameters.
Definition: mkldnn_types.h:279
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:1740
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:2862
softmax descriptor
Definition: mkldnn_types.h:888
mkldnn_round_mode_t
Rounding mode.
Definition: mkldnn_types.h:78
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1620
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1554
Definition: mkldnn.hpp:302
Definition: mkldnn.hpp:265
primitive_desc(const desc &adesc, const engine &aengine)
Constructs a memory primitive descriptor.
Definition: mkldnn.hpp:640
Use global statistics.
Definition: mkldnn_types.h:378
Definition: mkldnn.hpp:31
primitive_desc(int concat_dimension, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:915
4D weights tensor in the format (output channels, width, height, input channels) with output channels...
Definition: mkldnn_types.h:184
no query
Definition: mkldnn_types.h:867
Definition: mkldnn.hpp:2765
5D weights tensor in the blocked version of goihw format with output channels data laid out in memory...
Definition: mkldnn_types.h:238
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:2592
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
Definition: mkldnn.hpp:319
Average pooling include padding.
Definition: mkldnn_types.h:354
Unspecified format.
Definition: mkldnn_types.h:112
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:2751
Definition: mkldnn.hpp:1619
destination memory primitive desc
Definition: mkldnn_types.h:903
memory::primitive_desc mean_primitive_desc() const
Definition: mkldnn.hpp:2178
memory(const primitive_desc &adesc)
Constructs a memory primitive.
Definition: mkldnn.hpp:678
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:1767
Local response normalization (LRN) across multiple channels.
Definition: mkldnn_types.h:359
4D weights tensor in the oihw format with input channels data laid out in memory in 16-element blocks...
Definition: mkldnn_types.h:253
Eager stream.
Definition: mkldnn_types.h:918
primitive_desc(const memory::primitive_desc &input, const memory::primitive_desc &output, const primitive_attr &aattr)
Definition: mkldnn.hpp:791
void set_output_scales(int mask, const std::vector< float > &scales)
Definition: mkldnn.hpp:423
at(const primitive &aprimitive, size_t at=0)
Constructs a wrapper specifying aprimitive output with index at.
Definition: mkldnn.hpp:138
implementation name
Definition: mkldnn_types.h:880
engine get_engine()
Definition: mkldnn.hpp:1513
Definition: mkldnn.hpp:1081
pooling_backward(const primitive_desc &aprimitive_desc, const primitive::at &diff_dst, const memory &diff_src)
Definition: mkldnn.hpp:1934
mkldnn_status_t MKLDNN_API mkldnn_primitive_attr_get_output_scales(const_mkldnn_primitive_attr_t attr, int *count, int *mask, const float **scales)
Returns count, correspondence scale mask, and pointer to a constant floating point array of output sc...
Eltwise: parametric exponential linear unit (elu)
Definition: mkldnn_types.h:336
kind
Kinds of engines.
Definition: mkldnn.hpp:462
Definition: mkldnn.hpp:1693
Definition: mkldnn.hpp:2687
Intel(R) MKL-DNN exception class.
Definition: mkldnn.hpp:157
round_mode
Definition: mkldnn.hpp:217
bool operator==(mkldnn_data_type_t a, memory::data_type b)
Definition: mkldnn.hpp:749
Eltwise: ReLU.
Definition: mkldnn_types.h:332
Definition: mkldnn.hpp:2090
mkldnn_convolution_desc_t data
Definition: mkldnn.hpp:1082
Definition: mkldnn.hpp:227
1D data tensor.
Definition: mkldnn_types.h:118
mkldnn_primitive_at_t data
The underlying C API structure.
Definition: mkldnn.hpp:131
desc(const convolution_forward::desc conv_desc, const float negative_slope)
Definition: mkldnn.hpp:1544
mkldnn_status_t MKLDNN_API mkldnn_primitive_attr_set_post_ops(mkldnn_primitive_attr_t attr, const_mkldnn_post_ops_t post_ops)
Sets configured post_ops to an attribute attr for future use (when primitive descriptor is being crea...
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:2477
4D weights tensor in the format (input channels, height, width, output channels). ...
Definition: mkldnn_types.h:142
mkldnn_eltwise_desc_t data
Definition: mkldnn.hpp:2024
mkldnn_memory_format_t
Memory format specification.
Definition: mkldnn_types.h:107
Definition: mkldnn.hpp:836
Eltwise: square.
Definition: mkldnn_types.h:338
Definition: mkldnn.hpp:964
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:1102
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:848
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, float alpha, float beta)
Initializes a eltwise_desc for forward propagation using prop_kind (possible values are mkldnn_forwar...
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.
engine get_engine()
Definition: mkldnn.hpp:1931
static mkldnn_data_type_t convert_to_c(data_type adata_type)
Definition: mkldnn.hpp:741
4D data tensor in the nhwc format typically used in TensorFlow.
Definition: mkldnn_types.h:124
void set_data_handle(void *handle) const
Definition: mkldnn.hpp:735
batch_normalization_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst, const memory &mean, const memory &variance)
Definition: mkldnn.hpp:2307
Definition: mkldnn.hpp:258
desc(algorithm aalgorithm, const memory::desc &data_desc, const memory::desc &diff_data_desc, int local_size, float alpha, float beta, float k)
Definition: mkldnn.hpp:1695
Backward bias propagation.
Definition: mkldnn_types.h:285
Definition: mkldnn.hpp:780
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, int local_size, float alpha, float beta)
Definition: mkldnn.hpp:1608
5D weights tensor in the goihw format with both input and output channels data laid out in memory in ...
Definition: mkldnn_types.h:247
Use scale and shift parameters.
Definition: mkldnn_types.h:391
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:1197
convolution_relu_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const memory &dst)
Definition: mkldnn.hpp:1578
query
Definition: mkldnn.hpp:286
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.
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:2165
4D weights tensor in the oihw format with input channels data laid out in memory in 8-element blocks...
Definition: mkldnn_types.h:250
5D weights tensor in the oihw format with input channels data laid out in memory in 16-element blocks...
Definition: mkldnn_types.h:217
void get_params_eltwise(int index, float &scale, algorithm &alg, float &alpha, float &beta) const
Definition: mkldnn.hpp:372
primitive_desc(const desc &adesc, const engine &aengine, const inner_product_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:2702
mkldnn_eltwise_desc_t data
Definition: mkldnn.hpp:1964
Definition: mkldnn.hpp:388
5D weights tensor in the blocked version of goihw format with group data laid out in memory in 8-elem...
Definition: mkldnn_types.h:244
reorder(const primitive_desc &aprimitive_desc, const primitive::at &input, const memory &output)
Definition: mkldnn.hpp:804
Definition: mkldnn.hpp:1596
Definition: mkldnn.hpp:891
kind
A proxy to C primitive kind enum.
Definition: mkldnn.hpp:109
A convolution primitive merged with relu.
Definition: mkldnn_types.h:322
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:1465
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, float alpha, float beta)
Initializes a eltwise_desc for backward propagation using alg_kind algorithm memory descriptors diff_...
desc(algorithm aalgorithm, const memory::desc &data_desc, const memory::desc &diff_data_desc, int local_size, float alpha, float beta)
Definition: mkldnn.hpp:1705
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:2055
Definition: mkldnn.hpp:1717
size_t get_size() const
Returns the number of bytes required to allocate the memory described including the padding area...
Definition: mkldnn.hpp:656
mkldnn_status_t MKLDNN_API mkldnn_post_ops_append_sum(mkldnn_post_ops_t post_ops, float scale)
Appends accumulation (sum) post operation to the post_ops.
Definition: mkldnn.hpp:1368
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.
MKLDNN_DEPRECATED primitive_desc(const memory::desc &output, std::vector< double > scale, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:1005
eltwise_backward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &diff_dst, const memory &diff_src)
Definition: mkldnn.hpp:2070
mkldnn_prop_kind_t
Kinds of propagation.
Definition: mkldnn_types.h:263
A wrapper structure to specify a particular output of a primitive.
Definition: mkldnn.hpp:129
CPU engine.
Definition: mkldnn_types.h:720
Definition: mkldnn.hpp:278
desc(algorithm alg_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, T alpha=0, T beta=0)
Definition: mkldnn.hpp:2027
Eltwise: square root.
Definition: mkldnn_types.h:342
mkldnn_stream_kind_t
Kinds of streams.
Definition: mkldnn_types.h:914
Definition: mkldnn.hpp:261
mkldnn_status_t MKLDNN_API mkldnn_primitive_attr_set_int_output_round_mode(mkldnn_primitive_attr_t attr, mkldnn_round_mode_t round_mode)
Sets output rounding mode round_mode for integer operations for a given attr.
4D weights tensor in the format (height, width, input channels, output channels). ...
Definition: mkldnn_types.h:145
A wrapper structure to specify a particular output of a primitive.
Definition: mkldnn_types.h:828
Winograd convolution.
Definition: mkldnn_types.h:330
Definition: mkldnn.hpp:240
A ReLU primitive,.
Definition: mkldnn_types.h:310
Definition: mkldnn.hpp:316
Eltwise: linear.
Definition: mkldnn_types.h:344
reorder(const primitive::at &input, const memory &output)
Definition: mkldnn.hpp:815
Eltwise: logistic.
Definition: mkldnn_types.h:350
Definition: mkldnn.hpp:2386
Direct convolution.
Definition: mkldnn_types.h:328
Definition: mkldnn.hpp:311
Definition: mkldnn.hpp:260
lrn_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &workspace, const memory &dst)
Definition: mkldnn.hpp:1667
source gradient memory primitive desc
Definition: mkldnn_types.h:900
Definition: mkldnn.hpp:1263
mkldnn_batch_normalization_desc_t data
Definition: mkldnn.hpp:2388
Definition: mkldnn.hpp:287
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...
memory::primitive_desc mean_primitive_desc() const
Definition: mkldnn.hpp:2439
engine get_engine()
Definition: mkldnn.hpp:1562
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, int local_size, float alpha, float beta, float k)
Definition: mkldnn.hpp:1599
batch_normalization_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const memory &dst)
Definition: mkldnn.hpp:2362
bool operator!=(const primitive_desc &other) const
Definition: mkldnn.hpp:664
runtime estimation (seconds)
Definition: mkldnn_types.h:875
5D weights tensor in the blocked version of goihw format with output channels data laid out in memory...
Definition: mkldnn_types.h:241
Definition: mkldnn.hpp:1454
bool operator==(const T other) const
Definition: mkldnn.hpp:68
A (in-place) concat primitive.
Definition: mkldnn_types.h:302
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.
primitive_desc get_primitive_desc() const
Returns the descriptor of the memory primitive.
Definition: mkldnn.hpp:715
engine get_engine()
Definition: mkldnn.hpp:2847
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 8...
Definition: mkldnn_types.h:148
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, float epsilon, unsigned flags)
Initializes a batch normalization descriptor bnrm_desc for backward propagation with respect to data ...
Undefined data type, used for empty memory descriptors.
Definition: mkldnn_types.h:64
16-bit signed integer.
Definition: mkldnn_types.h:70
Definition: mkldnn.hpp:1963
primitive_desc()
Definition: mkldnn.hpp:637
int len() const
Definition: mkldnn.hpp:345
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.
primitive_desc(const memory::desc &output, const std::vector< float > &scales, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:976
desc(prop_kind aprop_kind, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc)
Definition: mkldnn.hpp:2580
mkldnn_status_t MKLDNN_API mkldnn_post_ops_get_params_eltwise(const_mkldnn_post_ops_t post_ops, int index, float *scale, mkldnn_alg_kind_t *alg, float *alpha, float *beta)
Gets the eltwise parameters of the post operation with index index in the sequence of post_ops...
Definition: mkldnn.hpp:236
Definition: mkldnn.hpp:2788
mkldnn_status_t MKLDNN_API mkldnn_post_ops_get_params_sum(const_mkldnn_post_ops_t post_ops, int index, float *scale)
Gets the parameters of the accumulation (sum) post operation with index index in the sequence of post...
mkldnn_convolution_desc_t data
Definition: mkldnn.hpp:1264
A (out-of-place) concat primitive.
Definition: mkldnn_types.h:300
primitive_desc(const desc &adesc, const primitive_attr &aattr, const engine &aengine)
Definition: mkldnn.hpp:1175
Fuse with ReLU.
Definition: mkldnn_types.h:409
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:184
static size_t get_count(kind akind)
Returns the number of engines of a certain kind.
Definition: mkldnn.hpp:473
mkldnn_query_t
Primitive descriptor query specification.
Definition: mkldnn_types.h:866
A descriptor of a Batch Normalization operation.
Definition: mkldnn_types.h:639
static engine query(const primitive_desc &pd)
Definition: mkldnn.hpp:505
Definition: mkldnn.hpp:277
A sum primitive.
Definition: mkldnn_types.h:304
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:1316
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:2546
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:232
eltwise_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:2008
unsigned flags
Definition: mkldnn_types.h:666
mkldnn_status_t MKLDNN_API mkldnn_reorder_primitive_desc_create_v2(mkldnn_primitive_desc_t *reorder_primitive_desc, const_mkldnn_primitive_desc_t input, const_mkldnn_primitive_desc_t output, const_mkldnn_primitive_attr_t attr)
Initializes a reorder_primitive_desc using an attr attribute and descriptors of input and output memo...
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:1185
Definition: mkldnn.hpp:250
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:136
memory consumption – extra (scratch) memory, additional to all inputs and outputs memory (bytes) ...
Definition: mkldnn_types.h:876
An batch normalization primitive.
Definition: mkldnn_types.h:318
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
engine(kind akind, size_t index)
Constructs an engine.
Definition: mkldnn.hpp:483
Definition: mkldnn.hpp:1962
A descriptor of a pooling operation.
Definition: mkldnn_types.h:578
primitive_desc(const desc &adesc, const engine &aengine, const convolution_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:1455
Definition: mkldnn.hpp:2889
Definition: mkldnn.hpp:262
Definition: mkldnn.hpp:263
engine get_engine()
Definition: mkldnn.hpp:668
error(mkldnn_status_t astatus, std::string amessage, mkldnn_primitive_t aerror_primitive=0)
Constructs an error instance.
Definition: mkldnn.hpp:169
std::vector< const_mkldnn_primitive_desc_t > cpp_to_c(std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:966
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:1501
primitive_desc(const memory::primitive_desc &input, const memory::primitive_desc &output)
Definition: mkldnn.hpp:782
mkldnn_memory_desc_t data
The underlying C API data structure.
Definition: mkldnn.hpp:609
engine get_engine()
Definition: mkldnn.hpp:801
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1167
int MKLDNN_API mkldnn_primitive_desc_query_s32(const_mkldnn_primitive_desc_t primitive_desc, mkldnn_query_t what, int index)
Queries primitive descriptor for signed 32bit int.
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:259
Definition: mkldnn.hpp:1983
desc(const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_dst_desc)
Definition: mkldnn.hpp:2777
source memory primitive desc
Definition: mkldnn_types.h:899
mkldnn_primitive_kind_t
Kinds of primitives.
Definition: mkldnn_types.h:290
engine get_engine()
Definition: mkldnn.hpp:1352
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1221
Definition: mkldnn.hpp:242
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:2230
number of inputs expected
Definition: mkldnn_types.h:872
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:2103
mkldnn_softmax_desc_t data
Definition: mkldnn.hpp:2092
Definition: mkldnn.hpp:318
Definition: mkldnn.hpp:2387
Definition: mkldnn.hpp:2132
desc(prop_kind aprop_kind, algorithm alg_kind, const memory::desc &src_desc, T alpha=0, T beta=0)
Definition: mkldnn.hpp:1966
An unspecified engine.
Definition: mkldnn_types.h:916
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:728
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:2413
A view primitive.
Definition: mkldnn_types.h:296
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.
Definition: mkldnn.hpp:252
4D weights tensor in the format (output channels, input channels, height, width) with output channels...
Definition: mkldnn_types.h:176
Definition: mkldnn.hpp:309
mkldnn_primitive_kind_t convert_to_c(primitive::kind akind)
Definition: mkldnn.hpp:149
Definition: mkldnn.hpp:1369
Definition: mkldnn.hpp:313
Definition: mkldnn.hpp:304
Definition: mkldnn.hpp:298
Definition: mkldnn.hpp:306
Average pooling exclude padding.
Definition: mkldnn_types.h:356
mkldnn_status_t MKLDNN_API mkldnn_primitive_attr_get_post_ops(const_mkldnn_primitive_attr_t attr, const_mkldnn_post_ops_t *post_ops)
Returns post_ops for given attr.
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.
primitive::kind kind(int index) const
Definition: mkldnn.hpp:347
Forward data propagation (inference mode).
Definition: mkldnn_types.h:273
A class that provides the destructor for an Intel(R) MKL-DNN C handle.
Definition: mkldnn.hpp:40
data_type
Data type specification. See mkldnn_data_type_t for a detailed description.
Definition: mkldnn.hpp:545
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:2260
Eltwise: abs.
Definition: mkldnn_types.h:340
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:2280
5D weights tensor in the oihw format with output channels data laid out in memory in 16-element block...
Definition: mkldnn_types.h:209
pooling_backward(const primitive_desc &aprimitive_desc, const primitive::at &diff_dst, const primitive::at &workspace, const memory &diff_src)
Definition: mkldnn.hpp:1945
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 1...
Definition: mkldnn_types.h:151
A memory descriptor.
Definition: mkldnn.hpp:606
5D weights tensor in the hwio format with extra dimension for groups that comes after the output chan...
Definition: mkldnn_types.h:197
5D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:221
bool operator!=(mkldnn_data_type_t a, memory::data_type b)
Definition: mkldnn.hpp:752
handle(T t=0, bool weak=false)
Constructs a C handle wrapper.
Definition: mkldnn.hpp:64
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...
engine get_engine()
Definition: mkldnn.hpp:2748
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: mkldnn_types.h:334
mkldnn_inner_product_desc_t data
Definition: mkldnn.hpp:2766
mkldnn_status_t status
Definition: mkldnn.hpp:158
eltwise_backward relu_backward
Definition: mkldnn.hpp:2083
T get() const
Returns the value of the underlying C handle.
Definition: mkldnn.hpp:85
mkldnn_status_t MKLDNN_API mkldnn_engine_destroy(mkldnn_engine_t engine)
Destroys an engine.
view(const primitive_desc &view_pd, primitive::at input)
Definition: mkldnn.hpp:864
2D data tensor.
Definition: mkldnn_types.h:120
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:2569
mkldnn_status_t MKLDNN_API mkldnn_dilated_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 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 backward propagation with respect to data ...
bool wait(bool block=true)
Waits for all computations submitted to the stream to complete.
Definition: mkldnn.hpp:2939
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, float alpha, float beta, float k)
Initializes an lrn_desc for backward propagation using alg_kind, memory descriptors data_desc...
memory descriptor for memory and view
Definition: mkldnn_types.h:884
view(memory input, memory::dims dims, memory::dims offsets)
Definition: mkldnn.hpp:873
Definition: mkldnn.hpp:1166
Definition: mkldnn.hpp:256
An LRN primitive.
Definition: mkldnn_types.h:316
mkldnn_padding_kind_t
Kinds of padding.
Definition: mkldnn_types.h:257
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:2724
Lazy stream.
Definition: mkldnn_types.h:920
Definition: mkldnn.hpp:305
5D weights tensor in the blocked version of goihw format with output channels data laid out in memory...
Definition: mkldnn_types.h:235
void get_output_scales(int &mask, std::vector< float > &scales) const
Definition: mkldnn.hpp:409
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1652
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.
memory::primitive_desc diff_weights_primitive_desc() const
Definition: mkldnn.hpp:2426
Definition: mkldnn.hpp:2764
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:1628
Forward data propagation (training mode).
Definition: mkldnn_types.h:269
Definition: mkldnn.hpp:317
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:2736
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:2850
mkldnn_convolution_desc_t data
Definition: mkldnn.hpp:1370
memory(const primitive &aprimitive)
Constructs a memory primitive from a generic primitive.
Definition: mkldnn.hpp:674
engine get_engine()
Definition: mkldnn.hpp:940
post_ops()
Definition: mkldnn.hpp:338
An opaque structure to describe a primitive.
mkldnn_status_t MKLDNN_API mkldnn_primitive_desc_create_v2(mkldnn_primitive_desc_t *primitive_desc, const_mkldnn_op_desc_t op_desc, const_mkldnn_primitive_attr_t attr, mkldnn_engine_t engine, const_mkldnn_primitive_desc_t hint_forward_primitive_desc)
Creates a primitive_desc using op_desc, attr, engine, and optionally a hint primitive descriptor from...
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 primitive::at &workspace, const memory &diff_src, const memory &diff_weights)
Definition: mkldnn.hpp:2511
A tensor in a generic format described by the stride and blocking values in each dimension.
Definition: mkldnn_types.h:116
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:1083
mkldnn_data_type_t
Data type specification.
Definition: mkldnn_types.h:62
Definition: mkldnn.hpp:1262
Definition: mkldnn.hpp:293
convolution descriptor
Definition: mkldnn_types.h:885
primitive_desc(const desc &adesc, const engine &aengine, const convolution_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:1306
A memory primitive descriptor.
Definition: mkldnn.hpp:633
Definition: mkldnn.hpp:289
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, float alpha, float beta, float k)
Initializes an lrn_desc for forward propagation using prop_kind (possible values are mkldnn_forward_t...
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:1728
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:1565
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1825
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 1...
Definition: mkldnn_types.h:191
handle & operator=(const handle &other)
Definition: mkldnn.hpp:72
batch_normalization_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:2374
Eltwise: bounded_relu.
Definition: mkldnn_types.h:346
Definition: mkldnn.hpp:2091
primitive_desc(const desc &adesc, const engine &aengine, const eltwise_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:2045
convolution_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const memory &dst)
Definition: mkldnn.hpp:1249
mkldnn_engine_kind_t
Kinds of engines.
Definition: mkldnn_types.h:716
bool operator!=(const T other) const
Definition: mkldnn.hpp:69
engine get_engine()
Definition: mkldnn.hpp:2243
engine get_engine()
Definition: mkldnn.hpp:1857
Memory primitive that describes the data.
Definition: mkldnn.hpp:530
engine get_engine()
Definition: mkldnn.hpp:2067
Definition: mkldnn.hpp:301
Definition: mkldnn.hpp:1692
Round nearest.
Definition: mkldnn_types.h:80
Definition: mkldnn.hpp:237
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:2494
static mkldnn_stream_kind_t convert_to_c(kind akind)
Definition: mkldnn.hpp:2896
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:928
Definition: mkldnn.hpp:2131
pooling_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst, const memory &workspace)
Definition: mkldnn.hpp:1871
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:1236
A reorder primitive.
Definition: mkldnn_types.h:298
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, float negative_slope)
Initializes a merged convolution-relu descriptor conv_relu_desc for forward propagation (supported in...
primitive_desc(const std::vector< float > &scales, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:990
5D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:225
An unspecified engine.
Definition: mkldnn_types.h:718
desc(const mkldnn_memory_desc_t &adata)
Constructs a memory descriptor from a C API data structure.
Definition: mkldnn.hpp:629
Definition: mkldnn.hpp:1553
Definition: mkldnn.hpp:965
int MKLDNN_API mkldnn_post_ops_len(const_mkldnn_post_ops_t post_ops)
Returns the length of post operations for given post_ops.
engine get_engine()
Definition: mkldnn.hpp:861
mkldnn_convolution_relu_desc_t data
Definition: mkldnn.hpp:1543
5D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:229
5D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:205
mkldnn_alg_kind_t
Kinds of algorithms.
Definition: mkldnn_types.h:326
Definition: mkldnn.hpp:253
inner product descriptor
Definition: mkldnn_types.h:892
A pooling primitive.
Definition: mkldnn_types.h:314
weights memory primitive descriptor desc
Definition: mkldnn_types.h:901
output memory primitive desc
Definition: mkldnn_types.h:898
Definition: mkldnn.hpp:1908
mkldnn_batch_normalization_desc_t data
Definition: mkldnn.hpp:2133
Definition: mkldnn.hpp:781
mkldnn_status_t MKLDNN_API mkldnn_primitive_destroy(mkldnn_primitive_t primitive)
Deletes a primitive.
Definition: mkldnn.hpp:307
std::string message
Definition: mkldnn.hpp:159
Definition: mkldnn.hpp:2145
Definition: mkldnn.hpp:290
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:2835
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 8...
Definition: mkldnn_types.h:166
handle(const handle &other)
Definition: mkldnn.hpp:71
Forward data propagation (alias for mkldnn_forward_training)
Definition: mkldnn_types.h:277
mkldnn_status_t MKLDNN_API mkldnn_primitive_attr_set_output_scales(mkldnn_primitive_attr_t attr, int count, int mask, const float *scales)
Sets output scales for primitive operations.
Definition: mkldnn.hpp:235
lrn descriptor
Definition: mkldnn_types.h:890
workspace memory primitive desc
Definition: mkldnn_types.h:905
lrn_backward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &diff_dst, const memory &diff_src)
Definition: mkldnn.hpp:1780
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 dilates, const memory::dims padding_l, const memory::dims padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:1431
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...
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:2712
desc(prop_kind aprop_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, T epsilon, unsigned flags)
Definition: mkldnn.hpp:2390
Definition: mkldnn.hpp:218
primitive_desc(const desc &adesc, const primitive_attr &aattr, const engine &aengine)
Definition: mkldnn.hpp:2154
Definition: mkldnn_types.h:887
weights grad.
Definition: mkldnn_types.h:902
4D data tensor in the nchw format typically used in Caffe.
Definition: mkldnn_types.h:122
Definition: mkldnn.hpp:296
void append_eltwise(float scale, algorithm alg, float alpha, float beta)
Definition: mkldnn.hpp:365
primitive kind
Definition: mkldnn_types.h:870
4D weights tensor in the oihw format with output channels data laid out in memory in 16-element block...
Definition: mkldnn_types.h:159
Definition: mkldnn.hpp:292
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:2646
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:1886
Definition: mkldnn.hpp:1541
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, const memory &workspace)
Definition: mkldnn.hpp:2293
kind
Definition: mkldnn.hpp:2892
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:1265
Definition: mkldnn.hpp:312
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...