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;
158 struct error:
public std::exception {
171 mkldnn_primitive_t aerror_primitive = 0)
174 , error_primitive(aerror_primitive, true)
187 mkldnn_primitive_t *error_primitive = 0)
190 if (
nullptr != error_primitive)
191 throw error(status, message, *error_primitive);
193 throw error(status, message,
nullptr);
202 data.output_index, &output),
203 "could not get an output primitive");
204 return primitive(const_cast<mkldnn_primitive_t>(output),
true);
210 "could not get primitive descriptor by primitive");
358 #ifndef DOXYGEN_SHOULD_SKIP_THIS 366 mkldnn_post_ops_t result;
368 "could not create post operation sequence");
377 "post_ops index is out of range");
384 "could not append sum");
389 "could not get sum params");
396 "could not append eltwise");
400 float &alpha,
float &beta)
const {
403 &scale, &c_alg, &alpha, &beta),
404 "could not get eltwise params");
409 #ifndef DOXYGEN_SHOULD_SKIP_THIS 417 mkldnn_primitive_attr_t result;
419 "could not create a primitive attr");
426 get(), &result),
"could not get int output round mode");
433 "could not set int output round mode");
439 const float *c_scales;
441 &count, &c_mask, &c_scales),
442 "could not get int output scales");
443 scales.resize(count);
446 for (
int c = 0; c < count; ++c)
447 scales[c] = c_scales[c];
453 (
int)scales.size(), mask, &scales[0]),
454 "could not set int output scales");
461 "could not get post operation sequence");
462 result.
reset(const_cast<mkldnn_post_ops_t>(c_result),
true);
468 "could not set post operation sequence");
480 #ifndef DOXYGEN_SHOULD_SKIP_THIS 514 mkldnn_engine_t aengine;
518 "could not create an engine");
522 explicit engine(
const mkldnn_engine_t& aengine)
523 :
handle(aengine, true) {}
526 mkldnn_engine_t engine_q;
530 "could not get engine from primitive_desc");
531 reset(engine_q,
true);
534 template <
class primitive_desc>
536 mkldnn_engine_t engine_q;
540 "could not get engine from primitive_desc");
565 std::shared_ptr<char> _handle;
568 typedef std::vector<std::remove_extent<mkldnn_dims_t>::type>
dims;
573 "invalid dimensions");
678 validate_dims(adims);
681 adims.size() == 0 ? nullptr : &adims[0],
683 "could not initialize a memory descriptor");
701 mkldnn_primitive_desc_t result;
705 "could not initialize a memory primitive descriptor");
740 mkldnn_primitive_t result;
743 "could not create a memory primitive");
745 auto _malloc = [](
size_t size,
int alignment) {
748 ptr = _aligned_malloc(size, alignment);
749 int rc = ((ptr)? 0 : errno);
751 int rc = ::posix_memalign(&ptr, alignment, size);
753 return (rc == 0) ? (
char*)ptr :
nullptr;
755 auto _free = [](
char* p) {
757 _aligned_free((
void*)p);
762 _handle.reset(_malloc(adesc.
get_size(), 4096), _free);
763 set_data_handle(_handle.get());
767 mkldnn_primitive_t result;
770 "could not create a memory primitive");
772 set_data_handle(ahandle);
781 "could not get primitive descriptor from a memory primitive");
783 adesc.
reset(const_cast<mkldnn_primitive_desc_t>(cdesc),
true);
792 "could not get native handle");
798 "could not set native handle");
822 &aprimitive_desc,
int n_inputs,
int n_outputs,
823 const std::string &prim_name) {
828 if (n_outputs_expected > n_outputs ) {
829 std::string message =
"could not create " + prim_name +
830 " primitive, not enought output parameters";
833 if (n_inputs_expected > n_inputs ) {
834 std::string message =
"could not create " + prim_name +
835 " primitive, not enought input parameters";
847 return ((aprimitive_md !=
nullptr) && (aprimitive_md->
ndims == 0));
888 mkldnn_primitive_desc_t result;
890 &result, input.
get(), output.
get()),
891 "could not create a reorder primitive descriptor");
898 mkldnn_primitive_desc_t result;
900 &result, input.
get(), output.
get(), aattr.
get()),
901 "could not create a reorder primitive descriptor");
910 mkldnn_primitive_t result;
914 aprimitive_desc.
get(), inputs, outputs),
915 "could not create a reorder primitive");
925 mkldnn_primitive_t result;
929 reorder_d.get(), inputs, outputs),
930 "could not create a reorder primitive");
947 mkldnn_primitive_desc_t result;
950 &result, input.
get(), &dims[0], &offsets[0]),
951 "could not create a view primitive descriptor");
957 mkldnn_primitive_desc_t cdesc;
963 "could not clone a dst primitive descriptor");
972 mkldnn_primitive_t result;
975 view_pd.
get(), inputs,
nullptr),
976 "could not create a view primitive");
981 mkldnn_primitive_t result;
986 view_pd.get(), inputs,
nullptr),
987 "could not create a view primitive");
1003 std::vector<memory::primitive_desc> inputs) {
1004 std::vector<const_mkldnn_primitive_desc_t> c_api_inputs;
1005 c_api_inputs.reserve(inputs.size());
1007 std::transform(inputs.begin(), inputs.end(),
1009 return c_api_inputs;
1013 std::vector<memory::primitive_desc> inputs) {
1014 mkldnn_primitive_desc_t result;
1016 auto c_api_inputs = cpp_to_c(inputs);
1019 &result, &output.
data, (
int)c_api_inputs.size(),
1020 concat_dimension, &c_api_inputs[0]),
1021 "could not create a concat primitive descriptor");
1026 std::vector<memory::primitive_desc> inputs) {
1027 mkldnn_primitive_desc_t result;
1029 auto c_api_inputs = cpp_to_c(inputs);
1032 &result,
nullptr, (
int)c_api_inputs.size(),
1033 concat_dimension, &c_api_inputs[0]),
1034 "could not create a concat primitive descriptor");
1040 mkldnn_primitive_desc_t cdesc;
1045 "could not clone a dst primitive descriptor");
1054 std::vector<primitive::at> &inputs,
const memory &output) {
1055 mkldnn_primitive_t result;
1057 std::vector<mkldnn_primitive_at_t> p_inputs;
1058 for (
size_t i = 0; i < inputs.size(); i++)
1059 p_inputs.push_back(inputs[i].data);
1063 concat_pd.
get(), &p_inputs[0], outputs),
1064 "could not create a concat primitive");
1080 std::vector<memory::primitive_desc> inputs) {
1081 std::vector<const_mkldnn_primitive_desc_t> c_api_inputs;
1082 c_api_inputs.reserve(inputs.size());
1084 std::transform(inputs.begin(), inputs.end(),
1086 return c_api_inputs;
1090 const std::vector<float> &scales,
1091 std::vector<memory::primitive_desc> inputs) {
1092 mkldnn_primitive_desc_t result;
1094 auto c_api_inputs = cpp_to_c(inputs);
1097 &result, &output.
data, (
int)c_api_inputs.size(),
1098 &scales[0], &c_api_inputs[0]),
1099 "could not create a sum primitive descriptor");
1104 std::vector<memory::primitive_desc> inputs) {
1105 mkldnn_primitive_desc_t result;
1107 auto c_api_inputs = cpp_to_c(inputs);
1110 &result,
nullptr, (
int)c_api_inputs.size(), &scales[0],
1112 "could not create a sum primitive descriptor");
1119 std::vector<memory::primitive_desc> inputs) {
1120 mkldnn_primitive_desc_t result;
1122 auto c_api_inputs = cpp_to_c(inputs);
1123 auto scale_f = scale_to_float(scale);
1126 &result, &output.
data, (
int)c_api_inputs.size(),
1127 &scale_f[0], &c_api_inputs[0]),
1128 "could not create a sum primitive descriptor");
1135 std::vector<memory::primitive_desc> inputs) {
1136 mkldnn_primitive_desc_t result;
1138 auto c_api_inputs = cpp_to_c(inputs);
1139 auto scale_f = scale_to_float(scale);
1142 &result,
nullptr, (
int)c_api_inputs.size(), &scale_f[0],
1144 "could not create a sum primitive descriptor");
1150 mkldnn_primitive_desc_t cdesc;
1156 "could not clone a dst primitive descriptor");
1165 std::vector<primitive::at> &inputs,
const memory &output) {
1166 mkldnn_primitive_t result;
1168 std::vector<mkldnn_primitive_at_t> p_inputs;
1169 for (
size_t i = 0; i < inputs.size(); i++)
1170 p_inputs.push_back(inputs[i].data);
1174 sum_pd.
get(), &p_inputs[0], outputs),
1175 "could not create a sum primitive");
1180 static std::vector<float> scale_to_float(
const std::vector<double> &vd) {
1181 std::vector<float> vf(vd.size());
1182 std::transform(vd.begin(), vd.end(), vf.begin(),
1183 [=](
double x){
return (
float)x;});
1214 &dst_desc.
data, &strides[0], &padding_l[0], &padding_r[0],
1216 "could not create a convolution forward descriptor");
1231 &src_desc.
data, &weights_desc.
data,
nullptr,
1232 &dst_desc.
data, &strides[0], &padding_l[0], &padding_r[0],
1234 "could not create a convolution forward descriptor");
1254 &dst_desc.
data, &strides[0], &dilates[0],
1255 &padding_l[0], &padding_r[0],
1257 "could not create a dilated convolution forward descriptor");
1275 &src_desc.
data, &weights_desc.
data,
nullptr,
1276 &dst_desc.
data, &strides[0], &dilates[0],
1277 &padding_l[0], &padding_r[0],
1279 "could not create a dilated convolution forward descriptor");
1284 mkldnn_primitive_desc_t result;
1286 &result, &adesc.
data, aengine.
get(),
nullptr),
1287 "could not create a convolution forward primitive descriptor");
1293 mkldnn_primitive_desc_t result;
1295 &result, &adesc.
data, aattr.
get(),
1296 aengine.
get(),
nullptr),
1297 "could not create a convolution forward primitive descriptor");
1303 mkldnn_primitive_desc_t cdesc;
1308 "could not clone a src primititve descriptor");
1315 mkldnn_primitive_desc_t cdesc;
1320 "could not clone a weights primitive descriptor");
1327 mkldnn_primitive_desc_t cdesc;
1332 "could not clone a bias primitive descriptor");
1339 mkldnn_primitive_desc_t cdesc;
1344 "could not clone a dst primitive descriptor");
1355 mkldnn_primitive_t result;
1360 aprimitive_desc.
get(), inputs, outputs),
1361 "could not create a convolution forward bias primitive");
1368 mkldnn_primitive_t result;
1372 "convolution forward");
1374 aprimitive_desc.
get(), inputs, outputs),
1375 "could not create a convolution forward primitive");
1396 &weights_desc.
data, &diff_dst_desc.
data,
1397 &strides[0], &padding_l[0], &padding_r[0],
1399 "could not create a convolution backward data descriptor");
1417 &weights_desc.
data, &diff_dst_desc.
data,
1418 &strides[0], &dilates[0], &padding_l[0], &padding_r[0],
1420 "could not create a convolution backward data descriptor");
1426 &hint_fwd_primitive_desc) {
1427 mkldnn_primitive_desc_t result;
1429 &result, &adesc.
data, aengine.
get(),
1430 hint_fwd_primitive_desc.
get()),
1431 "could not create a convolution backward data primitive descriptor");
1436 mkldnn_primitive_desc_t cdesc;
1441 "could not clone a diff_src primititve descriptor");
1448 mkldnn_primitive_desc_t cdesc;
1453 "could not clone a weights primitive descriptor");
1460 mkldnn_primitive_desc_t cdesc;
1465 "could not clone a diff_dst primitive descriptor");
1475 const memory &diff_src) {
1476 mkldnn_primitive_t result;
1480 "convolution backward data");
1482 aprimitive_desc.
get(), inputs, outputs),
1483 "could not create a convolution backward data primitive");
1505 &diff_weights_desc.
data, &diff_bias_desc.
data,
1506 &diff_dst_desc.
data,
1507 &strides[0], &padding_l[0], &padding_r[0],
1509 "could not create a convolution backward weights descriptor");
1524 &diff_weights_desc.
data,
nullptr, &diff_dst_desc.
data,
1525 &strides[0], &padding_l[0], &padding_r[0],
1527 "could not create a convolution backward weights descriptor");
1545 &diff_weights_desc.
data, &diff_bias_desc.
data,
1546 &diff_dst_desc.
data,
1547 &strides[0], &dilates[0], &padding_l[0], &padding_r[0],
1549 "could not create a convolution backward weights descriptor");
1566 &diff_weights_desc.
data,
nullptr, &diff_dst_desc.
data,
1567 &strides[0], &dilates[0], &padding_l[0], &padding_r[0],
1569 "could not create a convolution backward weights descriptor");
1577 &hint_fwd_primitive_desc) {
1578 mkldnn_primitive_desc_t result;
1580 &result, &adesc.
data, aengine.
get(),
1581 hint_fwd_primitive_desc.
get()),
1582 "could not create a convolution backward weights primitive descriptor");
1587 mkldnn_primitive_desc_t cdesc;
1592 "could not clone a src primititve descriptor");
1599 mkldnn_primitive_desc_t cdesc;
1604 "could not clone a diff_weights primitive descriptor");
1611 mkldnn_primitive_desc_t cdesc;
1616 "could not clone a diff_bias primitive descriptor");
1623 mkldnn_primitive_desc_t cdesc;
1628 "could not clone a diff_dst primitive descriptor");
1639 mkldnn_primitive_t result;
1644 "convolution backward weights");
1646 aprimitive_desc.
get(), inputs, outputs),
1647 "could not create a convolution backward weights primitive");
1652 const memory &diff_weights) {
1653 mkldnn_primitive_t result;
1657 "convolution backward weights");
1659 aprimitive_desc.
get(), inputs, outputs),
1660 "could not create a convolution backward weights primitive");
1674 const float negative_slope) {
1676 &conv_desc.
data, negative_slope),
1677 "could not create a convolution_relu_forward descriptor");
1683 mkldnn_primitive_desc_t result;
1685 &result, &adesc.
data, aengine.
get(),
nullptr),
1686 "could not create a convolution relu forward descriptor");
1698 mkldnn_primitive_t result;
1703 "convolution relu forward");
1705 aprimitive_desc.
get(), inputs, outputs),
1706 "could not create a convolution relu forward primitive");
1715 mkldnn_primitive_t result;
1719 "convolution relu forward");
1721 aprimitive_desc.
get(), inputs, outputs),
1722 "could not create a convolution relu forward primitive");
1753 &dst_desc.
data, &strides[0], &padding_l[0], &padding_r[0],
1755 "could not create a deconvolution forward descriptor");
1770 &src_desc.
data, &weights_desc.
data,
nullptr,
1771 &dst_desc.
data, &strides[0], &padding_l[0], &padding_r[0],
1773 "could not create a deconvolution forward descriptor");
1792 &dst_desc.
data, &strides[0], &dilates[0], &padding_l[0],
1794 "could not create a dilated deconvolution forward descriptor");
1811 &src_desc.
data, &weights_desc.
data,
nullptr,
1812 &dst_desc.
data, &strides[0], &dilates[0], &padding_l[0],
1814 "could not create a dilated deconvolution forward descriptor");
1819 mkldnn_primitive_desc_t result;
1821 &result, &adesc.
data, aengine.
get(),
nullptr),
1822 "could not create a deconvolution forward primitive descriptor");
1828 mkldnn_primitive_desc_t result;
1830 &result, &adesc.
data, aattr.
get(),
1831 aengine.
get(),
nullptr),
1832 "could not create a deconvolution forward primitive descriptor");
1838 mkldnn_primitive_desc_t cdesc;
1843 "could not clone a src primititve descriptor");
1850 mkldnn_primitive_desc_t cdesc;
1855 "could not clone a weights primitive descriptor");
1862 mkldnn_primitive_desc_t cdesc;
1867 "could not clone a bias primitive descriptor");
1874 mkldnn_primitive_desc_t cdesc;
1879 "could not clone a dst primitive descriptor");
1890 mkldnn_primitive_t result;
1895 "deconvolution forward");
1897 aprimitive_desc.
get(), inputs, outputs),
1898 "could not create a deconvolution forward bias primitive");
1905 mkldnn_primitive_t result;
1909 "deconvolution forward");
1911 aprimitive_desc.
get(), inputs, outputs),
1912 "could not create a deconvolution forward primitive");
1933 &weights_desc.
data, &diff_dst_desc.
data,
1934 &strides[0], &padding_l[0], &padding_r[0],
1936 "could not create a deconvolution backward data descriptor");
1953 &weights_desc.
data, &diff_dst_desc.
data,
1954 &strides[0], &dilates[0], &padding_l[0], &padding_r[0],
1956 "could not create a dilated deconvolution backward data descriptor");
1962 &hint_fwd_primitive_desc) {
1963 mkldnn_primitive_desc_t result;
1965 &result, &adesc.
data, aengine.
get(),
1966 hint_fwd_primitive_desc.
get()),
1967 "could not create a deconvolution backward data primitive descriptor");
1972 mkldnn_primitive_desc_t cdesc;
1977 "could not clone a diff_src primititve descriptor");
1984 mkldnn_primitive_desc_t cdesc;
1989 "could not clone a weights primitive descriptor");
1996 mkldnn_primitive_desc_t cdesc;
2001 "could not clone a diff_dst primitive descriptor");
2011 const memory &diff_src) {
2012 mkldnn_primitive_t result;
2016 "deconvolution backward data");
2018 aprimitive_desc.
get(), inputs, outputs),
2019 "could not create a deconvolution backward data primitive");
2041 &diff_weights_desc.
data, &diff_bias_desc.
data,
2042 &diff_dst_desc.
data,
2043 &strides[0], &padding_l[0], &padding_r[0],
2045 "could not create a deconvolution backward weights descriptor");
2060 &diff_weights_desc.
data,
nullptr, &diff_dst_desc.
data,
2061 &strides[0], &padding_l[0], &padding_r[0],
2063 "could not create a deconvolution backward weights descriptor");
2081 &diff_weights_desc.
data, &diff_bias_desc.
data,
2082 &diff_dst_desc.
data,
2083 &strides[0], &dilates[0], &padding_l[0], &padding_r[0],
2085 "could not create a dilated deconvolution backward weights descriptor");
2102 &diff_weights_desc.
data,
nullptr, &diff_dst_desc.
data,
2103 &strides[0], &dilates[0], &padding_l[0], &padding_r[0],
2105 "could not create a dilated deconvolution backward weights descriptor");
2112 &hint_fwd_primitive_desc) {
2113 mkldnn_primitive_desc_t result;
2115 &result, &adesc.
data, aengine.
get(),
2116 hint_fwd_primitive_desc.
get()),
2117 "could not create a deconvolution backward weights primitive descriptor");
2122 mkldnn_primitive_desc_t cdesc;
2127 "could not clone a src primititve descriptor");
2134 mkldnn_primitive_desc_t cdesc;
2139 "could not clone a diff_weights primitive descriptor");
2146 mkldnn_primitive_desc_t cdesc;
2151 "could not clone a diff_bias primitive descriptor");
2158 mkldnn_primitive_desc_t cdesc;
2163 "could not clone a diff_dst primitive descriptor");
2174 mkldnn_primitive_t result;
2179 "deconvolution backward weights");
2181 aprimitive_desc.
get(), inputs, outputs),
2182 "could not create a deconvolution backward weights primitive");
2187 const memory &diff_weights) {
2188 mkldnn_primitive_t result;
2192 "deconvolution backward weights");
2194 aprimitive_desc.
get(), inputs, outputs),
2195 "could not create a deconvolution backward weights primitive");
2214 int local_size,
float alpha,
float beta,
float k)
2218 &src_desc.
data, local_size, alpha, beta, k),
2219 "could not create a lrn forward descriptor");
2223 int local_size,
float alpha,
float beta)
2227 &src_desc.
data, local_size, alpha, beta,
float(1.0)),
2228 "could not create a lrn forward descriptor");
2234 mkldnn_primitive_desc_t result;
2236 &result, &adesc.
data, aengine.
get(),
nullptr),
2237 "could not create a lrn forward primitive descriptor");
2243 mkldnn_primitive_desc_t cdesc;
2248 "could not clone a src primitive descriptor");
2255 mkldnn_primitive_desc_t ldesc;
2260 "could not clone a workspace primitive descriptor");
2267 mkldnn_primitive_desc_t cdesc;
2272 "could not clone a dst primitive descriptor");
2283 mkldnn_primitive_t result;
2289 aprimitive_desc.
get(), inputs, outputs),
2290 "could not create a lrn forward primitive");
2296 mkldnn_primitive_t result;
2301 aprimitive_desc.
get(), inputs, outputs),
2302 "could not create a lrn forward primitive");
2313 int local_size,
float alpha,
float beta,
float k)
2317 &data_desc.
data, local_size, alpha, beta, k),
2318 "could not create a lrn backward descriptor");
2323 int local_size,
float alpha,
float beta)
2327 &data_desc.
data, local_size, alpha, beta,
float(1.0)),
2328 "could not create a lrn backward descriptor");
2335 mkldnn_primitive_desc_t result;
2337 &result, &adesc.
data, aengine.
get(),
2338 hint_fwd_primitive_desc.
get()),
2339 "could not create a backward lrn primitive descriptor");
2345 mkldnn_primitive_desc_t cdesc;
2350 "could not clone a diff_src primitive descriptor");
2357 mkldnn_primitive_desc_t ldesc;
2362 "could not clone a workspace primitive descriptor");
2369 mkldnn_primitive_desc_t cdesc;
2374 "could not clone a diff_dst primitive descriptor");
2385 mkldnn_primitive_t result;
2391 aprimitive_desc.
get(), inputs, outputs),
2392 "could not create a lrn backward primitive");
2398 const memory &diff_src) {
2399 mkldnn_primitive_t result;
2404 aprimitive_desc.
get(), inputs, outputs),
2405 "could not create a lrn backward primitive");
2437 &strides[0], &kernel[0],
2438 &padding_l[0], &padding_r[0],
2440 "could not init a forward pooling descriptor");
2446 mkldnn_primitive_desc_t result;
2448 &result, &adesc.
data, aengine.
get(),
nullptr),
2449 "could not create a forward pooling primitive descriptor");
2455 mkldnn_primitive_desc_t cdesc;
2460 "could not clone a workspace primititve descriptor");
2467 mkldnn_primitive_desc_t cdesc;
2472 "could not clone a dst primitive descriptor");
2479 mkldnn_primitive_desc_t cdesc;
2484 "could not clone a src primitive descriptor");
2494 mkldnn_primitive_t result;
2499 aprimitive_desc.
get(), inputs, outputs),
2500 "could not create a pooling forward primitive");
2506 mkldnn_primitive_t result;
2511 aprimitive_desc.
get(), inputs, outputs),
2512 "could not create a pooling forward primitive");
2534 &diff_src_desc.
data, &diff_dst_desc.
data,
2535 &strides[0], &kernel[0],
2536 &padding_l[0], &padding_r[0],
2538 "could not init a backward pooling descriptor");
2545 mkldnn_primitive_desc_t result;
2547 &result, &adesc.
data, aengine.
get(),
2548 hint_fwd_primitive_desc.
get()),
2549 "could not create a backward pooling primitive descriptor");
2555 mkldnn_primitive_desc_t cdesc;
2560 "could not clone a diff src primitive descriptor");
2567 mkldnn_primitive_desc_t cdesc;
2572 "could not clone a diff dst primitive descriptor");
2581 const memory &diff_src) {
2582 mkldnn_primitive_t result;
2587 aprimitive_desc.
get(), inputs, outputs),
2588 "could not create a pooling backward primitive");
2594 mkldnn_primitive_t result;
2599 aprimitive_desc.
get(), inputs, outputs),
2600 "could not create a pooling backward primitive");
2617 template <
typename T>
2619 const memory::desc &src_desc, T alpha = 0, T beta = 0) {
2623 static_cast<float>(alpha), static_cast<float>(beta)),
2624 "could not create a eltwise forward descriptor");
2628 template <
typename T>
2637 mkldnn_primitive_desc_t result;
2639 &result, &adesc.
data, aengine.
get(),
nullptr),
2640 "could not create a eltwise forward primitive descriptor");
2646 mkldnn_primitive_desc_t cdesc;
2652 "could not clone a dst primitive descriptor");
2662 mkldnn_primitive_t result;
2667 aprimitive_desc.
get(), inputs, outputs),
2668 "could not create a eltwise forward primitive");
2679 template <
typename T>
2681 const memory::desc &data_desc, T alpha = 0, T beta = 0) {
2684 &data_desc.
data, static_cast<float>(alpha),
2685 static_cast<float>(beta)),
2686 "could not create a eltwise backward descriptor");
2690 template <
typename T>
2700 mkldnn_primitive_desc_t result;
2702 &result, &adesc.
data, aengine.
get(),
2703 hint_fwd_primitive_desc.
get()),
2704 "could not create a eltwise backward primitive descriptor");
2710 mkldnn_primitive_desc_t cdesc;
2715 "could not clone a diff src primitive descriptor");
2725 const memory &diff_src) {
2726 mkldnn_primitive_t result;
2731 aprimitive_desc.
get(), inputs, outputs),
2732 "could not create a eltwise backward primitive");
2755 "could not create a softmax forward descriptor");
2761 mkldnn_primitive_desc_t result;
2763 &result, &adesc.
data, aengine.
get(),
nullptr),
2764 "could not create a softmax forward primitive descriptor");
2773 mkldnn_primitive_t result;
2778 aprimitive_desc.
get(), inputs, outputs),
2779 "could not create a softmax forward primitive");
2790 &diff_desc.
data, &data_desc.
data, softmax_axis),
2791 "could not init a backward softmax descriptor");
2799 mkldnn_primitive_desc_t result;
2801 &result, &adesc.
data, aengine.
get(),
2802 hint_fwd_primitive_desc.
get()),
2803 "could not create a backward softmax primitive descriptor");
2809 mkldnn_primitive_desc_t cdesc;
2814 "could not clone a diff src primitive descriptor");
2824 const memory &diff_src) {
2825 mkldnn_primitive_t result;
2829 aprimitive_desc.
get(), inputs, outputs),
2830 "could not create a softmax backward primitive");
2846 template <
typename T>
2852 static_cast<float>(epsilon), flags),
2853 "could not create a batch normalization forward descriptor");
2859 mkldnn_primitive_desc_t result;
2861 &result, &adesc.
data, aengine.
get(),
nullptr),
2862 "could not create a batch normalization forward primitive descriptor");
2868 mkldnn_primitive_desc_t result;
2870 &result, &adesc.
data, aattr.
get(), aengine.
get(),
2872 "could not create a batch normalization forward " 2873 "primitive descriptor");
2879 mkldnn_primitive_desc_t bndesc;
2885 "could not clone a weights primitive descriptor");
2886 adesc.
reset(bndesc);
2892 mkldnn_primitive_desc_t bndesc;
2896 "could not get a batch-normalization descriptor");
2905 "could not clone a mean primitive descriptor");
2906 aprimitive_desc.
reset(bndesc);
2907 return aprimitive_desc;
2912 mkldnn_primitive_desc_t bndesc;
2916 "could not get a batch-normalization descriptor");
2925 "could not clone a variance primitive descriptor");
2926 aprimitive_desc.
reset(bndesc);
2927 return aprimitive_desc;
2932 mkldnn_primitive_desc_t cdesc;
2937 "could not clone a workspace primitive descriptor");
2944 mkldnn_primitive_desc_t cdesc;
2950 "could not clone a dst primitive descriptor");
2962 mkldnn_primitive_t result;
2967 "batch normalization forward");
2969 aprimitive_desc.
get(), inputs, outputs),
2970 "could not create a batch normalization forward primitive");
2977 mkldnn_primitive_t result;
2982 "batch normalization forward");
2984 aprimitive_desc.
get(), inputs, outputs),
2985 "could not create a batch normalization forward primitive");
2999 mkldnn_primitive_t result;
3002 mean.
get(), variance.
get() };
3004 "batch normalization forward");
3006 aprimitive_desc.
get(), inputs, outputs),
3007 "could not create a batch normalization forward primitive");
3014 const memory &workspace) {
3015 mkldnn_primitive_t result;
3018 mean.
get(), variance.
get(), workspace.
get() };
3020 "batch normalization forward");
3022 aprimitive_desc.
get(), inputs, outputs),
3023 "could not create a batch normalization forward primitive");
3029 const memory &variance) {
3030 mkldnn_primitive_t result;
3033 mean.
get(), variance.
get() };
3035 "batch normalization forward");
3037 aprimitive_desc.
get(), inputs, outputs),
3038 "could not create a batch normalization forward primitive");
3056 mkldnn_primitive_t result;
3059 mean.
get(), variance.
get(), workspace.
get() };
3066 if (n_inputs_expected == 2 && n_outputs_expected == 3) {
3068 auto _weights = dst;
3069 inputs[1] = {_weights.get(), 0};
3071 auto _dst = mean, _mean = variance, _variance = workspace;
3072 outputs[0] = _dst.get();
3073 outputs[1] = _mean.get();
3074 outputs[2] = _variance.get();
3075 outputs[3] =
nullptr;
3079 aprimitive_desc.
get(), inputs, outputs),
3080 "could not create a batch normalization forward primitive");
3087 mkldnn_primitive_t result;
3091 "batch normalization forward");
3093 aprimitive_desc.
get(), inputs, outputs),
3094 "could not create a batch normalization forward primitive");
3100 mkldnn_primitive_t result;
3104 "batch normalization forward");
3106 aprimitive_desc.
get(), inputs, outputs),
3107 "could not create a batch normalization forward primitive");
3115 template <
typename T>
3117 const memory::desc &data_desc, T epsilon,
unsigned flags) {
3121 &diff_data_desc.
data, &data_desc.
data,
3122 static_cast<float>(epsilon), flags),
3123 "could not create a batch normalization backward descriptor");
3130 &hint_fwd_primitive_desc) {
3131 mkldnn_primitive_desc_t result;
3133 &result, &adesc.
data, aengine.
get(),
3134 hint_fwd_primitive_desc.
get()),
3135 "could not create a batch normalization backward primitive descriptor");
3141 mkldnn_primitive_desc_t bndesc;
3147 "could not clone a weights primitive descriptor");
3148 adesc.
reset(bndesc);
3154 mkldnn_primitive_desc_t bndesc;
3160 "could not clone a diff_weights primitive descriptor");
3161 adesc.
reset(bndesc);
3167 mkldnn_primitive_desc_t bndesc;
3173 "could not clone a mean primitive descriptor");
3174 adesc.
reset(bndesc);
3180 mkldnn_primitive_desc_t bndesc;
3186 "could not clone a variance primitive descriptor");
3187 adesc.
reset(bndesc);
3193 mkldnn_primitive_desc_t cdesc;
3198 "could not clone a workspace primitive descriptor");
3205 mkldnn_primitive_desc_t cdesc;
3211 "could not clone a dst primitive descriptor");
3224 const memory &diff_weights) {
3225 mkldnn_primitive_t result;
3229 diff_weights.
get() };
3231 "batch normalization backward");
3233 aprimitive_desc.
get(), inputs, outputs),
3234 "could not create a batch normalization backward primitive");
3244 mkldnn_primitive_t result;
3248 diff_weights.
get() };
3250 "batch normalization backward");
3252 aprimitive_desc.
get(), inputs, outputs),
3253 "could not create a batch normalization backward primitive");
3265 mkldnn_primitive_t result;
3267 diff_dst.
data, weights_or_workspace.
data };
3270 "batch normalization backward");
3272 aprimitive_desc.
get(), inputs, outputs),
3273 "could not create a batch normalization backward primitive");
3281 const memory &diff_src) {
3282 mkldnn_primitive_t result;
3287 "batch normalization backward");
3289 aprimitive_desc.
get(), inputs, outputs),
3290 "could not create a batch normalization backward primitive");
3314 "could not create a inner product forward descriptor");
3323 &weights_desc.
data,
nullptr, &dst_desc.
data),
3324 "could not create a inner product forward descriptor");
3330 mkldnn_primitive_desc_t result;
3332 &result, &adesc.
data, aengine.
get(),
nullptr),
3333 "could not create a inner product forward primitive descriptor");
3339 mkldnn_primitive_desc_t result;
3341 &result, &adesc.
data, aattr.
get(), aengine.
get(),
nullptr),
3342 "could not create a inner product " 3343 "forward primitive descriptor");
3349 mkldnn_primitive_desc_t cdesc;
3354 "could not clone a src primitive descriptor");
3361 mkldnn_primitive_desc_t cdesc;
3366 "could not clone a weights primitive descriptor");
3373 mkldnn_primitive_desc_t cdesc;
3378 "could not clone a bias primitive descriptor");
3385 mkldnn_primitive_desc_t cdesc;
3390 "could not clone a dst primitive descriptor");
3401 mkldnn_primitive_t result;
3406 "inner product forward");
3408 aprimitive_desc.
get(), inputs, outputs),
3409 "could not create a inner product forward primitive");
3416 mkldnn_primitive_t result;
3420 "inner product forward");
3422 aprimitive_desc.
get(), inputs, outputs),
3423 "could not create a inner product forward primitive");
3436 &diff_src_desc.
data, &weights_desc.
data,
3437 &diff_dst_desc.
data),
3438 "could not create a inner product backward data descriptor");
3445 &hint_fwd_primitive_desc) {
3446 mkldnn_primitive_desc_t result;
3448 &adesc.
data, aengine.
get(), hint_fwd_primitive_desc.
get()),
3449 "could not create a inner product backward data primitive descriptor");
3455 mkldnn_primitive_desc_t cdesc;
3460 "could not clone a diff dst primititve descriptor");
3467 mkldnn_primitive_desc_t cdesc;
3472 "could not clone a weights primitive descriptor");
3479 mkldnn_primitive_desc_t cdesc;
3484 "could not clone a diff src primitive descriptor");
3494 const memory &diff_src) {
3495 mkldnn_primitive_t result;
3499 "inner product backward data");
3501 aprimitive_desc.
get(), inputs, outputs),
3502 "could not create a inner product backward data primitive");
3516 &data, &src_desc.
data, &diff_weights_desc.
data,
3517 &diff_bias_desc.
data, &diff_dst_desc.
data),
3518 "could not create a inner product backward weights descriptor");
3525 &data, &src_desc.
data, &diff_weights_desc.
data,
3526 nullptr, &diff_dst_desc.
data),
3527 "could not create a inner product backward weights descriptor");
3534 &hint_fwd_primitive_desc) {
3535 mkldnn_primitive_desc_t result;
3537 &adesc.
data, aengine.
get(), hint_fwd_primitive_desc.
get()),
3538 "could not create a inner product backward weights primitive descriptor");
3544 mkldnn_primitive_desc_t cdesc;
3549 "could not clone a diff dst primititve descriptor");
3556 mkldnn_primitive_desc_t cdesc;
3561 "could not clone a diff weights primitive descriptor");
3568 mkldnn_primitive_desc_t cdesc;
3573 "could not clone a diff bias primitive descriptor");
3580 mkldnn_primitive_desc_t cdesc;
3585 "could not clone a src primitive descriptor");
3595 const memory &diff_weights) {
3596 mkldnn_primitive_t result;
3600 "inner product backward weights");
3602 aprimitive_desc.
get(), inputs, outputs),
3603 "could not create a inner product backward weights primitive");
3610 mkldnn_primitive_t result;
3613 { diff_weights.
get(), diff_bias.
get()};
3615 "inner product backward weights");
3617 aprimitive_desc.
get(), inputs, outputs),
3618 "could not create a inner product backward weights primitive");
3639 "could not init an rnn cell descriptor");
3653 c_rnn_cell_.
alpha = alpha;
3687 &src_layer_desc.
data, &src_iter_desc.
data,
3688 &weights_layer_desc.
data, &weights_iter_desc.
data,
3690 &dst_layer_desc.
data, &dst_iter_desc.
data),
3691 "could not create an RNN forward descriptor");
3697 mkldnn_primitive_desc_t result;
3699 &result, &adesc.
data, aengine.
get(),
nullptr),
3700 "could not create an RNN forward primitive descriptor");
3706 mkldnn_primitive_desc_t cdesc;
3711 "could not clone an src layer primitive descriptor");
3718 mkldnn_primitive_desc_t cdesc;
3723 "could not clone a src iter primitive descriptor");
3730 mkldnn_primitive_desc_t cdesc;
3735 "could not clone a weights primitive descriptor");
3742 mkldnn_primitive_desc_t cdesc;
3747 "could not clone a weights primitive descriptor");
3754 mkldnn_primitive_desc_t cdesc;
3759 "could not clone a bias primitive descriptor");
3766 mkldnn_primitive_desc_t ldesc;
3771 "could not clone a workspace primitive descriptor");
3778 mkldnn_primitive_desc_t cdesc;
3783 "could not clone a dst last layer primitive descriptor");
3790 mkldnn_primitive_desc_t cdesc;
3795 "could not clone a dst last iteration primitive descriptor");
3808 const memory &workspace) {
3809 mkldnn_primitive_t result;
3813 inputs[idx++] = src_layer.
data;
3815 inputs[idx++] = src_iter.
data;
3816 inputs[idx++] = weights_layer.
data;
3817 inputs[idx++] = weights_iter.
data;
3821 outputs[idx++] = dst_layer.
get();
3826 aprimitive_desc.
get(), inputs, outputs),
3827 "could not create an RNN forward primitive");
3854 &src_layer_desc.
data, &src_iter_desc.
data,
3855 &weights_layer_desc.
data, &weights_iter_desc.
data,
3857 &dst_layer_desc.
data, &dst_iter_desc.
data,
3858 &diff_src_layer_desc.
data, &diff_src_iter_desc.
data,
3859 &diff_weights_layer_desc.
data,
3860 &diff_weights_iter_desc.
data, &diff_bias_desc.
data,
3861 &diff_dst_layer_desc.
data, &diff_dst_iter_desc.
data),
3862 "could not create an RNN backward descriptor");
3868 mkldnn_primitive_desc_t result;
3870 &result, &adesc.
data, aengine.
get(),
nullptr),
3871 "could not create an RNN backward primitive descriptor");
3877 mkldnn_primitive_desc_t cdesc;
3882 "could not clone an src layer primitive descriptor");
3889 mkldnn_primitive_desc_t cdesc;
3894 "could not clone a src iter primitive descriptor");
3901 mkldnn_primitive_desc_t cdesc;
3906 "could not clone a weights primitive descriptor");
3913 mkldnn_primitive_desc_t cdesc;
3918 "could not clone a weights primitive descriptor");
3925 mkldnn_primitive_desc_t cdesc;
3930 "could not clone a bias primitive descriptor");
3937 mkldnn_primitive_desc_t cdesc;
3942 "could not clone a dst last layer primitive descriptor");
3949 mkldnn_primitive_desc_t cdesc;
3954 "could not clone a dst last iteration primitive descriptor");
3961 mkldnn_primitive_desc_t cdesc;
3966 "could not clone an src_layer primitive descriptor");
3973 mkldnn_primitive_desc_t cdesc;
3978 "could not clone a src iter primitive descriptor");
3985 mkldnn_primitive_desc_t cdesc;
3990 "could not clone a weights primitive descriptor");
3997 mkldnn_primitive_desc_t cdesc;
4002 "could not clone a weights primitive descriptor");
4009 mkldnn_primitive_desc_t cdesc;
4014 "could not clone a bias primitive descriptor");
4021 mkldnn_primitive_desc_t cdesc;
4026 "could not clone a dst last layer primitive descriptor");
4033 mkldnn_primitive_desc_t cdesc;
4038 "could not clone a dst last iteration primitive descriptor");
4045 mkldnn_primitive_desc_t ldesc;
4050 "could not clone a workspace primitive descriptor");
4066 const memory &diff_src_layer,
4067 const memory &diff_src_iter,
4068 const memory &diff_weights_layer,
4069 const memory &diff_weights_iter,
4074 mkldnn_primitive_t result;
4078 inputs[idx++] = src_layer.
data;
4080 inputs[idx++] = src_iter.
data;
4081 inputs[idx++] = weights_layer.
data;
4082 inputs[idx++] = weights_iter.
data;
4084 inputs[idx++] = bias.
data;
4085 inputs[idx++] = dst_layer.
data;
4087 inputs[idx++] = dst_iter.
data;
4088 inputs[idx++] = diff_dst_layer.
data;
4090 inputs[idx++] = diff_dst_iter.
data;
4091 inputs[idx++] = workspace.
data;
4094 outputs[idx++] = diff_src_layer.
get();
4096 outputs[idx++] = diff_src_iter.
get();
4097 outputs[idx++] = diff_weights_layer.
get();
4098 outputs[idx++] = diff_weights_iter.
get();
4101 aprimitive_desc.
get(), inputs, outputs),
4102 "could not create an RNN backward primitive");
4116 #ifndef DOXYGEN_SHOULD_SKIP_THIS 4123 using handle::handle;
4134 mkldnn_stream_t astream;
4137 "could not create a stream");
4148 if (primitives.size() == 0)
return *
this;
4149 std::vector<mkldnn_primitive_t> c_api_primitives;
4150 c_api_primitives.reserve(primitives.size());
4152 std::transform(primitives.begin(), primitives.end(),
4155 mkldnn_primitive_t c_api_error_primitive;
4158 c_api_primitives.size(), &c_api_primitives[0],
4159 &c_api_error_primitive),
4160 "could not submit primitives to a stream",
4161 &c_api_error_primitive);
4173 mkldnn_primitive_t c_api_error_primitive;
4175 block, &c_api_error_primitive);
4179 &c_api_error_primitive);
4184 mkldnn_primitive_t c_api_error_primitive;
4187 "could not rerun a stream", &c_api_error_primitive);
void append_sum(float scale=1.)
Definition: mkldnn.hpp:382
Definition: mkldnn.hpp:2697
LRN within a single channel.
Definition: mkldnn_types.h:444
primitive error_primitive
Definition: mkldnn.hpp:161
A descriptor of a Local Response Normalization (LRN) operation.
Definition: mkldnn_types.h:746
memory::primitive_desc diff_bias_primitive_desc() const
Definition: mkldnn.hpp:1609
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:2465
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:1401
engine get_engine()
Definition: mkldnn.hpp:2819
Definition: mkldnn.hpp:339
5D weights tensor in the oidhw format with output channels data laid out in memory in 16-element bloc...
Definition: mkldnn_types.h:188
Definition: mkldnn.hpp:1670
inner_product_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at weights, const memory &dst)
Definition: mkldnn.hpp:3413
Definition: mkldnn.hpp:265
std::vector< const_mkldnn_primitive_desc_t > cpp_to_c(std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:1002
engine get_engine()
Definition: mkldnn.hpp:3216
primitive_desc(const memory::desc &output, int concat_dimension, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:1012
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...
Definition: mkldnn.hpp:3832
4D weights tensor in the format (output channels, width, height, input channels) with output channels...
Definition: mkldnn_types.h:217
mkldnn_status_t MKLDNN_API mkldnn_primitive_attr_destroy(mkldnn_primitive_attr_t attr)
Deletes an attr.
6D weights tensor in the oidhw format with output channels data laid out in memory in 16-element bloc...
Definition: mkldnn_types.h:246
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:392
number of outputs expected
Definition: mkldnn_types.h:1088
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:1636
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:2958
engine get_engine()
Definition: mkldnn.hpp:1349
stream & submit(std::vector< primitive > primitives)
Submits a vector of primitives to a stream for computations.
Definition: mkldnn.hpp:4145
bool operator==(const primitive_desc &other) const
Definition: mkldnn.hpp:720
Definition: mkldnn.hpp:2517
mkldnn_status_t
Status values returned by Intel(R) MKL-DNN functions.
Definition: mkldnn_types.h:39
stream & rerun()
Definition: mkldnn.hpp:4183
Definition: mkldnn.hpp:2444
A descriptor of a convolution operation.
Definition: mkldnn_types.h:609
Definition: mkldnn.hpp:297
Definition: mkldnn.hpp:2419
The operation failed and should be retried.
Definition: mkldnn_types.h:45
memory null_memory(engine eng)
Definition: mkldnn.hpp:816
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:3359
engine get_engine()
Definition: mkldnn.hpp:2168
Definition: mkldnn.hpp:2109
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:1529
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...
MKLDNN_DEPRECATED convolution_relu_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const memory &dst)
Definition: mkldnn.hpp:1712
4D bias tensor in the format (num_layers, num_directions, num_gates, output_channels).
Definition: mkldnn_types.h:320
4D data tensor in the chwn format typically used in Neon.
Definition: mkldnn_types.h:126
Definition: mkldnn.hpp:261
padding_kind
Definition: mkldnn.hpp:229
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:353
Definition: mkldnn.hpp:2210
Definition: mkldnn.hpp:2025
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:1491
Definition: mkldnn.hpp:3328
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:2930
Backward data propagation.
Definition: mkldnn_types.h:359
Definition: mkldnn.hpp:2785
static void validate_dims(std::vector< T > v)
Definition: mkldnn.hpp:570
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:2120
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:2750
Definition: mkldnn.hpp:270
engine get_engine()
Definition: mkldnn.hpp:3395
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 1...
Definition: mkldnn_types.h:201
Undefined memory format, used for empty memory descriptors.
Definition: mkldnn_types.h:109
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:2636
const_mkldnn_primitive_desc_t get_primitive_desc() const
Returns the descriptor of the underlying C API primitive.
Definition: mkldnn.hpp:207
MKLDNN_DEPRECATED desc(const memory::desc &diff_data_desc, const memory::desc &data_desc, T negative_slope)
Definition: mkldnn.hpp:2692
concat(const primitive_desc &concat_pd, std::vector< primitive::at > &inputs, const memory &output)
Definition: mkldnn.hpp:1053
memory::desc desc()
Returns the memory primitive descriptor.
Definition: mkldnn.hpp:710
deconvolution_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:2171
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...
float alpha
alpha is a negative slope parameter (used only if (flags & mkldnn_rnn_cell_with_relu) != 0) ...
Definition: mkldnn_types.h:862
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:2858
#define TENSOR_MAX_DIMS
Maximum number of dimensions a tensor can have.
Definition: mkldnn_types.h:522
primitive_desc(const desc &adesc, const engine &aengine, const pooling_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:2543
format
Memory format specification. See mkldnn_memory_format_t for a detailed description.
Definition: mkldnn.hpp:589
Definition: mkldnn.hpp:286
4D weights tensor in the format (input channels, output channels, width, height). ...
Definition: mkldnn_types.h:146
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:2253
MKLDNN_DEPRECATED primitive_desc(std::vector< double > scale, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:1134
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:3542
engine get_engine()
Definition: mkldnn.hpp:4055
memory::primitive_desc weights_iter_primitive_desc() const
Definition: mkldnn.hpp:3911
A descriptor of a Softmax operation.
Definition: mkldnn_types.h:696
6D weights tensor in the blocked version of goidhw format with output channels data laid out in memor...
Definition: mkldnn_types.h:297
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:2771
6D weights tensor in the blocked version of goidhw format with output channels data laid out in memor...
Definition: mkldnn_types.h:300
memory::primitive_desc diff_weights_primitive_desc() const
Definition: mkldnn.hpp:3554
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:241
primitive_desc(const desc &adesc, const engine &aengine, const lrn_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:2333
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:804
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:568
3D data tensor in the format (seq_length, batch, input channels).
Definition: mkldnn_types.h:304
memory::primitive_desc diff_bias_primitive_desc() const
Definition: mkldnn.hpp:4007
An opaque structure for a chain of post operations.
An opaque structure to describe a primitive descriptor .
batch normalization descriptor
Definition: mkldnn_types.h:1107
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:1757
mkldnn_rnn_direction_t
A direction of RNN primitive execution.
Definition: mkldnn_types.h:869
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:384
memory::primitive_desc src_layer_primitive_desc() const
Definition: mkldnn.hpp:3704
mkldnn_lrn_desc_t data
Definition: mkldnn.hpp:2309
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:522
engine(const handle< mkldnn_primitive_desc_t > &pd)
Definition: mkldnn.hpp:525
desc(dims adims, data_type adata_type, format aformat)
Constructs a memory descriptor.
Definition: mkldnn.hpp:676
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:222
mkldnn_inner_product_desc_t data
Definition: mkldnn.hpp:3305
sum(const primitive_desc &sum_pd, std::vector< primitive::at > &inputs, const memory &output)
Definition: mkldnn.hpp:1164
An execution engine.
Definition: mkldnn.hpp:487
memory(const primitive_desc &adesc, void *ahandle)
Definition: mkldnn.hpp:766
mkldnn_inner_product_desc_t data
Definition: mkldnn.hpp:3430
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:2519
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:2367
Undefined primitive (XXX: why do we have it?).
Definition: mkldnn_types.h:370
mkldnn_status_t MKLDNN_API mkldnn_deconvolution_backward_data_desc_init(mkldnn_deconvolution_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 deconvolution descriptor conv_desc for backward propagation with respect to data using ...
An inner product primitive.
Definition: mkldnn_types.h:400
void check_num_parameters(const const_mkldnn_primitive_desc_t &aprimitive_desc, int n_inputs, int n_outputs, const std::string &prim_name)
Definition: mkldnn.hpp:821
engine get_engine()
Definition: mkldnn.hpp:2379
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:3867
Round down.
Definition: mkldnn_types.h:82
Definition: mkldnn_types.h:1109
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:1775
Definition: mkldnn.hpp:260
round_mode get_int_output_round_mode() const
Definition: mkldnn.hpp:423
memory::primitive_desc diff_weights_iter_primitive_desc() const
Definition: mkldnn.hpp:3995
primitive_attr()
Definition: mkldnn.hpp:416
Definition: mkldnn_types.h:440
Definition: mkldnn.hpp:2675
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.
mkldnn_softmax_desc_t data
Definition: mkldnn.hpp:2786
Definition: mkldnn.hpp:2759
void get_params_sum(int index, float &scale) const
Definition: mkldnn.hpp:387
Definition: mkldnn.hpp:244
32-bit signed integer.
Definition: mkldnn_types.h:68
Max pooling.
Definition: mkldnn_types.h:435
memory::primitive_desc bias_primitive_desc() const
Definition: mkldnn.hpp:3923
memory::primitive_desc src_iter_primitive_desc() const
Definition: mkldnn.hpp:3887
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:1259
memory::desc zero_md()
Definition: mkldnn.hpp:810
Definition: mkldnn.hpp:333
primitive_desc(const memory::primitive_desc &input, memory::dims dims, memory::dims offsets)
Definition: mkldnn.hpp:945
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:2156
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:180
const post_ops get_post_ops() const
Definition: mkldnn.hpp:457
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:2421
Definition: mkldnn.hpp:326
execution engine
Definition: mkldnn_types.h:1084
stream(kind akind)
Constructs a stream.
Definition: mkldnn.hpp:4133
Definition: mkldnn.hpp:944
Definition: mkldnn.hpp:331
desc(const memory::desc &diff_src_desc, const memory::desc &weights_desc, const memory::desc &diff_dst_desc)
Definition: mkldnn.hpp:3431
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:3371
memory::primitive_desc weights_layer_primitive_desc() const
Definition: mkldnn.hpp:3728
Definition: mkldnn.hpp:2418
engine get_engine()
Definition: mkldnn.hpp:2277
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:4043
4D weights tensor in the oihw format with input channels data laid out in memory in 16-element blocks...
Definition: mkldnn_types.h:192
static mkldnn_memory_format_t convert_to_c(format aformat)
Definition: mkldnn.hpp:805
memory::primitive_desc bias_primitive_desc() const
Definition: mkldnn.hpp:1325
Definition: mkldnn.hpp:3127
memory::primitive_desc diff_src_iter_primitive_desc() const
Definition: mkldnn.hpp:3971
Definition: mkldnn.hpp:317
mkldnn_status_t MKLDNN_API mkldnn_primitive_attr_create(mkldnn_primitive_attr_t *attr)
Creates an empty (default) attr attribute.
Definition: mkldnn_types.h:847
primitive_desc(const desc &adesc, const engine &aengine, const batch_normalization_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:3128
A descriptor of a convolution followed by relu operation.
Definition: mkldnn_types.h:833
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:252
input memory primitive desc
Definition: mkldnn_types.h:1114
5D weights tensor in the oihw format with extra outer dimension for groups.
Definition: mkldnn_types.h:223
const_mkldnn_primitive_t primitive
Primitive to specify the output for.
Definition: mkldnn_types.h:1045
Definition: mkldnn.hpp:285
rnn_forward(const primitive_desc &aprimitive_desc, const primitive::at &src_layer, const primitive::at &src_iter, const primitive::at &weights_layer, const primitive::at &weights_iter, const primitive::at &bias, const memory &dst_layer, const memory &dst_iter, const memory &workspace)
Definition: mkldnn.hpp:3803
mkldnn_status_t MKLDNN_API mkldnn_rnn_cell_desc_init(mkldnn_rnn_cell_desc_t *rnn_cell_desc, mkldnn_alg_kind_t kind, mkldnn_alg_kind_t f, unsigned int flags, float alpha, float clipping)
Initializes a recurrent cell descriptor rnn_cell_desc using rnn_cell_desc, kind (possible values are ...
A descriptor of a element-wise operation.
Definition: mkldnn_types.h:654
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:1446
rnn descriptor
Definition: mkldnn_types.h:1110
memory::primitive_desc variance_primitive_desc() const
Definition: mkldnn.hpp:2910
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1818
An element-wise primitive.
Definition: mkldnn_types.h:388
Definition: mkldnn.hpp:3442
memory::primitive_desc diff_weights_primitive_desc() const
Definition: mkldnn.hpp:1597
Definition: mkldnn.hpp:2784
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:1458
engine get_engine()
Definition: mkldnn.hpp:2657
memory::primitive_desc diff_bias_primitive_desc() const
Definition: mkldnn.hpp:3566
destination grad.
Definition: mkldnn_types.h:1121
algorithm get_cell_kind() const
Definition: mkldnn.hpp:3645
engine get_engine()
Definition: mkldnn.hpp:1161
Definition: mkldnn.hpp:2676
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.
mkldnn_alg_kind_t activation_kind
Activation function used.
Definition: mkldnn_types.h:857
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1148
6D weights tensor in the oihw format with both input and output channels data laid out in memory in 1...
Definition: mkldnn_types.h:164
A descriptor for an rnn operation.
Definition: mkldnn_types.h:884
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:1236
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:1994
Definition: mkldnn.hpp:1000
Definition: mkldnn.hpp:273
Definition: mkldnn.hpp:255
eltwise descriptor
Definition: mkldnn_types.h:1102
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:3053
Definition: mkldnn.hpp:272
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:3261
lrn_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:2294
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:3510
batch_normalization_flag
Definition: mkldnn.hpp:284
A memory primitive.
Definition: mkldnn_types.h:372
float clipping
clipping parameter (used only if (flags & mkldnn_rnn_cell_with_clipping) != 0)
Definition: mkldnn_types.h:865
MKLDNN_DEPRECATED desc(prop_kind aprop_kind, const memory::desc &src_desc, T negative_slope)
Definition: mkldnn.hpp:2630
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 1...
Definition: mkldnn_types.h:198
memory::primitive_desc dst_layer_primitive_desc() const
Definition: mkldnn.hpp:3776
desc(prop_kind aprop_kind, rnn_cell::desc cell, const rnn_direction direction, const memory::desc &src_layer_desc, const memory::desc &src_iter_desc, const memory::desc &weights_layer_desc, const memory::desc &weights_iter_desc, const memory::desc &bias_desc, const memory::desc &dst_layer_desc, const memory::desc &dst_iter_desc, const memory::desc &diff_src_layer_desc, const memory::desc &diff_src_iter_desc, const memory::desc &diff_weights_layer_desc, const memory::desc &diff_weights_iter_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_layer_desc, const memory::desc &diff_dst_iter_desc)
Definition: mkldnn.hpp:3835
Eltwise: soft_relu.
Definition: mkldnn_types.h:431
Definition: mkldnn.hpp:1423
void set_post_ops(post_ops ops)
Definition: mkldnn.hpp:466
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:3398
Definition: mkldnn.hpp:338
Definition: mkldnn.hpp:257
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.
RNN cell.
Definition: mkldnn_types.h:450
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:1796
bool is_null_memory(const const_mkldnn_primitive_t &aprimitive)
Definition: mkldnn.hpp:841
Definition: mkldnn.hpp:364
engine get_engine()
Definition: mkldnn.hpp:2768
Definition: mkldnn.hpp:3429
bool operator==(const handle &other) const
Definition: mkldnn.hpp:87
Definition: mkldnn.hpp:1196
Backward weights propagation.
Definition: mkldnn_types.h:361
void set_int_output_round_mode(round_mode mode)
Definition: mkldnn.hpp:430
primitive_desc(const desc &adesc, const engine &aengine, const inner_product_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:3532
mkldnn_rnn_desc_t data
Definition: mkldnn.hpp:3673
eltwise_forward relu_forward
Definition: mkldnn.hpp:2673
32-bit/single-precision floating point.
Definition: mkldnn_types.h:66
memory::primitive_desc dst_layer_primitive_desc() const
Definition: mkldnn.hpp:3935
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:1511
algorithm get_activation() const
Definition: mkldnn.hpp:3647
pooling_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:2492
2D weights tensor in the format (input channels, output channels).
Definition: mkldnn_types.h:141
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:2553
Just a sentinel, not real memory format.
Definition: mkldnn_types.h:325
Omit statistics.
Definition: mkldnn_types.h:502
Memory descriptor.
Definition: mkldnn_types.h:583
Definition: mkldnn.hpp:3304
Definition: mkldnn.hpp:300
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:467
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:2453
void set_clipping(float clipping)
Definition: mkldnn.hpp:3657
convolution_backward_weights(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &diff_dst, const memory &diff_weights)
Definition: mkldnn.hpp:1650
mkldnn_lrn_desc_t data
Definition: mkldnn.hpp:2211
Definition: mkldnn.hpp:3303
desc(prop_kind aprop_kind, const memory::desc &src_desc, T epsilon, unsigned flags)
Definition: mkldnn.hpp:2847
Definition: mkldnn.hpp:276
pooling descriptor
Definition: mkldnn_types.h:1105
Definition: mkldnn.hpp:2518
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:237
mkldnn_pooling_desc_t data
Definition: mkldnn.hpp:2420
Definition: mkldnn.hpp:263
memory::primitive_desc variance_primitive_desc() const
Definition: mkldnn.hpp:3178
mkldnn_status_t MKLDNN_API mkldnn_dilated_deconvolution_forward_desc_init(mkldnn_deconvolution_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 deconvolution descriptor deconv_desc for forward propagation using prop_kind (p...
unsigned int flags
RNN cell flags.
Definition: mkldnn_types.h:859
4D weights tensor in the format (output channels, input channels, height, width) with output channels...
Definition: mkldnn_types.h:209
convolution_backward_data(const primitive_desc &aprimitive_desc, const primitive::at &diff_dst, const primitive::at &weights, const memory &diff_src)
Definition: mkldnn.hpp:1473
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:230
desc(algorithm kind, algorithm activation_f)
Definition: mkldnn.hpp:3635
5D weights tensor in the oihw format with output channels data laid out in memory in 16-element block...
Definition: mkldnn_types.h:242
Definition: mkldnn.hpp:322
Definition: mkldnn.hpp:242
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:3347
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:3337
memory::primitive_desc weights_iter_primitive_desc() const
Definition: mkldnn.hpp:3740
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:3191
mkldnn_rnn_desc_t data
Definition: mkldnn.hpp:3834
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:2644
Backward propagation (with respect to all parameters.
Definition: mkldnn_types.h:357
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:2355
5D data tensor in the ndhwc format typically used in TensorFlow.
Definition: mkldnn_types.h:136
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:3607
softmax descriptor
Definition: mkldnn_types.h:1104
mkldnn_round_mode_t
Rounding mode.
Definition: mkldnn_types.h:78
A deconvolution primitive.
Definition: mkldnn_types.h:386
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:2233
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:1982
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1682
Definition: mkldnn.hpp:325
Definition: mkldnn.hpp:271
primitive_desc(const desc &adesc, const engine &aengine)
Constructs a memory primitive descriptor.
Definition: mkldnn.hpp:700
Use global statistics.
Definition: mkldnn_types.h:480
Definition: mkldnn.hpp:31
primitive_desc(int concat_dimension, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:1025
memory::primitive_desc weights_layer_primitive_desc() const
Definition: mkldnn.hpp:3899
4D weights tensor in the format (output channels, width, height, input channels) with output channels...
Definition: mkldnn_types.h:213
no query
Definition: mkldnn_types.h:1082
Definition: mkldnn.hpp:3508
Definition: mkldnn.hpp:1736
memory::primitive_desc dst_iter_primitive_desc() const
Definition: mkldnn.hpp:3788
5D weights tensor in the blocked version of goihw format with output channels data laid out in memory...
Definition: mkldnn_types.h:271
5D weights tensor in the blocked version of oidhw format with output channels data laid out in memory...
Definition: mkldnn_types.h:167
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:3329
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:343
Average pooling include padding.
Definition: mkldnn_types.h:437
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:3492
Definition: mkldnn.hpp:2232
destination memory primitive desc
Definition: mkldnn_types.h:1120
memory::primitive_desc mean_primitive_desc() const
Definition: mkldnn.hpp:2890
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:2565
5D weights tensor in the format (num_layers, num_directions, input_chanels, num_gates, output_channels).
Definition: mkldnn_types.h:310
GRU cell with linear before reset.
Definition: mkldnn_types.h:463
memory(const primitive_desc &adesc)
Constructs a memory primitive.
Definition: mkldnn.hpp:739
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:2382
Local response normalization (LRN) across multiple channels.
Definition: mkldnn_types.h:442
4D weights tensor in the oihw format with input channels data laid out in memory in 16-element blocks...
Definition: mkldnn_types.h:331
GRU cell.
Definition: mkldnn_types.h:454
Eager stream.
Definition: mkldnn_types.h:1135
primitive_desc(const memory::primitive_desc &input, const memory::primitive_desc &output, const primitive_attr &aattr)
Definition: mkldnn.hpp:895
void set_output_scales(int mask, const std::vector< float > &scales)
Definition: mkldnn.hpp:450
at(const primitive &aprimitive, size_t at=0)
Constructs a wrapper specifying aprimitive output with index at.
Definition: mkldnn.hpp:140
implementation name
Definition: mkldnn_types.h:1095
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:2065
engine get_engine()
Definition: mkldnn.hpp:1633
Definition: mkldnn.hpp:1197
Definition: mkldnn.hpp:253
pooling_backward(const primitive_desc &aprimitive_desc, const primitive::at &diff_dst, const memory &diff_src)
Definition: mkldnn.hpp:2580
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:419
kind
Kinds of engines.
Definition: mkldnn.hpp:492
Definition: mkldnn.hpp:2308
Definition: mkldnn.hpp:3428
Intel(R) MKL-DNN exception class.
Definition: mkldnn.hpp:158
round_mode
Definition: mkldnn.hpp:220
bool operator==(mkldnn_data_type_t a, memory::data_type b)
Definition: mkldnn.hpp:850
mkldnn_deconvolution_desc_t data
Definition: mkldnn.hpp:1919
Eltwise: ReLU.
Definition: mkldnn_types.h:415
Definition: mkldnn.hpp:2747
mkldnn_convolution_desc_t data
Definition: mkldnn.hpp:1198
Definition: mkldnn.hpp:230
1D data tensor.
Definition: mkldnn_types.h:118
mkldnn_primitive_at_t data
The underlying C API structure.
Definition: mkldnn.hpp:133
desc(const convolution_forward::desc conv_desc, const float negative_slope)
Definition: mkldnn.hpp:1673
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:3203
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1872
4D weights tensor in the format (input channels, height, width, output channels). ...
Definition: mkldnn_types.h:149
mkldnn_eltwise_desc_t data
Definition: mkldnn.hpp:2677
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:3696
mkldnn_memory_format_t
Memory format specification.
Definition: mkldnn_types.h:107
Definition: mkldnn.hpp:943
Eltwise: square.
Definition: mkldnn_types.h:421
Definition: mkldnn.hpp:1077
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:1218
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:955
Definition: mkldnn.hpp:277
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:2577
static mkldnn_data_type_t convert_to_c(data_type adata_type)
Definition: mkldnn.hpp:802
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:796
batch_normalization_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst, const memory &mean, const memory &variance)
Definition: mkldnn.hpp:3027
Definition: mkldnn.hpp:264
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:2310
Backward bias propagation.
Definition: mkldnn_types.h:363
Definition: mkldnn.hpp:884
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, int local_size, float alpha, float beta)
Definition: mkldnn.hpp:2221
5D weights tensor in the goihw format with both input and output channels data laid out in memory in ...
Definition: mkldnn_types.h:283
Use scale and shift parameters.
Definition: mkldnn_types.h:493
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:1836
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:1738
primitive_desc(const desc &adesc, const engine &aengine, const deconvolution_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:2110
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:1313
mkldnn_status_t MKLDNN_API mkldnn_deconvolution_forward_desc_init(mkldnn_deconvolution_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 deconvolution descriptor deconv_desc for forward propagation using prop_kind (possible ...
query
Definition: mkldnn.hpp:308
Definition: mkldnn.hpp:275
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:2877
float get_alpha() const
Definition: mkldnn.hpp:3650
4D weights tensor in the oihw format with input channels data laid out in memory in 8-element blocks...
Definition: mkldnn_types.h:328
5D weights tensor in the oihw format with input channels data laid out in memory in 16-element blocks...
Definition: mkldnn_types.h:250
void get_params_eltwise(int index, float &scale, algorithm &alg, float &alpha, float &beta) const
Definition: mkldnn.hpp:399
Definition: mkldnn_types.h:879
mkldnn_status_t MKLDNN_API mkldnn_dilated_deconvolution_backward_weights_desc_init(mkldnn_deconvolution_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 dilated deconvolution descriptor conv_desc for backward propagation with respect to wei...
primitive_desc(const desc &adesc, const engine &aengine, const inner_product_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:3443
mkldnn_eltwise_desc_t data
Definition: mkldnn.hpp:2616
Definition: mkldnn.hpp:415
5D weights tensor in the blocked version of goihw format with group data laid out in memory in 8-elem...
Definition: mkldnn_types.h:277
Definition: mkldnn.hpp:1959
int get_gates_count() const
Definition: mkldnn.hpp:3662
int ndims
Number of dimensions.
Definition: mkldnn_types.h:588
reorder(const primitive_desc &aprimitive_desc, const primitive::at &input, const memory &output)
Definition: mkldnn.hpp:908
Definition: mkldnn.hpp:2209
Definition: mkldnn.hpp:1001
kind
A proxy to C primitive kind enum.
Definition: mkldnn.hpp:109
void set_alpha(float alpha)
Definition: mkldnn.hpp:3651
A convolution primitive merged with ReLU.
Definition: mkldnn_types.h:402
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:1585
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:2320
5D data tensor in the ncdhw format.
Definition: mkldnn_types.h:134
5D states tensor in the format (num_layers, num_directions, num_states, batch, state channels)...
Definition: mkldnn_types.h:307
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:2708
Definition: mkldnn.hpp:2332
size_t get_size() const
Returns the number of bytes required to allocate the memory described including the padding area...
Definition: mkldnn.hpp:716
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:1488
deconvolution_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const primitive::at &bias, const memory &dst)
Definition: mkldnn.hpp:1887
A rnn primitive.
Definition: mkldnn_types.h:404
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:1118
mkldnn_deconvolution_desc_t data
Definition: mkldnn.hpp:2026
Definition: mkldnn.hpp:3632
eltwise_backward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &diff_dst, const memory &diff_src)
Definition: mkldnn.hpp:2723
mkldnn_prop_kind_t
Kinds of propagation.
Definition: mkldnn_types.h:341
A wrapper structure to specify a particular output of a primitive.
Definition: mkldnn.hpp:131
CPU engine.
Definition: mkldnn_types.h:935
Definition: mkldnn.hpp:288
desc(algorithm alg_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, T alpha=0, T beta=0)
Definition: mkldnn.hpp:2680
Eltwise: square root.
Definition: mkldnn_types.h:425
mkldnn_stream_kind_t
Kinds of streams.
Definition: mkldnn_types.h:1131
Definition: mkldnn.hpp:267
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:152
A wrapper structure to specify a particular output of a primitive.
Definition: mkldnn_types.h:1043
Winograd convolution.
Definition: mkldnn_types.h:413
Definition: mkldnn.hpp:243
A ReLU primitive.
Definition: mkldnn_types.h:390
Definition: mkldnn.hpp:340
Eltwise: linear.
Definition: mkldnn_types.h:427
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:1920
mkldnn_status_t MKLDNN_API mkldnn_softmax_backward_desc_init(mkldnn_softmax_desc_t *softmax_desc, const mkldnn_memory_desc_t *diff_desc, const mkldnn_memory_desc_t *data_desc, int softmax_axis)
Initializes a softmax_desc for backward propagation using memory descriptors diff_desc and data_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 padding_l, const memory::dims padding_r, const padding_kind apadding_kind)
Definition: mkldnn.hpp:2027
reorder(const primitive::at &input, const memory &output)
Definition: mkldnn.hpp:919
Eltwise: logistic.
Definition: mkldnn_types.h:433
Definition: mkldnn.hpp:3112
Direct convolution.
Definition: mkldnn_types.h:411
Definition: mkldnn.hpp:335
Definition: mkldnn.hpp:266
lrn_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &workspace, const memory &dst)
Definition: mkldnn.hpp:2280
source gradient memory primitive desc
Definition: mkldnn_types.h:1117
mkldnn_alg_kind_t cell_kind
RNN cell kind.
Definition: mkldnn_types.h:854
Definition: mkldnn.hpp:1381
mkldnn_batch_normalization_desc_t data
Definition: mkldnn.hpp:3114
Definition: mkldnn_types.h:871
Definition: mkldnn.hpp:309
5D data tensor in the ncdhw format with channels data laid out in memory in 16-element blocks...
Definition: mkldnn_types.h:139
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:3165
engine get_engine()
Definition: mkldnn.hpp:1690
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, int local_size, float alpha, float beta, float k)
Definition: mkldnn.hpp:2212
batch_normalization_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const memory &dst)
Definition: mkldnn.hpp:3084
mkldnn_rnn_cell_desc_t c_rnn_cell_
Definition: mkldnn.hpp:3633
bool operator!=(const primitive_desc &other) const
Definition: mkldnn.hpp:725
runtime estimation (seconds)
Definition: mkldnn_types.h:1090
5D weights tensor in the blocked version of goihw format with output channels data laid out in memory...
Definition: mkldnn_types.h:274
Definition: mkldnn.hpp:1574
bool operator==(const T other) const
Definition: mkldnn.hpp:68
A (in-place) concat primitive.
Definition: mkldnn_types.h:380
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.
memory::primitive_desc bias_primitive_desc() const
Definition: mkldnn.hpp:1860
primitive_desc get_primitive_desc() const
Returns the descriptor of the memory primitive.
Definition: mkldnn.hpp:776
engine get_engine()
Definition: mkldnn.hpp:3590
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 8...
Definition: mkldnn_types.h:173
LSTM cell.
Definition: mkldnn_types.h:452
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 ...
Definition: mkldnn_types.h:880
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:2477
Undefined data type, used for empty memory descriptors.
Definition: mkldnn_types.h:64
Definition: mkldnn.hpp:1917
16-bit signed integer.
Definition: mkldnn_types.h:70
Definition: mkldnn.hpp:2615
primitive_desc()
Definition: mkldnn.hpp:697
int len() const
Definition: mkldnn.hpp:372
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:1089
desc(prop_kind aprop_kind, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc)
Definition: mkldnn.hpp:3317
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:1817
Definition: mkldnn.hpp:239
5D weights tensor in the blocked version of oidhw format with output channels data laid out in memory...
Definition: mkldnn_types.h:170
Definition: mkldnn.hpp:3531
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:1382
A (out-of-place) concat primitive.
Definition: mkldnn_types.h:378
primitive_desc(const desc &adesc, const primitive_attr &aattr, const engine &aengine)
Definition: mkldnn.hpp:1291
Fuse with ReLU.
Definition: mkldnn_types.h:511
Definition: mkldnn.hpp:256
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:185
Definition: mkldnn.hpp:274
static size_t get_count(kind akind)
Returns the number of engines of a certain kind.
Definition: mkldnn.hpp:503
mkldnn_query_t
Primitive descriptor query specification.
Definition: mkldnn_types.h:1081
A descriptor of a Batch Normalization operation.
Definition: mkldnn_types.h:773
static engine query(const primitive_desc &pd)
Definition: mkldnn.hpp:535
Definition: mkldnn.hpp:3671
deconvolution_backward_weights(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &diff_dst, const memory &diff_weights)
Definition: mkldnn.hpp:2185
Definition: mkldnn.hpp:287
A sum primitive.
Definition: mkldnn_types.h:382
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:1434
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:3278
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...
Definition: mkldnn.hpp:299
5D weights tensor in the blocked version of goihw format with output channels data laid out in memory...
Definition: mkldnn_types.h:265
eltwise_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst)
Definition: mkldnn.hpp:2660
unsigned flags
Definition: mkldnn_types.h:800
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:1301
Definition: mkldnn.hpp:3631
softmax_backward(const primitive_desc &aprimitive_desc, const primitive::at &dst, const primitive::at &diff_dst, const memory &diff_src)
Definition: mkldnn.hpp:2822
engine get_engine()
Definition: mkldnn.hpp:1884
Definition: mkldnn.hpp:3672
Definition: mkldnn.hpp:254
mkldnn_status_t MKLDNN_API mkldnn_dilated_deconvolution_backward_data_desc_init(mkldnn_deconvolution_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 deconvolution descriptor conv_desc for backward propagation with respect to dat...
5D weights tensor in the blocked version of goihw format with group data laid out in memory in 16-ele...
Definition: mkldnn_types.h:280
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:143
memory consumption – extra (scratch) memory, additional to all inputs and outputs memory (bytes) ...
Definition: mkldnn_types.h:1091
An batch normalization primitive.
Definition: mkldnn_types.h:398
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_types.h:409
engine(kind akind, size_t index)
Constructs an engine.
Definition: mkldnn.hpp:513
Definition: mkldnn.hpp:2614
A descriptor of a pooling operation.
Definition: mkldnn_types.h:712
primitive_desc(const desc &adesc, const engine &aengine, const convolution_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:1575
Definition: mkldnn.hpp:4122
Definition: mkldnn.hpp:268
Definition: mkldnn.hpp:269
engine get_engine()
Definition: mkldnn.hpp:729
MKLDNN_DEPRECATED 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:1695
error(mkldnn_status_t astatus, std::string amessage, mkldnn_primitive_t aerror_primitive=0)
Constructs an error instance.
Definition: mkldnn.hpp:170
primitive_desc(const desc &adesc, const primitive_attr &aattr, const engine &aengine)
Definition: mkldnn.hpp:1826
deconvolution descriptor
Definition: mkldnn_types.h:1101
std::vector< const_mkldnn_primitive_desc_t > cpp_to_c(std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:1079
memory::primitive_desc diff_dst_primitive_desc() const
Definition: mkldnn.hpp:1621
primitive_desc(const memory::primitive_desc &input, const memory::primitive_desc &output)
Definition: mkldnn.hpp:886
mkldnn_memory_desc_t data
The underlying C API data structure.
Definition: mkldnn.hpp:669
engine get_engine()
Definition: mkldnn.hpp:905
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:1283
engine get_engine()
Definition: mkldnn.hpp:3800
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:337
int MKLDNN_API mkldnn_rnn_cell_get_states_count(const mkldnn_rnn_cell_desc_t *rnn_cell_desc)
Returns the number of states of a particular rnn_cell_desc.
Definition: mkldnn.hpp:2635
desc(const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_dst_desc)
Definition: mkldnn.hpp:3520
source memory primitive desc
Definition: mkldnn_types.h:1116
mkldnn_primitive_kind_t
Kinds of primitives.
Definition: mkldnn_types.h:368
engine get_engine()
Definition: mkldnn.hpp:1470
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1337
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:2087
memory::primitive_desc diff_bias_primitive_desc() const
Definition: mkldnn.hpp:2144
5D weights tensor in the blocked format.
Definition: mkldnn_types.h:312
Winograd deconvolution.
Definition: mkldnn_types.h:448
Definition: mkldnn.hpp:245
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:2942
number of inputs expected
Definition: mkldnn_types.h:1087
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:2760
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:1848
mkldnn_softmax_desc_t data
Definition: mkldnn.hpp:2749
Definition: mkldnn.hpp:342
Definition: mkldnn.hpp:3695
Definition: mkldnn.hpp:3113
Definition: mkldnn.hpp:2844
desc(prop_kind aprop_kind, algorithm alg_kind, const memory::desc &src_desc, T alpha=0, T beta=0)
Definition: mkldnn.hpp:2618
An unspecified engine.
Definition: mkldnn_types.h:1133
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:789
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:3139
memory::primitive_desc diff_dst_layer_primitive_desc() const
Definition: mkldnn.hpp:4019
A view primitive.
Definition: mkldnn_types.h:374
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:3833
Definition: mkldnn.hpp:258
Definition: mkldnn.hpp:324
Definition: mkldnn.hpp:3866
4D weights tensor in the format (output channels, input channels, height, width) with output channels...
Definition: mkldnn_types.h:205
Definition: mkldnn.hpp:332
mkldnn_primitive_kind_t convert_to_c(primitive::kind akind)
Definition: mkldnn.hpp:151
Definition: mkldnn.hpp:1489
memory::primitive_desc src_iter_primitive_desc() const
Definition: mkldnn.hpp:3716
Definition: mkldnn.hpp:337
Definition: mkldnn.hpp:327
Definition: mkldnn.hpp:320
Definition: mkldnn.hpp:329
Average pooling exclude padding.
Definition: mkldnn_types.h:439
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:374
Definition: mkldnn_types.h:850
Forward data propagation (inference mode).
Definition: mkldnn_types.h:351
6D weight tensor in the goidhw format with extra dimension for groups
Definition: mkldnn_types.h:286
5D weight tensor in the oidhw format.
Definition: mkldnn_types.h:157
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:578
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:2974
Direct deconvolution.
Definition: mkldnn_types.h:446
memory::primitive_desc workspace_primitive_desc() const
Definition: mkldnn.hpp:3764
Eltwise: abs.
Definition: mkldnn_types.h:423
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:2996
5D weights tensor in the oihw format with output channels data laid out in memory in 16-element block...
Definition: mkldnn_types.h:238
pooling_backward(const primitive_desc &aprimitive_desc, const primitive::at &diff_dst, const primitive::at &workspace, const memory &diff_src)
Definition: mkldnn.hpp:2592
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
A memory descriptor.
Definition: mkldnn.hpp:666
deconvolution_backward_data(const primitive_desc &aprimitive_desc, const primitive::at &diff_dst, const primitive::at &weights, const memory &diff_src)
Definition: mkldnn.hpp:2009
5D weights tensor in the hwio format with extra dimension for groups that comes after the output chan...
Definition: mkldnn_types.h:226
5D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:254
bool operator!=(mkldnn_data_type_t a, memory::data_type b)
Definition: mkldnn.hpp:853
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:3489
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: mkldnn_types.h:417
mkldnn_inner_product_desc_t data
Definition: mkldnn.hpp:3509
engine get_engine()
Definition: mkldnn.hpp:2006
mkldnn_status_t status
Definition: mkldnn.hpp:159
deconvolution_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const memory &dst)
Definition: mkldnn.hpp:1902
eltwise_backward relu_backward
Definition: mkldnn.hpp:2737
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:971
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:2047
2D data tensor.
Definition: mkldnn_types.h:120
memory::primitive_desc diff_weights_primitive_desc() const
Definition: mkldnn.hpp:2132
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:3306
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:4172
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:1099
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:2807
view(memory input, memory::dims dims, memory::dims offsets)
Definition: mkldnn.hpp:980
Definition: mkldnn.hpp:1282
Definition: mkldnn.hpp:262
An LRN primitive.
Definition: mkldnn_types.h:396
Definition: mkldnn_types.h:876
mkldnn_padding_kind_t
Kinds of padding.
Definition: mkldnn_types.h:335
memory::primitive_desc weights_primitive_desc() const
Definition: mkldnn.hpp:3465
rnn_backward(const primitive_desc &aprimitive_desc, const primitive::at &src_layer, const primitive::at &src_iter, const primitive::at &weights_layer, const primitive::at &weights_iter, const primitive::at &bias, const primitive::at &dst_layer, const primitive::at &dst_iter, const memory &diff_src_layer, const memory &diff_src_iter, const memory &diff_weights_layer, const memory &diff_weights_iter, const memory &diff_bias, const primitive::at &diff_dst_layer, const primitive::at &diff_dst_iter, const primitive::at &workspace)
Definition: mkldnn.hpp:4058
Lazy stream.
Definition: mkldnn_types.h:1137
Definition: mkldnn.hpp:328
desc(const memory::desc &diff_desc, const memory::desc &data_desc, int softmax_axis)
Definition: mkldnn.hpp:2787
5D weights tensor in the blocked version of goihw format with output channels data laid out in memory...
Definition: mkldnn_types.h:268
Definition: mkldnn.hpp:301
void get_output_scales(int &mask, std::vector< float > &scales) const
Definition: mkldnn.hpp:436
desc(algorithm kind)
Definition: mkldnn.hpp:3641
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:2265
Definition: mkldnn.hpp:1918
5D weights tensor in the format (num_layers, num_directions, num_gates, output_channels, input_chanels).
Definition: mkldnn_types.h:315
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:3152
Definition: mkldnn.hpp:3507
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:2241
Forward data propagation (training mode).
Definition: mkldnn_types.h:347
Definition: mkldnn.hpp:341
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:3477
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:3593
mkldnn_convolution_desc_t data
Definition: mkldnn.hpp:1490
memory(const primitive &aprimitive)
Constructs a memory primitive from a generic primitive.
Definition: mkldnn.hpp:735
engine get_engine()
Definition: mkldnn.hpp:1050
post_ops()
Definition: mkldnn.hpp:365
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:3239
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:1199
mkldnn_data_type_t
Data type specification.
Definition: mkldnn_types.h:62
Definition: mkldnn.hpp:1380
Definition: mkldnn.hpp:315
convolution descriptor
Definition: mkldnn_types.h:1100
primitive_desc(const desc &adesc, const engine &aengine, const convolution_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:1424
A memory primitive descriptor.
Definition: mkldnn.hpp:693
memory::primitive_desc diff_src_primitive_desc() const
Definition: mkldnn.hpp:1970
Definition: mkldnn.hpp:311
Definition: mkldnn.hpp:2795
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:2343
primitive_desc(const desc &adesc, const engine &aengine)
Definition: mkldnn.hpp:2445
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 1...
Definition: mkldnn_types.h:220
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:3098
Eltwise: bounded_relu.
Definition: mkldnn_types.h:429
primitive_desc(const desc &adesc, const engine &aengine, const softmax_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:2796
Definition: mkldnn.hpp:2748
primitive_desc(const desc &adesc, const engine &aengine, const eltwise_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:2698
Definition: mkldnn_types.h:873
convolution_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &weights, const memory &dst)
Definition: mkldnn.hpp:1365
mkldnn_engine_kind_t
Kinds of engines.
Definition: mkldnn_types.h:931
Definition: mkldnn_types.h:846
int MKLDNN_API mkldnn_rnn_cell_get_gates_count(const mkldnn_rnn_cell_desc_t *rnn_cell_desc)
Returns the number of gates of a particular rnn_cell_desc.
memory::primitive_desc diff_dst_iter_primitive_desc() const
Definition: mkldnn.hpp:4031
primitive_desc(const desc &adesc, const engine &aengine, const deconvolution_forward::primitive_desc &hint_fwd_primitive_desc)
Definition: mkldnn.hpp:1960
memory::primitive_desc diff_weights_layer_primitive_desc() const
Definition: mkldnn.hpp:3983
memory::primitive_desc bias_primitive_desc() const
Definition: mkldnn.hpp:3752
6D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:294
bool operator!=(const T other) const
Definition: mkldnn.hpp:69
engine get_engine()
Definition: mkldnn.hpp:2955
engine get_engine()
Definition: mkldnn.hpp:2489
Memory primitive that describes the data.
Definition: mkldnn.hpp:563
General tensor format for integer 8bit winograd convolution.
Definition: mkldnn_types.h:322
memory::primitive_desc src_layer_primitive_desc() const
Definition: mkldnn.hpp:3875
engine get_engine()
Definition: mkldnn.hpp:2720
Definition: mkldnn.hpp:323
memory::primitive_desc dst_iter_primitive_desc() const
Definition: mkldnn.hpp:3947
Definition: mkldnn.hpp:2307
Definition: mkldnn.hpp:298
Round nearest.
Definition: mkldnn_types.h:80
6D weights tensor in the oidhw format with output channels data laid out in memory in 16-element bloc...
Definition: mkldnn_types.h:290
Definition: mkldnn.hpp:240
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:3220
Definition: mkldnn.hpp:1735
static mkldnn_stream_kind_t convert_to_c(kind akind)
Definition: mkldnn.hpp:4129
Definition: mkldnn.hpp:2024
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:1038
Definition: mkldnn.hpp:2843
pooling_forward(const primitive_desc &aprimitive_desc, const primitive::at &src, const memory &dst, const memory &workspace)
Definition: mkldnn.hpp:2504
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:1352
A reorder primitive.
Definition: mkldnn_types.h:376
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...
rnn_direction
Definition: mkldnn.hpp:296
primitive_desc(const std::vector< float > &scales, std::vector< memory::primitive_desc > inputs)
Definition: mkldnn.hpp:1103
5D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:258
An unspecified engine.
Definition: mkldnn_types.h:933
desc(const mkldnn_memory_desc_t &adata)
Constructs a memory descriptor from a C API data structure.
Definition: mkldnn.hpp:689
Definition: mkldnn.hpp:1681
Definition: mkldnn.hpp:1078
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:968
mkldnn_convolution_relu_desc_t data
Definition: mkldnn.hpp:1671
5D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:262
5D weights tensor in the blocked version of goihw format with both input and output channels data lai...
Definition: mkldnn_types.h:234
mkldnn_alg_kind_t
Kinds of algorithms.
Definition: mkldnn_types.h:408
Definition: mkldnn.hpp:259
inner product descriptor
Definition: mkldnn_types.h:1108
A pooling primitive.
Definition: mkldnn_types.h:394
weights memory primitive descriptor desc
Definition: mkldnn_types.h:1118
output memory primitive desc
Definition: mkldnn_types.h:1115
Definition: mkldnn.hpp:2542
5D weights tensor in the format (depth, height, width, input channels, output channels).
Definition: mkldnn_types.h:155
mkldnn_batch_normalization_desc_t data
Definition: mkldnn.hpp:2845
Definition: mkldnn.hpp:885
mkldnn_status_t MKLDNN_API mkldnn_primitive_destroy(mkldnn_primitive_t primitive)
Deletes a primitive.
Definition: mkldnn.hpp:330
std::string message
Definition: mkldnn.hpp:160
mkldnn_status_t MKLDNN_API mkldnn_deconvolution_backward_weights_desc_init(mkldnn_deconvolution_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 deconvolution descriptor conv_desc for backward propagation with respect to weights usi...
mkldnn_status_t MKLDNN_API mkldnn_rnn_backward_desc_init(mkldnn_rnn_desc_t *rnn_desc, mkldnn_prop_kind_t prop_kind, const mkldnn_rnn_cell_desc_t *rnn_cell_desc, const mkldnn_rnn_direction_t direction, const mkldnn_memory_desc_t *src_layer_desc, const mkldnn_memory_desc_t *src_iter_desc, const mkldnn_memory_desc_t *weights_layer_desc, const mkldnn_memory_desc_t *weights_iter_desc, const mkldnn_memory_desc_t *bias_desc, const mkldnn_memory_desc_t *dst_layer_desc, const mkldnn_memory_desc_t *dst_iter_desc, const mkldnn_memory_desc_t *diff_src_layer_desc, const mkldnn_memory_desc_t *diff_src_iter_desc, const mkldnn_memory_desc_t *diff_weights_layer_desc, const mkldnn_memory_desc_t *diff_weights_iter_desc, const mkldnn_memory_desc_t *diff_bias_desc, const mkldnn_memory_desc_t *diff_dst_layer, const mkldnn_memory_desc_t *diff_dst_iter_desc)
Initializes a rnn descriptor rnn_desc for backward propagation using prop_kind, rnn_cell_desc, direction, and memory descriptors.
Definition: mkldnn.hpp:2857
Definition: mkldnn.hpp:312
memory::primitive_desc src_primitive_desc() const
Definition: mkldnn.hpp:3578
4D weights tensor in the oihw format with both input and output channels data laid out in memory in 8...
Definition: mkldnn_types.h:195
handle(const handle &other)
Definition: mkldnn.hpp:71
Forward data propagation (alias for mkldnn_forward_training)
Definition: mkldnn_types.h:355
3D data tensor in the format (batch, seq_length, input channels).
Definition: mkldnn_types.h:302
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:238
memory::primitive_desc diff_src_layer_primitive_desc() const
Definition: mkldnn.hpp:3959
lrn descriptor
Definition: mkldnn_types.h:1106
workspace memory primitive desc
Definition: mkldnn_types.h:1122
lrn_backward(const primitive_desc &aprimitive_desc, const primitive::at &src, const primitive::at &diff_dst, const memory &diff_src)
Definition: mkldnn.hpp:2396
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:1551
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:3453
mkldnn_deconvolution_desc_t data
Definition: mkldnn.hpp:1737
desc(prop_kind aprop_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, T epsilon, unsigned flags)
Definition: mkldnn.hpp:3116
6D weights tensor in the oidhw format with output channels data laid out in memory in 16-element bloc...
Definition: mkldnn_types.h:161
Definition: mkldnn.hpp:221
primitive_desc(const desc &adesc, const primitive_attr &aattr, const engine &aengine)
Definition: mkldnn.hpp:2866
Definition: mkldnn_types.h:1103
float get_clipping() const
Definition: mkldnn.hpp:3656
weights grad.
Definition: mkldnn_types.h:1119
4D data tensor in the nchw format typically used in Caffe.
Definition: mkldnn_types.h:122
Definition: mkldnn.hpp:318
mkldnn_status_t MKLDNN_API mkldnn_rnn_forward_desc_init(mkldnn_rnn_desc_t *rnn_desc, mkldnn_prop_kind_t prop_kind, const mkldnn_rnn_cell_desc_t *rnn_cell_desc, const mkldnn_rnn_direction_t direction, const mkldnn_memory_desc_t *src_layer_desc, const mkldnn_memory_desc_t *src_iter_desc, const mkldnn_memory_desc_t *weights_layer_desc, const mkldnn_memory_desc_t *weights_iter_desc, const mkldnn_memory_desc_t *bias_desc, const mkldnn_memory_desc_t *dst_layer_desc, const mkldnn_memory_desc_t *dst_iter_desc)
Initializes a rnn descriptor rnn_desc for forward propagation using prop_kind, rnn_cell_desc, direction, and memory descriptors.
void append_eltwise(float scale, algorithm alg, float alpha, float beta)
Definition: mkldnn.hpp:392
primitive kind
Definition: mkldnn_types.h:1085
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:1938
5D weights tensor in the blocked format.
Definition: mkldnn_types.h:317
int get_state_count() const
Definition: mkldnn.hpp:3665
4D weights tensor in the oihw format with output channels data laid out in memory in 16-element block...
Definition: mkldnn_types.h:184
Definition: mkldnn.hpp:314
memory::primitive_desc dst_primitive_desc() const
Definition: mkldnn.hpp:3383
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:2520
A merged convolution-relu primitive for inference mode only.
Definition: mkldnn.hpp:1669
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:3011
kind
Definition: mkldnn.hpp:4125
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:1383
Definition: mkldnn.hpp:336
desc(prop_kind aprop_kind, rnn_cell::desc cell, const rnn_direction direction, const memory::desc &src_layer_desc, const memory::desc &src_iter_desc, const memory::desc &weights_layer_desc, const memory::desc &weights_iter_desc, const memory::desc &bias_desc, const memory::desc &dst_layer_desc, const memory::desc &dst_iter_desc)
Definition: mkldnn.hpp:3674
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...