Deep Neural Network Library (DNNL)  1.91.0
Performance library for Deep Learning
dnnl.hpp
Go to the documentation of this file.
1 /*******************************************************************************
2 * Copyright 2016-2019 Intel Corporation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *******************************************************************************/
16 
19 
20 #ifndef DNNL_HPP
21 #define DNNL_HPP
22 
23 #include "dnnl_config.h"
24 
26 #include <algorithm>
27 #include <cstdlib>
28 #include <iterator>
29 #include <memory>
30 #include <string>
31 #include <vector>
32 #include <unordered_map>
33 
34 #include "dnnl.h"
35 
36 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
37 #include <CL/cl.h>
38 #endif
39 
40 #if DNNL_WITH_SYCL
41 #include <CL/sycl.hpp>
42 #endif
43 
45 
46 // __cpp_exceptions is referred from
47 // https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_exceptions.html
48 // gcc < 5 does not define __cpp_exceptions but __EXCEPTIONS,
49 // Microsoft C++ Compiler does not provide an option to disable exceptions
50 #ifndef DNNL_ENABLE_EXCEPTIONS
51 #if __cpp_exceptions || __EXCEPTIONS \
52  || (defined(_MSC_VER) && !defined(__clang__))
53 #define DNNL_ENABLE_EXCEPTIONS 1
54 #else
55 #define DNNL_ENABLE_EXCEPTIONS 0
56 #endif
57 #endif
58 
59 #if defined(__GNUC__) || defined(__clang__)
60 #define DNNL_TRAP() __builtin_trap()
61 #elif defined(__INTEL_COMPILER) || defined(_MSC_VER)
62 #define DNNL_TRAP() __debugbreak()
63 #else
64 #error "unknown compiler"
65 #endif
66 
67 #if DNNL_ENABLE_EXCEPTIONS
68 #define DNNL_THROW_ERROR(status, msg) throw error(status, msg)
69 #else
70 #include <cstdio>
71 #define DNNL_THROW_ERROR(status, msg) \
72  do { \
73  fputs(msg, stderr); \
74  DNNL_TRAP(); \
75  } while (0)
76 #endif
77 
80 
82 namespace dnnl {
83 
87 
92 struct error : public std::exception {
94  const char *message;
95 
100  error(dnnl_status_t status, const char *message)
101  : status(status), message(message) {}
102 
104  const char *what() const noexcept override { return message; }
105 
111  static void wrap_c_api(dnnl_status_t status, const char *message) {
112  if (status != dnnl_success) DNNL_THROW_ERROR(status, message);
113  }
114 };
115 
117 template <typename T>
118 struct handle_traits {};
119 
133 template <typename T, typename traits = handle_traits<T>>
134 struct handle {
135 private:
136  static dnnl_status_t dummy_destructor(T) { return dnnl_success; }
137  std::shared_ptr<typename std::remove_pointer<T>::type> data_ {0};
138 
139 protected:
140  bool operator==(const T other) const { return other == data_.get(); }
141  bool operator!=(const T other) const { return !(*this == other); }
142 
143 public:
151  handle() = default;
152 
154  handle(const handle<T, traits> &) = default;
156  handle<T, traits> &operator=(const handle<T, traits> &) = default;
158  handle(handle<T, traits> &&) = default;
161 
167  explicit handle(T t, bool weak = false) { reset(t, weak); }
168 
174  void reset(T t, bool weak = false) {
175  data_.reset(t, weak ? &dummy_destructor : traits::destructor);
176  }
177 
183  T get(bool allow_empty = false) const {
184  T result = data_.get();
185  if (allow_empty == false && result == nullptr)
186  DNNL_THROW_ERROR(
187  dnnl_invalid_arguments, "object is not initialized");
188  return result;
189  }
190 
195  explicit operator T() const { return get(true); }
196 
200  explicit operator bool() const { return get(true) != nullptr; }
201 
208  bool operator==(const handle<T, traits> &other) const {
209  return other.data_.get() == data_.get();
210  }
211 
218  bool operator!=(const handle &other) const { return !(*this == other); }
219 };
220 
222 template <>
223 struct handle_traits<dnnl_memory_t> {
224  static constexpr auto destructor = &dnnl_memory_destroy;
225 };
226 
227 template <>
228 struct handle_traits<dnnl_primitive_desc_t> {
229  static constexpr auto destructor = &dnnl_primitive_desc_destroy;
230 };
231 
232 template <>
233 struct handle_traits<dnnl_primitive_t> {
234  static constexpr auto destructor = &dnnl_primitive_destroy;
235 };
236 
237 template <>
238 struct handle_traits<dnnl_primitive_desc_iterator_t> {
239  static constexpr auto destructor = &dnnl_primitive_desc_iterator_destroy;
240 };
242 
244 
245 struct stream;
246 struct error;
247 struct memory;
248 struct primitive_desc;
249 
254 
258 
260 struct primitive : public handle<dnnl_primitive_t> {
261  friend struct error;
262  friend struct stream;
263 
264 public:
267  enum class kind {
277  sum = dnnl_sum,
289  lrn = dnnl_lrn,
297  rnn = dnnl_rnn,
306  };
307 
308  using handle::handle;
309 
311  primitive() = default;
312 
317 
321  primitive(const primitive_desc &pd);
322 
328 
332  inline kind get_kind() const;
333 
346  void execute(
347  stream &stream, const std::unordered_map<int, memory> &args) const;
348 
349 #ifdef DNNL_SYCL_DPCPP
350  cl::sycl::event DNNL_API execute_sycl(stream &astream,
365  const std::unordered_map<int, memory> &args,
366  const std::vector<cl::sycl::event> &deps = {}) const;
367 #endif
368 };
369 
375  return static_cast<dnnl_primitive_kind_t>(kind);
376 }
377 
381  "could not get a primitive descriptor from a primitive");
382  return pd;
383 }
384 
387  // TODO (Roma): the code below is only needed because get_primitive_desc
388  // returns a C type.
391  pd, dnnl_query_primitive_kind, 0, (void *)&kind),
392  "could not get a primitive kind from a primitive descriptor");
393  return static_cast<dnnl::primitive::kind>(kind);
394 }
395 
397 
409 
411 enum class scratchpad_mode {
433 };
434 
440  return static_cast<dnnl_scratchpad_mode_t>(mode);
441 }
442 
444 enum class prop_kind {
468 };
469 
475  return static_cast<dnnl_prop_kind_t>(kind);
476 }
477 
479 enum class algorithm {
480  undef = dnnl_alg_kind_undef,
557 };
558 
563  return static_cast<dnnl_alg_kind_t>(algorithm);
564 }
565 
567 
570 
572 enum class normalization_flags : unsigned {
586 
602 
611 };
612 
617  return static_cast<dnnl_normalization_flags_t>(flags);
618 }
619 
621 
624 
626 enum class rnn_flags : unsigned {
629 };
630 
635  return static_cast<dnnl_rnn_flags_t>(flags);
636 }
637 
638 #define DNNL_DEFINE_BITMASK_OPS(enum_name) \
639  inline enum_name operator|(enum_name lhs, enum_name rhs) { \
640  return static_cast<enum_name>( \
641  static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); \
642  } \
643 \
644  inline enum_name operator&(enum_name lhs, enum_name rhs) { \
645  return static_cast<enum_name>( \
646  static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); \
647  } \
648 \
649  inline enum_name operator^(enum_name lhs, enum_name rhs) { \
650  return static_cast<enum_name>( \
651  static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); \
652  } \
653 \
654  inline enum_name &operator|=(enum_name &lhs, enum_name rhs) { \
655  lhs = static_cast<enum_name>( \
656  static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); \
657  return lhs; \
658  } \
659 \
660  inline enum_name &operator&=(enum_name &lhs, enum_name rhs) { \
661  lhs = static_cast<enum_name>( \
662  static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); \
663  return lhs; \
664  } \
665 \
666  inline enum_name &operator^=(enum_name &lhs, enum_name rhs) { \
667  lhs = static_cast<enum_name>( \
668  static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); \
669  return lhs; \
670  } \
671 \
672  inline enum_name operator~(enum_name rhs) { \
673  return static_cast<enum_name>(~static_cast<unsigned>(rhs)); \
674  }
675 
676 DNNL_DEFINE_BITMASK_OPS(normalization_flags)
677 DNNL_DEFINE_BITMASK_OPS(rnn_flags)
678 
679 enum class rnn_direction {
693 };
694 
699  return static_cast<dnnl_rnn_direction_t>(dir);
700 }
701 
703 
706 
713 enum class query {
716 
721 
726 
735 
740 
745 
748 
751 
784 
803 };
804 
809  return static_cast<dnnl_query_t>(query);
810 }
811 
813 
819 
821 template <>
822 struct handle_traits<dnnl_post_ops_t> {
823  static constexpr auto destructor = &dnnl_post_ops_destroy;
824 };
826 
834 struct post_ops : public handle<dnnl_post_ops_t> {
836 
839  dnnl_post_ops_t result;
841  dnnl_post_ops_create(&result), "could not create post-ops");
842  reset(result);
843  }
844 
846  int len() const { return dnnl_post_ops_len(get()); }
847 
851  primitive::kind kind(int index) const {
853  "post-ops index is out of range");
854  return static_cast<primitive::kind>(
855  dnnl_post_ops_get_kind(get(), index));
856  }
857 
880  void append_sum(float scale = 1.) {
882  "could not append a sum post-op");
883  }
884 
889  void get_params_sum(int index, float &scale) const {
891  "could not get parameters of a sum post-op");
892  }
893 
910  float scale, algorithm algorithm, float alpha, float beta) {
912  convert_to_c(algorithm), alpha, beta),
913  "could not append an elementwise post-op");
914  }
915 
923  void get_params_eltwise(int index, float &scale, algorithm &algorithm,
924  float &alpha, float &beta) const {
925  dnnl_alg_kind_t c_alg;
927  get(), index, &scale, &c_alg, &alpha, &beta),
928  "could not get parameters of an elementwise post-op");
929  algorithm = static_cast<dnnl::algorithm>(c_alg);
930  }
931 };
932 
934 template <>
935 struct handle_traits<dnnl_primitive_attr_t> {
936  static constexpr auto destructor = &dnnl_primitive_attr_destroy;
937 };
939 
943 struct primitive_attr : public handle<dnnl_primitive_attr_t> {
945 
948  dnnl_primitive_attr_t result;
950  "could not create primitive attribute");
951  reset(result);
952  }
953 
960  : handle<dnnl_primitive_attr_t>(attr) {}
961 
964  dnnl_scratchpad_mode_t result;
967  "could not get primitive scratchpad mode attribute");
968  return scratchpad_mode(result);
969  }
970 
976  get(), dnnl::convert_to_c(mode)),
977  "could not set primitive scratchpad mode attribute");
978  }
979 
989  void get_output_scales(int &mask, std::vector<float> &scales) const {
990  dnnl_dim_t count;
991  int c_mask;
992  const float *c_scales;
994  get(), &count, &c_mask, &c_scales),
995  "could not get primitive output scales attribute");
996  scales.resize(count);
997 
998  mask = c_mask;
999  for (dnnl_dim_t c = 0; c < count; ++c)
1000  scales[c] = c_scales[c];
1001  }
1002 
1045  void set_output_scales(int mask, const std::vector<float> &scales) {
1047  (dnnl_dim_t)scales.size(), mask, &scales[0]),
1048  "could not set primitive output scales attribute");
1049  }
1050 
1062  void get_scales(int arg, int &mask, std::vector<float> &scales) const {
1063  dnnl_dim_t count;
1064  int c_mask;
1065  const float *c_scales;
1067  get(), arg, &count, &c_mask, &c_scales),
1068  "could not get scales");
1069  scales.resize(count);
1070 
1071  mask = c_mask;
1072  for (dnnl_dim_t c = 0; c < count; ++c)
1073  scales[c] = c_scales[c];
1074  }
1075 
1092  void set_scales(int arg, int mask, const std::vector<float> &scales) {
1094  (dnnl_dim_t)scales.size(), mask, &scales[0]),
1095  "could not set scales");
1096  }
1097 
1109  int arg, int &mask, std::vector<int32_t> &zero_points) const {
1110  dnnl_dim_t count;
1111  int c_mask;
1112  const int32_t *c_zero_points;
1114  get(), arg, &count, &c_mask, &c_zero_points),
1115  "could not get primitive zero points attribute");
1116  zero_points.resize(count);
1117 
1118  mask = c_mask;
1119  for (dnnl_dim_t c = 0; c < count; ++c)
1120  zero_points[c] = c_zero_points[c];
1121  }
1122 
1145  int arg, int mask, const std::vector<int32_t> &zero_points) {
1148  (dnnl_dim_t)zero_points.size(), mask, &zero_points[0]),
1149  "could not set primitive zero points attribute");
1150  }
1151 
1155  const post_ops get_post_ops() const {
1156  post_ops result;
1157  const_dnnl_post_ops_t c_result;
1159  "could not get primitive post-ops attribute");
1160  result.reset(const_cast<dnnl_post_ops_t>(c_result), true);
1161  return result;
1162  }
1163 
1172  void set_post_ops(const post_ops ops) {
1174  "could not set primitive post-ops attribute");
1175  }
1176 
1210  void set_rnn_data_qparams(float scale, float shift) {
1213  "could not get primitive RNN data quantization parameters "
1214  "attributes");
1215  }
1216 
1243  void set_rnn_weights_qparams(int mask, const std::vector<float> &scales) {
1245  get(), (int)scales.size(), mask, &scales[0]),
1246  "could not get primitive RNN weights quantization parameters "
1247  "attributes");
1248  }
1249 };
1250 
1252 
1254 
1265 
1267 template <>
1268 struct handle_traits<dnnl_engine_t> {
1269  static constexpr auto destructor = &dnnl_engine_destroy;
1270 };
1272 
1274 struct engine : public handle<dnnl_engine_t> {
1275  friend struct primitive;
1276  friend struct reorder;
1277 
1279  enum class kind {
1281  any = dnnl_any_engine,
1283  cpu = dnnl_cpu,
1285  gpu = dnnl_gpu,
1286  };
1287 
1288  using handle::handle;
1289 
1292  engine() = default;
1293 
1298  static size_t get_count(kind kind) {
1299  return dnnl_engine_get_count(convert_to_c(kind));
1300  }
1301 
1307  engine(kind kind, size_t index) {
1310  dnnl_engine_create(&engine, convert_to_c(kind), index),
1311  "could not create an engine");
1312  reset(engine);
1313  }
1314 
1315 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
1316  engine(kind kind, cl_device_id device, cl_context context) {
1324  error::wrap_c_api(dnnl_engine_create_ocl(
1325  &engine, convert_to_c(kind), device, context),
1326  "could not create an engine");
1327  reset(engine);
1328  }
1329 #endif
1330 
1331 #if DNNL_WITH_SYCL
1332  DNNL_API engine(kind akind, const cl::sycl::device &dev,
1338  const cl::sycl::context &ctx);
1339 #endif
1340 
1346  dnnl_engine_t c_engine;
1349  dnnl::convert_to_c(dnnl::query::engine), 0, &c_engine),
1350  "could not get an engine from a primitive_desc");
1351  reset(c_engine, true);
1352  }
1353 
1356  kind get_kind() const {
1359  "could not get kind of an engine");
1360  return static_cast<engine::kind>(kind);
1361  }
1362 
1363 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
1364  cl_context get_ocl_context() const {
1367  cl_context context = nullptr;
1368  error::wrap_c_api(dnnl_engine_get_ocl_context(get(), &context),
1369  "could not get an OpenCL context fron an engine");
1370  return context;
1371  }
1372 
1375  cl_device_id get_ocl_device() const {
1376  cl_device_id device = nullptr;
1377  error::wrap_c_api(dnnl_engine_get_ocl_device(get(), &device),
1378  "could not get an OpenCL device fron an engine");
1379  return device;
1380  }
1381 #endif
1382 
1383 #if DNNL_WITH_SYCL
1384  cl::sycl::context DNNL_API get_sycl_context() const;
1386 
1388  cl::sycl::device DNNL_API get_sycl_device() const;
1389 #endif
1390 
1396  template <class primitive_desc>
1397  static engine query(const primitive_desc &pd) {
1398  return query(pd, dnnl::query::engine);
1399  }
1400 
1401 private:
1402  static dnnl_engine_kind_t convert_to_c(kind kind) {
1403  return static_cast<dnnl_engine_kind_t>(kind);
1404  }
1405 
1406  template <class primitive_desc>
1407  static engine query(const primitive_desc &pd, dnnl::query what) {
1408  dnnl_engine_t c_engine;
1410  dnnl::convert_to_c(what), 0, &c_engine),
1411  "could not get an engine from a primitive_desc");
1412  return engine(c_engine, true);
1413  }
1414 };
1415 
1417 
1425 
1427 template <>
1428 struct handle_traits<dnnl_stream_t> {
1429  static constexpr auto destructor = &dnnl_stream_destroy;
1430 };
1432 
1434 struct stream : public handle<dnnl_stream_t> {
1435  using handle::handle;
1436 
1438  enum class flags : unsigned {
1448  };
1449 
1452  stream() = default;
1453 
1462  static_cast<dnnl_stream_flags_t>(flags)),
1463  "could not create a stream");
1464  reset(stream);
1465  }
1466 
1467 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
1468  stream(const engine &engine, cl_command_queue queue) {
1474  error::wrap_c_api(dnnl_stream_create_ocl(&stream, engine.get(), queue),
1475  "could not create a stream");
1476  reset(stream);
1477  }
1478 
1481  cl_command_queue get_ocl_command_queue() const {
1482  cl_command_queue queue = nullptr;
1483  error::wrap_c_api(dnnl_stream_get_ocl_command_queue(get(), &queue),
1484  "could not get an OpenCL command queue from a stream");
1485  return queue;
1486  }
1487 #endif
1488 
1489 #if DNNL_WITH_SYCL
1490  DNNL_API stream(const engine &eng, cl::sycl::queue &aqueue);
1495 
1497  cl::sycl::queue DNNL_API get_sycl_queue() const;
1498 #endif
1499 
1504  dnnl_stream_wait(get()), "could not wait on a stream");
1505  return *this;
1506  }
1507 };
1508 
1509 DNNL_DEFINE_BITMASK_OPS(stream::flags)
1510 
1511 
1600 
1607 struct memory : public handle<dnnl_memory_t> {
1609  typedef dnnl_dim_t dim;
1612  typedef std::vector<dim> dims;
1613 
1619  template <typename T>
1620  static void validate_dims(const std::vector<T> &v) {
1621  if (v.size() > DNNL_MAX_NDIMS)
1622  DNNL_THROW_ERROR(dnnl_invalid_arguments, "dimensions are invalid");
1623  }
1624 
1626  enum class data_type {
1630  f16 = dnnl_f16,
1632  bf16 = dnnl_bf16,
1634  f32 = dnnl_f32,
1636  s32 = dnnl_s32,
1638  s8 = dnnl_s8,
1640  u8 = dnnl_u8,
1641  };
1642 
1644  enum class format_kind {
1649  any = dnnl_format_kind_any,
1653  blocked = dnnl_blocked,
1655  wino = dnnl_format_kind_wino,
1657  packed = dnnl_format_kind_rnn_packed,
1658  };
1659 
1700  enum class format_tag {
1705  any = dnnl_format_tag_any,
1706 
1708  a = dnnl_a,
1709 
1711  ab = dnnl_ab,
1713  ba = dnnl_ba,
1714 
1716  abc = dnnl_abc,
1718  acb = dnnl_acb,
1720  bac = dnnl_bac,
1722  bca = dnnl_bca,
1724  cba = dnnl_cba,
1725 
1727  abcd = dnnl_abcd,
1729  acdb = dnnl_acdb,
1731  bacd = dnnl_bacd,
1733  bcda = dnnl_bcda,
1735  cdba = dnnl_cdba,
1736 
1738  abcde = dnnl_abcde,
1740  abdec = dnnl_abdec,
1742  acbde = dnnl_acbde,
1744  acdeb = dnnl_acdeb,
1746  bcdea = dnnl_bcdea,
1748  cdeba = dnnl_cdeba,
1750  decab = dnnl_decab,
1752  abcdef = dnnl_abcdef,
1754  acbdef = dnnl_acbdef,
1756  defcab = dnnl_defcab,
1757 
1759  x = a,
1761  nc = ab,
1763  cn = ba,
1765  tn = ab,
1767  nt = ba,
1769  ncw = abc,
1771  nwc = acb,
1773  nchw = abcd,
1775  nhwc = acdb,
1777  chwn = bcda,
1779  ncdhw = abcde,
1781  ndhwc = acdeb,
1782 
1784  oi = ab,
1786  io = ba,
1788  oiw = abc,
1790  owi = acb,
1792  wio = cba,
1794  iwo = bca,
1796  oihw = abcd,
1798  hwio = cdba,
1800  ohwi = acdb,
1802  ihwo = bcda,
1804  iohw = bacd,
1806  oidhw = abcde,
1808  dhwio = cdeba,
1810  odhwi = acdeb,
1812  idhwo = bcdea,
1813 
1815  goiw = abcd,
1817  goihw = abcde,
1819  hwigo = decab,
1821  giohw = acbde,
1823  goidhw = abcdef,
1825  giodhw = acbdef,
1827  dhwigo = defcab,
1828 
1830  tnc = abc,
1832  ntc = bac,
1835  ldnc = abcd,
1842  ldigo = abcde,
1849  ldgoi = abdec,
1856  ldgo = abcd,
1857 
1858  // Opaque blocked formats
1859 
1860  Abc16a = dnnl_Abc16a,
1861  ABc16a16b = dnnl_ABc16a16b,
1862  ABc4a4b = dnnl_ABc4a4b,
1863  aBc16b = dnnl_aBc16b,
1864  ABc16b16a = dnnl_ABc16b16a,
1865  Abc4a = dnnl_Abc4a,
1866  aBc4b = dnnl_aBc4b,
1867  ABc4b16a4b = dnnl_ABc4b16a4b,
1868  ABc2b8a4b = dnnl_ABc2b8a4b,
1869  ABc4b4a = dnnl_ABc4b4a,
1870  ABc8a16b2a = dnnl_ABc8a16b2a,
1871  ABc8a8b = dnnl_ABc8a8b,
1872  aBc8b = dnnl_aBc8b,
1873  ABc8b16a2b = dnnl_ABc8b16a2b,
1874  ABc8b8a = dnnl_ABc8b8a,
1875  Abcd16a = dnnl_Abcd16a,
1876  ABcd16a16b = dnnl_ABcd16a16b,
1877  aBcd16b = dnnl_aBcd16b,
1878  ABcd16b16a = dnnl_ABcd16b16a,
1879  aBCd16b16c = dnnl_aBCd16b16c,
1880  aBCd16c16b = dnnl_aBCd16c16b,
1881  Abcd4a = dnnl_Abcd4a,
1882  aBcd4b = dnnl_aBcd4b,
1883  ABcd4b16a4b = dnnl_ABcd4b16a4b,
1884  ABcd2b8a4b = dnnl_ABcd2b8a4b,
1885  ABcd4b4a = dnnl_ABcd4b4a,
1886  ABcd4a4b = dnnl_ABcd4a4b,
1887  aBCd4c16b4c = dnnl_aBCd4c16b4c,
1888  aBCd2c8b4c = dnnl_aBCd2c8b4c,
1889  aBCd4c4b = dnnl_aBCd4c4b,
1890  aBCd4b4c = dnnl_aBCd4b4c,
1891  ABcd8a16b2a = dnnl_ABcd8a16b2a,
1892  ABcd8a8b = dnnl_ABcd8a8b,
1894  aBcd8b = dnnl_aBcd8b,
1895  ABcd8b16a2b = dnnl_ABcd8b16a2b,
1896  aBCd8b16c2b = dnnl_aBCd8b16c2b,
1898  ABcd8b8a = dnnl_ABcd8b8a,
1899  aBCd8b8c = dnnl_aBCd8b8c,
1900  aBCd8c16b2c = dnnl_aBCd8c16b2c,
1901  aBCd8c8b = dnnl_aBCd8c8b,
1902  Abcde16a = dnnl_Abcde16a,
1903  ABcde16a16b = dnnl_ABcde16a16b,
1904  aBcde16b = dnnl_aBcde16b,
1905  ABcde16b16a = dnnl_ABcde16b16a,
1906  aBCde16b16c = dnnl_aBCde16b16c,
1907  aBCde16c16b = dnnl_aBCde16c16b,
1908  aBCde2c8b4c = dnnl_aBCde2c8b4c,
1909  Abcde4a = dnnl_Abcde4a,
1910  aBcde4b = dnnl_aBcde4b,
1911  ABcde4b4a = dnnl_ABcde4b4a,
1912  ABcde4a4b = dnnl_ABcde4a4b,
1913  aBCde4b4c = dnnl_aBCde4b4c,
1914  aBCde4c16b4c = dnnl_aBCde4c16b4c,
1915  aBCde4c4b = dnnl_aBCde4c4b,
1916  Abcde8a = dnnl_Abcde8a,
1917  ABcde8a8b = dnnl_ABcde8a8b,
1918  aBcde8b = dnnl_aBcde8b,
1919  ABcde8b16a2b = dnnl_ABcde8b16a2b,
1920  ABcde4b16a4b = dnnl_ABcde4b16a4b,
1921  ABcde2b8a4b = dnnl_ABcde2b8a4b,
1922  aBCde8b16c2b = dnnl_aBCde8b16c2b,
1923  ABcde8b8a = dnnl_ABcde8b8a,
1924  aBCde8b8c = dnnl_aBCde8b8c,
1925  ABcd4a8b8a4b = dnnl_ABcd4a8b8a4b,
1926  ABcd2a8b8a2b = dnnl_ABcd2a8b8a2b,
1927  aBCde4b8c8b4c = dnnl_aBCde4b8c8b4c,
1928  aBCde2b8c8b2c = dnnl_aBCde2b8c8b2c,
1929  aBCde8c16b2c = dnnl_aBCde8c16b2c,
1930  aBCde8c8b = dnnl_aBCde8c8b,
1931  aBcdef16b = dnnl_aBcdef16b,
1932  aBCdef16b16c = dnnl_aBCdef16b16c,
1933  aBCdef16c16b = dnnl_aBCdef16c16b,
1934  aBcdef4b = dnnl_aBcdef4b,
1935  aBCdef4c4b = dnnl_aBCdef4c4b,
1936  aBCdef4b4c = dnnl_aBCdef4b4c,
1937  aBCdef8b8c = dnnl_aBCdef8b8c,
1938  aBCdef8c16b2c = dnnl_aBCdef8c16b2c,
1939  aBCdef4c16b4c = dnnl_aBCdef4c16b4c,
1940  aBCdef8c8b = dnnl_aBCdef8c8b,
1941  aBdc16b = dnnl_aBdc16b,
1942  aBdc4b = dnnl_aBdc4b,
1943  aBdc8b = dnnl_aBdc8b,
1944  aBdec16b = dnnl_aBdec16b,
1945  aBdec4b = dnnl_aBdec4b,
1946  aBdec8b = dnnl_aBdec8b,
1947  aBdefc16b = dnnl_aBdefc16b,
1948  aCBdef16c16b = dnnl_aCBdef16c16b,
1949  aBdefc4b = dnnl_aBdefc4b,
1950  aBdefc8b = dnnl_aBdefc8b,
1951  Acb16a = dnnl_Acb16a,
1952  Acb4a = dnnl_Acb4a,
1953  Acb8a = dnnl_Acb8a,
1954  aCBd16b16c = dnnl_aCBd16b16c,
1955  aCBd16c16b = dnnl_aCBd16c16b,
1956  aCBde16b16c = dnnl_aCBde16b16c,
1957  aCBde16c16b = dnnl_aCBde16c16b,
1958  Acdb16a = dnnl_Acdb16a,
1959  Acdb4a = dnnl_Acdb4a,
1960  Acdb8a = dnnl_Acdb8a,
1961  Acdeb16a = dnnl_Acdeb16a,
1962  Acdeb4a = dnnl_Acdeb4a,
1963  Acdeb8a = dnnl_Acdeb8a,
1964  BAc16a16b = dnnl_BAc16a16b,
1965  BAc16b16a = dnnl_BAc16b16a,
1966  BAcd16a16b = dnnl_BAcd16a16b,
1967  BAcd16b16a = dnnl_BAcd16b16a,
1968  ABcd32a32b = dnnl_ABcd32a32b,
1969  BAcde16b16 = dnnl_BAcde16b16a,
1970  aBdec32b = dnnl_aBdec32b,
1971  Abcdef16a = dnnl_Abcdef16a,
1972  Acdb32a = dnnl_Acdb32a,
1973  format_tag_last = dnnl_format_tag_last,
1974 
1975  nCdhw16c = dnnl_nCdhw16c,
1976  nCdhw4c = dnnl_nCdhw4c,
1977  nCdhw8c = dnnl_nCdhw8c,
1978  nChw16c = dnnl_nChw16c,
1979  nChw4c = dnnl_nChw4c,
1980  nChw8c = dnnl_nChw8c,
1981  nCw16c = dnnl_nCw16c,
1982  nCw4c = dnnl_nCw4c,
1983  nCw8c = dnnl_nCw8c,
1984  NCw16n16c = dnnl_NCw16n16c,
1985  NChw16n16c = dnnl_NChw16n16c,
1986  NCdhw16n16c = dnnl_NCdhw16n16c,
1987  NChw32n32c = dnnl_NChw32n32c,
1988  IOhw16i16o = dnnl_IOhw16i16o,
1989  Ohwi32o = dnnl_Ohwi32o,
1990  IOdhw16i16o = dnnl_IOdhw16i16o,
1991  gIOhw16i16o = dnnl_gIOhw16i16o,
1992  gOhwi32o = dnnl_gOhwi32o,
1993  Goidhw16g = dnnl_Goidhw16g,
1994  IOw16o16i = dnnl_IOw16o16i,
1995  OIw16i16o = dnnl_OIw16i16o,
1996  IOw16i16o = dnnl_IOw16i16o,
1997  gIOw16i16o = dnnl_gIOw16i16o,
1998  OIw16o16i = dnnl_OIw16o16i,
1999  Oiw16o = dnnl_Oiw16o,
2000  OIw4i16o4i = dnnl_OIw4i16o4i,
2001  OIw2i8o4i = dnnl_OIw2i8o4i,
2002  OIw4i4o = dnnl_OIw4i4o,
2003  OIw4o4i = dnnl_OIw4o4i,
2004  Oiw4o = dnnl_Oiw4o,
2005  OIw8i16o2i = dnnl_OIw8i16o2i,
2006  OIw8i8o = dnnl_OIw8i8o,
2007  OIw8o16i2o = dnnl_OIw8o16i2o,
2008  OIw8o8i = dnnl_OIw8o8i,
2009  Owi16o = dnnl_Owi16o,
2010  OwI16o2i = dnnl_OwI16o2i,
2011  Owi4o = dnnl_Owi4o,
2012  Owi8o = dnnl_Owi8o,
2013  IOhw16o16i = dnnl_IOhw16o16i,
2014  Ohwi16o = dnnl_Ohwi16o,
2015  OhwI16o2i = dnnl_OhwI16o2i,
2016  Ohwi4o = dnnl_Ohwi4o,
2017  Ohwi8o = dnnl_Ohwi8o,
2018  OIhw16i16o = dnnl_OIhw16i16o,
2019  OIhw16o16i = dnnl_OIhw16o16i,
2020  Oihw16o = dnnl_Oihw16o,
2021  OIhw4i16o4i = dnnl_OIhw4i16o4i,
2022  OIhw4i4o = dnnl_OIhw4i4o,
2023  OIhw4o4i = dnnl_OIhw4o4i,
2024  Oihw4o = dnnl_Oihw4o,
2025  OIhw8i16o2i = dnnl_OIhw8i16o2i,
2026  OIhw8i8o = dnnl_OIhw8i8o,
2027  OIhw8o16i2o = dnnl_OIhw8o16i2o,
2028  OIhw8o8i = dnnl_OIhw8o8i,
2029  OIhw2i8o4i = dnnl_OIhw2i8o4i,
2030  Odhwi16o = dnnl_Odhwi16o,
2031  OdhwI16o2i = dnnl_OdhwI16o2i,
2032  Odhwi4o = dnnl_Odhwi4o,
2033  Odhwi8o = dnnl_Odhwi8o,
2034  OIdhw16i16o = dnnl_OIdhw16i16o,
2035  OIdhw16o16i = dnnl_OIdhw16o16i,
2036  Oidhw16o = dnnl_Oidhw16o,
2037  OIdhw4i4o = dnnl_OIdhw4i4o,
2038  OIdhw4o4i = dnnl_OIdhw4o4i,
2039  Oidhw4o = dnnl_Oidhw4o,
2040  OIdhw8i16o2i = dnnl_OIdhw8i16o2i,
2041  OIdhw4i16o4i = dnnl_OIdhw4i16o4i,
2042  OIdhw2i8o4i = dnnl_OIdhw2i8o4i,
2043  OIdhw8i8o = dnnl_OIdhw8i8o,
2044  OIdhw8o8i = dnnl_OIdhw8o8i,
2045  gIOw16o16i = dnnl_gIOw16o16i,
2046  gOIw16i16o = dnnl_gOIw16i16o,
2047  gOIw16o16i = dnnl_gOIw16o16i,
2048  gOiw16o = dnnl_gOiw16o,
2049  gOIw4i16o4i = dnnl_gOIw4i16o4i,
2050  gOIw2i8o4i = dnnl_gOIw2i8o4i,
2051  gOIw4i4o = dnnl_gOIw4i4o,
2052  gOIw4o4i = dnnl_gOIw4o4i,
2053  gOiw4o = dnnl_gOiw4o,
2054  gOIw8i16o2i = dnnl_gOIw8i16o2i,
2055  gOIw8i8o = dnnl_gOIw8i8o,
2056  gOIw8o16i2o = dnnl_gOIw8o16i2o,
2057  gOIw8o8i = dnnl_gOIw8o8i,
2058  gOwi16o = dnnl_gOwi16o,
2059  gOwI16o2i = dnnl_gOwI16o2i,
2060  gOwi4o = dnnl_gOwi4o,
2061  gOwi8o = dnnl_gOwi8o,
2062  Goiw8g = dnnl_Goiw8g,
2063  Goiw16g = dnnl_Goiw16g,
2064  gIOhw16o16i = dnnl_gIOhw16o16i,
2065  gOhwi16o = dnnl_gOhwi16o,
2066  gOhwI16o2i = dnnl_gOhwI16o2i,
2067  gOhwi4o = dnnl_gOhwi4o,
2068  gOhwi8o = dnnl_gOhwi8o,
2069  Goihw16g = dnnl_Goihw16g,
2070  gOIhw16i16o = dnnl_gOIhw16i16o,
2071  gOIhw16o16i = dnnl_gOIhw16o16i,
2072  gOihw16o = dnnl_gOihw16o,
2073  gOIhw4i16o4i = dnnl_gOIhw4i16o4i,
2074  gOIhw2i8o4i = dnnl_gOIhw2i8o4i,
2075  gOIhw4i4o = dnnl_gOIhw4i4o,
2076  gOIhw4o4i = dnnl_gOIhw4o4i,
2077  gOihw4o = dnnl_gOihw4o,
2078  Goihw8g = dnnl_Goihw8g,
2079  gOIhw8i16o2i = dnnl_gOIhw8i16o2i,
2080  gOIhw8i8o = dnnl_gOIhw8i8o,
2081  gOIhw8o16i2o = dnnl_gOIhw8o16i2o,
2082  OIhw4o8i8o4i = dnnl_OIhw4o8i8o4i,
2083  OIhw2o8i8o2i = dnnl_OIhw2o8i8o2i,
2084  gOIhw4o8i8o4i = dnnl_gOIhw4o8i8o4i,
2085  gOIhw2o8i8o2i = dnnl_gOIhw2o8i8o2i,
2086  gOIhw8o8i = dnnl_gOIhw8o8i,
2087  gIOdhw16i16o = dnnl_gIOdhw16i16o,
2088  gOdhwi16o = dnnl_gOdhwi16o,
2089  gOdhwI16o2i = dnnl_gOdhwI16o2i,
2090  gOdhwi4o = dnnl_gOdhwi4o,
2091  gOdhwi8o = dnnl_gOdhwi8o,
2092  gOIdhw16i16o = dnnl_gOIdhw16i16o,
2093  gOIdhw16o16i = dnnl_gOIdhw16o16i,
2094  gOidhw16o = dnnl_gOidhw16o,
2095  gOIdhw4i4o = dnnl_gOIdhw4i4o,
2096  gOIdhw4o4i = dnnl_gOIdhw4o4i,
2097  gOidhw4o = dnnl_gOidhw4o,
2098  gOIdhw8i16o2i = dnnl_gOIdhw8i16o2i,
2099  gOIdhw4i16o4i = dnnl_gOIdhw4i16o4i,
2100  gOIdhw2i8o4i = dnnl_gOIdhw2i8o4i,
2101  gOIdhw8i8o = dnnl_gOIdhw8i8o,
2102  gOIdhw8o8i = dnnl_gOIdhw8o8i,
2103  };
2104 
2106  struct desc {
2107  friend struct memory;
2110 
2113  desc() : data() {}
2114 
2128  validate_dims(dims);
2130  dnnl_memory_desc_init_by_tag(&data, (int)dims.size(),
2131  dims.size() == 0 ? nullptr : &dims[0],
2133  "could not construct a memory descriptor using a format "
2134  "tag");
2135  }
2136 
2149  const memory::dims &strides) {
2150  validate_dims(dims);
2152  dnnl_memory_desc_init_by_strides(&data, (int)dims.size(),
2153  dims.size() == 0 ? nullptr : &dims[0],
2155  strides.size() == 0 ? nullptr : &strides[0]),
2156  "could not construct a memory descriptor using strides");
2157  }
2158 
2162  desc(const dnnl_memory_desc_t &data) : data(data) {}
2163 
2166  //
2172  const memory::dims &dims, const memory::dims &offsets) const {
2173  dnnl_memory_desc_t sub_md;
2175  &sub_md, &data, &dims[0], &offsets[0]),
2176  "could not construct a sub-memory");
2177  return desc(sub_md);
2178  }
2179 
2181  //
2185  desc reshape(const memory::dims &dims) const {
2186  dnnl_memory_desc_t out_md;
2188  (int)dims.size(), &dims[0]),
2189  "could not reshape a memory descriptor");
2190  return desc(out_md);
2191  }
2192 
2197  memory::dims dims() const {
2198  return memory::dims(data.dims, data.dims + data.ndims);
2199  }
2200 
2204  return static_cast<memory::data_type>(data.data_type);
2205  }
2206 
2211  size_t get_size() const { return dnnl_memory_desc_get_size(&data); }
2212 
2216  bool is_zero() const { return data.ndims == 0; }
2217 
2222  bool operator==(const desc &other) const {
2223  return dnnl_memory_desc_equal(&data, &other.data) != 0;
2224  }
2225 
2230  bool operator!=(const desc &other) const { return !operator==(other); }
2231  };
2232 
2233  // Default constructor.
2234  //
2235  // Constructs an empty memory object, which can be used to indicate absence
2236  // of a parameter.
2237  memory() = default;
2238 
2239 #if DNNL_WITH_SYCL
2240  memory(const desc &md, const engine &engine, void *ahandle)
2246 #ifdef DNNL_USE_DPCPP_USM
2247  : memory(with_sycl_tag {}, md, engine, ahandle, true) {
2248  }
2249 #else
2250  : memory(with_sycl_tag {}, md, engine, ahandle, false) {
2251  }
2252 #endif
2253 #else
2254  memory(const desc &md, const engine &engine, void *handle) {
2261  dnnl_memory_t result;
2263  dnnl_memory_create(&result, &md.data, engine.get(), handle),
2264  "could not create a memory object");
2265  reset(result);
2266  }
2267 #endif
2268 
2269 #if DNNL_WITH_SYCL && defined(DNNL_USE_SYCL_BUFFERS)
2270  template <typename T, int ndims = 1>
2276  memory(const desc &md, const engine &engine,
2277  cl::sycl::buffer<T, ndims> &buf)
2278  : memory(md, engine, DNNL_MEMORY_NONE) {
2279  set_sycl_buffer(buf);
2280  }
2281 #endif
2282 
2289  memory(const desc &md, const engine &engine)
2290  : memory(md, engine, DNNL_MEMORY_ALLOCATE) {}
2291 
2293  desc get_desc() const {
2294  const dnnl_memory_desc_t *cdesc;
2296  "could not get a memory descriptor from a memory object");
2297  return desc(*cdesc);
2298  }
2299 
2301  engine get_engine() const {
2302  dnnl_engine_t c_engine;
2303  error::wrap_c_api(dnnl_memory_get_engine(get(), &c_engine),
2304  "could not get an engine from a memory object");
2305  return engine(c_engine, true);
2306  }
2307 
2311  void *get_data_handle() const {
2312  void *handle;
2314  "could not get a native handle from a memory object");
2315  return handle;
2316  }
2317 
2322  void set_data_handle(void *handle) const {
2324  "could not set native handle of a memory object");
2325  }
2326 
2346  template <typename T = void>
2347  T *map_data() const {
2348  void *mapped_ptr;
2349  error::wrap_c_api(dnnl_memory_map_data(get(), &mapped_ptr),
2350  "could not map memory object data");
2351  return static_cast<T *>(mapped_ptr);
2352  }
2353 
2365  void unmap_data(void *mapped_ptr) const {
2366  error::wrap_c_api(dnnl_memory_unmap_data(get(), mapped_ptr),
2367  "could not unmap memory object data");
2368  }
2369 
2370 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
2371  cl_mem get_ocl_mem_object() const {
2373  cl_mem mem_object;
2374  error::wrap_c_api(dnnl_memory_get_ocl_mem_object(get(), &mem_object),
2375  "could not get OpenCL buffer object from a memory object");
2376  return mem_object;
2377  }
2378 
2384  void set_ocl_mem_object(cl_mem mem_object) {
2385  error::wrap_c_api(dnnl_memory_set_ocl_mem_object(get(), mem_object),
2386  "could not set OpenCL buffer object from a memory object");
2387  }
2388 #endif
2389 
2390 #if DNNL_WITH_SYCL && defined(DNNL_USE_SYCL_BUFFERS)
2391  template <typename T, int ndims = 1>
2396  cl::sycl::buffer<T, ndims> get_sycl_buffer(size_t *offset = nullptr) const {
2397  static_assert(ndims == 1, "only 1D buffers supported");
2398 
2399  void *handle_ptr;
2400  error::wrap_c_api(dnnl_memory_get_data_handle(get(), &handle_ptr),
2401  "could not get SYCL buffer object");
2402 
2403  // XXX: workaround for ComputeCpp
2404  // ComputeCpp fails to construct zero-range buffer
2405  if (!handle_ptr)
2406  return cl::sycl::buffer<T, ndims>(cl::sycl::range<1>(1));
2407 
2408  auto &buf_u8 = *static_cast<cl::sycl::buffer<uint8_t, 1> *>(handle_ptr);
2409  if (offset) *offset = 0;
2410  auto range = cl::sycl::range<1>(buf_u8.get_size() / sizeof(T));
2411  return buf_u8.reinterpret<T, 1>(range);
2412  }
2413 
2419  template <typename T, int ndims>
2420  void set_sycl_buffer(cl::sycl::buffer<T, ndims> &buf) {
2421  auto range = cl::sycl::range<1>(buf.get_size());
2422  auto buf_u8 = buf.template reinterpret<uint8_t, 1>(range);
2424  get(), static_cast<void *>(&buf_u8)),
2425  "could not set SYCL buffer object");
2426  }
2427 #endif
2428 
2429  static dnnl_data_type_t convert_to_c(data_type data_type) {
2430  return static_cast<dnnl_data_type_t>(data_type);
2431  }
2432  static dnnl_format_tag_t convert_to_c(format_tag format) {
2433  return static_cast<dnnl_format_tag_t>(format);
2434  }
2435 
2436 private:
2437 #if DNNL_WITH_SYCL
2438  struct with_sycl_tag {};
2439 
2440  DNNL_API memory(with_sycl_tag, const desc &md, const engine &engine,
2441  void *ahandle, bool is_usm);
2442 #endif
2443 };
2444 
2445 inline bool operator==(dnnl_data_type_t a, memory::data_type b) {
2446  return a == memory::convert_to_c(b);
2447 }
2448 inline bool operator!=(dnnl_data_type_t a, memory::data_type b) {
2449  return !(a == b);
2450 }
2451 inline bool operator==(memory::data_type a, dnnl_data_type_t b) {
2452  return b == a;
2453 }
2454 inline bool operator!=(memory::data_type a, dnnl_data_type_t b) {
2455  return !(a == b);
2456 }
2457 
2458 inline bool operator==(dnnl_format_tag_t a, memory::format_tag b) {
2459  return a == memory::convert_to_c(b);
2460 }
2461 inline bool operator!=(dnnl_format_tag_t a, memory::format_tag b) {
2462  return !(a == b);
2463 }
2464 inline bool operator==(memory::format_tag a, dnnl_format_tag_t b) {
2465  return b == a;
2466 }
2467 inline bool operator!=(memory::format_tag a, dnnl_format_tag_t b) {
2468  return !(a == b);
2469 }
2470 
2472 
2475 
2478 
2480 struct primitive_desc_base : public handle<dnnl_primitive_desc_t> {
2482 
2484  primitive_desc_base() = default;
2485 
2487  engine get_engine() const { return engine::query(*this); }
2488 
2490  const char *impl_info_str() const {
2491  const char *res;
2493  get(), dnnl_query_impl_info_str, 0, &res),
2494  "could not retrieve implementation info string from a "
2495  "primitive descriptor");
2496  return res;
2497  }
2498 
2501  memory::dim res;
2503  get(), dnnl::convert_to_c(what), 0, &res);
2504  return status == dnnl_success ? res : 0;
2505  }
2506 
2521  memory::desc query_md(query what, int idx = 0) const {
2522  std::vector<query> valid_q {query::src_md, query::diff_src_md,
2526  if (!std::any_of(valid_q.cbegin(), valid_q.cend(),
2527  [=](query q) { return what == q; }))
2528  DNNL_THROW_ERROR(dnnl_invalid_arguments,
2529  "memory descriptor query is invalid");
2530 
2532  get(), dnnl::convert_to_c(what), idx);
2533  return cdesc ? memory::desc(*cdesc) : memory::desc();
2534  }
2535 
2541  memory::desc src_desc(int idx) const {
2542  return query_md(query::src_md, idx);
2543  }
2544 
2550  memory::desc dst_desc(int idx) const {
2551  return query_md(query::dst_md, idx);
2552  }
2553 
2559  memory::desc weights_desc(int idx) const {
2560  return query_md(query::weights_md, idx);
2561  }
2562 
2568  memory::desc diff_src_desc(int idx) const {
2569  return query_md(query::diff_src_md, idx);
2570  }
2571 
2577  memory::desc diff_dst_desc(int idx) const {
2578  return query_md(query::diff_dst_md, idx);
2579  }
2580 
2587  return query_md(query::diff_weights_md, idx);
2588  }
2589 
2590  // Separate versions without the index argument for documentation
2591  // purposes.
2592 
2597  memory::desc src_desc() const { return src_desc(0); }
2598 
2603  memory::desc dst_desc() const { return dst_desc(0); }
2604 
2609  memory::desc weights_desc() const { return weights_desc(0); }
2610 
2616 
2622 
2628 
2634  return query_md(query::workspace_md, 0);
2635  }
2636 
2643  return query_md(query::scratchpad_md, 0);
2644  }
2645 
2649  dnnl_engine_t c_engine;
2652  0, &c_engine),
2653  "could not retrieve scratchpad engine from a primitive "
2654  "descriptor");
2655  return engine(c_engine, true);
2656  }
2657 
2661  const_dnnl_primitive_attr_t const_c_attr;
2663  "could not get attributes from a primitive descriptor");
2664  dnnl_primitive_attr_t c_attr;
2665  error::wrap_c_api(dnnl_primitive_attr_clone(&c_attr, const_c_attr),
2666  "could not clone primitive attributes");
2667  return primitive_attr(c_attr);
2668  }
2669 
2673  dnnl_primitive_kind_t kind;
2675  dnnl_query_primitive_kind, 0, (void *)&kind),
2676  "could not get primitive kind from a primitive descriptor");
2677  return static_cast<dnnl::primitive::kind>(kind);
2678  }
2679 
2680 protected:
2685  dnnl_primitive_desc_t new_pd;
2687  "could not clone a primitive descriptor");
2688  reset(new_pd);
2689  }
2690 
2706  : primitive_desc_base(pd, prim_kind, dnnl::prop_kind::undef) {}
2707 
2721  : primitive_desc_base(pd, prim_kind, prop_kind, prop_kind) {}
2722 
2737  dnnl::primitive::kind prim_kind, dnnl::prop_kind prop_kind1,
2738  dnnl::prop_kind prop_kind2) {
2739  // It is OK to pass an empty primitive descriptor
2740  if (pd == nullptr) return;
2741 
2742  dnnl_status_t rc;
2743 
2744  dnnl_primitive_kind_t c_prim_kind = convert_to_c(prim_kind);
2745  dnnl_prop_kind_t c_prop_kind1 = convert_to_c(prop_kind1);
2746  dnnl_prop_kind_t c_prop_kind2 = convert_to_c(prop_kind2);
2747 
2748  // Check that primitive kind matches
2749  dnnl_primitive_kind_t pd_kind;
2751  pd, dnnl_query_primitive_kind, 0, (void *)&pd_kind);
2753  rc, "could not get primitive kind from a primitive descriptor");
2754  if (pd_kind != c_prim_kind)
2755  DNNL_THROW_ERROR(dnnl_invalid_arguments,
2756  "primitive descriptor operation kind mismatch");
2757 
2758  // Check that propagation kind matches
2759  dnnl_prop_kind_t pd_prop_kind;
2761  pd, dnnl_query_prop_kind, 0, (void *)&pd_prop_kind);
2762 
2763  // Something went wrong
2764  if (rc != dnnl_success && rc != dnnl_unimplemented)
2765  DNNL_THROW_ERROR(dnnl_invalid_arguments,
2766  "could not get propagation kind from the primitive "
2767  "descriptor");
2768 
2769  // Everything is fine
2770  if ((rc == dnnl_unimplemented && c_prop_kind1 == dnnl_prop_kind_undef)
2771  || (rc == dnnl_success
2772  && (pd_prop_kind == c_prop_kind1
2773  || pd_prop_kind == c_prop_kind2))) {
2774  reset_with_clone(pd);
2775  return;
2776  }
2777 
2778  // We could get the propagation kind but there is a mismatch
2779  DNNL_THROW_ERROR(dnnl_invalid_arguments,
2780  "primitive descriptor propagation kind mismatch");
2781  }
2782 
2783 protected:
2784  using base = primitive_desc_base;
2785 };
2786 
2788 
2797 
2799 struct reorder : public primitive {
2803 
2805  primitive_desc() = default;
2806 
2822  primitive_desc(const engine &src_engine, const memory::desc &src_md,
2823  const engine &dst_engine, const memory::desc &dst_md,
2824  const primitive_attr &attr = primitive_attr()) {
2825  dnnl_primitive_desc_t result;
2828  src_engine.get(), &dst_md.data, dst_engine.get(),
2829  attr.get()),
2830  "could not create a primitive descriptor for a reorder "
2831  "primitive");
2832  reset(result);
2833  }
2834 
2842  primitive_desc(const memory &src, const memory &dst,
2843  const primitive_attr &attr = primitive_attr()) {
2844  dnnl_primitive_desc_t result;
2845  auto src_md = src.get_desc();
2846  auto dst_md = dst.get_desc();
2849  src.get_engine().get(), &dst_md.data,
2850  dst.get_engine().get(), attr.get()),
2851  "could not create a primitive descriptor for a reorder "
2852  "primitive");
2853  reset(result);
2854  }
2855 
2862 
2867  }
2868 
2873  }
2874 
2876  memory::desc src_desc() const { return base::src_desc(0); }
2877 
2879  memory::desc dst_desc() const { return base::dst_desc(0); }
2880  };
2881 
2883  reorder() = default;
2884 
2887  reorder(const primitive_desc &pd) : primitive(pd.get()) {}
2888 
2896  reorder(const memory &src, const memory &dst,
2897  const primitive_attr &attr = primitive_attr())
2898  : primitive(primitive_desc(src, dst, attr).get()) {}
2899 
2900  using primitive::execute;
2901 
2908  void execute(stream stream, memory &src, memory &dst) const {
2910  }
2911 
2912 #ifdef DNNL_SYCL_DPCPP
2913  using primitive::execute_sycl;
2914 
2915  cl::sycl::event execute_sycl(stream &astream, memory &src, memory &dst,
2916  const std::vector<cl::sycl::event> &deps = {}) const {
2917  return primitive::execute_sycl(astream,
2918  {{DNNL_ARG_FROM, src},
2919  { DNNL_ARG_TO,
2920  dst }},
2921  deps);
2922  }
2923 #endif
2924 };
2925 
2927 
2935 
2937 inline std::vector<dnnl_memory_desc_t> convert_to_c(
2938  const std::vector<memory::desc> &mems) {
2939  std::vector<dnnl_memory_desc_t> c_mems;
2940  c_mems.reserve(mems.size());
2941  for (const auto &s : mems)
2942  c_mems.push_back(s.data);
2943  return c_mems;
2944 }
2946 
2948 struct concat : public primitive {
2952 
2954  primitive_desc() = default;
2955 
2975  primitive_desc(const memory::desc &dst, int concat_dimension,
2976  const std::vector<memory::desc> &srcs, const engine &engine,
2977  const primitive_attr &attr = primitive_attr()) {
2978  auto c_srcs = convert_to_c(srcs);
2979 
2980  dnnl_primitive_desc_t result;
2983  (int)c_srcs.size(), concat_dimension, &c_srcs[0],
2984  attr.get(), engine.get()),
2985  "could not create a primitive descriptor for a concat "
2986  "primitive");
2987  reset(result);
2988  }
2989 
3002  primitive_desc(int concat_dimension,
3003  const std::vector<memory::desc> &srcs, const engine &engine,
3004  const primitive_attr &attr = primitive_attr()) {
3005  auto c_api_srcs = convert_to_c(srcs);
3006 
3007  dnnl_primitive_desc_t result;
3009  dnnl_concat_primitive_desc_create(&result, nullptr,
3010  (int)c_api_srcs.size(), concat_dimension,
3011  &c_api_srcs[0], attr.get(), engine.get()),
3012  "could not create a primitive descriptor for a concat "
3013  "primitive");
3014  reset(result);
3015  }
3016 
3023 
3025  memory::desc src_desc(int idx = 0) const { return base::src_desc(idx); }
3026 
3028  memory::desc dst_desc() const { return base::dst_desc(0); }
3029  };
3030 
3032  concat() = default;
3033 
3036  concat(const primitive_desc &pd) : primitive(pd.get()) {}
3037 };
3038 
3040 
3048 
3050 struct sum : public primitive {
3054 
3056  primitive_desc() = default;
3057 
3076  const std::vector<float> &scales,
3077  const std::vector<memory::desc> &srcs, const engine &engine,
3078  const primitive_attr &attr = primitive_attr()) {
3079  error::wrap_c_api(scales.size() == srcs.size()
3080  ? dnnl_success
3082  "counts of scales and sources are not equal");
3083 
3084  auto c_api_srcs = convert_to_c(srcs);
3085 
3086  dnnl_primitive_desc_t result;
3088  (int)c_api_srcs.size(), &scales[0],
3089  &c_api_srcs[0], attr.get(), engine.get()),
3090  "could not create a primitive descriptor for a sum "
3091  "primitive");
3092  reset(result);
3093  }
3094 
3105  primitive_desc(const std::vector<float> &scales,
3106  const std::vector<memory::desc> &srcs, const engine &engine,
3107  const primitive_attr &attr = primitive_attr()) {
3108  error::wrap_c_api(scales.size() == srcs.size()
3109  ? dnnl_success
3111  "counts of scales and sources are not equal");
3112 
3113  auto c_api_srcs = convert_to_c(srcs);
3114  dnnl_primitive_desc_t result;
3116  (int)c_api_srcs.size(), &scales[0],
3117  &c_api_srcs[0], attr.get(), engine.get()),
3118  "could not create a primitive descriptor for a sum "
3119  "primitive");
3120  reset(result);
3121  }
3122 
3129 
3131  memory::desc src_desc(int idx = 0) const { return base::src_desc(idx); }
3132 
3134  memory::desc dst_desc() const { return base::dst_desc(0); }
3135  };
3136 
3138  sum() = default;
3139 
3142  sum(const primitive_desc &pd) : primitive(pd.get()) {}
3143 };
3144 
3146 
3149 
3154 
3155  primitive_desc() = default;
3156 
3180  const engine &engine, const_dnnl_primitive_desc_t hint_fwd_pd,
3181  bool allow_empty = false)
3182  : allow_empty_(allow_empty) {
3183  dnnl_primitive_desc_iterator_t iterator = nullptr;
3185  desc, attr ? attr->get() : nullptr, engine.get(), hint_fwd_pd);
3186  if (!allow_empty)
3188  status, "could not create a primitive descriptor iterator");
3189  pd_iterator.reset(iterator);
3190  fetch_impl();
3191  }
3192 
3197  bool next_impl() {
3199  = dnnl_primitive_desc_iterator_next(pd_iterator.get());
3200  if (status == dnnl_iterator_ends) return false;
3202  status, "could not advance a primitive descriptor iterator");
3203  fetch_impl();
3204  return true;
3205  }
3206 
3207 private:
3208  bool allow_empty_ = false;
3210  void fetch_impl() {
3212  pd_iterator.get(allow_empty_));
3213  error::wrap_c_api(pd != nullptr || allow_empty_ ? dnnl_success
3215  "could not fetch a primitive descriptor from a primitive "
3216  "descriptor iterator");
3217  reset(pd);
3218  }
3219 };
3220 
3222 
3232 
3236  struct desc {
3238 
3272  const memory::desc &src_desc, const memory::desc &weights_desc,
3273  const memory::desc &bias_desc, const memory::desc &dst_desc,
3274  const memory::dims &strides, const memory::dims &padding_l,
3275  const memory::dims &padding_r) {
3276  memory::validate_dims(strides);
3277  memory::validate_dims(padding_l);
3278  memory::validate_dims(padding_r);
3282  convert_to_c(algorithm), &src_desc.data,
3283  &weights_desc.data, &bias_desc.data, &dst_desc.data,
3284  &strides[0], &padding_l[0], &padding_r[0]),
3285  "could not create a descriptor for a convolution forward "
3286  "propagation primitive");
3287  }
3288 
3319  const memory::desc &src_desc, const memory::desc &weights_desc,
3320  const memory::desc &dst_desc, const memory::dims &strides,
3321  const memory::dims &padding_l, const memory::dims &padding_r) {
3322  memory::validate_dims(strides);
3323  memory::validate_dims(padding_l);
3324  memory::validate_dims(padding_r);
3328  convert_to_c(algorithm), &src_desc.data,
3329  &weights_desc.data, nullptr, &dst_desc.data,
3330  &strides[0], &padding_l[0], &padding_r[0]),
3331  "could not create a descriptor for a convolution forward "
3332  "propagation primitive");
3333  }
3334 
3370  const memory::desc &src_desc, const memory::desc &weights_desc,
3371  const memory::desc &bias_desc, const memory::desc &dst_desc,
3372  const memory::dims &strides, const memory::dims &dilates,
3373  const memory::dims &padding_l, const memory::dims &padding_r) {
3374  memory::validate_dims(strides);
3375  memory::validate_dims(dilates);
3376  memory::validate_dims(padding_l);
3377  memory::validate_dims(padding_r);
3380  convert_to_c(algorithm), &src_desc.data,
3381  &weights_desc.data, &bias_desc.data,
3382  &dst_desc.data, &strides[0], &dilates[0],
3383  &padding_l[0], &padding_r[0]),
3384  "could not create a descriptor for a dilated convolution "
3385  "forward propagation primitive");
3386  }
3387 
3420  const memory::desc &src_desc, const memory::desc &weights_desc,
3421  const memory::desc &dst_desc, const memory::dims &strides,
3422  const memory::dims &dilates, const memory::dims &padding_l,
3423  const memory::dims &padding_r) {
3424  memory::validate_dims(strides);
3425  memory::validate_dims(dilates);
3426  memory::validate_dims(padding_l);
3427  memory::validate_dims(padding_r);
3430  convert_to_c(algorithm), &src_desc.data,
3431  &weights_desc.data, nullptr,
3432  &dst_desc.data, &strides[0], &dilates[0],
3433  &padding_l[0], &padding_r[0]),
3434  "could not create a descriptor for a dilated convolution "
3435  "forward propagation primitive");
3436  }
3437  };
3438 
3442  primitive_desc() = default;
3443 
3455  bool allow_empty = false)
3456  : dnnl::primitive_desc(
3457  &desc.data, nullptr, engine, nullptr, allow_empty) {}
3458 
3471  const engine &engine, bool allow_empty = false)
3472  : dnnl::primitive_desc(
3473  &desc.data, &attr, engine, nullptr, allow_empty) {}
3474 
3482  : dnnl::primitive_desc(pd, dnnl::primitive::kind::convolution,
3485 
3487  memory::desc src_desc() const { return base::src_desc(0); }
3488 
3491 
3493  memory::desc dst_desc() const { return base::dst_desc(0); }
3494 
3500  };
3501 
3503  convolution_forward() = default;
3504 
3509 };
3510 
3513 
3515  struct desc {
3517 
3544  desc(algorithm algorithm, const memory::desc &diff_src_desc,
3545  const memory::desc &weights_desc,
3546  const memory::desc &diff_dst_desc, const memory::dims &strides,
3547  const memory::dims &padding_l, const memory::dims &padding_r) {
3548  memory::validate_dims(strides);
3549  memory::validate_dims(padding_l);
3550  memory::validate_dims(padding_r);
3553  convert_to_c(algorithm), &diff_src_desc.data,
3554  &weights_desc.data, &diff_dst_desc.data,
3555  &strides[0], &padding_l[0], &padding_r[0]),
3556  "could not create a descriptor for a convolution backward "
3557  "propagation primitive");
3558  }
3559 
3588  desc(algorithm algorithm, const memory::desc &diff_src_desc,
3589  const memory::desc &weights_desc,
3590  const memory::desc &diff_dst_desc, const memory::dims &strides,
3591  const memory::dims &dilates, const memory::dims &padding_l,
3592  const memory::dims &padding_r) {
3593  memory::validate_dims(strides);
3594  memory::validate_dims(dilates);
3595  memory::validate_dims(padding_l);
3596  memory::validate_dims(padding_r);
3599  convert_to_c(algorithm), &diff_src_desc.data,
3600  &weights_desc.data, &diff_dst_desc.data,
3601  &strides[0], &dilates[0], &padding_l[0],
3602  &padding_r[0]),
3603  "could not create a descriptor for a dilated convolution "
3604  "backward propagation primitive");
3605  }
3606  };
3607 
3611  primitive_desc() = default;
3612 
3627  const convolution_forward::primitive_desc &hint_fwd_pd,
3628  bool allow_empty = false)
3629  : dnnl::primitive_desc(&desc.data, nullptr, engine,
3630  hint_fwd_pd.get(), allow_empty) {}
3631 
3647  const engine &engine,
3648  const convolution_forward::primitive_desc &hint_fwd_pd,
3649  bool allow_empty = false)
3650  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
3651  allow_empty) {}
3652 
3660  : dnnl::primitive_desc(pd, dnnl::primitive::kind::convolution,
3662 
3665 
3668 
3671  };
3672 
3674  convolution_backward_data() = default;
3675 
3680 };
3681 
3685  struct desc {
3687 
3718  const memory::desc &diff_weights_desc,
3719  const memory::desc &diff_bias_desc,
3720  const memory::desc &diff_dst_desc, const memory::dims &strides,
3721  const memory::dims &padding_l, const memory::dims &padding_r) {
3722  memory::validate_dims(strides);
3723  memory::validate_dims(padding_l);
3724  memory::validate_dims(padding_r);
3727  convert_to_c(algorithm), &src_desc.data,
3728  &diff_weights_desc.data, &diff_bias_desc.data,
3729  &diff_dst_desc.data, &strides[0], &padding_l[0],
3730  &padding_r[0]),
3731  "could not create a descriptor for a convolution weights "
3732  "update primitive");
3733  }
3734 
3762  const memory::desc &diff_weights_desc,
3763  const memory::desc &diff_dst_desc, const memory::dims &strides,
3764  const memory::dims &padding_l, const memory::dims &padding_r) {
3765  memory::validate_dims(strides);
3766  memory::validate_dims(padding_l);
3767  memory::validate_dims(padding_r);
3769  convert_to_c(algorithm), &src_desc.data,
3770  &diff_weights_desc.data, nullptr,
3771  &diff_dst_desc.data, &strides[0],
3772  &padding_l[0], &padding_r[0]),
3773  "could not create a descriptor for a convolution weights "
3774  "update primitive");
3775  }
3776 
3809  const memory::desc &diff_weights_desc,
3810  const memory::desc &diff_bias_desc,
3811  const memory::desc &diff_dst_desc, const memory::dims &strides,
3812  const memory::dims &dilates, const memory::dims &padding_l,
3813  const memory::dims &padding_r) {
3814  memory::validate_dims(strides);
3815  memory::validate_dims(dilates);
3816  memory::validate_dims(padding_l);
3817  memory::validate_dims(padding_r);
3820  convert_to_c(algorithm), &src_desc.data,
3821  &diff_weights_desc.data, &diff_bias_desc.data,
3822  &diff_dst_desc.data, &strides[0], &dilates[0],
3823  &padding_l[0], &padding_r[0]),
3824  "could not create a descriptor for a dilated convolution "
3825  "weights gradient primitive");
3826  }
3827 
3857  const memory::desc &diff_weights_desc,
3858  const memory::desc &diff_dst_desc, const memory::dims &strides,
3859  const memory::dims &dilates, const memory::dims &padding_l,
3860  const memory::dims &padding_r) {
3861  memory::validate_dims(strides);
3862  memory::validate_dims(dilates);
3863  memory::validate_dims(padding_l);
3864  memory::validate_dims(padding_r);
3867  convert_to_c(algorithm), &src_desc.data,
3868  &diff_weights_desc.data, nullptr,
3869  &diff_dst_desc.data, &strides[0], &dilates[0],
3870  &padding_l[0], &padding_r[0]),
3871  "could not create a descriptor for a dilated convolution "
3872  "weights gradient primitive");
3873  }
3874  };
3875 
3879  primitive_desc() = default;
3880 
3894  const convolution_forward::primitive_desc &hint_fwd_pd,
3895  bool allow_empty = false)
3896  : dnnl::primitive_desc(&desc.data, nullptr, engine,
3897  hint_fwd_pd.get(), allow_empty) {}
3898 
3913  const engine &engine,
3914  const convolution_forward::primitive_desc &hint_fwd_pd,
3915  bool allow_empty = false)
3916  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
3917  allow_empty) {}
3918 
3926  : dnnl::primitive_desc(pd, dnnl::primitive::kind::convolution,
3928 
3930  memory::desc src_desc() const { return base::src_desc(0); }
3931 
3934  return base::diff_weights_desc(0);
3935  }
3936 
3939 
3945  return base::diff_weights_desc(1);
3946  }
3947  };
3948 
3950  convolution_backward_weights() = default;
3951 
3956 };
3957 
3959 //
3967 
3971  struct desc {
3973 
4005  const memory::desc &src_desc, const memory::desc &weights_desc,
4006  const memory::desc &bias_desc, const memory::desc &dst_desc,
4007  const memory::dims &strides, const memory::dims &padding_l,
4008  const memory::dims &padding_r) {
4009  memory::validate_dims(strides);
4010  memory::validate_dims(padding_l);
4011  memory::validate_dims(padding_r);
4015  convert_to_c(algorithm), &src_desc.data,
4016  &weights_desc.data, &bias_desc.data, &dst_desc.data,
4017  &strides[0], &padding_l[0], &padding_r[0]),
4018  "could not create a descriptor for a deconvolution forward "
4019  "propagation primitive");
4020  }
4021 
4050  const memory::desc &src_desc, const memory::desc &weights_desc,
4051  const memory::desc &dst_desc, const memory::dims &strides,
4052  const memory::dims &padding_l, const memory::dims &padding_r) {
4053  memory::validate_dims(strides);
4054  memory::validate_dims(padding_l);
4055  memory::validate_dims(padding_r);
4059  convert_to_c(algorithm), &src_desc.data,
4060  &weights_desc.data, nullptr, &dst_desc.data,
4061  &strides[0], &padding_l[0], &padding_r[0]),
4062  "could not create a descriptor for a deconvolution forward "
4063  "propagation primitive");
4064  }
4065 
4099  const memory::desc &src_desc, const memory::desc &weights_desc,
4100  const memory::desc &bias_desc, const memory::desc &dst_desc,
4101  const memory::dims &strides, const memory::dims &dilates,
4102  const memory::dims &padding_l, const memory::dims &padding_r) {
4103  memory::validate_dims(strides);
4104  memory::validate_dims(dilates);
4105  memory::validate_dims(padding_l);
4106  memory::validate_dims(padding_r);
4108  &data, dnnl::convert_to_c(prop_kind),
4109  convert_to_c(algorithm), &src_desc.data,
4110  &weights_desc.data, &bias_desc.data,
4111  &dst_desc.data, &strides[0], &dilates[0],
4112  &padding_l[0], &padding_r[0]),
4113  "could not create a descriptor for a dilated deconvolution "
4114  "forward propagation primitive");
4115  }
4116 
4147  const memory::desc &src_desc, const memory::desc &weights_desc,
4148  const memory::desc &dst_desc, const memory::dims &strides,
4149  const memory::dims &dilates, const memory::dims &padding_l,
4150  const memory::dims &padding_r) {
4151  memory::validate_dims(strides);
4152  memory::validate_dims(dilates);
4153  memory::validate_dims(padding_l);
4154  memory::validate_dims(padding_r);
4156  &data, dnnl::convert_to_c(prop_kind),
4157  convert_to_c(algorithm), &src_desc.data,
4158  &weights_desc.data, nullptr,
4159  &dst_desc.data, &strides[0], &dilates[0],
4160  &padding_l[0], &padding_r[0]),
4161  "could not create a descriptor for a dilated deconvolution "
4162  "forward propagation primitive");
4163  }
4164  };
4165 
4169  primitive_desc() = default;
4170 
4182  bool allow_empty = false)
4183  : dnnl::primitive_desc(
4184  &desc.data, nullptr, engine, nullptr, allow_empty) {}
4185 
4198  const engine &engine, bool allow_empty = false)
4199  : dnnl::primitive_desc(
4200  &desc.data, &attr, engine, nullptr, allow_empty) {}
4201 
4209  : dnnl::primitive_desc(pd, dnnl::primitive::kind::deconvolution,
4212 
4214  memory::desc src_desc() const { return base::src_desc(0); }
4215 
4218 
4220  memory::desc dst_desc() const { return base::dst_desc(0); }
4221 
4224  };
4225 
4227  deconvolution_forward() = default;
4228 
4233 };
4234 
4238  struct desc {
4240 
4266  desc(algorithm algorithm, const memory::desc &diff_src_desc,
4267  const memory::desc &weights_desc,
4268  const memory::desc &diff_dst_desc, const memory::dims &strides,
4269  const memory::dims &padding_l, const memory::dims &padding_r) {
4270  memory::validate_dims(strides);
4271  memory::validate_dims(padding_l);
4272  memory::validate_dims(padding_r);
4275  convert_to_c(algorithm), &diff_src_desc.data,
4276  &weights_desc.data, &diff_dst_desc.data,
4277  &strides[0], &padding_l[0], &padding_r[0]),
4278  "could not create a descriptor for a deconvolution "
4279  "backward propagation primitive");
4280  }
4281 
4309  desc(algorithm algorithm, const memory::desc &diff_src_desc,
4310  const memory::desc &weights_desc,
4311  const memory::desc &diff_dst_desc, const memory::dims &strides,
4312  const memory::dims &dilates, const memory::dims &padding_l,
4313  const memory::dims &padding_r) {
4314  memory::validate_dims(strides);
4315  memory::validate_dims(dilates);
4316  memory::validate_dims(padding_l);
4317  memory::validate_dims(padding_r);
4320  convert_to_c(algorithm), &diff_src_desc.data,
4321  &weights_desc.data, &diff_dst_desc.data,
4322  &strides[0], &dilates[0], &padding_l[0],
4323  &padding_r[0]),
4324  "could not create a descriptor for a dilated deconvolution "
4325  "backward propagation primitive");
4326  }
4327  };
4328 
4332  primitive_desc() = default;
4333 
4348  const deconvolution_forward::primitive_desc &hint_fwd_pd,
4349  bool allow_empty = false)
4350  : dnnl::primitive_desc(&desc.data, nullptr, engine,
4351  hint_fwd_pd.get(), allow_empty) {}
4352 
4368  const engine &engine,
4369  const deconvolution_forward::primitive_desc &hint_fwd_pd,
4370  bool allow_empty = false)
4371  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
4372  allow_empty) {}
4373 
4381  : dnnl::primitive_desc(pd, dnnl::primitive::kind::deconvolution,
4383 
4386 
4389 
4392  };
4393 
4395  deconvolution_backward_data() = default;
4396 
4401 };
4402 
4406  struct desc {
4408 
4438  const memory::desc &diff_weights_desc,
4439  const memory::desc &diff_bias_desc,
4440  const memory::desc &diff_dst_desc, const memory::dims &strides,
4441  const memory::dims &padding_l, const memory::dims &padding_r) {
4442  memory::validate_dims(strides);
4443  memory::validate_dims(padding_l);
4444  memory::validate_dims(padding_r);
4447  convert_to_c(algorithm), &src_desc.data,
4448  &diff_weights_desc.data, &diff_bias_desc.data,
4449  &diff_dst_desc.data, &strides[0], &padding_l[0],
4450  &padding_r[0]),
4451  "could not create a descriptor for a deconvolution weights "
4452  "update primitive");
4453  }
4454 
4481  const memory::desc &diff_weights_desc,
4482  const memory::desc &diff_dst_desc, const memory::dims &strides,
4483  const memory::dims &padding_l, const memory::dims &padding_r) {
4484  memory::validate_dims(strides);
4485  memory::validate_dims(padding_l);
4486  memory::validate_dims(padding_r);
4488  &data, convert_to_c(algorithm),
4489  &src_desc.data, &diff_weights_desc.data,
4490  nullptr, &diff_dst_desc.data, &strides[0],
4491  &padding_l[0], &padding_r[0]),
4492  "could not create a descriptor for a deconvolution weights "
4493  "update primitive");
4494  }
4495 
4527  const memory::desc &diff_weights_desc,
4528  const memory::desc &diff_bias_desc,
4529  const memory::desc &diff_dst_desc, const memory::dims &strides,
4530  const memory::dims &dilates, const memory::dims &padding_l,
4531  const memory::dims &padding_r) {
4532  memory::validate_dims(strides);
4533  memory::validate_dims(dilates);
4534  memory::validate_dims(padding_l);
4535  memory::validate_dims(padding_r);
4538  convert_to_c(algorithm), &src_desc.data,
4539  &diff_weights_desc.data, &diff_bias_desc.data,
4540  &diff_dst_desc.data, &strides[0], &dilates[0],
4541  &padding_l[0], &padding_r[0]),
4542  "could not create a descriptor for a dilated deconvolution "
4543  "weights gradient primitive");
4544  }
4545 
4574  const memory::desc &diff_weights_desc,
4575  const memory::desc &diff_dst_desc, const memory::dims &strides,
4576  const memory::dims &dilates, const memory::dims &padding_l,
4577  const memory::dims &padding_r) {
4578  memory::validate_dims(strides);
4579  memory::validate_dims(dilates);
4580  memory::validate_dims(padding_l);
4581  memory::validate_dims(padding_r);
4584  convert_to_c(algorithm), &src_desc.data,
4585  &diff_weights_desc.data, nullptr,
4586  &diff_dst_desc.data, &strides[0], &dilates[0],
4587  &padding_l[0], &padding_r[0]),
4588  "could not create a descriptor for a dilated deconvolution "
4589  "weights gradient primitive");
4590  }
4591  };
4592 
4596  primitive_desc() = default;
4597 
4611  const deconvolution_forward::primitive_desc &hint_fwd_pd,
4612  bool allow_empty = false)
4613  : dnnl::primitive_desc(&desc.data, nullptr, engine,
4614  hint_fwd_pd.get(), allow_empty) {}
4615 
4630  const engine &engine,
4631  const deconvolution_forward::primitive_desc &hint_fwd_pd,
4632  bool allow_empty = false)
4633  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
4634  allow_empty) {}
4635 
4643  : dnnl::primitive_desc(pd, dnnl::primitive::kind::deconvolution,
4645 
4647  memory::desc src_desc() const { return base::src_desc(0); }
4648 
4651  return base::diff_weights_desc(0);
4652  }
4653 
4656 
4659  return base::diff_weights_desc(1);
4660  }
4661  };
4662 
4664  deconvolution_backward_weights() = default;
4665 
4670 };
4671 
4673 
4682 
4684 struct lrn_forward : public primitive {
4686  struct desc {
4687  dnnl_lrn_desc_t data;
4688 
4714  const memory::desc &data_desc, memory::dim local_size,
4715  float alpha, float beta, float k = 1.f) {
4718  convert_to_c(algorithm), &data_desc.data,
4719  local_size, alpha, beta, k),
4720  "could not create a descriptor for a lrn forward "
4721  "propagation primitive");
4722  }
4723  };
4724 
4728  primitive_desc() = default;
4729 
4740  bool allow_empty = false)
4741  : dnnl::primitive_desc(
4742  &desc.data, nullptr, engine, nullptr, allow_empty) {}
4743 
4755  const engine &engine, bool allow_empty = false)
4756  : dnnl::primitive_desc(
4757  &desc.data, &attr, engine, nullptr, allow_empty) {}
4758 
4766  : dnnl::primitive_desc(pd, dnnl::primitive::kind::lrn,
4769 
4771  memory::desc src_desc() const { return base::src_desc(0); }
4772 
4774  memory::desc dst_desc() const { return base::dst_desc(0); }
4775 
4778  };
4779 
4781  lrn_forward() = default;
4782 
4787 };
4788 
4790 struct lrn_backward : public primitive {
4792  struct desc {
4793  dnnl_lrn_desc_t data;
4794 
4818  const memory::desc &diff_data_desc, memory::dim local_size,
4819  float alpha, float beta, float k = 1.f) {
4822  &diff_data_desc.data, &data_desc.data, local_size,
4823  alpha, beta, k),
4824  "could not create a descriptor for a lrn backward "
4825  "propagation primitive");
4826  }
4827  };
4828 
4832  primitive_desc() = default;
4833 
4847  const lrn_forward::primitive_desc &hint_fwd_pd,
4848  bool allow_empty = false)
4849  : dnnl::primitive_desc(&desc.data, nullptr, engine,
4850  hint_fwd_pd.get(), allow_empty) {}
4851 
4866  const engine &engine,
4867  const lrn_forward::primitive_desc &hint_fwd_pd,
4868  bool allow_empty = false)
4869  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
4870  allow_empty) {}
4871 
4879  : dnnl::primitive_desc(pd, dnnl::primitive::kind::lrn,
4881 
4884 
4887 
4890  };
4891 
4893  lrn_backward() = default;
4894 
4899 };
4900 
4902 
4910 
4912 struct pooling_forward : public primitive {
4914  struct desc {
4915  dnnl_pooling_desc_t data;
4916 
4947  const memory::desc &src_desc, const memory::desc &dst_desc,
4948  const memory::dims &strides, const memory::dims &kernel,
4949  const memory::dims &padding_l, const memory::dims &padding_r) {
4950  memory::validate_dims(strides);
4951  memory::validate_dims(kernel);
4952  memory::validate_dims(padding_l);
4953  memory::validate_dims(padding_r);
4956  convert_to_c(algorithm), &src_desc.data,
4957  &dst_desc.data, &strides[0], &kernel[0],
4958  &padding_l[0], &padding_r[0]),
4959  "could not create a descriptor for a pooling forward "
4960  "propagation primitive");
4961  }
4962  };
4963 
4967  primitive_desc() = default;
4968 
4979  bool allow_empty = false)
4980  : dnnl::primitive_desc(
4981  &desc.data, nullptr, engine, nullptr, allow_empty) {}
4982 
4994  const engine &engine, bool allow_empty = false)
4995  : dnnl::primitive_desc(
4996  &desc.data, &attr, engine, nullptr, allow_empty) {}
4997 
5005  : dnnl::primitive_desc(pd, dnnl::primitive::kind::pooling,
5008 
5010  memory::desc src_desc() const { return base::src_desc(0); }
5011 
5013  memory::desc dst_desc() const { return base::dst_desc(0); }
5014 
5017  };
5018 
5020  pooling_forward() = default;
5021 
5026 };
5027 
5029 struct pooling_backward : public primitive {
5031  struct desc {
5032  dnnl_pooling_desc_t data;
5033 
5059  desc(algorithm algorithm, const memory::desc &diff_src_desc,
5060  const memory::desc &diff_dst_desc, const memory::dims &strides,
5061  const memory::dims &kernel, const memory::dims &padding_l,
5062  const memory::dims &padding_r) {
5063  memory::validate_dims(strides);
5064  memory::validate_dims(kernel);
5065  memory::validate_dims(padding_l);
5066  memory::validate_dims(padding_r);
5069  convert_to_c(algorithm), &diff_src_desc.data,
5070  &diff_dst_desc.data, &strides[0], &kernel[0],
5071  &padding_l[0], &padding_r[0]),
5072  "could not create a descriptor for a pooling backward "
5073  "propagation primitive");
5074  }
5075  };
5076 
5080  primitive_desc() = default;
5081 
5095  const pooling_forward::primitive_desc &hint_fwd_pd,
5096  bool allow_empty = false)
5097  : dnnl::primitive_desc(&desc.data, nullptr, engine,
5098  hint_fwd_pd.get(), allow_empty) {}
5099 
5114  const engine &engine,
5115  const pooling_forward::primitive_desc &hint_fwd_pd,
5116  bool allow_empty = false)
5117  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
5118  allow_empty) {}
5119 
5127  : dnnl::primitive_desc(pd, dnnl::primitive::kind::pooling,
5129 
5132 
5135 
5138  };
5139 
5141  pooling_backward() = default;
5142 
5147 };
5148 
5150 
5172 
5174 struct eltwise_forward : public primitive {
5176  struct desc {
5177  dnnl_eltwise_desc_t data;
5178 
5198  const memory::desc &data_desc, float alpha = 0,
5199  float beta = 0) {
5203  &data_desc.data, alpha, beta),
5204  "could not create a descriptor for an eltwise forward "
5205  "propagation primitive");
5206  }
5207  };
5208 
5212  primitive_desc() = default;
5213 
5225  bool allow_empty = false)
5226  : dnnl::primitive_desc(
5227  &desc.data, nullptr, engine, nullptr, allow_empty) {}
5228 
5241  const engine &engine, bool allow_empty = false)
5242  : dnnl::primitive_desc(
5243  &desc.data, &attr, engine, nullptr, allow_empty) {}
5244 
5252  : dnnl::primitive_desc(pd, dnnl::primitive::kind::eltwise,
5255 
5257  memory::desc src_desc() const { return base::src_desc(0); }
5258 
5260  memory::desc dst_desc() const { return base::dst_desc(0); }
5261  };
5262 
5264  eltwise_forward() = default;
5265 
5270 };
5271 
5273 struct eltwise_backward : public primitive {
5275  struct desc {
5276  dnnl_eltwise_desc_t data;
5277 
5296  desc(algorithm algorithm, const memory::desc &diff_data_desc,
5297  const memory::desc &data_desc, float alpha = 0,
5298  float beta = 0) {
5301  dnnl::convert_to_c(algorithm), &diff_data_desc.data,
5302  &data_desc.data, alpha, beta),
5303  "could not create a descriptor for an eltwise backward "
5304  "propagation primitive");
5305  }
5306  };
5307 
5311  primitive_desc() = default;
5312 
5327  const eltwise_forward::primitive_desc &hint_fwd_pd,
5328  bool allow_empty = false)
5329  : dnnl::primitive_desc(&desc.data, nullptr, engine,
5330  hint_fwd_pd.get(), allow_empty) {}
5331 
5347  const engine &engine,
5348  const eltwise_forward::primitive_desc &hint_fwd_pd,
5349  bool allow_empty = false)
5350  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
5351  allow_empty) {}
5352 
5360  : dnnl::primitive_desc(pd, dnnl::primitive::kind::eltwise,
5362 
5364  memory::desc src_desc() const { return base::src_desc(0); }
5365 
5368 
5371  };
5372 
5374  eltwise_backward() = default;
5375 
5380 };
5381 
5383 
5391 
5393 struct softmax_forward : public primitive {
5395  struct desc {
5396  dnnl_softmax_desc_t data;
5397 
5399  desc() = default;
5400 
5416  int softmax_axis) {
5419  &data_desc.data, softmax_axis),
5420  "could not create a descriptor for a softmax forward "
5421  "propagation primitive");
5422  }
5423  };
5424 
5428  primitive_desc() = default;
5429 
5441  bool allow_empty = false)
5442  : dnnl::primitive_desc(
5443  &desc.data, nullptr, engine, nullptr, allow_empty) {}
5444 
5457  const engine &engine, bool allow_empty = false)
5458  : dnnl::primitive_desc(
5459  &desc.data, &attr, engine, nullptr, allow_empty) {}
5460 
5468  : dnnl::primitive_desc(pd, dnnl::primitive::kind::softmax,
5471 
5473  memory::desc src_desc() const { return base::src_desc(0); }
5474 
5476  memory::desc dst_desc() const { return base::dst_desc(0); }
5477  };
5478 
5480  softmax_forward() = default;
5481 
5486 };
5487 
5489 struct softmax_backward : public primitive {
5491  struct desc {
5492  dnnl_softmax_desc_t data;
5493 
5495  desc() = default;
5496 
5510  desc(const memory::desc &diff_data_desc, const memory::desc &data_desc,
5511  int softmax_axis) {
5513  dnnl_softmax_backward_desc_init(&data, &diff_data_desc.data,
5514  &data_desc.data, softmax_axis),
5515  "could not create a descriptor for a softmax backward "
5516  "propagation primitive");
5517  }
5518  };
5519 
5523  primitive_desc() = default;
5524 
5539  const softmax_forward::primitive_desc &hint_fwd_pd,
5540  bool allow_empty = false)
5541  : dnnl::primitive_desc(&desc.data, nullptr, engine,
5542  hint_fwd_pd.get(), allow_empty) {}
5543 
5559  const engine &engine,
5560  const softmax_forward::primitive_desc &hint_fwd_pd,
5561  bool allow_empty = false)
5562  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
5563  allow_empty) {}
5564 
5572  : dnnl::primitive_desc(pd, dnnl::primitive::kind::softmax,
5574 
5576  memory::desc dst_desc() const { return base::dst_desc(0); }
5577 
5580 
5583  };
5584 
5586  softmax_backward() = default;
5587 
5592 };
5593 
5595 
5603 
5607  struct desc {
5609 
5611  desc() = default;
5612 
5628  int logsoftmax_axis) {
5631  &data_desc.data, logsoftmax_axis),
5632  "could not create a descriptor for a logsoftmax forward "
5633  "propagation primitive");
5634  }
5635  };
5636 
5640  primitive_desc() = default;
5641 
5653  bool allow_empty = false)
5654  : dnnl::primitive_desc(
5655  &desc.data, nullptr, engine, nullptr, allow_empty) {}
5656 
5669  const engine &engine, bool allow_empty = false)
5670  : dnnl::primitive_desc(
5671  &desc.data, &attr, engine, nullptr, allow_empty) {}
5672 
5680  : dnnl::primitive_desc(pd,
5681  // Logsoftmax and softmax share the implementation and
5682  // currently report the same primitive kind. Hence this
5683  // must be softmax and not logsoftmax.
5684  dnnl::primitive::kind::softmax,
5687 
5689  memory::desc src_desc() const { return base::src_desc(0); }
5690 
5692  memory::desc dst_desc() const { return base::dst_desc(0); }
5693  };
5694 
5696  logsoftmax_forward() = default;
5697 
5702 };
5703 
5707  struct desc {
5709 
5711  desc() = default;
5712 
5727  desc(const memory::desc &diff_data_desc, const memory::desc &data_desc,
5728  int logsoftmax_axis) {
5730  &diff_data_desc.data, &data_desc.data,
5731  logsoftmax_axis),
5732  "could not create a descriptor for a logsoftmax backward "
5733  "propagation primitive");
5734  }
5735  };
5736 
5740  primitive_desc() = default;
5741 
5756  const logsoftmax_forward::primitive_desc &hint_fwd_pd,
5757  bool allow_empty = false)
5758  : dnnl::primitive_desc(&desc.data, nullptr, engine,
5759  hint_fwd_pd.get(), allow_empty) {}
5760 
5776  const engine &engine,
5777  const logsoftmax_forward::primitive_desc &hint_fwd_pd,
5778  bool allow_empty = false)
5779  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
5780  allow_empty) {}
5781 
5789  : dnnl::primitive_desc(pd,
5790  // Logsoftmax and softmax share the implementation and
5791  // currently report the same primitive kind. Hence this
5792  // must be softmax and not logsoftmax.
5793  dnnl::primitive::kind::softmax,
5795 
5797  memory::desc dst_desc() const { return base::dst_desc(0); }
5798 
5801 
5804  };
5805 
5807  logsoftmax_backward() = default;
5808 
5813 };
5814 
5816 
5836 
5840  struct desc {
5842 
5879  desc(prop_kind prop_kind, const memory::desc &data_desc, float epsilon,
5880  normalization_flags flags) {
5883  dnnl::convert_to_c(prop_kind), &data_desc.data,
5884  epsilon, convert_to_c(flags)),
5885  "could not create a descriptor for a batch normalization "
5886  "forward propagation primitive");
5887  }
5888  };
5889 
5894  primitive_desc() = default;
5895 
5907  bool allow_empty = false)
5908  : dnnl::primitive_desc(
5909  &desc.data, nullptr, engine, nullptr, allow_empty) {}
5910 
5923  const engine &engine, bool allow_empty = false)
5924  : dnnl::primitive_desc(
5925  &desc.data, &attr, engine, nullptr, allow_empty) {}
5926 
5934  : dnnl::primitive_desc(pd,
5935  dnnl::primitive::kind::batch_normalization,
5938 
5940  memory::desc src_desc() const { return base::src_desc(0); }
5941 
5943  memory::desc dst_desc() const { return base::dst_desc(0); }
5944 
5947 
5950 
5953  memory::desc mean_desc() const { return stat_desc(mean); }
5954 
5957  memory::desc variance_desc() const { return stat_desc(var); }
5958 
5959  private:
5960  enum {
5961  mean = 1,
5962  var = 2,
5963  };
5964  memory::desc stat_desc(int kind) const {
5969  &p),
5970  "could not retrieve a descriptor from a primitive "
5971  "descriptor for batch normalization forward propagation "
5972  "primitive");
5973  return query_md(p->flags & dnnl_use_global_stats ? query::src_md
5974  : query::dst_md,
5975  kind);
5976  }
5977  };
5978 
5980  batch_normalization_forward() = default;
5981 
5986 };
5987 
5991  struct desc {
5993 
6023  desc(prop_kind prop_kind, const memory::desc &diff_data_desc,
6024  const memory::desc &data_desc, float epsilon,
6025  normalization_flags flags) {
6028  dnnl::convert_to_c(prop_kind), &diff_data_desc.data,
6029  &data_desc.data, epsilon, convert_to_c(flags)),
6030  "could not create a descriptor for a batch normalization "
6031  "backward propagation primitive");
6032  }
6033  };
6034 
6039  primitive_desc() = default;
6040 
6056  bool allow_empty = false)
6057  : dnnl::primitive_desc(&desc.data, nullptr, engine,
6058  hint_fwd_pd.get(), allow_empty) {}
6059 
6075  const engine &engine,
6077  bool allow_empty = false)
6078  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
6079  allow_empty) {}
6080 
6088  : dnnl::primitive_desc(pd,
6089  dnnl::primitive::kind::batch_normalization,
6091  }
6092 
6094  memory::desc src_desc() const { return base::src_desc(0); }
6095 
6098 
6100  memory::desc dst_desc() const { return base::dst_desc(0); }
6101 
6104 
6107 
6110  return base::diff_weights_desc(0);
6111  }
6112 
6115 
6118  return query_md(query::src_md, 2);
6119  }
6120 
6123  };
6124 
6126  batch_normalization_backward() = default;
6127 
6132 };
6133 
6135 
6157 
6161  struct desc {
6163 
6194  const memory::desc &stat_desc, float epsilon,
6195  normalization_flags flags) {
6198  dnnl::convert_to_c(prop_kind), &data_desc.data,
6199  &stat_desc.data, epsilon, convert_to_c(flags)),
6200  "could not create a descriptor for a layer normalization "
6201  "forward propagation primitive");
6202  }
6203 
6232  desc(prop_kind prop_kind, const memory::desc &data_desc, float epsilon,
6233  normalization_flags flags) {
6236  dnnl::convert_to_c(prop_kind), &data_desc.data,
6237  nullptr, epsilon, convert_to_c(flags)),
6238  "could not create a descriptor for a layer normalization "
6239  "forward propagation primitive");
6240  }
6241  };
6242 
6247  primitive_desc() = default;
6248 
6260  bool allow_empty = false)
6261  : dnnl::primitive_desc(
6262  &desc.data, nullptr, engine, nullptr, allow_empty) {}
6263 
6276  const engine &engine, bool allow_empty = false)
6277  : dnnl::primitive_desc(
6278  &desc.data, &attr, engine, nullptr, allow_empty) {}
6279 
6287  : dnnl::primitive_desc(pd,
6288  dnnl::primitive::kind::layer_normalization,
6291 
6293  memory::desc src_desc() const { return base::src_desc(0); }
6294 
6296  memory::desc dst_desc() const { return base::dst_desc(0); }
6297 
6300 
6303 
6305  memory::desc mean_desc() const { return stat_desc(mean); }
6306 
6308  memory::desc variance_desc() const { return stat_desc(var); }
6309 
6310  private:
6311  enum {
6312  mean = 1,
6313  var = 2,
6314  };
6315  memory::desc stat_desc(int kind) const {
6320  &p),
6321  "could not retrieve a descriptor from a primitive "
6322  "descriptor for layer normalization forward propagation "
6323  "primitive");
6324  return query_md(p->flags & dnnl_use_global_stats ? query::src_md
6325  : query::dst_md,
6326  kind);
6327  }
6328  };
6329 
6331  layer_normalization_forward() = default;
6332 
6337 };
6338 
6342  struct desc {
6344 
6373  desc(prop_kind prop_kind, const memory::desc &diff_data_desc,
6374  const memory::desc &data_desc, const memory::desc &stat_desc,
6375  float epsilon, normalization_flags flags) {
6378  dnnl::convert_to_c(prop_kind), &diff_data_desc.data,
6379  &data_desc.data, &stat_desc.data, epsilon,
6380  convert_to_c(flags)),
6381  "could not create a descriptor for a batch normalization "
6382  "backward propagation primitive");
6383  }
6384 
6412  desc(prop_kind prop_kind, const memory::desc &diff_data_desc,
6413  const memory::desc &data_desc, float epsilon,
6414  normalization_flags flags) {
6417  &diff_data_desc.data, &data_desc.data,
6418  nullptr, epsilon, convert_to_c(flags)),
6419  "could not create a descriptor for a batch normalization "
6420  "backward propagation primitive");
6421  }
6422  };
6423 
6428  primitive_desc() = default;
6429 
6445  bool allow_empty = false)
6446  : dnnl::primitive_desc(&desc.data, nullptr, engine,
6447  hint_fwd_pd.get(), allow_empty) {}
6448 
6464  const engine &engine,
6466  bool allow_empty = false)
6467  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
6468  allow_empty) {}
6469 
6477  : dnnl::primitive_desc(pd,
6478  dnnl::primitive::kind::layer_normalization,
6480  }
6481 
6483  memory::desc src_desc() const { return base::src_desc(0); }
6484 
6487 
6489  memory::desc dst_desc() const { return base::dst_desc(0); }
6490 
6493 
6496 
6499  return base::diff_weights_desc(0);
6500  }
6501 
6504 
6507  return query_md(query::src_md, 2);
6508  }
6509 
6512  };
6513 
6515  layer_normalization_backward() = default;
6516 
6521 };
6522 
6524 
6532 
6536  struct desc {
6538 
6562  const memory::desc &weights_desc, const memory::desc &bias_desc,
6563  const memory::desc &dst_desc) {
6566  &src_desc.data, &weights_desc.data,
6567  &bias_desc.data, &dst_desc.data),
6568  "could not create a descriptor for an inner product "
6569  "forward propagation primitive");
6570  }
6571 
6593  const memory::desc &weights_desc,
6594  const memory::desc &dst_desc) {
6597  dnnl::convert_to_c(prop_kind), &src_desc.data,
6598  &weights_desc.data, nullptr, &dst_desc.data),
6599  "could not create a descriptor for an inner product "
6600  "forward propagation primitive");
6601  }
6602  };
6603 
6607  primitive_desc() = default;
6608 
6620  bool allow_empty = false)
6621  : dnnl::primitive_desc(
6622  &desc.data, nullptr, engine, nullptr, allow_empty) {}
6623 
6636  const engine &engine, bool allow_empty = false)
6637  : dnnl::primitive_desc(
6638  &desc.data, &attr, engine, nullptr, allow_empty) {}
6639 
6647  : dnnl::primitive_desc(pd, dnnl::primitive::kind::inner_product,
6650 
6652  memory::desc src_desc() const { return base::src_desc(0); }
6653 
6656 
6658  memory::desc dst_desc() const { return base::dst_desc(0); }
6659 
6662  };
6663 
6665  inner_product_forward() = default;
6666 
6671 };
6672 
6676  struct desc {
6678 
6696  desc(const memory::desc &diff_src_desc,
6697  const memory::desc &weights_desc,
6698  const memory::desc &diff_dst_desc) {
6700  &diff_src_desc.data, &weights_desc.data,
6701  &diff_dst_desc.data),
6702  "could not create a descriptor for an inner product "
6703  "backward propagation primitive");
6704  }
6705  };
6706 
6711  primitive_desc() = default;
6712 
6727  const inner_product_forward::primitive_desc &hint_fwd_pd,
6728  bool allow_empty = false)
6729  : dnnl::primitive_desc(&desc.data, nullptr, engine,
6730  hint_fwd_pd.get(), allow_empty) {}
6731 
6747  const engine &engine,
6748  const inner_product_forward::primitive_desc &hint_fwd_pd,
6749  bool allow_empty = false)
6750  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
6751  allow_empty) {}
6752 
6760  : dnnl::primitive_desc(pd, dnnl::primitive::kind::inner_product,
6762 
6765 
6768 
6771  };
6772 
6774  inner_product_backward_data() = default;
6775 
6780 };
6781 
6785  struct desc {
6787 
6807  desc(const memory::desc &src_desc,
6808  const memory::desc &diff_weights_desc,
6809  const memory::desc &diff_bias_desc,
6810  const memory::desc &diff_dst_desc) {
6813  &src_desc.data, &diff_weights_desc.data,
6814  &diff_bias_desc.data, &diff_dst_desc.data),
6815  "could not create a descriptor for an inner product "
6816  "weights gradient primitive");
6817  }
6818 
6836  desc(const memory::desc &src_desc,
6837  const memory::desc &diff_weights_desc,
6838  const memory::desc &diff_dst_desc) {
6841  &src_desc.data, &diff_weights_desc.data, nullptr,
6842  &diff_dst_desc.data),
6843  "could not create a descriptor for an inner product "
6844  "weights gradient primitive");
6845  }
6846  };
6847 
6851  primitive_desc() = default;
6852 
6867  const inner_product_forward::primitive_desc &hint_fwd_pd,
6868  bool allow_empty = false)
6869  : dnnl::primitive_desc(&desc.data, nullptr, engine,
6870  hint_fwd_pd.get(), allow_empty) {}
6871 
6887  const engine &engine,
6888  const inner_product_forward::primitive_desc &hint_fwd_pd,
6889  bool allow_empty = false)
6890  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
6891  allow_empty) {}
6892 
6900  : dnnl::primitive_desc(pd, dnnl::primitive::kind::inner_product,
6902 
6904  memory::desc src_desc() const { return base::src_desc(0); }
6905 
6908  return base::diff_weights_desc(0);
6909  }
6910 
6913 
6916  return base::diff_weights_desc(1);
6917  }
6918  };
6919 
6921  inner_product_backward_weights() = default;
6922 
6927 };
6928 
6930 
6938 
6941  using primitive_desc::primitive_desc;
6942 
6944  rnn_primitive_desc_base() = default;
6945 
6954  dnnl::algorithm cell_kind)
6955  : rnn_primitive_desc_base(pd, prop_kind, prop_kind, cell_kind) {}
6956 
6960 
6966 
6970 
6974 
6978 
6984 
6988 
6994 
6998 
7002 
7008 
7012 
7016  return base::diff_weights_desc(0);
7017  }
7018 
7022  return base::diff_weights_desc(1);
7023  }
7024 
7030 
7034 
7040 
7044 
7045 protected:
7046  using rnn_base = rnn_primitive_desc_base;
7047 
7048  // (Deliberately not using doxygen comments)
7049  //
7050  // Constructs an RNN primitive descriptor base from a C API primitive
7051  // descriptor while checking that it actually describes the expected
7052  // primitive by comparing propagation and primitive kinds. Caller can
7053  // pass two options propagation kinds. This is typically used to check
7054  // that propagation kind is inference or training forward propagation.
7055  //
7056  // @param pd C API primitive descriptor.
7057  // @param prop_kind1 Expected propagation kind.
7058  // @param prop_kind2 Expected propagation kind.
7059  // @param cell_kind Expected cell kind.
7061  dnnl::prop_kind prop_kind1, dnnl::prop_kind prop_kind2,
7062  dnnl::algorithm cell_kind) {
7064  dnnl_status_t rc;
7065  rc = dnnl_primitive_desc_query(pd, dnnl_query_rnn_d, 0, &rnn_d);
7066  error::wrap_c_api(rc,
7067  "could not retrieve a descriptor from a primitive descriptor "
7068  "for an RNN primitive");
7069 
7070  dnnl_prop_kind_t c_prop_kind1 = convert_to_c(prop_kind1);
7071  dnnl_prop_kind_t c_prop_kind2 = convert_to_c(prop_kind2);
7072  dnnl_alg_kind_t c_cell_kind = convert_to_c(cell_kind);
7073 
7074  bool ok = rnn_d->primitive_kind == dnnl_rnn
7075  && (rnn_d->prop_kind == c_prop_kind1
7076  || rnn_d->prop_kind == c_prop_kind2)
7077  && rnn_d->cell_kind == c_cell_kind;
7078 
7079  if (!ok)
7080  DNNL_THROW_ERROR(dnnl_invalid_arguments,
7081  "mismatch between expected and provided descriptors for an "
7082  "RNN primitive");
7083 
7084  reset_with_clone(pd);
7085  }
7086 };
7087 
7091  struct desc {
7092  dnnl_rnn_desc_t data;
7093 
7147  const memory::desc &src_layer_desc,
7148  const memory::desc &src_iter_desc,
7149  const memory::desc &weights_layer_desc,
7150  const memory::desc &weights_iter_desc,
7151  const memory::desc &bias_desc,
7152  const memory::desc &dst_layer_desc,
7153  const memory::desc &dst_iter_desc,
7154  rnn_flags flags = rnn_flags::undef, float alpha = 0.0f,
7155  float beta = 0.0f) {
7159  dnnl::convert_to_c(activation),
7160  dnnl::convert_to_c(direction), &src_layer_desc.data,
7161  &src_iter_desc.data, &weights_layer_desc.data,
7162  &weights_iter_desc.data, &bias_desc.data,
7163  &dst_layer_desc.data, &dst_iter_desc.data,
7164  dnnl::convert_to_c(flags), alpha, beta),
7165  "could not create a descriptor for a vanilla RNN forward "
7166  "propagation primitive");
7167  }
7168  };
7169 
7173  primitive_desc() = default;
7174 
7186  bool allow_empty = false)
7188  &desc.data, nullptr, engine, nullptr, allow_empty) {}
7189 
7202  const engine &engine, bool allow_empty = false)
7204  &desc.data, &attr, engine, nullptr, allow_empty) {}
7205 
7215  dnnl::algorithm::vanilla_rnn) {}
7216 
7219  return rnn_base::src_layer_desc();
7220  }
7221 
7224 
7228  }
7229 
7232  return rnn_base::weights_iter_desc();
7233  }
7234 
7237 
7240  return rnn_base::dst_layer_desc();
7241  }
7242 
7245 
7248  return rnn_base::workspace_desc();
7249  }
7250  };
7251 
7253  vanilla_rnn_forward() = default;
7254 
7259 };
7260 
7264  struct desc {
7265  dnnl_rnn_desc_t data;
7266 
7343  const memory::desc &src_layer_desc,
7344  const memory::desc &src_iter_desc,
7345  const memory::desc &weights_layer_desc,
7346  const memory::desc &weights_iter_desc,
7347  const memory::desc &bias_desc,
7348  const memory::desc &dst_layer_desc,
7349  const memory::desc &dst_iter_desc,
7350  const memory::desc &diff_src_layer_desc,
7351  const memory::desc &diff_src_iter_desc,
7352  const memory::desc &diff_weights_layer_desc,
7353  const memory::desc &diff_weights_iter_desc,
7354  const memory::desc &diff_bias_desc,
7355  const memory::desc &diff_dst_layer_desc,
7356  const memory::desc &diff_dst_iter_desc,
7357  rnn_flags flags = rnn_flags::undef, float alpha = 0.0f,
7358  float beta = 0.0f) {
7362  dnnl::convert_to_c(activation),
7363  dnnl::convert_to_c(direction), &src_layer_desc.data,
7364  &src_iter_desc.data, &weights_layer_desc.data,
7365  &weights_iter_desc.data, &bias_desc.data,
7366  &dst_layer_desc.data, &dst_iter_desc.data,
7367  &diff_src_layer_desc.data, &diff_src_iter_desc.data,
7368  &diff_weights_layer_desc.data,
7369  &diff_weights_iter_desc.data, &diff_bias_desc.data,
7370  &diff_dst_layer_desc.data, &diff_dst_iter_desc.data,
7371  dnnl::convert_to_c(flags), alpha, beta),
7372  "could not create a descriptor for a vanilla RNN backward "
7373  "propagation primitive");
7374  }
7375  };
7376 
7380  primitive_desc() = default;
7381 
7396  const vanilla_rnn_forward::primitive_desc &hint_fwd_pd,
7397  bool allow_empty = false)
7398  : rnn_primitive_desc_base(&desc.data, nullptr, engine,
7399  hint_fwd_pd.get(), allow_empty) {}
7400 
7416  const engine &engine,
7417  const vanilla_rnn_forward::primitive_desc &hint_fwd_pd,
7418  bool allow_empty = false)
7419  : rnn_primitive_desc_base(&desc.data, &attr, engine,
7420  hint_fwd_pd.get(), allow_empty) {}
7421 
7430  dnnl::algorithm::vanilla_rnn) {}
7431 
7434  return rnn_base::src_layer_desc();
7435  }
7436 
7439 
7443  }
7444 
7447  return rnn_base::weights_iter_desc();
7448  }
7449 
7452 
7455  return rnn_base::dst_layer_desc();
7456  }
7457 
7460 
7463  return rnn_base::workspace_desc();
7464  }
7465 
7469  }
7470 
7474  }
7475 
7479  }
7480 
7484  }
7485 
7488  return rnn_base::diff_bias_desc();
7489  }
7490 
7494  }
7495 
7499  }
7500  };
7501 
7503  vanilla_rnn_backward() = default;
7504 
7509 };
7510 
7512 struct lstm_forward : public primitive {
7514  struct desc {
7515  dnnl_rnn_desc_t data;
7516 
7569  const memory::desc &src_layer_desc,
7570  const memory::desc &src_iter_desc,
7571  const memory::desc &src_iter_c_desc,
7572  const memory::desc &weights_layer_desc,
7573  const memory::desc &weights_iter_desc,
7574  const memory::desc &bias_desc,
7575  const memory::desc &dst_layer_desc,
7576  const memory::desc &dst_iter_desc,
7577  const memory::desc &dst_iter_c_desc,
7578  rnn_flags flags = rnn_flags::undef) {
7582  dnnl::convert_to_c(direction), &src_layer_desc.data,
7583  &src_iter_desc.data, &src_iter_c_desc.data,
7584  &weights_layer_desc.data, &weights_iter_desc.data,
7585  &bias_desc.data, &dst_layer_desc.data,
7586  &dst_iter_desc.data, &dst_iter_c_desc.data,
7587  dnnl::convert_to_c(flags)),
7588  "could not create a descriptor for an LSTM forward "
7589  "propagation primitive");
7590  }
7591  };
7592 
7596  primitive_desc() = default;
7597 
7608  bool allow_empty = false)
7610  &desc.data, nullptr, engine, nullptr, allow_empty) {}
7611 
7623  const engine &engine, bool allow_empty = false)
7625  &desc.data, &attr, engine, nullptr, allow_empty) {}
7626 
7637 
7640  return rnn_base::src_layer_desc();
7641  }
7642 
7645 
7648  return rnn_base::src_iter_c_desc();
7649  }
7650 
7654  }
7655 
7658  return rnn_base::weights_iter_desc();
7659  }
7660 
7663 
7666  return rnn_base::dst_layer_desc();
7667  }
7668 
7671 
7674  return rnn_base::dst_iter_c_desc();
7675  }
7676 
7679  return rnn_base::workspace_desc();
7680  }
7681  };
7682 
7684  lstm_forward() = default;
7685 
7690 };
7691 
7693 struct lstm_backward : public primitive {
7695  struct desc {
7696  dnnl_rnn_desc_t data;
7697 
7781  const memory::desc &src_layer_desc,
7782  const memory::desc &src_iter_desc,
7783  const memory::desc &src_iter_c_desc,
7784  const memory::desc &weights_layer_desc,
7785  const memory::desc &weights_iter_desc,
7786  const memory::desc &bias_desc,
7787  const memory::desc &dst_layer_desc,
7788  const memory::desc &dst_iter_desc,
7789  const memory::desc &dst_iter_c_desc,
7790  const memory::desc &diff_src_layer_desc,
7791  const memory::desc &diff_src_iter_desc,
7792  const memory::desc &diff_src_iter_c_desc,
7793  const memory::desc &diff_weights_layer_desc,
7794  const memory::desc &diff_weights_iter_desc,
7795  const memory::desc &diff_bias_desc,
7796  const memory::desc &diff_dst_layer_desc,
7797  const memory::desc &diff_dst_iter_desc,
7798  const memory::desc &diff_dst_iter_c_desc,
7799  rnn_flags flags = rnn_flags::undef) {
7803  dnnl::convert_to_c(direction), &src_layer_desc.data,
7804  &src_iter_desc.data, &src_iter_c_desc.data,
7805  &weights_layer_desc.data, &weights_iter_desc.data,
7806  &bias_desc.data, &dst_layer_desc.data,
7807  &dst_iter_desc.data, &dst_iter_c_desc.data,
7808  &diff_src_layer_desc.data, &diff_src_iter_desc.data,
7809  &diff_src_iter_c_desc.data,
7810  &diff_weights_layer_desc.data,
7811  &diff_weights_iter_desc.data, &diff_bias_desc.data,
7812  &diff_dst_layer_desc.data, &diff_dst_iter_desc.data,
7813  &diff_dst_iter_c_desc.data,
7814  dnnl::convert_to_c(flags)),
7815  "could not create a descriptor for an LSTM backward "
7816  "propagation primitive");
7817  }
7818  };
7819 
7823  primitive_desc() = default;
7824 
7838  const lstm_forward::primitive_desc &hint_fwd_pd,
7839  bool allow_empty = false)
7840  : rnn_primitive_desc_base(&desc.data, nullptr, engine,
7841  hint_fwd_pd.get(), allow_empty) {}
7842 
7857  const engine &engine,
7858  const lstm_forward::primitive_desc &hint_fwd_pd,
7859  bool allow_empty = false)
7860  : rnn_primitive_desc_base(&desc.data, &attr, engine,
7861  hint_fwd_pd.get(), allow_empty) {}
7862 
7872 
7875  return rnn_base::src_layer_desc();
7876  }
7877 
7880 
7883  return rnn_base::src_iter_c_desc();
7884  }
7885 
7889  }
7890 
7893  return rnn_base::weights_iter_desc();
7894  }
7895 
7898 
7901  return rnn_base::dst_layer_desc();
7902  }
7903 
7906 
7909  return rnn_base::dst_iter_c_desc();
7910  }
7911 
7914  return rnn_base::workspace_desc();
7915  }
7916 
7920  }
7921 
7925  }
7926 
7930  }
7931 
7935  }
7936 
7940  }
7941 
7944  return rnn_base::diff_bias_desc();
7945  }
7946 
7950  }
7951 
7955  }
7956 
7960  }
7961  };
7962 
7964  lstm_backward() = default;
7965 
7970 };
7971 
7973 struct gru_forward : public primitive {
7975  struct desc {
7976  dnnl_rnn_desc_t data;
7977 
8023  const memory::desc &src_layer_desc,
8024  const memory::desc &src_iter_desc,
8025  const memory::desc &weights_layer_desc,
8026  const memory::desc &weights_iter_desc,
8027  const memory::desc &bias_desc,
8028  const memory::desc &dst_layer_desc,
8029  const memory::desc &dst_iter_desc,
8030  rnn_flags flags = rnn_flags::undef) {
8034  dnnl::convert_to_c(direction), &src_layer_desc.data,
8035  &src_iter_desc.data, &weights_layer_desc.data,
8036  &weights_iter_desc.data, &bias_desc.data,
8037  &dst_layer_desc.data, &dst_iter_desc.data,
8038  dnnl::convert_to_c(flags)),
8039  "could not create a descriptor for a GRU forward "
8040  "propagation primitive");
8041  }
8042  };
8043 
8047  primitive_desc() = default;
8048 
8059  bool allow_empty = false)
8061  &desc.data, nullptr, engine, nullptr, allow_empty) {}
8062 
8074  const engine &engine, bool allow_empty = false)
8076  &desc.data, &attr, engine, nullptr, allow_empty) {}
8077 
8087  dnnl::algorithm::vanilla_gru) {}
8088 
8091  return rnn_base::src_layer_desc();
8092  }
8093 
8096 
8100  }
8101 
8104  return rnn_base::weights_iter_desc();
8105  }
8106 
8109 
8112  return rnn_base::dst_layer_desc();
8113  }
8114 
8117 
8120  return rnn_base::workspace_desc();
8121  }
8122  };
8123 
8125  gru_forward() = default;
8126 
8131 };
8132 
8134 struct gru_backward : public primitive {
8136  struct desc {
8137  dnnl_rnn_desc_t data;
8138 
8206  const memory::desc &src_layer_desc,
8207  const memory::desc &src_iter_desc,
8208  const memory::desc &weights_layer_desc,
8209  const memory::desc &weights_iter_desc,
8210  const memory::desc &bias_desc,
8211  const memory::desc &dst_layer_desc,
8212  const memory::desc &dst_iter_desc,
8213  const memory::desc &diff_src_layer_desc,
8214  const memory::desc &diff_src_iter_desc,
8215  const memory::desc &diff_weights_layer_desc,
8216  const memory::desc &diff_weights_iter_desc,
8217  const memory::desc &diff_bias_desc,
8218  const memory::desc &diff_dst_layer_desc,
8219  const memory::desc &diff_dst_iter_desc,
8220  rnn_flags flags = rnn_flags::undef) {
8224  dnnl::convert_to_c(direction), &src_layer_desc.data,
8225  &src_iter_desc.data, &weights_layer_desc.data,
8226  &weights_iter_desc.data, &bias_desc.data,
8227  &dst_layer_desc.data, &dst_iter_desc.data,
8228  &diff_src_layer_desc.data, &diff_src_iter_desc.data,
8229  &diff_weights_layer_desc.data,
8230  &diff_weights_iter_desc.data, &diff_bias_desc.data,
8231  &diff_dst_layer_desc.data, &diff_dst_iter_desc.data,
8232  dnnl::convert_to_c(flags)),
8233  "could not create a descriptor for a GRU backward "
8234  "propagation primitive");
8235  }
8236  };
8237 
8241  primitive_desc() = default;
8242 
8256  const gru_forward::primitive_desc &hint_fwd_pd,
8257  bool allow_empty = false)
8258  : rnn_primitive_desc_base(&desc.data, nullptr, engine,
8259  hint_fwd_pd.get(), allow_empty) {}
8260 
8275  const engine &engine,
8276  const gru_forward::primitive_desc &hint_fwd_pd,
8277  bool allow_empty = false)
8278  : rnn_primitive_desc_base(&desc.data, &attr, engine,
8279  hint_fwd_pd.get(), allow_empty) {}
8280 
8289  dnnl::algorithm::vanilla_gru) {}
8290 
8293  return rnn_base::src_layer_desc();
8294  }
8295 
8298 
8302  }
8303 
8306  return rnn_base::weights_iter_desc();
8307  }
8308 
8311 
8314  return rnn_base::dst_layer_desc();
8315  }
8316 
8319 
8322  return rnn_base::workspace_desc();
8323  }
8324 
8328  }
8329 
8333  }
8334 
8338  }
8339 
8343  }
8344 
8347  return rnn_base::diff_bias_desc();
8348  }
8349 
8353  }
8354 
8358  }
8359  };
8360 
8362  gru_backward() = default;
8363 
8368 };
8369 
8371 struct lbr_gru_forward : public primitive {
8373  struct desc {
8374  dnnl_rnn_desc_t data;
8375 
8421  const memory::desc &src_layer_desc,
8422  const memory::desc &src_iter_desc,
8423  const memory::desc &weights_layer_desc,
8424  const memory::desc &weights_iter_desc,
8425  const memory::desc &bias_desc,
8426  const memory::desc &dst_layer_desc,
8427  const memory::desc &dst_iter_desc,
8428  rnn_flags flags = rnn_flags::undef) {
8432  dnnl::convert_to_c(direction), &src_layer_desc.data,
8433  &src_iter_desc.data, &weights_layer_desc.data,
8434  &weights_iter_desc.data, &bias_desc.data,
8435  &dst_layer_desc.data, &dst_iter_desc.data,
8436  dnnl::convert_to_c(flags)),
8437  "could not create a descriptor for an LBR GRU forward "
8438  "propagation primitive");
8439  }
8440  };
8441 
8445  primitive_desc() = default;
8446 
8458  bool allow_empty = false)
8460  &desc.data, nullptr, engine, nullptr, allow_empty) {}
8461 
8474  const engine &engine, bool allow_empty = false)
8476  &desc.data, &attr, engine, nullptr, allow_empty) {}
8477 
8487  dnnl::algorithm::lbr_gru) {}
8488 
8491  return rnn_base::src_layer_desc();
8492  }
8493 
8496 
8500  }
8501 
8504  return rnn_base::weights_iter_desc();
8505  }
8506 
8509 
8512  return rnn_base::dst_layer_desc();
8513  }
8514 
8517 
8520  return rnn_base::workspace_desc();
8521  }
8522  };
8523 
8525  lbr_gru_forward() = default;
8526 
8531 };
8532 
8534 struct lbr_gru_backward : public primitive {
8536  struct desc {
8537  dnnl_rnn_desc_t data;
8538 
8607  const memory::desc &src_layer_desc,
8608  const memory::desc &src_iter_desc,
8609  const memory::desc &weights_layer_desc,
8610  const memory::desc &weights_iter_desc,
8611  const memory::desc &bias_desc,
8612  const memory::desc &dst_layer_desc,
8613  const memory::desc &dst_iter_desc,
8614  const memory::desc &diff_src_layer_desc,
8615  const memory::desc &diff_src_iter_desc,
8616  const memory::desc &diff_weights_layer_desc,
8617  const memory::desc &diff_weights_iter_desc,
8618  const memory::desc &diff_bias_desc,
8619  const memory::desc &diff_dst_layer_desc,
8620  const memory::desc &diff_dst_iter_desc,
8621  rnn_flags flags = rnn_flags::undef) {
8625  dnnl::convert_to_c(direction), &src_layer_desc.data,
8626  &src_iter_desc.data, &weights_layer_desc.data,
8627  &weights_iter_desc.data, &bias_desc.data,
8628  &dst_layer_desc.data, &dst_iter_desc.data,
8629  &diff_src_layer_desc.data, &diff_src_iter_desc.data,
8630  &diff_weights_layer_desc.data,
8631  &diff_weights_iter_desc.data, &diff_bias_desc.data,
8632  &diff_dst_layer_desc.data, &diff_dst_iter_desc.data,
8633  dnnl::convert_to_c(flags)),
8634  "could not create a descriptor for an LBR GRU backward "
8635  "propagation primitive");
8636  }
8637  };
8638 
8642  primitive_desc() = default;
8643 
8658  const lbr_gru_forward::primitive_desc &hint_fwd_pd,
8659  bool allow_empty = false)
8660  : rnn_primitive_desc_base(&desc.data, nullptr, engine,
8661  hint_fwd_pd.get(), allow_empty) {}
8662 
8678  const engine &engine,
8679  const lbr_gru_forward::primitive_desc &hint_fwd_pd,
8680  bool allow_empty = false)
8681  : rnn_primitive_desc_base(&desc.data, &attr, engine,
8682  hint_fwd_pd.get(), allow_empty) {}
8683 
8693 
8696  return rnn_base::src_layer_desc();
8697  }
8698 
8701 
8705  }
8706 
8709  return rnn_base::weights_iter_desc();
8710  }
8711 
8714 
8717  return rnn_base::dst_layer_desc();
8718  }
8719 
8722 
8725  return rnn_base::workspace_desc();
8726  }
8727 
8731  }
8732 
8736  }
8737 
8741  }
8742 
8746  }
8747 
8750  return rnn_base::diff_bias_desc();
8751  }
8752 
8756  }
8757 
8761  }
8762  };
8763 
8765  lbr_gru_backward() = default;
8766 
8771 };
8772 
8774 
8782 
8784 struct shuffle_forward : public primitive {
8786  struct desc {
8787  dnnl_shuffle_desc_t data;
8788 
8804  desc(prop_kind prop_kind, const memory::desc &data_desc, int axis,
8805  int group_size) {
8808  &data_desc.data, axis, group_size),
8809  "could not create a descriptor for a shuffle forward "
8810  "propagation primitive");
8811  }
8812  };
8813 
8817  primitive_desc() = default;
8818 
8831  const primitive_attr &attr = primitive_attr(),
8832  bool allow_empty = false)
8833  : dnnl::primitive_desc(
8834  &desc.data, &attr, engine, nullptr, allow_empty) {}
8835 
8843  : dnnl::primitive_desc(pd, dnnl::primitive::kind::shuffle,
8846 
8848  memory::desc src_desc() const { return base::src_desc(0); }
8849 
8851  memory::desc dst_desc() const { return base::dst_desc(0); }
8852  };
8853 
8855  shuffle_forward() = default;
8856 
8861 };
8862 
8864 struct shuffle_backward : public primitive {
8867  struct desc {
8868  dnnl_shuffle_desc_t data;
8869 
8883  desc(const memory::desc &diff_data_desc, int axis, int group_size) {
8885  &diff_data_desc.data, axis, group_size),
8886  "could not create a descriptor for a shuffle backward "
8887  "propagation primitive");
8888  }
8889  };
8890 
8894  primitive_desc() = default;
8895 
8911  const shuffle_forward::primitive_desc &hint_fwd_pd,
8912  const primitive_attr &attr = primitive_attr(),
8913  bool allow_empty = false)
8914  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
8915  allow_empty) {}
8916 
8924  : dnnl::primitive_desc(pd, dnnl::primitive::kind::shuffle,
8926 
8929 
8932  };
8933 
8935  shuffle_backward() = default;
8936 
8941 };
8942 
8944 
8952 
8954 struct binary : public primitive {
8956  struct desc {
8959 
8975  const memory::desc &src1, const memory::desc &dst) {
8978  &src0.data, &src1.data, &dst.data),
8979  "could not create a descriptor for a binary operation "
8980  "primitive");
8981  }
8982  };
8983 
8987  primitive_desc() = default;
8988 
8999  bool allow_empty = false)
9000  : dnnl::primitive_desc(
9001  &desc.data, nullptr, engine, nullptr, allow_empty) {}
9002 
9014  const engine &engine, bool allow_empty = false)
9015  : dnnl::primitive_desc(
9016  &desc.data, &attr, engine, nullptr, allow_empty) {}
9017 
9024 
9026  memory::desc src_desc(int idx = 0) const { return base::src_desc(idx); }
9027 
9029  memory::desc src0_desc() const { return base::src_desc(0); }
9030 
9032  memory::desc src1_desc() const { return base::src_desc(1); }
9033 
9035  memory::desc dst_desc() const { return base::dst_desc(0); }
9036  };
9037 
9039  binary() = default;
9040 
9044  binary(const primitive_desc &pd) : primitive(pd) {}
9045 };
9046 
9048 
9058 
9060 struct matmul : public primitive {
9062  struct desc {
9063  dnnl_matmul_desc_t data;
9064 
9077  desc(const memory::desc &src_desc, const memory::desc &weights_desc,
9078  const memory::desc &dst_desc) {
9080  dnnl_matmul_desc_init(&data, &src_desc.data,
9081  &weights_desc.data, nullptr, &dst_desc.data),
9082  "could not create a descriptor for a matmul primitive");
9083  }
9084 
9099  desc(const memory::desc &src_desc, const memory::desc &weights_desc,
9100  const memory::desc &bias_desc, const memory::desc &dst_desc) {
9101  error::wrap_c_api(dnnl_matmul_desc_init(&data, &src_desc.data,
9102  &weights_desc.data, &bias_desc.data,
9103  &dst_desc.data),
9104  "could not create a descriptor for a matmul primitive");
9105  }
9106  };
9107 
9111  primitive_desc() = default;
9112 
9122  bool allow_empty = false)
9123  : dnnl::primitive_desc(
9124  &desc.data, nullptr, engine, nullptr, allow_empty) {}
9125 
9136  const engine &engine, bool allow_empty = false)
9137  : dnnl::primitive_desc(
9138  &desc.data, &attr, engine, nullptr, allow_empty) {}
9139 
9146 
9149 
9152  return query_md(query::weights_md, 0);
9153  }
9154 
9157  return query_md(query::weights_md, 1);
9158  }
9159 
9162  };
9163 
9165  matmul() = default;
9166 
9169  matmul(const primitive_desc &pd) : primitive(pd) {}
9170 };
9171 
9173 
9183 
9187  struct desc {
9189 
9196  //
9212  const memory::desc &src_desc, const memory::desc &dst_desc) {
9215  convert_to_c(algorithm), nullptr,
9216  &src_desc.data, &dst_desc.data),
9217  "could not create a resampling forward descriptor");
9218  }
9219 
9235  const std::vector<float> &factors,
9236  const memory::desc &src_desc) {
9239  convert_to_c(algorithm), &factors[0],
9240  &src_desc.data, nullptr),
9241  "could not create a resampling forward descriptor");
9242  }
9243 
9250  //
9267  const std::vector<float> &factors, const memory::desc &src_desc,
9268  const memory::desc &dst_desc) {
9271  convert_to_c(algorithm), &factors[0],
9272  &src_desc.data, &dst_desc.data),
9273  "could not create a resampling forward descriptor");
9274  }
9275  };
9276 
9280  primitive_desc() = default;
9281 
9293  bool allow_empty = false)
9294  : dnnl::primitive_desc(
9295  &desc.data, nullptr, engine, nullptr, allow_empty) {}
9296 
9308  const engine &engine, bool allow_empty = false)
9309  : dnnl::primitive_desc(
9310  &desc.data, &attr, engine, nullptr, allow_empty) {}
9311 
9319  : dnnl::primitive_desc(pd, dnnl::primitive::kind::resampling,
9322 
9324  memory::desc src_desc() const { return base::src_desc(0); }
9325 
9327  memory::desc dst_desc() const { return base::dst_desc(0); }
9328  };
9329 
9331  resampling_forward() = default;
9332 
9337 };
9338 
9342  struct desc {
9344 
9359  desc(algorithm algorithm, const memory::desc &diff_src_desc,
9360  const memory::desc &diff_dst_desc) {
9362  convert_to_c(algorithm), nullptr,
9363  &diff_src_desc.data, &diff_dst_desc.data),
9364  "could not create a resampling backward data descriptor");
9365  }
9366 
9382  desc(algorithm algorithm, std::vector<float> factors,
9383  const memory::desc &diff_src_desc,
9384  const memory::desc &diff_dst_desc) {
9386  convert_to_c(algorithm), &factors[0],
9387  &diff_src_desc.data, &diff_dst_desc.data),
9388  "could not create a resampling backward data descriptor");
9389  }
9390  };
9391 
9395  primitive_desc() = default;
9396 
9410  const resampling_forward::primitive_desc &hint_fwd_pd,
9411  bool allow_empty = false)
9412  : dnnl::primitive_desc(&desc.data, nullptr, engine,
9413  hint_fwd_pd.get(), allow_empty) {}
9414 
9429  const engine &engine,
9430  const resampling_forward::primitive_desc &hint_fwd_pd,
9431  bool allow_empty = false)
9432  : dnnl::primitive_desc(&desc.data, &attr, engine, hint_fwd_pd.get(),
9433  allow_empty) {}
9434 
9442  : dnnl::primitive_desc(pd, dnnl::primitive::kind::resampling,
9444 
9447 
9450  };
9451 
9453  resampling_backward() = default;
9454 
9459 };
9460 
9462 
9464 
9470 
9473 
9475 enum class status {
9490 };
9491 
9493 inline status set_verbose(int level) {
9494  return static_cast<status>(dnnl_set_verbose(level));
9495 }
9496 
9498 inline const version_t *version() {
9499  return dnnl_version();
9500 }
9501 
9503 inline status set_jit_dump(int enable) {
9504  return static_cast<status>(dnnl_set_jit_dump(enable));
9505 }
9506 
9508 inline status set_jit_profiling_flags(unsigned flags) {
9509  return static_cast<status>(dnnl_set_jit_profiling_flags(flags));
9510 }
9511 
9513 inline status set_jit_profiling_jitdumpdir(const std::string &dir) {
9514  return static_cast<status>(dnnl_set_jit_profiling_jitdumpdir(dir.c_str()));
9515 }
9516 
9518 enum class cpu_isa {
9537 };
9538 
9541  return static_cast<status>(
9542  dnnl_set_max_cpu_isa(static_cast<dnnl_cpu_isa_t>(isa)));
9543 }
9544 
9546 
9553 
9555 inline status sgemm(char transa, char transb, dnnl_dim_t M, dnnl_dim_t N,
9556  dnnl_dim_t K, float alpha, const float *A, dnnl_dim_t lda,
9557  const float *B, dnnl_dim_t ldb, float beta, float *C, dnnl_dim_t ldc) {
9558  return static_cast<status>(dnnl_sgemm(
9559  transa, transb, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc));
9560 }
9561 
9563 inline status gemm_u8s8s32(char transa, char transb, char offsetc, dnnl_dim_t M,
9564  dnnl_dim_t N, dnnl_dim_t K, float alpha, const uint8_t *A,
9565  dnnl_dim_t lda, uint8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo,
9566  float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co) {
9567  return static_cast<status>(dnnl_gemm_u8s8s32(transa, transb, offsetc, M, N,
9568  K, alpha, A, lda, ao, B, ldb, bo, beta, C, ldc, co));
9569 }
9570 
9572 inline status gemm_s8s8s32(char transa, char transb, char offsetc, dnnl_dim_t M,
9573  dnnl_dim_t N, dnnl_dim_t K, float alpha, const int8_t *A,
9574  dnnl_dim_t lda, int8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo,
9575  float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co) {
9576  return static_cast<status>(dnnl_gemm_s8s8s32(transa, transb, offsetc, M, N,
9577  K, alpha, A, lda, ao, B, ldb, bo, beta, C, ldc, co));
9578 }
9579 
9581 
9582 // implementation section
9583 
9586  dnnl_primitive_t result;
9588  "could not create a primitive");
9589  reset(result);
9590 }
9591 
9592 inline primitive::primitive(const primitive_desc &pd) : primitive(pd.get()) {}
9593 
9594 inline void primitive::execute(
9595  stream &stream, const std::unordered_map<int, memory> &args) const {
9596  std::vector<dnnl_exec_arg_t> c_args;
9597  c_args.reserve(args.size());
9598  for (const auto &a : args)
9599  c_args.push_back({a.first, a.second.get(true)});
9600 
9601  error::wrap_c_api(dnnl_primitive_execute(get(), stream.get(),
9602  (int)c_args.size(), c_args.data()),
9603  "could not execute a primitive");
9604 }
9606 
9607 #undef DNNL_DEFINE_BITMASK_OPS
9608 
9609 } // namespace dnnl
9610 
9612 
9613 #endif
dnnl_query_time_estimate_f64
@ dnnl_query_time_estimate_f64
runtime estimation (seconds)
Definition: dnnl_types.h:1891
dnnl_query_reorder_dst_engine
@ dnnl_query_reorder_dst_engine
destination engine
Definition: dnnl_types.h:1903
dnnl::memory::set_data_handle
void set_data_handle(void *handle) const
Sets memory buffer.
Definition: dnnl.hpp:2322
dnnl::gru_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::vanilla_rnn_backward::primitive_desc::diff_src_layer_desc
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:7467
dnnl::gemm_s8s8s32
status gemm_s8s8s32(char transa, char transb, char offsetc, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const int8_t *A, dnnl_dim_t lda, int8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo, float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co)
Performs integer matrix-matrix multiply on 8-bit signed matrix A, 8-bit signed matrix B,...
Definition: dnnl.hpp:9572
dnnl::query::eltwise_d
@ eltwise_d
eltwise descriptor
dnnl_primitive_desc_iterator_next
dnnl_status_t DNNL_API dnnl_primitive_desc_iterator_next(dnnl_primitive_desc_iterator_t iterator)
Advances the primitive descriptor iterator to point to the next available implementation.
dnnl::resampling_backward
Resampling backward propagation primitive.
Definition: dnnl.hpp:9340
dnnl::deconvolution_backward_data::deconvolution_backward_data
deconvolution_backward_data(const primitive_desc &pd)
Constructs a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4400
dnnl::cpu_isa::sse41
@ sse41
Intel(R) SSE4.1.
dnnl::reorder::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl_aBcdef4b
@ dnnl_aBcdef4b
6D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:304
dnnl::binary::primitive_desc::src_desc
memory::desc src_desc(int idx=0) const
Returns a source memory descriptor.
Definition: dnnl.hpp:9026
dnnl_scratchpad_mode_library
@ dnnl_scratchpad_mode_library
The library manages scratchpad (default) The allocation policy is controlled by the DNNL_ENABLE_CONCU...
Definition: dnnl_types.h:1626
dnnl::query::diff_dst_md
@ diff_dst_md
destination grad. memory desc
dnnl::convolution_forward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:3493
dnnl::primitive_attr::set_rnn_data_qparams
void set_rnn_data_qparams(float scale, float shift)
Sets quantization scale and shift parameters for RNN data tensors.
Definition: dnnl.hpp:1210
dnnl::layer_normalization_forward::layer_normalization_forward
layer_normalization_forward(const primitive_desc &pd)
Constructs a layer normalization forward propagation primitive.
Definition: dnnl.hpp:6336
dnnl::logsoftmax_backward::logsoftmax_backward
logsoftmax_backward()=default
Default constructor. Produces an empty object.
dnnl::primitive_desc_base::primitive_desc_base
primitive_desc_base(dnnl_primitive_desc_t pd, dnnl::primitive::kind prim_kind, dnnl::prop_kind prop_kind1, dnnl::prop_kind prop_kind2)
Constructs a primitive descriptor base object from a clone of a C API primitive descriptor after veri...
Definition: dnnl.hpp:2736
dnnl::lstm_forward::desc
Descriptor for an LSTM forward propagation primitive.
Definition: dnnl.hpp:7514
dnnl::primitive::kind::softmax
@ softmax
A softmax primitive.
dnnl::engine::engine
engine()=default
Constructs an empty engine.
dnnl_set_jit_profiling_flags
dnnl_status_t DNNL_API dnnl_set_jit_profiling_flags(unsigned flags)
Sets library profiling flags.
dnnl::rnn_primitive_desc_base::diff_dst_iter_c_desc
memory::desc diff_dst_iter_c_desc() const
Returns diff destination recurrent cell state memory descriptor.
Definition: dnnl.hpp:7043
dnnl_inner_product_forward_desc_init
dnnl_status_t DNNL_API dnnl_inner_product_forward_desc_init(dnnl_inner_product_desc_t *ip_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc)
Initializes descriptor for inner product forward propagation.
dnnl::rnn_primitive_desc_base::weights_layer_desc
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:6973
dnnl_convolution_forward_desc_init
dnnl_status_t DNNL_API dnnl_convolution_forward_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a convolution forward propagation primitive.
dnnl::convolution_backward_weights::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::softmax_backward::softmax_backward
softmax_backward(const primitive_desc &pd)
Constructs a softmax backward propagation primitive.
Definition: dnnl.hpp:5591
dnnl::softmax_backward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5576
dnnl::vanilla_rnn_backward::vanilla_rnn_backward
vanilla_rnn_backward()=default
Default constructor. Produces an empty object.
dnnl::gru_forward::primitive_desc::bias_desc
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:8108
dnnl_s32
@ dnnl_s32
32-bit signed integer.
Definition: dnnl_types.h:72
dnnl::algorithm::binary_add
@ binary_add
Binary add.
dnnl::lstm_forward::desc::desc
desc(prop_kind prop_kind, rnn_direction direction, const memory::desc &src_layer_desc, const memory::desc &src_iter_desc, const memory::desc &src_iter_c_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 &dst_iter_c_desc, rnn_flags flags=rnn_flags::undef)
Constructs a descriptor for an LSTM forward propagation primitive.
Definition: dnnl.hpp:7568
dnnl::status::success
@ success
The operation was successful.
dnnl::reorder::execute
void execute(stream stream, memory &src, memory &dst) const
Executes the reorder primitive.
Definition: dnnl.hpp:2908
dnnl::deconvolution_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a deconvolution forward propagation primitive from a C API prim...
Definition: dnnl.hpp:4208
dnnl::lrn_forward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:4774
dnnl::binary::primitive_desc
Primitive descriptor for an elementwise binary operator primitive.
Definition: dnnl.hpp:8985
dnnl::rnn_direction
rnn_direction
A direction of RNN primitive execution.
Definition: dnnl.hpp:680
dnnl::logsoftmax_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::convolution_backward_data::convolution_backward_data
convolution_backward_data()=default
Default constructor. Produces an empty object.
dnnl::memory::desc::reshape
desc reshape(const memory::dims &dims) const
Constructs a memory descriptor by reshaping existing one.
Definition: dnnl.hpp:2185
dnnl::lrn_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, const memory::desc &data_desc, memory::dim local_size, float alpha, float beta, float k=1.f)
Constructs a descriptor for a LRN forward propagation primitive.
Definition: dnnl.hpp:4713
dnnl::cpu_isa::all
@ all
Any ISA (no restrictions)
dnnl::gru_forward::desc
Descriptor for a GRU forward propagation primitive.
Definition: dnnl.hpp:7975
dnnl::memory::desc::get_size
size_t get_size() const
Returns size of the memory descriptor in bytes.
Definition: dnnl.hpp:2211
dnnl::reorder
Reorder primitive.
Definition: dnnl.hpp:2799
dnnl_query_pooling_d
@ dnnl_query_pooling_d
pooling descriptor
Definition: dnnl_types.h:1915
dnnl::query::num_of_inputs_s32
@ num_of_inputs_s32
number of inputs expected
dnnl::shuffle_backward
Shuffle backward propagation primitive.
Definition: dnnl.hpp:8864
dnnl::inner_product_forward::desc
Descriptor for an inner product forward propagation primitive.
Definition: dnnl.hpp:6536
dnnl::query::resampling_d
@ resampling_d
resampling descriptor
dnnl::vanilla_rnn_backward::primitive_desc::bias_desc
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:7451
dnnl::prop_kind::backward
@ backward
Backward propagation (with respect to all parameters).
dnnl::lbr_gru_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a LBR GRU forward propagation primitive from a C API primitive ...
Definition: dnnl.hpp:8484
dnnl_ABcde2b8a4b
@ dnnl_ABcde2b8a4b
5D tensor blocked by 1st dimension with block size 8
Definition: dnnl_types.h:265
dnnl::memory::get_sycl_buffer
cl::sycl::buffer< T, ndims > get_sycl_buffer(size_t *offset=nullptr) const
Returns the underlying SYCL buffer object.
Definition: dnnl.hpp:2396
dnnl::lstm_backward::primitive_desc::diff_dst_iter_c_desc
memory::desc diff_dst_iter_c_desc() const
Returns diff destination recurrent cell state memory descriptor.
Definition: dnnl.hpp:7958
dnnl::shuffle_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::layer_normalization_backward::primitive_desc::variance_desc
memory::desc variance_desc() const
Returns memory descriptor for variance.
Definition: dnnl.hpp:6506
dnnl::vanilla_rnn_backward::primitive_desc::dst_iter_desc
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:7459
dnnl::gru_backward::primitive_desc::diff_dst_iter_desc
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:8356
dnnl::lstm_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for an LSTM forward propagation primitive.
Definition: dnnl.hpp:7622
dnnl::lrn_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const lrn_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an LRN backward propagation primitive.
Definition: dnnl.hpp:4846
dnnl::lbr_gru_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const lbr_gru_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an LBR GRU backward propagation primitive.
Definition: dnnl.hpp:8657
dnnl::lbr_gru_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a LBR GRU forward propagation primitive.
Definition: dnnl.hpp:8473
dnnl::error::what
const char * what() const noexcept override
Returns the explanatory string.
Definition: dnnl.hpp:104
dnnl::gru_backward::primitive_desc::diff_weights_iter_desc
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:8341
dnnl_pooling_backward_desc_init
dnnl_status_t DNNL_API dnnl_pooling_backward_desc_init(dnnl_pooling_desc_t *pool_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t kernel, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for pooling backward propagation primitive.
dnnl::engine::kind::any
@ any
An unspecified engine.
dnnl::query::pooling_d
@ pooling_d
pooling descriptor
dnnl::primitive::get_primitive_desc
const_dnnl_primitive_desc_t get_primitive_desc() const
Returns the C API primitive descriptor of the underlying C API primitive.
Definition: dnnl.hpp:378
dnnl::lbr_gru_forward::primitive_desc
Primitive descriptor for an LBR GRU forward propagation primitive.
Definition: dnnl.hpp:8443
dnnl::convolution_backward_weights
Convolution weights gradient primitive.
Definition: dnnl.hpp:3683
dnnl::stream
An execution stream.
Definition: dnnl.hpp:1434
dnnl::rnn_direction::bidirectional_concat
@ bidirectional_concat
Bidirectional execution of RNN primitive with concatenation of the results.
dnnl::memory::desc::desc
desc(const dnnl_memory_desc_t &data)
Constructs a memory descriptor from a C API data structure.
Definition: dnnl.hpp:2162
dnnl::query::diff_src_md
@ diff_src_md
source gradient memory desc
dnnl_query_memory_consumption_s64
@ dnnl_query_memory_consumption_s64
memory consumption – extra
Definition: dnnl_types.h:1892
dnnl_s8
@ dnnl_s8
8-bit signed integer.
Definition: dnnl_types.h:74
dnnl::prop_kind
prop_kind
Propagation kind.
Definition: dnnl.hpp:444
dnnl::pooling_forward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5013
dnnl::post_ops::len
int len() const
Returns the number of post-ops entries.
Definition: dnnl.hpp:846
dnnl::matmul::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a matmul primitive from a C API primitive descriptor that must ...
Definition: dnnl.hpp:9144
dnnl_dilated_deconvolution_forward_desc_init
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_forward_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated deconvolution forward propagation primitive.
dnnl_format_tag_t
dnnl_format_tag_t
Memory format tag specification.
Definition: dnnl_types.h:164
dnnl_f16
@ dnnl_f16
16-bit/half-precision floating point.
Definition: dnnl_types.h:66
dnnl_inner_product
@ dnnl_inner_product
An inner product primitive.
Definition: dnnl_types.h:691
dnnl::lbr_gru_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl_unimplemented
@ dnnl_unimplemented
The operation failed because requested functionality is not implemented.
Definition: dnnl_types.h:47
dnnl_memory
dnnl::query::exec_arg_md
@ exec_arg_md
memory desc of an execute argument
dnnl::gru_backward::desc::desc
desc(prop_kind prop_kind, 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, rnn_flags flags=rnn_flags::undef)
Constructs a descriptor for a GRU backward propagation primitive.
Definition: dnnl.hpp:8205
dnnl_decab
@ dnnl_decab
permuted 5D tensor
Definition: dnnl_types.h:201
dnnl::softmax_backward
Softmax backward propagation primitive.
Definition: dnnl.hpp:5489
dnnl::lstm_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl_primitive_desc_iterator
An opaque structure to describe a primitive descriptor iterator.
dnnl::eltwise_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for an elementwise forward propagation primitive.
Definition: dnnl.hpp:5224
dnnl_batch_normalization
@ dnnl_batch_normalization
A batch normalization primitive.
Definition: dnnl_types.h:687
dnnl::vanilla_rnn_backward
Vanilla RNN backward propagation primitive.
Definition: dnnl.hpp:7262
dnnl_query_logsoftmax_d
@ dnnl_query_logsoftmax_d
logsoftmax descriptor
Definition: dnnl_types.h:1923
dnnl::lrn_backward::desc::desc
desc(algorithm algorithm, const memory::desc &data_desc, const memory::desc &diff_data_desc, memory::dim local_size, float alpha, float beta, float k=1.f)
Constructs a descriptor for an LRN backward propagation primitive.
Definition: dnnl.hpp:4817
dnnl::gemm_u8s8s32
status gemm_u8s8s32(char transa, char transb, char offsetc, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const uint8_t *A, dnnl_dim_t lda, uint8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo, float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co)
Performs integer matrix-matrix multiply on 8-bit unsigned matrix A, 8-bit signed matrix B,...
Definition: dnnl.hpp:9563
dnnl::vanilla_rnn_backward::desc
Vanilla RNN descriptor backward propagation primitive.
Definition: dnnl.hpp:7264
dnnl::lrn_backward::primitive_desc::diff_src_desc
memory::desc diff_src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:4883
dnnl::lbr_gru_backward
LBR GRU backward propagation primitive.
Definition: dnnl.hpp:8534
dnnl::inner_product_backward_data::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::matmul::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:9148
dnnl::algorithm::eltwise_soft_relu
@ eltwise_soft_relu
Elementwise: soft_relu.
dnnl::lstm_forward::primitive_desc
Primitive descriptor for an LSTM forward propagation primitive.
Definition: dnnl.hpp:7594
dnnl::lrn_backward::lrn_backward
lrn_backward(const primitive_desc &pd)
Constructs an LRN backward propagation primitive.
Definition: dnnl.hpp:4898
dnnl_lstm_forward_desc_init
dnnl_status_t DNNL_API dnnl_lstm_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *src_iter_c_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, unsigned flags)
Initializes a descriptor for LSTM forward propagation primitive.
dnnl::engine::engine
engine(const handle< dnnl_primitive_desc_t > &pd)
Constructs an engine based on a primitive from the primitive descriptor pd by querying its engine.
Definition: dnnl.hpp:1345
dnnl_status_t
dnnl_status_t
Status values returned by the library functions.
Definition: dnnl_types.h:39
dnnl::rnn_primitive_desc_base::diff_src_iter_desc
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:7007
dnnl_query_reorder_src_engine
@ dnnl_query_reorder_src_engine
source engine
Definition: dnnl_types.h:1902
dnnl::reorder::primitive_desc::get_src_engine
engine get_src_engine() const
Returns the engine on which the source memory is allocated.
Definition: dnnl.hpp:2865
dnnl::gru_forward::primitive_desc::weights_layer_desc
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:8098
dnnl::engine
An execution engine.
Definition: dnnl.hpp:1274
dnnl::cpu_isa::avx
@ avx
Intel(R) Advanced Vector Extensions.
dnnl::sum::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for sum primitive from a C API primitive descriptor which must have...
Definition: dnnl.hpp:3127
dnnl::pooling_backward::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:5134
dnnl::vanilla_rnn_backward::desc::desc
desc(prop_kind prop_kind, algorithm activation, 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, rnn_flags flags=rnn_flags::undef, float alpha=0.0f, float beta=0.0f)
Constructs a descriptor for a vanilla RNN backward propagation primitive.
Definition: dnnl.hpp:7342
dnnl::eltwise_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an eltwise backward propagation primitive from a C API primitiv...
Definition: dnnl.hpp:5359
dnnl::inner_product_forward::inner_product_forward
inner_product_forward(const primitive_desc &pd)
Constructs an inner product forward propagation primitive.
Definition: dnnl.hpp:6670
dnnl::logsoftmax_backward::desc::desc
desc()=default
Default constructor. Produces an empty object.
dnnl::primitive_attr::get_zero_points
void get_zero_points(int arg, int &mask, std::vector< int32_t > &zero_points) const
Returns zero points correspondence mask and values.
Definition: dnnl.hpp:1108
dnnl_softmax
@ dnnl_softmax
A softmax primitive.
Definition: dnnl_types.h:681
dnnl::deconvolution_backward_data::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a deconvolution backward propagation primitive from a C API pri...
Definition: dnnl.hpp:4380
dnnl::lrn_forward
Local response normalization (LRN) forward propagation primitive.
Definition: dnnl.hpp:4684
dnnl::inner_product_backward_weights::primitive_desc::diff_weights_desc
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:6907
dnnl::memory::validate_dims
static void validate_dims(const std::vector< T > &v)
Helper function that validates that an std::vector of dimensions can be safely converted to the C API...
Definition: dnnl.hpp:1620
dnnl::eltwise_backward::desc
Descriptor for an elementwise backward propagation primitive.
Definition: dnnl.hpp:5275
dnnl::resampling_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a resampling backward propagation primitive from a C API primit...
Definition: dnnl.hpp:9441
dnnl_query_rnn_d
@ dnnl_query_rnn_d
rnn descriptor
Definition: dnnl_types.h:1920
DNNL_ARG_TO
#define DNNL_ARG_TO
A special mnemonic for reorder destination argument.
Definition: dnnl_types.h:1717
dnnl::status::runtime_error
@ runtime_error
Primitive or engine failed on execution.
DNNL_MAX_NDIMS
#define DNNL_MAX_NDIMS
Maximum number of dimensions a tensor can have.
Definition: dnnl_types.h:839
dnnl_scratchpad_mode_user
@ dnnl_scratchpad_mode_user
A user shall query and provide the scratchpad memory to primitives This mode is thread-safe as long a...
Definition: dnnl_types.h:1630
dnnl::lstm_backward::primitive_desc::diff_weights_layer_desc
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:7933
dnnl::query::reorder_dst_engine
@ reorder_dst_engine
reorder destination engine
dnnl::primitive::kind
kind
Kinds of primitives.
Definition: dnnl.hpp:267
dnnl::gru_forward::primitive_desc::src_layer_desc
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:8090
dnnl::engine::engine
engine(kind kind, size_t index)
Constructs an engine.
Definition: dnnl.hpp:1307
dnnl::post_ops::post_ops
post_ops()
Constructs an empty sequence of post-ops.
Definition: dnnl.hpp:838
dnnl::set_jit_profiling_jitdumpdir
status set_jit_profiling_jitdumpdir(const std::string &dir)
Sets JIT dump output path.
Definition: dnnl.hpp:9513
dnnl::pooling_backward::primitive_desc
Primitive descriptor for a pooling backward propagation primitive.
Definition: dnnl.hpp:5078
dnnl::gru_backward::primitive_desc::weights_layer_desc
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:8300
dnnl_defcab
@ dnnl_defcab
permuted 6D tensor
Definition: dnnl_types.h:202
dnnl_aBcde16b
@ dnnl_aBcde16b
5D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:267
dnnl::layer_normalization_backward::layer_normalization_backward
layer_normalization_backward(const primitive_desc &pd)
Constructs a layer normalization backward propagation primitive.
Definition: dnnl.hpp:6520
dnnl::memory::desc::data
dnnl_memory_desc_t data
The underlying C API data structure.
Definition: dnnl.hpp:2109
dnnl::lstm_forward::primitive_desc::dst_iter_desc
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:7670
dnnl::gru_backward::desc
Descriptor for a GRU backward propagation primitive.
Definition: dnnl.hpp:8136
dnnl_engine
An opaque structure to describe an engine.
dnnl::layer_normalization_backward::primitive_desc::diff_src_desc
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:6492
dnnl::memory::desc::desc
desc(const memory::dims &dims, data_type data_type, const memory::dims &strides)
Constructs a memory descriptor by strides.
Definition: dnnl.hpp:2148
dnnl::eltwise_forward::eltwise_forward
eltwise_forward(const primitive_desc &pd)
Constructs an eltwise forward propagation primitive.
Definition: dnnl.hpp:5269
dnnl::logsoftmax_forward::logsoftmax_forward
logsoftmax_forward()=default
Default constructor. Produces an empty object.
dnnl::vanilla_rnn_forward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:7247
dnnl_version
const dnnl_version_t DNNL_API * dnnl_version()
Returns library version information.
dnnl::resampling_forward::desc
Descriptor for resampling forward propagation.
Definition: dnnl.hpp:9187
dnnl::eltwise_backward::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:5370
dnnl::stream::wait
stream & wait()
Waits for all primitives executing in the stream to finish.
Definition: dnnl.hpp:1502
dnnl_eltwise_relu
@ dnnl_eltwise_relu
Eltwise: ReLU.
Definition: dnnl_types.h:720
dnnl_acb
@ dnnl_acb
permuted 3D tensor
Definition: dnnl_types.h:187
dnnl::deconvolution_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a deconvolution forward propagation primitive.
Definition: dnnl.hpp:4197
dnnl_matmul_desc_t
A descriptor of a matrix multiplication operation.
Definition: dnnl_types.h:1502
dnnl::algorithm::eltwise_elu
@ eltwise_elu
Elementwise: parametric exponential linear unit (elu)
dnnl::primitive::kind::shuffle
@ shuffle
A shuffle primitive.
dnnl::algorithm::pooling_avg
@ pooling_avg
Average pooling exclude padding, alias for dnnl::algorithm::pooling_avg_include_padding.
dnnl::gru_forward::primitive_desc::weights_iter_desc
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:8103
dnnl::concat::concat
concat()=default
Default constructor. Produces an empty object.
dnnl_memory_desc_get_size
size_t DNNL_API dnnl_memory_desc_get_size(const dnnl_memory_desc_t *memory_desc)
Returns the size of a memory descriptor.
dnnl_eltwise_abs
@ dnnl_eltwise_abs
Eltwise: abs.
Definition: dnnl_types.h:728
dnnl::engine::get_sycl_device
cl::sycl::device DNNL_API get_sycl_device() const
Returns the underlying SYCL device object.
dnnl::deconvolution_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::softmax_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a softmax backward propagation primitive from a C API primitive...
Definition: dnnl.hpp:5571
dnnl::batch_normalization_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const batch_normalization_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a batch normalization backward propagation primitive.
Definition: dnnl.hpp:6054
dnnl::convolution_backward_data::primitive_desc::diff_src_desc
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:3664
dnnl::deconvolution_backward_weights::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const deconvolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a deconvolution weights update primitive.
Definition: dnnl.hpp:4610
dnnl::deconvolution_backward_weights::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for a deconvolution weights gradient primitive without bias.
Definition: dnnl.hpp:4480
dnnl::query::rnn_d
@ rnn_d
rnn descriptor
dnnl_normalization_flags_t
dnnl_normalization_flags_t
Flags for batch normalization primitive.
Definition: dnnl_types.h:789
dnnl::lstm_backward::primitive_desc::diff_dst_iter_desc
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:7953
dnnl::softmax_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::lbr_gru_backward::primitive_desc::dst_layer_desc
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:8716
dnnl::primitive_desc_base::diff_src_desc
memory::desc diff_src_desc(int idx) const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:2568
dnnl::eltwise_backward
Elementwise unary operation backward propagation primitive.
Definition: dnnl.hpp:5273
dnnl::status::unimplemented
@ unimplemented
The operation failed because requested functionality is not implemented.
dnnl::deconvolution_backward_weights::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for a dilated deconvolution weights gradient primitive without bias.
Definition: dnnl.hpp:4573
dnnl_shuffle
@ dnnl_shuffle
A shuffle primitive.
Definition: dnnl_types.h:669
dnnl_query_shuffle_d
@ dnnl_query_shuffle_d
shuffle descriptor
Definition: dnnl_types.h:1912
dnnl::matmul
Matrix multiplication (matmul) primitive.
Definition: dnnl.hpp:9060
dnnl::resampling_backward::primitive_desc::diff_src_desc
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:9446
dnnl::lrn_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const lrn_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an LRN backward propagation primitive.
Definition: dnnl.hpp:4865
dnnl::lstm_backward::primitive_desc::weights_iter_desc
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:7892
dnnl::lstm_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const lstm_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an LSTM backward propagation primitive.
Definition: dnnl.hpp:7856
dnnl_convolution_desc_t
A descriptor of a convolution operation.
Definition: dnnl_types.h:1061
dnnl::convolution_backward_data::primitive_desc::weights_desc
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:3667
dnnl::convolution_forward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:3487
dnnl::rnn_primitive_desc_base::diff_weights_layer_desc
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:7015
dnnl::batch_normalization_backward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6094
dnnl_primitive_kind_t
dnnl_primitive_kind_t
Kinds of primitives.
Definition: dnnl_types.h:663
dnnl::eltwise_forward
Elementwise unary operation forward propagation primitive.
Definition: dnnl.hpp:5174
dnnl::pooling_backward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:5137
dnnl::deconvolution_backward_weights::primitive_desc::diff_weights_desc
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:4650
dnnl_rnn_flags_t
dnnl_rnn_flags_t
Flags for RNN cell.
Definition: dnnl_types.h:1383
dnnl::concat::primitive_desc::primitive_desc
primitive_desc(int concat_dimension, const std::vector< memory::desc > &srcs, const engine &engine, const primitive_attr &attr=primitive_attr())
Constructs a primitive descriptor for an out-of-place concatenation primitive.
Definition: dnnl.hpp:3002
dnnl::lbr_gru_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const lbr_gru_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an LBR GRU backward propagation primitive.
Definition: dnnl.hpp:8677
dnnl_pooling_max
@ dnnl_pooling_max
Max pooling.
Definition: dnnl_types.h:753
dnnl::primitive::kind::lrn
@ lrn
An LRN primitive.
dnnl::batch_normalization_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a batch normalization forward propagation primitive.
Definition: dnnl.hpp:5922
dnnl_engine_get_kind
dnnl_status_t DNNL_API dnnl_engine_get_kind(dnnl_engine_t engine, dnnl_engine_kind_t *kind)
Returns the kind of an engine.
dnnl_memory_desc_reshape
dnnl_status_t DNNL_API dnnl_memory_desc_reshape(dnnl_memory_desc_t *out_memory_desc, const dnnl_memory_desc_t *in_memory_desc, int ndims, const dnnl_dims_t dims)
Initializes a memory descriptor by reshaping an existing one.
dnnl_stream_flags_t
dnnl_stream_flags_t
Stream flags.
Definition: dnnl_types.h:1948
dnnl_query_t
dnnl_query_t
Primitive descriptor query specification.
Definition: dnnl_types.h:1882
dnnl::layer_normalization_forward::desc::desc
desc(prop_kind prop_kind, const memory::desc &data_desc, const memory::desc &stat_desc, float epsilon, normalization_flags flags)
Constructs a descriptor for layer normalization forward propagation primitive.
Definition: dnnl.hpp:6193
dnnl::algorithm::eltwise_bounded_relu
@ eltwise_bounded_relu
Elementwise: bounded_relu.
dnnl::logsoftmax_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a logsoftmax forward propagation primitive from a C API primiti...
Definition: dnnl.hpp:5679
dnnl::resampling_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a resampling forward propagation primitive from a C API primiti...
Definition: dnnl.hpp:9318
dnnl::gru_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const gru_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a GRU backward propagation primitive.
Definition: dnnl.hpp:8274
dnnl_logsoftmax_forward_desc_init
dnnl_status_t DNNL_API dnnl_logsoftmax_forward_desc_init(dnnl_logsoftmax_desc_t *logsoftmax_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, int logsoftmax_axis)
Initializes a descriptor for logsoftmax forward propagation primitive.
dnnl_bf16
@ dnnl_bf16
non-standard 16-bit (bfloat16 w/ 7 bit mantissa) floating point.
Definition: dnnl_types.h:68
dnnl::rnn_flags
rnn_flags
RNN cell flags.
Definition: dnnl.hpp:626
dnnl_rnn_desc_t
A descriptor for an RNN operation.
Definition: dnnl_types.h:1405
dnnl_bcdea
@ dnnl_bcdea
permuted 5D tensor
Definition: dnnl_types.h:197
dnnl_rnn_direction_t
dnnl_rnn_direction_t
A direction of RNN primitive execution.
Definition: dnnl_types.h:1389
dnnl::softmax_forward::desc::desc
desc()=default
Default constructor. Produces an empty object.
dnnl::lstm_forward::primitive_desc::src_iter_desc
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7644
dnnl::cpu_isa
cpu_isa
CPU instruction set flags.
Definition: dnnl.hpp:9518
dnnl_sum
@ dnnl_sum
A sum primitive.
Definition: dnnl_types.h:673
dnnl::convolution_backward_weights::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a convolution weights gradient primitive from a C API primitive...
Definition: dnnl.hpp:3925
dnnl::prop_kind::forward_training
@ forward_training
Forward data propagation (training mode).
dnnl::matmul::desc
Descriptor for a matmul primitive.
Definition: dnnl.hpp:9062
dnnl::inner_product_backward_weights::inner_product_backward_weights
inner_product_backward_weights(const primitive_desc &pd)
Constructs an inner product weights gradient primitive.
Definition: dnnl.hpp:6926
dnnl::gru_forward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:8119
dnnl::shuffle_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a shuffle forward propagation primitive from a C API primitive ...
Definition: dnnl.hpp:8842
dnnl::lrn_forward::primitive_desc
Primitive descriptor for an LRN forward propagation primitive.
Definition: dnnl.hpp:4726
dnnl::shuffle_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a shuffle backward propagation primitive from a C API primitive...
Definition: dnnl.hpp:8923
dnnl_backward_weights
@ dnnl_backward_weights
Backward weights propagation.
Definition: dnnl_types.h:656
dnnl::query::layer_normalization_d
@ layer_normalization_d
layer normalization descriptor
dnnl::convolution_backward_data::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::primitive_desc_base::dst_desc
memory::desc dst_desc(int idx) const
Returns a destination memory descriptor.
Definition: dnnl.hpp:2550
dnnl_a
@ dnnl_a
plain 1D tensor
Definition: dnnl_types.h:177
dnnl::primitive_desc::next_impl
bool next_impl()
Advances the primitive iterator to the next implementation.
Definition: dnnl.hpp:3197
dnnl::lstm_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::lbr_gru_backward::primitive_desc::diff_dst_iter_desc
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:8759
dnnl::layer_normalization_forward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6296
dnnl::softmax_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const softmax_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a softmax backward propagation primitive.
Definition: dnnl.hpp:5558
dnnl::lbr_gru_backward::desc::desc
desc(prop_kind prop_kind, 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, rnn_flags flags=rnn_flags::undef)
Constructs a descriptor for LBR GRU backward propagation primitive.
Definition: dnnl.hpp:8606
dnnl_inner_product_desc_t
A descriptor of an inner product operation.
Definition: dnnl_types.h:1349
dnnl::memory::set_ocl_mem_object
void set_ocl_mem_object(cl_mem mem_object)
Sets the OpenCL memory object mem_object associated with the memory.
Definition: dnnl.hpp:2384
dnnl::lstm_forward::primitive_desc::dst_layer_desc
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:7665
dnnl::inner_product_backward_weights::primitive_desc
Primitive descriptor for an inner product weights gradient primitive.
Definition: dnnl.hpp:6849
dnnl::layer_normalization_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a layer normalization forward propagation primitive from a C AP...
Definition: dnnl.hpp:6286
dnnl_gpu
@ dnnl_gpu
GPU engine.
Definition: dnnl_types.h:1560
dnnl::primitive::primitive
primitive()=default
Default constructor. Constructs an empty object.
dnnl_memory_unmap_data
dnnl_status_t DNNL_API dnnl_memory_unmap_data(const_dnnl_memory_t memory, void *mapped_ptr)
Unmaps a memory objects and writes any changes to the previously mapped buffer back.
dnnl::pooling_forward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:5016
dnnl::logsoftmax_forward
Logsoftmax forward propagation primitive.
Definition: dnnl.hpp:5605
dnnl_layer_normalization_backward_desc_init
dnnl_status_t DNNL_API dnnl_layer_normalization_backward_desc_init(dnnl_layer_normalization_desc_t *lnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, const dnnl_memory_desc_t *stat_desc, float epsilon, unsigned flags)
Initializes a descriptor for a layer normalization backward propagation primitive.
dnnl::gru_backward::primitive_desc::diff_src_layer_desc
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:8326
dnnl::algorithm::eltwise_abs
@ eltwise_abs
Elementwise: abs.
dnnl::sum::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:3134
dnnl::eltwise_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for an elementwise forward propagation primitive.
Definition: dnnl.hpp:5240
dnnl::algorithm::lrn_across_channels
@ lrn_across_channels
Local response normalization (LRN) across multiple channels.
dnnl::rnn_primitive_desc_base::diff_bias_desc
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:7029
dnnl::eltwise_forward::desc
Descriptor for an elementwise forward propagation primitive.
Definition: dnnl.hpp:5176
dnnl::memory::desc::dims
memory::dims dims() const
Returns dimensions of the memory descriptor.
Definition: dnnl.hpp:2197
dnnl::vanilla_rnn_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a vanilla RNN backward propagation primitive from a C API primi...
Definition: dnnl.hpp:7428
dnnl::lstm_backward
LSTM backward propagation primitive.
Definition: dnnl.hpp:7693
dnnl::layer_normalization_forward::desc
Descriptor for a layer normalization forward propagation primitive.
Definition: dnnl.hpp:6161
dnnl::deconvolution_backward_weights::deconvolution_backward_weights
deconvolution_backward_weights()=default
Default constructor. Produces an empty object.
dnnl::eltwise_forward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5260
dnnl_query_diff_weights_md
@ dnnl_query_diff_weights_md
weights grad. memory desc
Definition: dnnl_types.h:1932
dnnl::gru_forward::gru_forward
gru_forward(const primitive_desc &pd)
Constructs a GRU forward propagation primitive.
Definition: dnnl.hpp:8130
dnnl::layer_normalization_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a layer normalization backward propagation primitive from a C A...
Definition: dnnl.hpp:6476
dnnl_query_prop_kind
@ dnnl_query_prop_kind
propagation kind
Definition: dnnl_types.h:1905
dnnl_eltwise_logistic
@ dnnl_eltwise_logistic
Eltwise: logistic.
Definition: dnnl_types.h:738
dnnl::lbr_gru_forward::primitive_desc::weights_iter_desc
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:8503
dnnl::layer_normalization_backward::desc::desc
desc(prop_kind prop_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, const memory::desc &stat_desc, float epsilon, normalization_flags flags)
Constructs a descriptor for layer normalization backward propagation primitive.
Definition: dnnl.hpp:6373
dnnl::lstm_backward::primitive_desc::weights_layer_desc
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:7887
dnnl::query::inner_product_d
@ inner_product_d
inner product descriptor
dnnl::pooling_forward::pooling_forward
pooling_forward(const primitive_desc &pd)
Constructs a pooling forward propagation primitive.
Definition: dnnl.hpp:5025
dnnl_eltwise
@ dnnl_eltwise
An element-wise primitive.
Definition: dnnl_types.h:679
dnnl::gru_forward
GRU forward propagation primitive.
Definition: dnnl.hpp:7973
dnnl::algorithm::deconvolution_direct
@ deconvolution_direct
Direct deconvolution.
dnnl::engine::kind
kind
Kinds of engines.
Definition: dnnl.hpp:1279
dnnl_aBc16b
@ dnnl_aBc16b
3D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:210
dnnl::lbr_gru_backward::primitive_desc::diff_bias_desc
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:8749
dnnl::batch_normalization_backward::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:6106
dnnl::vanilla_rnn_forward::primitive_desc::weights_layer_desc
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:7226
dnnl::gru_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a GRU forward propagation primitive from a C API primitive desc...
Definition: dnnl.hpp:8084
dnnl::lstm_backward::primitive_desc::src_layer_desc
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:7874
dnnl::batch_normalization_forward::primitive_desc::variance_desc
memory::desc variance_desc() const
Returns memory descriptor for variance.
Definition: dnnl.hpp:5957
dnnl::inner_product_backward_data::inner_product_backward_data
inner_product_backward_data(const primitive_desc &pd)
Constructs an inner product backward propagation primitive.
Definition: dnnl.hpp:6779
dnnl_convolution_auto
@ dnnl_convolution_auto
Convolution algorithm(either direct or Winograd) is chosen just in time.
Definition: dnnl_types.h:714
dnnl::binary::binary
binary(const primitive_desc &pd)
Constructs an elementwise binary operation primitive.
Definition: dnnl.hpp:9044
dnnl_cdba
@ dnnl_cdba
permuted 4D tensor
Definition: dnnl_types.h:199
dnnl_eltwise_sqrt
@ dnnl_eltwise_sqrt
Eltwise: square root.
Definition: dnnl_types.h:730
dnnl_cpu_isa_avx512_core
@ dnnl_cpu_isa_avx512_core
Intel(R) Advanced Vector Extensions 512 for Intel(R) Xeon(R) Processor Scalable Family and Intel(R) C...
Definition: dnnl_types.h:2049
dnnl::concat::primitive_desc::primitive_desc
primitive_desc(const memory::desc &dst, int concat_dimension, const std::vector< memory::desc > &srcs, const engine &engine, const primitive_attr &attr=primitive_attr())
Constructs a primitive descriptor for an out-of-place concatenation primitive.
Definition: dnnl.hpp:2975
dnnl::lbr_gru_forward::primitive_desc::src_layer_desc
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:8490
dnnl::lstm_backward::lstm_backward
lstm_backward()=default
Default constructor. Produces an empty object.
dnnl::handle::operator==
bool operator==(const handle< T, traits > &other) const
Equality operator.
Definition: dnnl.hpp:208
dnnl::stream::stream
stream()=default
Constructs an empty stream.
dnnl_eltwise_bounded_relu
@ dnnl_eltwise_bounded_relu
Eltwise: bounded_relu.
Definition: dnnl_types.h:734
dnnl::lbr_gru_backward::lbr_gru_backward
lbr_gru_backward(const primitive_desc &pd)
Constructs an LBR GRU backward propagation primitive.
Definition: dnnl.hpp:8770
dnnl::set_max_cpu_isa
status set_max_cpu_isa(cpu_isa isa)
Sets the maximal ISA DNNL can dispatch to on the CPU.
Definition: dnnl.hpp:9540
dnnl::sum::primitive_desc::primitive_desc
primitive_desc(const std::vector< float > &scales, const std::vector< memory::desc > &srcs, const engine &engine, const primitive_attr &attr=primitive_attr())
Constructs a primitive descriptor for a sum primitive.
Definition: dnnl.hpp:3105
dnnl::logsoftmax_backward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5797
dnnl::softmax_backward::desc::desc
desc()=default
Default constructor. Produces an empty object.
dnnl::lstm_backward::primitive_desc
Primitive descriptor for LSTM backward propagation.
Definition: dnnl.hpp:7821
dnnl::primitive::kind::pooling
@ pooling
A pooling primitive.
dnnl::inner_product_backward_data::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:6770
dnnl_lstm_backward_desc_init
dnnl_status_t DNNL_API dnnl_lstm_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *src_iter_c_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_src_iter_c_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, const dnnl_memory_desc_t *diff_dst_iter_c_desc, unsigned flags)
Initializes a descriptor for LSTM backward propagation primitive.
dnnl::lrn_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::memory::memory
memory(const desc &md, const engine &engine)
Constructs a memory object.
Definition: dnnl.hpp:2289
dnnl::primitive_desc_base::get_primitive_attr
primitive_attr get_primitive_attr() const
Returns the primitive attributes.
Definition: dnnl.hpp:2660
dnnl::gru_backward::primitive_desc::bias_desc
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:8310
dnnl::query::reorder_src_engine
@ reorder_src_engine
reorder source engine
dnnl::logsoftmax_forward::desc::desc
desc()=default
Default constructor. Produces an empty object.
dnnl::concat::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for concat primitive from a C API primitive descriptor which must h...
Definition: dnnl.hpp:3021
dnnl_forward_inference
@ dnnl_forward_inference
Forward data propagation (inference mode).
Definition: dnnl_types.h:646
dnnl_query_impl_info_str
@ dnnl_query_impl_info_str
for creating scratchpad memory
Definition: dnnl_types.h:1900
dnnl_query_dst_md
@ dnnl_query_dst_md
destination memory desc
Definition: dnnl_types.h:1933
dnnl_query_resampling_d
@ dnnl_query_resampling_d
resampling descriptor
Definition: dnnl_types.h:1925
dnnl::rnn_primitive_desc_base::diff_src_layer_desc
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:7001
dnnl::primitive_attr::set_scratchpad_mode
void set_scratchpad_mode(scratchpad_mode mode)
Sets scratchpad mode.
Definition: dnnl.hpp:974
dnnl::scratchpad_mode
scratchpad_mode
Scratchpad mode.
Definition: dnnl.hpp:411
dnnl::pooling_backward::primitive_desc::diff_src_desc
memory::desc diff_src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5131
dnnl_query_inner_product_d
@ dnnl_query_inner_product_d
inner product descriptor
Definition: dnnl_types.h:1919
dnnl::vanilla_rnn_forward::primitive_desc::src_iter_desc
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7223
dnnl::algorithm::pooling_avg_exclude_padding
@ pooling_avg_exclude_padding
Average pooling exclude padding.
dnnl_rnn_flags_undef
@ dnnl_rnn_flags_undef
Undefined RNN flags.
Definition: dnnl_types.h:1385
dnnl_nCdhw16c
@ dnnl_nCdhw16c
5D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcde16b
Definition: dnnl_types.h:461
dnnl::deconvolution_backward_weights::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const deconvolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a deconvolution weights update primitive.
Definition: dnnl.hpp:4629
dnnl::convert_to_c
dnnl_primitive_kind_t convert_to_c(primitive::kind kind)
Converts primitive kind enum value from C++ API to C API type.
Definition: dnnl.hpp:374
dnnl_query_convolution_d
@ dnnl_query_convolution_d
convolution descriptor
Definition: dnnl_types.h:1910
dnnl::gru_backward::primitive_desc::diff_dst_layer_desc
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:8351
dnnl::resampling_forward::primitive_desc
Primitive descriptor for a resampling forward propagation primitive.
Definition: dnnl.hpp:9278
dnnl::batch_normalization_forward::primitive_desc::mean_desc
memory::desc mean_desc() const
Returns memory descriptor for mean.
Definition: dnnl.hpp:5953
dnnl::lrn_forward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:4771
dnnl::algorithm::eltwise_sqrt
@ eltwise_sqrt
Elementwise: square root.
dnnl::pooling_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::primitive_desc_base::scratchpad_engine
engine scratchpad_engine() const
Returns the engine on which the scratchpad memory is located.
Definition: dnnl.hpp:2648
dnnl::vanilla_rnn_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const vanilla_rnn_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a vanilla RNN backward propagation primitive.
Definition: dnnl.hpp:7415
dnnl::sum::sum
sum()=default
Default constructor. Produces an empty object.
dnnl::vanilla_rnn_backward::primitive_desc::diff_src_iter_desc
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:7472
dnnl::vanilla_rnn_backward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:7462
dnnl::algorithm::eltwise_log
@ eltwise_log
Elementwise: natural logarithm.
dnnl::inner_product_backward_weights::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const inner_product_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an inner product weights update primitive.
Definition: dnnl.hpp:6866
dnnl::lrn_forward::lrn_forward
lrn_forward(const primitive_desc &pd)
Constructs an LRN forward propagation primitive.
Definition: dnnl.hpp:4786
dnnl::vanilla_rnn_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl_bcda
@ dnnl_bcda
permuted 4D tensor
Definition: dnnl_types.h:196
dnnl::vanilla_rnn_forward::primitive_desc::bias_desc
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:7236
dnnl::sum::primitive_desc
Primitive descriptor for a sum primitive.
Definition: dnnl.hpp:3052
dnnl::deconvolution_forward::deconvolution_forward
deconvolution_forward()=default
Default constructor. Produces an empty object.
dnnl_bidirectional_concat
@ dnnl_bidirectional_concat
Bidirectional execution of RNN primitive with concatenation of the results.
Definition: dnnl_types.h:1396
dnnl::deconvolution_backward_data::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for a dilated deconvolution backward propagation primitive.
Definition: dnnl.hpp:4309
dnnl::reorder::reorder
reorder(const memory &src, const memory &dst, const primitive_attr &attr=primitive_attr())
Constructs a reorder primitive that would reorder data between memory objects having the same memory ...
Definition: dnnl.hpp:2896
dnnl::primitive_desc_base::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:2603
dnnl_pooling_desc_t
A descriptor of a pooling operation.
Definition: dnnl_types.h:1210
dnnl::layer_normalization_forward
Layer normalization forward propagation primitive.
Definition: dnnl.hpp:6159
dnnl::convolution_backward_weights::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:3930
dnnl::algorithm::lbr_gru
@ lbr_gru
GRU cell with linear before reset.
dnnl::deconvolution_backward_weights::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:4647
dnnl::primitive_desc_base::primitive_desc_base
primitive_desc_base()=default
Default constructor. Produces an empty object.
dnnl::primitive_attr::set_zero_points
void set_zero_points(int arg, int mask, const std::vector< int32_t > &zero_points)
Sets zero points for primitive operations for a given memory argument.
Definition: dnnl.hpp:1144
dnnl::primitive::kind::rnn
@ rnn
A rnn primitive.
dnnl::algorithm::convolution_winograd
@ convolution_winograd
Winograd convolution.
dnnl::engine::get_kind
kind get_kind() const
Returns the kind of the engine.
Definition: dnnl.hpp:1356
dnnl::vanilla_rnn_backward::primitive_desc::dst_layer_desc
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:7454
dnnl_data_type_t
dnnl_data_type_t
Data type specification.
Definition: dnnl_types.h:62
dnnl_ba
@ dnnl_ba
permuted 2D tensor
Definition: dnnl_types.h:192
dnnl::inner_product_backward_weights::desc::desc
desc(const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_desc)
Constructs a descriptor for an inner product descriptor weights update primitive with bias.
Definition: dnnl.hpp:6807
dnnl_lrn_within_channel
@ dnnl_lrn_within_channel
LRN within a single channel.
Definition: dnnl_types.h:763
dnnl_memory_destroy
dnnl_status_t DNNL_API dnnl_memory_destroy(dnnl_memory_t memory)
Destroys a memory object.
dnnl::resampling_backward::primitive_desc
Primitive descriptor for resampling backward propagation primitive.
Definition: dnnl.hpp:9393
dnnl::primitive_desc_base::diff_weights_desc
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:2627
dnnl::primitive_attr::set_post_ops
void set_post_ops(const post_ops ops)
Sets post-ops.
Definition: dnnl.hpp:1172
dnnl::sum::primitive_desc::primitive_desc
primitive_desc(const memory::desc &dst, const std::vector< float > &scales, const std::vector< memory::desc > &srcs, const engine &engine, const primitive_attr &attr=primitive_attr())
Constructs a primitive descriptor for a sum primitive.
Definition: dnnl.hpp:3075
dnnl_primitive_attr_create
dnnl_status_t DNNL_API dnnl_primitive_attr_create(dnnl_primitive_attr_t *attr)
Creates an empty (default) primitive attributes with all the parameters set to their default values.
dnnl::eltwise_backward::eltwise_backward
eltwise_backward()=default
Default constructor. Produces an empty object.
dnnl::gru_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a GRU backward propagation primitive from a C API primitive des...
Definition: dnnl.hpp:8287
dnnl_binary_mul
@ dnnl_binary_mul
Binary mul.
Definition: dnnl_types.h:781
dnnl::eltwise_forward::primitive_desc
Primitive descriptor for an elementwise forward propagation primitive.
Definition: dnnl.hpp:5210
dnnl::inner_product_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for an inner product forward propagation primitive.
Definition: dnnl.hpp:6619
dnnl::primitive_desc_base::get_kind
dnnl::primitive::kind get_kind() const
Returns the kind of the primitive descriptor.
Definition: dnnl.hpp:2672
dnnl::rnn_direction::unidirectional_left2right
@ unidirectional_left2right
Unidirectional execution of RNN primitive from left to right.
dnnl_primitive_attr_get_zero_points
dnnl_status_t DNNL_API dnnl_primitive_attr_get_zero_points(const_dnnl_primitive_attr_t attr, int arg, dnnl_dim_t *count, int *mask, const int32_t **zero_points)
Returns count, correspondence zero point mask, and a pointer to a constant int32_t array of zero_poin...
dnnl_format_tag_undef
@ dnnl_format_tag_undef
Undefined memory format tag.
Definition: dnnl_types.h:166
dnnl::inner_product_backward_data::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const inner_product_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an inner product backward propagation primitive.
Definition: dnnl.hpp:6726
dnnl::lstm_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const lstm_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an LSTM backward propagation primitive.
Definition: dnnl.hpp:7837
dnnl::logsoftmax_forward::desc::desc
desc(prop_kind prop_kind, const memory::desc &data_desc, int logsoftmax_axis)
Constructs a descriptor for a logsoftmax forward propagation primitive.
Definition: dnnl.hpp:5627
dnnl::primitive::kind::resampling
@ resampling
A resampling primitive.
dnnl_primitive_attr_set_output_scales
dnnl_status_t DNNL_API dnnl_primitive_attr_set_output_scales(dnnl_primitive_attr_t attr, dnnl_dim_t count, int mask, const float *scales)
Sets output scaling factors correspondence mask and values.
dnnl::convolution_backward_weights::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const convolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a convolution weights gradient primitive.
Definition: dnnl.hpp:3893
dnnl_primitive_desc_iterator_create
dnnl_status_t DNNL_API dnnl_primitive_desc_iterator_create(dnnl_primitive_desc_iterator_t *iterator, const_dnnl_op_desc_t op_desc, const_dnnl_primitive_attr_t attr, dnnl_engine_t engine, const_dnnl_primitive_desc_t hint_forward_primitive_desc)
Creates a primitive descriptor iterator.
dnnl::resampling_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a resampling forward propagation primitive.
Definition: dnnl.hpp:9292
dnnl::shuffle_forward::shuffle_forward
shuffle_forward()=default
Default constructor. Produces an empty object.
dnnl_softmax_forward_desc_init
dnnl_status_t DNNL_API dnnl_softmax_forward_desc_init(dnnl_softmax_desc_t *softmax_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, int softmax_axis)
Initializes a descriptor for softmax forward propagation primitive.
dnnl_primitive_desc_clone
dnnl_status_t DNNL_API dnnl_primitive_desc_clone(dnnl_primitive_desc_t *primitive_desc, const_dnnl_primitive_desc_t existing_primitive_desc)
Clones a primitive descriptor.
dnnl_format_kind_rnn_packed
@ dnnl_format_kind_rnn_packed
Packed weights format used in RNN.
Definition: dnnl_types.h:93
dnnl_use_scaleshift
@ dnnl_use_scaleshift
Use scale and shift parameters.
Definition: dnnl_types.h:814
dnnl_eltwise_log
@ dnnl_eltwise_log
Eltwise: natural logarithm.
Definition: dnnl_types.h:749
dnnl::softmax_forward::desc::desc
desc(prop_kind prop_kind, const memory::desc &data_desc, int softmax_axis)
Constructs a descriptor for a softmax forward propagation primitive.
Definition: dnnl.hpp:5415
dnnl::lbr_gru_backward::primitive_desc
Primitive descriptor for an LBR GRU backward propagation primitive.
Definition: dnnl.hpp:8640
dnnl::lrn_forward::desc
Descriptor for an LRN forward propagation primitive.
Definition: dnnl.hpp:4686
dnnl::softmax_forward::primitive_desc
Primitive descriptor for a softmax forward propagation primitive.
Definition: dnnl.hpp:5426
dnnl::algorithm::binary_mul
@ binary_mul
Binary mul.
dnnl_query_layer_normalization_d
@ dnnl_query_layer_normalization_d
layer normalization descriptor
Definition: dnnl_types.h:1918
dnnl::lrn_backward::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:4886
dnnl_memory_set_data_handle
dnnl_status_t DNNL_API dnnl_memory_set_data_handle(dnnl_memory_t memory, void *handle)
Sets memory object's data handle.
dnnl::lrn_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an LRN forward propagation primitive from a C API primitive des...
Definition: dnnl.hpp:4765
dnnl::reorder::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:2879
dnnl::batch_normalization_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::reorder::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:2876
dnnl_ABcd8b8a
@ dnnl_ABcd8b8a
4D tensor blocked by 1st and 2nd dimension with block size 8
Definition: dnnl_types.h:253
dnnl::post_ops
Post-ops.
Definition: dnnl.hpp:834
dnnl::engine::get_ocl_device
cl_device_id get_ocl_device() const
Returns the OpenCL device associated with the engine.
Definition: dnnl.hpp:1375
dnnl_resampling_linear
@ dnnl_resampling_linear
Linear Resampling Method.
Definition: dnnl_types.h:785
dnnl::inner_product_backward_data::primitive_desc::diff_src_desc
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:6764
dnnl::pooling_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const pooling_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a pooling backward propagation primitive.
Definition: dnnl.hpp:5094
dnnl::primitive_desc_base::weights_desc
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:2609
dnnl::gru_backward::primitive_desc::diff_bias_desc
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:8346
dnnl::resampling_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const resampling_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a resampling backward propagation primitive.
Definition: dnnl.hpp:9409
dnnl::lstm_forward::lstm_forward
lstm_forward()=default
Default constructor. Produces an empty object.
dnnl::primitive_desc_base::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:2633
dnnl::batch_normalization_forward::desc::desc
desc(prop_kind prop_kind, const memory::desc &data_desc, float epsilon, normalization_flags flags)
Constructs a batch normalization descriptor for forward propagation.
Definition: dnnl.hpp:5879
dnnl::layer_normalization_forward::primitive_desc
Primitive descriptor for a layer normalization forward propagation primitive.
Definition: dnnl.hpp:6245
dnnl_forward_training
@ dnnl_forward_training
Forward data propagation (training mode).
Definition: dnnl_types.h:642
dnnl::query
query
Primitive descriptor query specification.
Definition: dnnl.hpp:713
dnnl::gru_forward::primitive_desc::dst_iter_desc
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:8116
dnnl_primitive_desc_query
dnnl_status_t DNNL_API dnnl_primitive_desc_query(const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what, int index, void *result)
Queries a primitive descriptor for various pieces of information.
dnnl::memory::set_sycl_buffer
void set_sycl_buffer(cl::sycl::buffer< T, ndims > &buf)
Sets the underlying buffer to the given SYCL buffer.
Definition: dnnl.hpp:2420
dnnl_bac
@ dnnl_bac
permuted 3D tensor
Definition: dnnl_types.h:193
dnnl_eltwise_square
@ dnnl_eltwise_square
Eltwise: square.
Definition: dnnl_types.h:726
dnnl_fuse_norm_relu
@ dnnl_fuse_norm_relu
Fuse with ReLU.
Definition: dnnl_types.h:827
dnnl::algorithm::eltwise_clip
@ eltwise_clip
Eltwise: clip.
dnnl_primitive_execute
dnnl_status_t DNNL_API dnnl_primitive_execute(const_dnnl_primitive_t primitive, dnnl_stream_t stream, int nargs, const dnnl_exec_arg_t *args)
Executes a primitive.
dnnl_cpu_isa_avx512_mic_4ops
@ dnnl_cpu_isa_avx512_mic_4ops
Intel(R) Advanced Vector Extensions 512 subset for Intel(R) Xeon Phi(TM) Processors 7235,...
Definition: dnnl_types.h:2045
dnnl::lbr_gru_forward::primitive_desc::weights_layer_desc
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:8498
dnnl::logsoftmax_backward::logsoftmax_backward
logsoftmax_backward(const primitive_desc &pd)
Constructs a logsoftmax backward propagation primitive.
Definition: dnnl.hpp:5812
dnnl::deconvolution_backward_weights
Deconvolution weights gradient primitive.
Definition: dnnl.hpp:4404
dnnl::lbr_gru_forward::primitive_desc::dst_iter_desc
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:8516
dnnl::inner_product_forward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6652
dnnl::softmax_backward::desc::desc
desc(const memory::desc &diff_data_desc, const memory::desc &data_desc, int softmax_axis)
Constructs a descriptor for a softmax backward propagation primitive.
Definition: dnnl.hpp:5510
dnnl::query::convolution_d
@ convolution_d
convolution descriptor
dnnl_stream_destroy
dnnl_status_t DNNL_API dnnl_stream_destroy(dnnl_stream_t stream)
Destroys an execution stream.
dnnl_primitive_attr_destroy
dnnl_status_t DNNL_API dnnl_primitive_attr_destroy(dnnl_primitive_attr_t attr)
Destroys primitive attributes.
dnnl::normalization_flags::fuse_norm_relu
@ fuse_norm_relu
Fuse with ReLU.
dnnl::reorder::primitive_desc::primitive_desc
primitive_desc(const memory &src, const memory &dst, const primitive_attr &attr=primitive_attr())
Constructs a primitive descriptor for reorder primitive.
Definition: dnnl.hpp:2842
dnnl_post_ops_append_sum
dnnl_status_t DNNL_API dnnl_post_ops_append_sum(dnnl_post_ops_t post_ops, float scale)
Appends an accumulation (sum) to post-ops.
dnnl::query::num_of_outputs_s32
@ num_of_outputs_s32
number of outputs expected
dnnl::shuffle_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const primitive_attr &attr=primitive_attr(), bool allow_empty=false)
Constructs a primitive descriptor for a shuffle forward propagation primitive.
Definition: dnnl.hpp:8830
dnnl::rnn_primitive_desc_base::src_iter_desc
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:6965
dnnl::concat
Tensor concatenation (concat) primitive.
Definition: dnnl.hpp:2948
dnnl_gru_forward_desc_init
dnnl_status_t DNNL_API dnnl_gru_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, unsigned flags)
Initializes a descriptor for GRU forward propagation primitive.
dnnl_gemm_s8s8s32
dnnl_status_t DNNL_API dnnl_gemm_s8s8s32(char transa, char transb, char offsetc, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const int8_t *A, dnnl_dim_t lda, int8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo, float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co)
Performs integer matrix-matrix multiply on 8-bit signed matrix A, 8-bit signed matrix B,...
dnnl_format_kind_wino
@ dnnl_format_kind_wino
Weights format used in 8bit Winograd convolution.
Definition: dnnl_types.h:91
dnnl::logsoftmax_backward::desc
Descriptor for a logsoftmax backward propagation primitive.
Definition: dnnl.hpp:5707
dnnl_convolution_winograd
@ dnnl_convolution_winograd
Winograd convolution.
Definition: dnnl_types.h:712
dnnl::deconvolution_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, 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)
Constructs a descriptor for a deconvolution forward propagation primitive with bias.
Definition: dnnl.hpp:4004
dnnl::convolution_forward
Convolution forward propagation primitive.
Definition: dnnl.hpp:3234
dnnl::logsoftmax_backward::primitive_desc::diff_src_desc
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:5800
dnnl::layer_normalization_backward::desc::desc
desc(prop_kind prop_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, float epsilon, normalization_flags flags)
Constructs a descriptor for layer normalization backward propagation primitive.
Definition: dnnl.hpp:6412
dnnl::batch_normalization_backward::desc
Descriptor for a batch normalization backward propagation primitive.
Definition: dnnl.hpp:5991
dnnl_ABcde4b16a4b
@ dnnl_ABcde4b16a4b
5D tensor blocked by 1st dimension with block size 16
Definition: dnnl_types.h:263
dnnl_nChw8c
@ dnnl_nChw8c
4D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcd8b
Definition: dnnl_types.h:476
dnnl::batch_normalization_forward
Batch normalization forward propagation primitive.
Definition: dnnl.hpp:5838
dnnl_memory_desc_init_submemory
dnnl_status_t DNNL_API dnnl_memory_desc_init_submemory(dnnl_memory_desc_t *memory_desc, const dnnl_memory_desc_t *parent_memory_desc, const dnnl_dims_t dims, const dnnl_dims_t offsets)
Initializes a memory descriptor for a region inside an area described by an existing memory descripto...
dnnl_engine_kind_t
dnnl_engine_kind_t
Kinds of engines.
Definition: dnnl_types.h:1554
dnnl_binary
@ dnnl_binary
A binary primitive.
Definition: dnnl_types.h:697
dnnl_cdeba
@ dnnl_cdeba
permuted 5D tensor
Definition: dnnl_types.h:200
dnnl::prop_kind::forward_inference
@ forward_inference
Forward data propagation (inference mode).
dnnl::vanilla_rnn_backward::primitive_desc::diff_weights_iter_desc
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:7482
dnnl::layer_normalization_backward::primitive_desc::mean_desc
memory::desc mean_desc() const
Returns memory descriptor for mean.
Definition: dnnl.hpp:6503
dnnl_eltwise_tanh
@ dnnl_eltwise_tanh
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: dnnl_types.h:722
dnnl::error::error
error(dnnl_status_t status, const char *message)
Constructs an instance of an exception class.
Definition: dnnl.hpp:100
dnnl::gru_backward::primitive_desc::dst_layer_desc
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:8313
dnnl_aBc4b
@ dnnl_aBc4b
3D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:214
dnnl::pooling_forward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5010
dnnl::shuffle_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl_abcde
@ dnnl_abcde
plain 5D tensor
Definition: dnnl_types.h:181
dnnl::pooling_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, 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)
Constructs a descriptor for pooling forward propagation primitive.
Definition: dnnl.hpp:4946
dnnl_nCw8c
@ dnnl_nCw8c
3D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBc8b
Definition: dnnl_types.h:485
dnnl::convolution_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a convolution forward propagation primitive.
Definition: dnnl.hpp:3454
dnnl_post_ops_append_eltwise
dnnl_status_t DNNL_API dnnl_post_ops_append_eltwise(dnnl_post_ops_t post_ops, float scale, dnnl_alg_kind_t alg_kind, float alpha, float beta)
Appends an elementwise post-op.
dnnl::inner_product_backward_weights::desc
Descriptor for an inner product weights gradient primitive.
Definition: dnnl.hpp:6785
dnnl_memory_desc_t::dims
dnnl_dims_t dims
Dimensions in the following order:
Definition: dnnl_types.h:994
dnnl_stream_default_order
@ dnnl_stream_default_order
Default order execution.
Definition: dnnl_types.h:1951
dnnl::batch_normalization_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a batch normalization forward propagation primitive.
Definition: dnnl.hpp:5906
dnnl::cpu_isa::avx512_core_vnni
@ avx512_core_vnni
Intel(R) Advanced Vector Extensions 512 with Intel(R) DL Boost Support for Intel(R) Xeon(R) Processor...
dnnl_primitive_attr_get_scratchpad_mode
dnnl_status_t DNNL_API dnnl_primitive_attr_get_scratchpad_mode(const_dnnl_primitive_attr_t attr, dnnl_scratchpad_mode_t *mode)
Returns the primitive attributes scratchpad mode.
dnnl_concat_primitive_desc_create
dnnl_status_t DNNL_API dnnl_concat_primitive_desc_create(dnnl_primitive_desc_t *concat_primitive_desc, const dnnl_memory_desc_t *dst_desc, int n, int concat_dimension, const dnnl_memory_desc_t *src_descs, const_dnnl_primitive_attr_t attr, dnnl_engine_t engine)
Creates a primitive descriptor for an out-of-place concatenation primitive.
dnnl_post_ops_destroy
dnnl_status_t DNNL_API dnnl_post_ops_destroy(dnnl_post_ops_t post_ops)
Destroys post-ops.
dnnl_eltwise_backward_desc_init
dnnl_status_t DNNL_API dnnl_eltwise_backward_desc_init(dnnl_eltwise_desc_t *eltwise_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, float alpha, float beta)
Initializes a descriptor for eltwise backward propagation primitive.
dnnl::resampling_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::softmax_forward
Softmax forward propagation primitive.
Definition: dnnl.hpp:5393
dnnl::algorithm::resampling_nearest
@ resampling_nearest
Nearest Neighbor resampling method.
dnnl_pooling
@ dnnl_pooling
A pooling primitive.
Definition: dnnl_types.h:683
dnnl::batch_normalization_backward
Batch normalization backward propagation primitive.
Definition: dnnl.hpp:5989
dnnl_acdb
@ dnnl_acdb
permuted 4D tensor
Definition: dnnl_types.h:190
dnnl::inner_product_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for an inner product forward propagation primitive.
Definition: dnnl.hpp:6635
dnnl_query_lrn_d
@ dnnl_query_lrn_d
lrn descriptor
Definition: dnnl_types.h:1916
dnnl_convolution_backward_data_desc_init
dnnl_status_t DNNL_API dnnl_convolution_backward_data_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a convolution backward propagation primitive.
dnnl_backward
@ dnnl_backward
Backward propagation (with respect to all parameters).
Definition: dnnl_types.h:652
dnnl::batch_normalization_forward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5940
dnnl::inner_product_backward_data::primitive_desc::weights_desc
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6767
dnnl_softmax_desc_t
A descriptor of a Softmax operation.
Definition: dnnl_types.h:1180
dnnl_cpu_isa_avx512_core_bf16
@ dnnl_cpu_isa_avx512_core_bf16
Intel(R) Advanced Vector Extensions 512 with Intel(R) DL Boost and Bfloat16 Support for Intel(R) Xeon...
Definition: dnnl_types.h:2059
dnnl::vanilla_rnn_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const vanilla_rnn_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a vanilla RNN backward propagation primitive.
Definition: dnnl.hpp:7395
dnnl::eltwise_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const eltwise_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an elementwise backward propagation primitive.
Definition: dnnl.hpp:5326
dnnl_memory_get_data_handle
dnnl_status_t DNNL_API dnnl_memory_get_data_handle(const_dnnl_memory_t memory, void **handle)
Returns memory object's data handle.
dnnl::vanilla_rnn_forward::vanilla_rnn_forward
vanilla_rnn_forward(const primitive_desc &pd)
Constructs a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7258
dnnl_iterator_ends
@ dnnl_iterator_ends
Primitive iterator passed over last primitive descriptor.
Definition: dnnl_types.h:49
dnnl::stream::flags::default_order
@ default_order
Default order execution.
dnnl::query::scratchpad_md
@ scratchpad_md
scratchpad memory desc
dnnl::memory::data_type
data_type
Data type specification.
Definition: dnnl.hpp:1626
dnnl::lrn_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an LRN backward propagation primitive from a C API primitive de...
Definition: dnnl.hpp:4878
dnnl::lbr_gru_forward::desc
Descriptor for an LBR GRU forward propagation primitive.
Definition: dnnl.hpp:8373
dnnl_primitive_attr_set_scales
dnnl_status_t DNNL_API dnnl_primitive_attr_set_scales(dnnl_primitive_attr_t attr, int arg, dnnl_dim_t count, int mask, const float *scales)
Sets primitive attributes scaling factors for primitive operations for a given memory argument.
dnnl::engine::get_ocl_context
cl_context get_ocl_context() const
Returns the OpenCL context associated with the engine.
Definition: dnnl.hpp:1366
dnnl_stream_create
dnnl_status_t DNNL_API dnnl_stream_create(dnnl_stream_t *stream, dnnl_engine_t engine, unsigned flags)
Creates an execution stream for engine and with flags.
dnnl_sgemm
dnnl_status_t DNNL_API dnnl_sgemm(char transa, char transb, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const float *A, dnnl_dim_t lda, const float *B, dnnl_dim_t ldb, float beta, float *C, dnnl_dim_t ldc)
Performs single-precision matrix-matrix multiply.
dnnl::convolution_backward_weights::primitive_desc
Primitive descriptor for a convolution weights gradient primitive.
Definition: dnnl.hpp:3877
dnnl::batch_normalization_backward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6100
dnnl_stream_wait
dnnl_status_t DNNL_API dnnl_stream_wait(dnnl_stream_t stream)
Waits for all primitives in the execution stream to finish computations.
dnnl::rnn_primitive_desc_base::diff_weights_iter_desc
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:7021
dnnl_primitive_desc
An opaque structure to describe a primitive descriptor.
dnnl::logsoftmax_backward::desc::desc
desc(const memory::desc &diff_data_desc, const memory::desc &data_desc, int logsoftmax_axis)
Constructs a descriptor for a logsoftmax backward propagation primitive.
Definition: dnnl.hpp:5727
dnnl::pooling_forward::primitive_desc
Primitive descriptor for a pooling forward propagation primitive.
Definition: dnnl.hpp:4965
dnnl_sum_primitive_desc_create
dnnl_status_t DNNL_API dnnl_sum_primitive_desc_create(dnnl_primitive_desc_t *sum_primitive_desc, const dnnl_memory_desc_t *dst_desc, int n, const float *scales, const dnnl_memory_desc_t *src_descs, const_dnnl_primitive_attr_t attr, dnnl_engine_t engine)
Creates a primitive descriptor for an (out-of-place) sum primitive.
dnnl::engine::query
static engine query(const primitive_desc &pd)
Returns the engine of a primitive descriptor.
Definition: dnnl.hpp:1397
dnnl_nCdhw8c
@ dnnl_nCdhw8c
5D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcde8b
Definition: dnnl_types.h:467
dnnl_pooling_avg
@ dnnl_pooling_avg
Average pooling (alias for dnnl_pooling_avg_exclude_padding)
Definition: dnnl_types.h:759
dnnl::softmax_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a softmax forward propagation primitive from a C API primitive ...
Definition: dnnl.hpp:5467
dnnl::deconvolution_backward_weights::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for a dilated deconvolution weights gradient primitive with bias.
Definition: dnnl.hpp:4526
dnnl_vanilla_rnn
@ dnnl_vanilla_rnn
RNN cell.
Definition: dnnl_types.h:765
dnnl::query::weights_md
@ weights_md
weights memory descriptor desc
dnnl::cpu_isa::avx2
@ avx2
Intel(R) Advanced Vector Extensions 2.
dnnl_primitive_desc_get_attr
dnnl_status_t DNNL_API dnnl_primitive_desc_get_attr(const_dnnl_primitive_desc_t primitive_desc, const_dnnl_primitive_attr_t *attr)
Returns a constant reference to the attributes of a primitive descriptor.
dnnl::convolution_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, 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)
Constructs a descriptor for a convolution forward propagation primitive without bias.
Definition: dnnl.hpp:3318
dnnl_unidirectional
@ dnnl_unidirectional
Alias for dnnl_unidirectional_left2right.
Definition: dnnl_types.h:1401
dnnl::inner_product_forward::desc::desc
desc(prop_kind prop_kind, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc)
Constructs a descriptor for an inner product forward propagation primitive without bias.
Definition: dnnl.hpp:6592
dnnl::primitive::kind::inner_product
@ inner_product
An inner product primitive.
dnnl_gru_backward_desc_init
dnnl_status_t DNNL_API dnnl_gru_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags)
Initializes a descriptor for GRU backward propagation primitive.
dnnl::lstm_forward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:7678
dnnl::lstm_forward::primitive_desc::dst_iter_c_desc
memory::desc dst_iter_c_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7673
dnnl::deconvolution_forward::primitive_desc
Primitive descriptor for a deconvolution forward propagation primitive.
Definition: dnnl.hpp:4167
dnnl::lstm_backward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:7913
dnnl::layer_normalization_backward::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:6495
dnnl::primitive::kind::undef
@ undef
Undefined primitive.
dnnl::resampling_forward
Resampling forward propagation.
Definition: dnnl.hpp:9185
dnnl::memory::get_desc
desc get_desc() const
Returns the associated memory descriptor.
Definition: dnnl.hpp:2293
dnnl::shuffle_forward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:8851
dnnl::rnn_primitive_desc_base::diff_dst_layer_desc
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:7033
dnnl_aBcd4b
@ dnnl_aBcd4b
4D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:236
dnnl::inner_product_backward_weights
Inner product weights gradient primitive.
Definition: dnnl.hpp:6783
dnnl::primitive::execute
void execute(stream &stream, const std::unordered_map< int, memory > &args) const
Executes computations specified by the primitive in a specified stream.
dnnl::binary::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for an elementwise binary operator primitive.
Definition: dnnl.hpp:8998
dnnl::layer_normalization_forward::primitive_desc::mean_desc
memory::desc mean_desc() const
Returns memory descriptor for mean.
Definition: dnnl.hpp:6305
dnnl::resampling_backward::resampling_backward
resampling_backward(const primitive_desc &pd)
Constructs a resampling backward propagation primitive.
Definition: dnnl.hpp:9458
dnnl::primitive::kind::layer_normalization
@ layer_normalization
A layer normalization primitive.
dnnl::deconvolution_backward_weights::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::rnn_primitive_desc_base::src_iter_c_desc
memory::desc src_iter_c_desc() const
Returns source recurrent cell state memory descriptor.
Definition: dnnl.hpp:6969
dnnl::memory::format_tag
format_tag
Memory format tag specification.
Definition: dnnl.hpp:1700
dnnl_query_matmul_d
@ dnnl_query_matmul_d
matrix multiplication (matmul) descriptor
Definition: dnnl_types.h:1924
dnnl::memory::unmap_data
void unmap_data(void *mapped_ptr) const
Unmaps the previously mapped data for the memory.
Definition: dnnl.hpp:2365
dnnl::deconvolution_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, 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)
Constructs a descriptor for a dilated deconvolution forward propagation primitive without bias.
Definition: dnnl.hpp:4146
dnnl::resampling_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a resampling forward propagation primitive.
Definition: dnnl.hpp:9307
dnnl::gru_forward::primitive_desc::src_iter_desc
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8095
dnnl_query_binary_d
@ dnnl_query_binary_d
binary descriptor
Definition: dnnl_types.h:1922
dnnl_lbr_gru
@ dnnl_lbr_gru
GRU cell with linear before reset.
Definition: dnnl_types.h:777
dnnl::status::not_required
@ not_required
Queried element is not required for given primitive.
dnnl_lbr_gru_backward_desc_init
dnnl_status_t DNNL_API dnnl_lbr_gru_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags)
Initializes a descriptor for LBR GRU backward propagation primitive.
dnnl::logsoftmax_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::prop_kind::backward_weights
@ backward_weights
Backward weights propagation.
dnnl::query::dst_md
@ dst_md
destination memory desc
dnnl_forward
@ dnnl_forward
Forward data propagation (alias for dnnl_forward_training).
Definition: dnnl_types.h:650
dnnl::resampling_forward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:9327
dnnl_f32
@ dnnl_f32
32-bit/single-precision floating point.
Definition: dnnl_types.h:70
dnnl::query::batch_normalization_d
@ batch_normalization_d
batch normalization descriptor
dnnl_acbdef
@ dnnl_acbdef
permuted 6D tensor
Definition: dnnl_types.h:189
dnnl::normalization_flags
normalization_flags
Flags for normalization primitives.
Definition: dnnl.hpp:572
dnnl::inner_product_backward_data
Inner product backward propagation primitive.
Definition: dnnl.hpp:6674
dnnl_use_global_stats
@ dnnl_use_global_stats
Use global statistics.
Definition: dnnl_types.h:801
dnnl::stream::stream
stream(const engine &engine, flags flags=flags::default_flags)
Constructs a stream for the specified engine and with behavior controlled by the specified flags.
Definition: dnnl.hpp:1459
dnnl::query::binary_d
@ binary_d
binary descriptor
dnnl::pooling_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a pooling forward propagation primitive.
Definition: dnnl.hpp:4993
dnnl::query::undef
@ undef
no query
dnnl::matmul::matmul
matmul(const primitive_desc &pd)
Constructs a matmul primitive.
Definition: dnnl.hpp:9169
dnnl_lrn_across_channels
@ dnnl_lrn_across_channels
Local response normalization (LRN) across multiple channels.
Definition: dnnl_types.h:761
dnnl::batch_normalization_backward::primitive_desc::mean_desc
memory::desc mean_desc() const
Returns memory descriptor for mean.
Definition: dnnl.hpp:6114
dnnl::batch_normalization_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a batch normalization forward propagation primitive from a C AP...
Definition: dnnl.hpp:5933
dnnl_concat
@ dnnl_concat
A (out-of-place) concat primitive.
Definition: dnnl_types.h:671
dnnl::inner_product_forward
Inner product forward propagation primitive.
Definition: dnnl.hpp:6534
dnnl::deconvolution_backward_data::primitive_desc::weights_desc
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:4388
dnnl_query_diff_dst_md
@ dnnl_query_diff_dst_md
destination grad. memory desc
Definition: dnnl_types.h:1934
dnnl_format_kind_undef
@ dnnl_format_kind_undef
Undefined memory format kind, used for empty memory descriptors.
Definition: dnnl_types.h:82
dnnl::logsoftmax_backward
Logsoftmax backward propagation primitive.
Definition: dnnl.hpp:5705
dnnl_aBcdef16b
@ dnnl_aBcdef16b
6D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:297
dnnl_layer_normalization
@ dnnl_layer_normalization
A layer normalization primitive.
Definition: dnnl_types.h:689
dnnl::query::workspace_md
@ workspace_md
workspace memory desc
dnnl::gru_backward::primitive_desc
Primitive descriptor for a GRU backward propagation primitive.
Definition: dnnl.hpp:8239
dnnl::deconvolution_forward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:4214
dnnl_set_max_cpu_isa
dnnl_status_t DNNL_API dnnl_set_max_cpu_isa(dnnl_cpu_isa_t isa)
Sets the maximal ISA DNNL can dispatch to on the CPU.
dnnl::lbr_gru_backward::primitive_desc::diff_dst_layer_desc
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:8754
dnnl_memory_desc_t::data_type
dnnl_data_type_t data_type
Data type of the tensor elements.
Definition: dnnl_types.h:997
dnnl_convolution_backward_weights_desc_init
dnnl_status_t DNNL_API dnnl_convolution_backward_weights_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a convolution weights gradient primitive.
dnnl::status::iterator_ends
@ iterator_ends
Primitive iterator passed over last primitive descriptor.
dnnl::inner_product_backward_weights::desc::desc
desc(const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_dst_desc)
Constructs a descriptor for an inner product descriptor weights update primitive without bias.
Definition: dnnl.hpp:6836
dnnl::vanilla_rnn_backward::primitive_desc::diff_weights_layer_desc
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:7477
dnnl::lbr_gru_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a LBR GRU backward propagation primitive from a C API primitive...
Definition: dnnl.hpp:8690
dnnl_primitive
dnnl::query::src_md
@ src_md
source memory desc
dnnl::deconvolution_backward_weights::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a deconvolution weights gradient primitive from a C API primiti...
Definition: dnnl.hpp:4642
dnnl::algorithm::convolution_direct
@ convolution_direct
Direct convolution.
dnnl::deconvolution_backward_data::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:4391
dnnl::shuffle_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const shuffle_forward::primitive_desc &hint_fwd_pd, const primitive_attr &attr=primitive_attr(), bool allow_empty=false)
Constructs a primitive descriptor for a shuffle backward propagation primitive.
Definition: dnnl.hpp:8910
dnnl::lstm_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an LSTM forward propagation primitive from a C API primitive de...
Definition: dnnl.hpp:7633
dnnl::convolution_forward::convolution_forward
convolution_forward()=default
Default constructor. Produces an empty object.
dnnl::lrn_forward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:4777
dnnl::algorithm::eltwise_logistic
@ eltwise_logistic
Elementwise: logistic.
dnnl_cpu_isa_all
@ dnnl_cpu_isa_all
Any ISA (no restrictions)
Definition: dnnl_types.h:2028
dnnl_reorder_primitive_desc_create
dnnl_status_t DNNL_API dnnl_reorder_primitive_desc_create(dnnl_primitive_desc_t *reorder_primitive_desc, const dnnl_memory_desc_t *src_desc, dnnl_engine_t src_engine, const dnnl_memory_desc_t *dst_desc, dnnl_engine_t dst_engine, const_dnnl_primitive_attr_t attr)
Creates a primitive descriptor for a reorder primitive.
dnnl::deconvolution_backward_data::deconvolution_backward_data
deconvolution_backward_data()=default
Default constructor. Produces an empty object.
dnnl_query_op_d
@ dnnl_query_op_d
op descriptor
Definition: dnnl_types.h:1909
dnnl::stream::get_sycl_queue
cl::sycl::queue DNNL_API get_sycl_queue() const
Returns the underlying SYCL queue object.
dnnl::lstm_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for an LSTM forward propagation primitive.
Definition: dnnl.hpp:7607
dnnl::vanilla_rnn_backward::primitive_desc::src_layer_desc
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:7433
dnnl_softmax_backward_desc_init
dnnl_status_t DNNL_API dnnl_softmax_backward_desc_init(dnnl_softmax_desc_t *softmax_desc, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, int softmax_axis)
Initializes a descriptor for softmax backward propagation primitive.
dnnl::matmul::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::primitive_attr::set_scales
void set_scales(int arg, int mask, const std::vector< float > &scales)
Sets scaling factors for primitive operations for a given memory argument.
Definition: dnnl.hpp:1092
dnnl::convolution_forward::primitive_desc
Primitive descriptor for a convolution forward propagation primitive.
Definition: dnnl.hpp:3440
dnnl_out_of_memory
@ dnnl_out_of_memory
The operation failed due to an out-of-memory condition.
Definition: dnnl_types.h:43
dnnl::rnn_primitive_desc_base::weights_iter_desc
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:6977
dnnl_dim_t
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition: dnnl_types.h:871
dnnl_memory_get_memory_desc
dnnl_status_t DNNL_API dnnl_memory_get_memory_desc(const_dnnl_memory_t memory, const dnnl_memory_desc_t **memory_desc)
Returns the memory descriptor for a memory object.
dnnl_vanilla_rnn_backward_desc_init
dnnl_status_t DNNL_API dnnl_vanilla_rnn_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags, float alpha, float beta)
Initializes a descriptor for vanilla RNN backward propagation primitive.
dnnl::lbr_gru_backward::lbr_gru_backward
lbr_gru_backward()=default
Default constructor. Produces an empty object.
dnnl_deconvolution_backward_weights_desc_init
dnnl_status_t DNNL_API dnnl_deconvolution_backward_weights_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a deconvolution weights gradient primitive.
dnnl::gru_backward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:8321
dnnl::vanilla_rnn_forward::vanilla_rnn_forward
vanilla_rnn_forward()=default
Default constructor. Produces an empty object.
dnnl::eltwise_forward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5257
dnnl::algorithm::eltwise_tanh
@ eltwise_tanh
Elementwise: hyperbolic tangent non-linearity (tanh)
dnnl_resampling_backward_desc_init
dnnl_status_t DNNL_API dnnl_resampling_backward_desc_init(dnnl_resampling_desc_t *resampling_desc, dnnl_alg_kind_t alg_kind, const float *factors, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *diff_dst_desc)
Initializes a descriptor for resampling backward propagation primitive.
dnnl_abcd
@ dnnl_abcd
plain 4D tensor
Definition: dnnl_types.h:180
dnnl::binary::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for an elementwise binary operator primitive.
Definition: dnnl.hpp:9013
dnnl_primitive_get_primitive_desc
dnnl_status_t DNNL_API dnnl_primitive_get_primitive_desc(const_dnnl_primitive_t primitive, const_dnnl_primitive_desc_t *primitive_desc)
Retrieves a constant reference to the primitive descriptor of a given primitive.
dnnl::vanilla_rnn_backward::primitive_desc::src_iter_desc
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7438
dnnl::layer_normalization_backward::desc
Descriptor for a layer normalization backward propagation primitive.
Definition: dnnl.hpp:6342
dnnl::gru_backward::primitive_desc::weights_iter_desc
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:8305
dnnl::convolution_backward_data::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const convolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a convolution backward propagation primitive.
Definition: dnnl.hpp:3646
dnnl_u8
@ dnnl_u8
8-bit unsigned integer.
Definition: dnnl_types.h:76
dnnl_query_workspace_md
@ dnnl_query_workspace_md
workspace memory desc
Definition: dnnl_types.h:1935
dnnl::lstm_forward::primitive_desc::src_layer_desc
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:7639
dnnl::matmul::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:9161
dnnl::eltwise_backward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5364
dnnl_format_tag_last
@ dnnl_format_tag_last
Just a sentinel, not real memory format tag.
Definition: dnnl_types.h:351
dnnl::handle::handle
handle()=default
Constructs an empty handle object.
dnnl::gru_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::resampling_forward::resampling_forward
resampling_forward(const primitive_desc &pd)
Constructs a resampling forward propagation primitive.
Definition: dnnl.hpp:9336
dnnl::inner_product_forward::desc::desc
desc(prop_kind prop_kind, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc)
Constructs a descriptor for an inner product forward propagation primitive with bias.
Definition: dnnl.hpp:6561
dnnl_query_deconvolution_d
@ dnnl_query_deconvolution_d
deconvolution descriptor
Definition: dnnl_types.h:1911
dnnl::lbr_gru_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a LBR GRU forward propagation primitive.
Definition: dnnl.hpp:8457
dnnl_logsoftmax
@ dnnl_logsoftmax
A logsoftmax primitive.
Definition: dnnl_types.h:699
dnnl::convolution_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a convolution forward propagation primitive from a C API primit...
Definition: dnnl.hpp:3481
dnnl_format_tag_any
@ dnnl_format_tag_any
Undefined memory format tag.
Definition: dnnl_types.h:169
dnnl::engine::kind::gpu
@ gpu
GPU engine.
dnnl_deconvolution_direct
@ dnnl_deconvolution_direct
Direct deconvolution.
Definition: dnnl_types.h:716
dnnl::gru_forward::desc::desc
desc(prop_kind prop_kind, 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, rnn_flags flags=rnn_flags::undef)
Constructs a descriptor for a GRU forward propagation primitive.
Definition: dnnl.hpp:8022
dnnl::rnn_primitive_desc_base::dst_iter_c_desc
memory::desc dst_iter_c_desc() const
Returns destination recurrent cell state memory descriptor.
Definition: dnnl.hpp:6997
dnnl::deconvolution_backward_data::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const deconvolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4347
dnnl::lbr_gru_forward::desc::desc
desc(prop_kind prop_kind, 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, rnn_flags flags=rnn_flags::undef)
Constructs a descriptor for LBR GRU forward propagation primitive.
Definition: dnnl.hpp:8420
dnnl::handle::handle
handle(T t, bool weak=false)
Constructs a handle wrapper object from a C API handle.
Definition: dnnl.hpp:167
dnnl_memory_desc_equal
int DNNL_API dnnl_memory_desc_equal(const dnnl_memory_desc_t *lhs, const dnnl_memory_desc_t *rhs)
Compares two memory descriptors.
dnnl_reorder
@ dnnl_reorder
A reorder primitive.
Definition: dnnl_types.h:667
dnnl::matmul::primitive_desc
Primitive descriptor for a matmul primitive.
Definition: dnnl.hpp:9109
dnnl::batch_normalization_forward::primitive_desc
Primitive descriptor for a batch normalization forward propagation primitive.
Definition: dnnl.hpp:5892
dnnl::matmul::primitive_desc::bias_desc
memory::desc bias_desc() const
Returns the bias memory descriptor.
Definition: dnnl.hpp:9156
dnnl_deconvolution_backward_data_desc_init
dnnl_status_t DNNL_API dnnl_deconvolution_backward_data_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a deconvolution backward propagation primitive.
dnnl_lrn_desc_t
A descriptor of a Local Response Normalization (LRN) operation.
Definition: dnnl_types.h:1248
dnnl::eltwise_backward::desc::desc
desc(algorithm algorithm, const memory::desc &diff_data_desc, const memory::desc &data_desc, float alpha=0, float beta=0)
Constructs a descriptor for an elementwise backward propagation primitive.
Definition: dnnl.hpp:5296
dnnl::eltwise_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, const memory::desc &data_desc, float alpha=0, float beta=0)
Constructs a descriptor for an elementwise forward propagation primitive.
Definition: dnnl.hpp:5197
dnnl_stream_default_flags
@ dnnl_stream_default_flags
Default stream configuration.
Definition: dnnl_types.h:1957
dnnl::cpu_isa::avx512_mic
@ avx512_mic
Intel(R) Advanced Vector Extensions 512 subset for Intel(R) Xeon Phi(TM) Processors x200 Series.
dnnl_shuffle_desc_t
A descriptor of a shuffle operation.
Definition: dnnl_types.h:1114
dnnl::convolution_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, 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)
Constructs a descriptor for a convolution forward propagation primitive with bias.
Definition: dnnl.hpp:3271
dnnl::lstm_backward::primitive_desc::src_iter_c_desc
memory::desc src_iter_c_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7882
dnnl::batch_normalization_backward::primitive_desc
Primitive descriptor for a batch normalization backward propagation primitive.
Definition: dnnl.hpp:6037
dnnl::logsoftmax_forward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5692
dnnl::concat::primitive_desc
Primitive descriptor for a concat primitive.
Definition: dnnl.hpp:2950
dnnl::gru_backward::gru_backward
gru_backward()=default
Default constructor. Produces an empty object.
dnnl_backward_data
@ dnnl_backward_data
Backward data propagation.
Definition: dnnl_types.h:654
dnnl::normalization_flags::use_scale_shift
@ use_scale_shift
Use scale and shift parameters.
dnnl::softmax_backward::softmax_backward
softmax_backward()=default
Default constructor. Produces an empty object.
dnnl_acdeb
@ dnnl_acdeb
permuted 5D tensor
Definition: dnnl_types.h:191
dnnl::matmul::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a matmul primitive.
Definition: dnnl.hpp:9135
dnnl_version_t
Structure containing version information as per Semantic Versioning
Definition: dnnl_types.h:1996
dnnl::vanilla_rnn_forward::desc::desc
desc(prop_kind prop_kind, algorithm activation, 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, rnn_flags flags=rnn_flags::undef, float alpha=0.0f, float beta=0.0f)
Constructs a descriptor for a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7146
dnnl_batch_normalization_desc_t
A descriptor of a Batch Normalization operation.
Definition: dnnl_types.h:1279
dnnl::query::memory_consumption_s64
@ memory_consumption_s64
memory consumption (bytes)
dnnl::primitive_desc_base::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:2621
dnnl::primitive_desc_base::diff_src_desc
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:2615
dnnl::layer_normalization_backward
Layer normalization backward propagation primitive.
Definition: dnnl.hpp:6340
dnnl::batch_normalization_backward::desc::desc
desc(prop_kind prop_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, float epsilon, normalization_flags flags)
Constructs a batch normalization descriptor for backward propagation.
Definition: dnnl.hpp:6023
dnnl::scratchpad_mode::library
@ library
The library manages the scratchpad allocation according to the policy specified by the DNNL_ENABLE_CO...
dnnl::resampling_forward::resampling_forward
resampling_forward()=default
Default constructor. Produces an empty object.
dnnl::gru_forward::primitive_desc
Primitive descriptor GRU forward propagation primitive.
Definition: dnnl.hpp:8045
dnnl::prop_kind::backward_bias
@ backward_bias
Backward bias propagation.
dnnl_set_verbose
dnnl_status_t DNNL_API dnnl_set_verbose(int level)
Configures verbose output to stdout.
dnnl::logsoftmax_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a logsoftmax backward propagation primitive from a C API primit...
Definition: dnnl.hpp:5788
dnnl::cpu_isa::avx512_core
@ avx512_core
Intel(R) Advanced Vector Extensions 512 for Intel(R) Xeon(R) Processor Scalable Family and Intel(R) C...
dnnl::vanilla_rnn_backward::primitive_desc::diff_dst_iter_desc
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:7497
dnnl::algorithm::eltwise_swish
@ eltwise_swish
Elementwise: x*sigmoid(a*x)
dnnl::softmax_forward::softmax_forward
softmax_forward()=default
Default constructor. Produces an empty object.
dnnl_eltwise_desc_t
A descriptor of a element-wise operation.
Definition: dnnl_types.h:1136
dnnl::convolution_backward_data::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for a convolution backward propagation primitive.
Definition: dnnl.hpp:3544
dnnl_eltwise_forward_desc_init
dnnl_status_t DNNL_API dnnl_eltwise_forward_desc_init(dnnl_eltwise_desc_t *eltwise_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *data_desc, float alpha, float beta)
Initializes a descriptor for eltwise forward propagation primitive.
dnnl::primitive_desc_base::diff_dst_desc
memory::desc diff_dst_desc(int idx) const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:2577
dnnl::primitive_desc_base::primitive_desc_base
primitive_desc_base(dnnl_primitive_desc_t pd, dnnl::primitive::kind prim_kind, dnnl::prop_kind prop_kind)
Constructs a primitive descriptor base object from a clone of a C API primitive descriptor after veri...
Definition: dnnl.hpp:2719
dnnl_aBcd16b
@ dnnl_aBcd16b
4D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:230
dnnl::algorithm::lrn_within_channel
@ lrn_within_channel
LRN within a single channel.
dnnl_resampling_nearest
@ dnnl_resampling_nearest
Nearest Neighbor Resampling Method.
Definition: dnnl_types.h:783
dnnl::layer_normalization_backward::layer_normalization_backward
layer_normalization_backward()=default
Default constructor. Produces an empty object.
dnnl::rnn_primitive_desc_base::dst_iter_desc
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:6993
dnnl::primitive_desc::primitive_desc
primitive_desc(const_dnnl_op_desc_t desc, const primitive_attr *attr, const engine &engine, const_dnnl_primitive_desc_t hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor.
Definition: dnnl.hpp:3179
dnnl::scratchpad_mode::user
@ user
A user shall query and provide the scratchpad memory to primitives This mode is thread-safe as long a...
dnnl::layer_normalization_forward::primitive_desc::weights_desc
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6299
dnnl_rnn
@ dnnl_rnn
A rnn primitive.
Definition: dnnl_types.h:693
dnnl::vanilla_rnn_forward::primitive_desc::dst_iter_desc
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:7244
dnnl::convolution_backward_weights::primitive_desc::diff_weights_desc
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:3933
dnnl::convolution_backward_weights::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:3938
dnnl::set_jit_profiling_flags
status set_jit_profiling_flags(unsigned flags)
Sets library profiling flags.
Definition: dnnl.hpp:9508
dnnl_query_num_of_outputs_s32
@ dnnl_query_num_of_outputs_s32
number of outputs expected
Definition: dnnl_types.h:1889
dnnl::binary::primitive_desc::src1_desc
memory::desc src1_desc() const
Returns the memory descriptor for source #1.
Definition: dnnl.hpp:9032
dnnl::pooling_forward
Pooling forward propagation primitive.
Definition: dnnl.hpp:4912
dnnl_cpu_isa_sse41
@ dnnl_cpu_isa_sse41
Intel(R) SSE4.1.
Definition: dnnl_types.h:2031
dnnl::sgemm
status sgemm(char transa, char transb, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const float *A, dnnl_dim_t lda, const float *B, dnnl_dim_t ldb, float beta, float *C, dnnl_dim_t ldc)
Performs single-precision matrix-matrix multiply.
Definition: dnnl.hpp:9555
dnnl::lrn_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for an LRN forward propagation primitive.
Definition: dnnl.hpp:4754
dnnl::primitive_desc_base::query_s64
memory::dim query_s64(query what) const
Returns a memory::dim value (same as int64_t).
Definition: dnnl.hpp:2500
dnnl::status
status
Status values returned by the library functions.
Definition: dnnl.hpp:9475
dnnl::lbr_gru_backward::desc
Descriptor for a LBR GRU backward propagation primitive.
Definition: dnnl.hpp:8536
dnnl_memory_get_engine
dnnl_status_t DNNL_API dnnl_memory_get_engine(const_dnnl_memory_t memory, dnnl_engine_t *engine)
Returns the engine of a memory object.
dnnl::layer_normalization_backward::primitive_desc::weights_desc
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6486
dnnl_abdec
@ dnnl_abdec
permuted 5D tensor
Definition: dnnl_types.h:186
dnnl_cpu_isa_avx2
@ dnnl_cpu_isa_avx2
Intel(R) Advanced Vector Extensions 2.
Definition: dnnl_types.h:2037
dnnl_cpu_isa_avx512_core_vnni
@ dnnl_cpu_isa_avx512_core_vnni
Intel(R) Advanced Vector Extensions 512 with Intel(R) DL Boost Support for Intel(R) Xeon(R) Processor...
Definition: dnnl_types.h:2054
dnnl::deconvolution_backward_data::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const deconvolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4367
dnnl::convolution_backward_data
Convolution backward propagation primitive.
Definition: dnnl.hpp:3512
dnnl_memory_desc_t::ndims
int ndims
Number of dimensions.
Definition: dnnl_types.h:979
dnnl::layer_normalization_forward::desc::desc
desc(prop_kind prop_kind, const memory::desc &data_desc, float epsilon, normalization_flags flags)
Constructs a descriptor for layer normalization forward propagation primitive.
Definition: dnnl.hpp:6232
dnnl_aBc8b
@ dnnl_aBc8b
3D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:221
dnnl::rnn_primitive_desc_base::dst_layer_desc
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:6987
dnnl::convolution_backward_weights::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const convolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a convolution weights gradient primitive.
Definition: dnnl.hpp:3912
dnnl::handle::get
T get(bool allow_empty=false) const
Returns the underlying C API handle.
Definition: dnnl.hpp:183
dnnl::primitive_desc_base::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:2597
dnnl::eltwise_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl_layer_normalization_desc_t
A descriptor of a Layer Normalization operation.
Definition: dnnl_types.h:1312
dnnl::reorder::primitive_desc
Primitive descriptor for a reorder primitive.
Definition: dnnl.hpp:2801
dnnl::inner_product_backward_weights::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::shuffle_backward::primitive_desc::diff_src_desc
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:8928
dnnl::binary
Elementwise binary operator primitive.
Definition: dnnl.hpp:8954
dnnl::lrn_backward::desc
Descriptor for an LRN backward propagation primitive.
Definition: dnnl.hpp:4792
dnnl::deconvolution_forward::primitive_desc::bias_desc
memory::desc bias_desc() const
Returns the bias memory descriptor.
Definition: dnnl.hpp:4223
dnnl::convolution_backward_weights::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for a convolution weights gradient primitive without bias.
Definition: dnnl.hpp:3761
dnnl::binary::desc::desc
desc(algorithm algorithm, const memory::desc &src0, const memory::desc &src1, const memory::desc &dst)
Constructs a descriptor for an elementwise binary operator primitive.
Definition: dnnl.hpp:8974
dnnl::inner_product_backward_data::desc
Descriptor for an inner product backward propagation primitive.
Definition: dnnl.hpp:6676
dnnl_not_required
@ dnnl_not_required
Queried element is not required for given primitive.
Definition: dnnl_types.h:53
dnnl_eltwise_clip
@ dnnl_eltwise_clip
Eltwise: clip.
Definition: dnnl_types.h:751
dnnl::layer_normalization_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::lrn_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl_engine_get_count
size_t DNNL_API dnnl_engine_get_count(dnnl_engine_kind_t kind)
Returns the number of engines of a particular kind.
dnnl::inner_product_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::pooling_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a pooling forward propagation primitive.
Definition: dnnl.hpp:4978
dnnl::lbr_gru_backward::primitive_desc::dst_iter_desc
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:8721
dnnl_engine_create
dnnl_status_t DNNL_API dnnl_engine_create(dnnl_engine_t *engine, dnnl_engine_kind_t kind, size_t index)
Creates an engine.
dnnl::error
DNNL exception class.
Definition: dnnl.hpp:92
dnnl::layer_normalization_forward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:6302
dnnl::convolution_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a convolution forward propagation primitive.
Definition: dnnl.hpp:3470
dnnl::softmax_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const softmax_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a softmax backward propagation primitive.
Definition: dnnl.hpp:5538
dnnl::sum::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::layer_normalization_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl_pooling_avg_include_padding
@ dnnl_pooling_avg_include_padding
Average pooling include padding.
Definition: dnnl_types.h:755
dnnl::cpu_isa::avx512_core_bf16
@ avx512_core_bf16
Intel(R) Advanced Vector Extensions 512 with Intel(R) DL Boost and Bfloat16 Support for Intel(R) Xeon...
dnnl::layer_normalization_forward::primitive_desc::variance_desc
memory::desc variance_desc() const
Returns memory descriptor for variance.
Definition: dnnl.hpp:6308
dnnl::gru_backward::primitive_desc::diff_weights_layer_desc
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:8336
dnnl::memory::desc::data_type
memory::data_type data_type() const
Returns the data type of the memory descriptor.
Definition: dnnl.hpp:2203
dnnl_set_jit_profiling_jitdumpdir
dnnl_status_t DNNL_API dnnl_set_jit_profiling_jitdumpdir(const char *dir)
Sets JIT dump output path.
dnnl::post_ops::append_eltwise
void append_eltwise(float scale, algorithm algorithm, float alpha, float beta)
Appends an elementwise post-op.
Definition: dnnl.hpp:909
dnnl::matmul::desc::desc
desc(const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc)
Constructs a descriptor for a matmul primitive.
Definition: dnnl.hpp:9099
dnnl::convolution_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, 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)
Constructs a descriptor for a dilated convolution forward propagation primitive with bias.
Definition: dnnl.hpp:3369
dnnl::memory::dim
dnnl_dim_t dim
Integer type for representing dimension sizes and indices.
Definition: dnnl.hpp:1609
dnnl::vanilla_rnn_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a vanilla RNN forward propagation primitive from a C API primit...
Definition: dnnl.hpp:7212
dnnl::inner_product_backward_weights::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:6912
dnnl::lstm_backward::primitive_desc::dst_iter_desc
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:7905
dnnl_primitive_desc_iterator_destroy
dnnl_status_t DNNL_API dnnl_primitive_desc_iterator_destroy(dnnl_primitive_desc_iterator_t iterator)
Destroys a primitive descriptor iterator.
dnnl::deconvolution_backward_weights::primitive_desc
Primitive descriptor for a deconvolution weights gradient primitive.
Definition: dnnl.hpp:4594
dnnl_deconvolution
@ dnnl_deconvolution
A deconvolution primitive.
Definition: dnnl_types.h:677
dnnl_inner_product_backward_data_desc_init
dnnl_status_t DNNL_API dnnl_inner_product_backward_data_desc_init(dnnl_inner_product_desc_t *ip_desc, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc)
Initializes descriptor for inner product backward propagation.
dnnl::primitive_attr::get_output_scales
void get_output_scales(int &mask, std::vector< float > &scales) const
Returns output scaling factors correspondence mask and values.
Definition: dnnl.hpp:989
dnnl_aBcde4b
@ dnnl_aBcde4b
5D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:274
dnnl_memory_map_data
dnnl_status_t DNNL_API dnnl_memory_map_data(const_dnnl_memory_t memory, void **mapped_ptr)
Maps a memory object and returns a pointer to host-side buffer with a copy of its contents.
dnnl::prop_kind::forward
@ forward
Forward data propagation, alias for dnnl::prop_kind::forward_training.
dnnl::shuffle_forward::desc::desc
desc(prop_kind prop_kind, const memory::desc &data_desc, int axis, int group_size)
Constructs a descriptor for a shuffle forward propagation primitive.
Definition: dnnl.hpp:8804
dnnl::algorithm::eltwise_relu
@ eltwise_relu
Elementwise: ReLU.
dnnl::layer_normalization_backward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6483
dnnl_dilated_deconvolution_backward_weights_desc_init
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_backward_weights_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated deconvolution weights gradient primitive.
dnnl::lstm_backward::primitive_desc::diff_bias_desc
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:7943
dnnl::pooling_backward
Pooling backward propagation primitive.
Definition: dnnl.hpp:5029
dnnl::deconvolution_backward_data::primitive_desc::diff_src_desc
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:4385
dnnl_stream_out_of_order
@ dnnl_stream_out_of_order
Out-of-order execution.
Definition: dnnl_types.h:1955
dnnl::inner_product_forward::primitive_desc::weights_desc
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6655
dnnl::algorithm::resampling_linear
@ resampling_linear
Linear (Bilinear, Trilinear) resampling method.
dnnl::primitive_desc
A base class for descriptors of all primitives that have an operation descriptor and that support ite...
Definition: dnnl.hpp:3152
dnnl::lstm_backward::lstm_backward
lstm_backward(const primitive_desc &pd)
Constructs an LSTM backward propagation primitive.
Definition: dnnl.hpp:7969
dnnl::normalization_flags::use_global_stats
@ use_global_stats
Use global statistics.
dnnl_batch_normalization_backward_desc_init
dnnl_status_t DNNL_API dnnl_batch_normalization_backward_desc_init(dnnl_batch_normalization_desc_t *bnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, float epsilon, unsigned flags)
Initializes a descriptor for a batch normalization backward propagation primitive.
dnnl_lbr_gru_forward_desc_init
dnnl_status_t DNNL_API dnnl_lbr_gru_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, unsigned flags)
Initializes a descriptor for LBR GRU forward propagation primitive.
dnnl::binary::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:9035
dnnl::handle::reset
void reset(T t, bool weak=false)
Resets the handle wrapper objects to wrap a new C API handle.
Definition: dnnl.hpp:174
dnnl::softmax_forward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5476
dnnl::logsoftmax_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a logsoftmax forward propagation primitive.
Definition: dnnl.hpp:5652
dnnl::lbr_gru_backward::primitive_desc::diff_weights_iter_desc
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:8744
dnnl_convolution
@ dnnl_convolution
A convolution primitive.
Definition: dnnl_types.h:675
dnnl::vanilla_rnn_backward::primitive_desc::diff_dst_layer_desc
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:7492
dnnl::stream::flags
flags
Stream flags. Can be combined using the bitwise OR operator.
Definition: dnnl.hpp:1438
dnnl::lstm_backward::desc::desc
desc(prop_kind prop_kind, rnn_direction direction, const memory::desc &src_layer_desc, const memory::desc &src_iter_desc, const memory::desc &src_iter_c_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 &dst_iter_c_desc, const memory::desc &diff_src_layer_desc, const memory::desc &diff_src_iter_desc, const memory::desc &diff_src_iter_c_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, const memory::desc &diff_dst_iter_c_desc, rnn_flags flags=rnn_flags::undef)
Constructs an LSTM descriptor for backward propagation using prop_kind, direction,...
Definition: dnnl.hpp:7780
dnnl::engine::get_count
static size_t get_count(kind kind)
Returns the number of engines of a certain kind.
Definition: dnnl.hpp:1298
dnnl::rnn_primitive_desc_base::diff_src_iter_c_desc
memory::desc diff_src_iter_c_desc() const
Returns diff source recurrent cell state memory descriptor.
Definition: dnnl.hpp:7011
dnnl::eltwise_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const eltwise_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an elementwise backward propagation primitive.
Definition: dnnl.hpp:5346
dnnl::eltwise_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::batch_normalization_backward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:6122
dnnl::pooling_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const pooling_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a pooling backward propagation primitive.
Definition: dnnl.hpp:5113
dnnl::lstm_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an LSTM backward propagation primitive from a C API primitive d...
Definition: dnnl.hpp:7869
dnnl::pooling_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a pooling backward propagation primitive from a C API primitive...
Definition: dnnl.hpp:5126
dnnl::post_ops::append_sum
void append_sum(float scale=1.)
Appends an accumulation (sum) post-op.
Definition: dnnl.hpp:880
dnnl::shuffle_backward::desc::desc
desc(const memory::desc &diff_data_desc, int axis, int group_size)
Constructs a descriptor for a shuffle backward propagation primitive.
Definition: dnnl.hpp:8883
dnnl_inner_product_backward_weights_desc_init
dnnl_status_t DNNL_API dnnl_inner_product_backward_weights_desc_init(dnnl_inner_product_desc_t *ip_desc, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc)
Initializes descriptor for inner product weights gradient primitive.
dnnl::lrn_backward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:4889
dnnl::resampling_backward::resampling_backward
resampling_backward()=default
Default constructor. Produces an empty object.
dnnl::eltwise_backward::primitive_desc::diff_src_desc
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:5367
dnnl::layer_normalization_backward::primitive_desc::diff_weights_desc
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:6498
dnnl::rnn_direction::bidirectional_sum
@ bidirectional_sum
Bidirectional execution of RNN primitive with summation of the results.
dnnl_primitive_attr
An opaque structure for primitive descriptor attributes.
dnnl::inner_product_backward_weights::primitive_desc::diff_bias_desc
memory::desc diff_bias_desc() const
Returns the diff bias memory descriptor.
Definition: dnnl.hpp:6915
dnnl::algorithm::deconvolution_winograd
@ deconvolution_winograd
Winograd deconvolution.
dnnl::rnn_direction::unidirectional_right2left
@ unidirectional_right2left
Unidirectional execution of RNN primitive from right to left.
dnnl_lrn
@ dnnl_lrn
An LRN primitive.
Definition: dnnl_types.h:685
dnnl::vanilla_rnn_backward::primitive_desc::diff_bias_desc
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:7487
dnnl_primitive_attr_get_scales
dnnl_status_t DNNL_API dnnl_primitive_attr_get_scales(dnnl_primitive_attr_t attr, int arg, dnnl_dim_t *count, int *mask, const float **scales)
Returns primitive attributes scaling factors correspondence mask and values for a given memory argume...
dnnl::algorithm::eltwise_exp
@ eltwise_exp
Elementwise: exponent.
dnnl_query_src_md
@ dnnl_query_src_md
source memory desc
Definition: dnnl_types.h:1929
dnnl_primitive_attr_set_rnn_data_qparams
dnnl_status_t DNNL_API dnnl_primitive_attr_set_rnn_data_qparams(dnnl_primitive_attr_t attr, const float scale, const float shift)
Set quantization scale and shift parameters for RNN data tensors.
dnnl::rnn_primitive_desc_base::rnn_primitive_desc_base
rnn_primitive_desc_base()=default
Default constructor. Produces an empty object.
dnnl::primitive::kind::convolution
@ convolution
A convolution primitive.
dnnl_primitive_attr_get_post_ops
dnnl_status_t DNNL_API dnnl_primitive_attr_get_post_ops(const_dnnl_primitive_attr_t attr, const_dnnl_post_ops_t *post_ops)
Returns primitive attributes post-ops.
dnnl::layer_normalization_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const layer_normalization_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a layer normalization backward propagation primitive.
Definition: dnnl.hpp:6443
dnnl::lbr_gru_backward::primitive_desc::diff_weights_layer_desc
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:8739
dnnl::gru_backward::primitive_desc::diff_src_iter_desc
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:8331
dnnl::logsoftmax_backward::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5803
dnnl::primitive_attr::primitive_attr
primitive_attr(dnnl_primitive_attr_t attr)
Creates primitive attributes from a C API dnnl_primitive_attr_t handle.
Definition: dnnl.hpp:959
dnnl::pooling_backward::pooling_backward
pooling_backward(const primitive_desc &pd)
Constructs a pooling backward propagation primitive.
Definition: dnnl.hpp:5146
dnnl::shuffle_forward::desc
Descriptor for a shuffle forward propagation primitive.
Definition: dnnl.hpp:8786
dnnl::shuffle_forward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:8848
dnnl::deconvolution_backward_data::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4266
dnnl::concat::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:3028
dnnl_scratchpad_mode_t
dnnl_scratchpad_mode_t
Scratchpad mode.
Definition: dnnl_types.h:1608
dnnl::primitive_attr
Primitive attributes.
Definition: dnnl.hpp:943
dnnl::softmax_forward::softmax_forward
softmax_forward(const primitive_desc &pd)
Constructs a softmax forward propagation primitive.
Definition: dnnl.hpp:5485
dnnl::lbr_gru_backward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:8724
dnnl::softmax_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::inner_product_forward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6658
dnnl::lbr_gru_backward::primitive_desc::src_iter_desc
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8700
dnnl::resampling_backward::desc::desc
desc(algorithm algorithm, std::vector< float > factors, const memory::desc &diff_src_desc, const memory::desc &diff_dst_desc)
Constructs a descriptor for resampling backward propagation primitive.
Definition: dnnl.hpp:9382
dnnl_data_type_undef
@ dnnl_data_type_undef
Undefined data type, used for empty memory descriptors.
Definition: dnnl_types.h:64
dnnl::shuffle_backward::shuffle_backward
shuffle_backward(const primitive_desc &pd)
Constructs a shuffle backward propagation primitive.
Definition: dnnl.hpp:8940
dnnl::inner_product_backward_data::primitive_desc
Primitive descriptor for an inner product backward propagation primitive.
Definition: dnnl.hpp:6709
dnnl_query_engine
@ dnnl_query_engine
execution engine
Definition: dnnl_types.h:1885
dnnl_dilated_deconvolution_backward_data_desc_init
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_backward_data_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated deconvolution backward propagation primitive.
dnnl_query_softmax_d
@ dnnl_query_softmax_d
softmax descriptor
Definition: dnnl_types.h:1914
dnnl_resampling_desc_t
A descriptor of resampling operation.
Definition: dnnl_types.h:1524
dnnl_invalid_arguments
@ dnnl_invalid_arguments
The operation failed because of incorrect function arguments.
Definition: dnnl_types.h:45
dnnl::lbr_gru_forward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:8519
dnnl::convolution_backward_data::desc
Descriptor for a convolution backward propagation primitive.
Definition: dnnl.hpp:3515
dnnl::convolution_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::shuffle_backward::desc
Descriptor for a shuffle primitive backward propagation primitive.
Definition: dnnl.hpp:8867
dnnl::softmax_forward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5473
dnnl::query::softmax_d
@ softmax_d
softmax descriptor
dnnl_cpu
@ dnnl_cpu
CPU engine.
Definition: dnnl_types.h:1558
dnnl::memory
Memory object.
Definition: dnnl.hpp:1607
dnnl::convolution_backward_weights::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for a dilated convolution weights gradient primitive without bias.
Definition: dnnl.hpp:3856
dnnl_post_ops
An opaque structure for a chain of post operations.
dnnl::rnn_primitive_desc_base::diff_dst_iter_desc
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:7039
dnnl::primitive_attr::get_scales
void get_scales(int arg, int &mask, std::vector< float > &scales) const
Returns scaling factors correspondence mask and values for a given memory argument.
Definition: dnnl.hpp:1062
dnnl_query_undef
@ dnnl_query_undef
no query
Definition: dnnl_types.h:1883
dnnl::gru_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a GRU forward propagation primitive.
Definition: dnnl.hpp:8058
dnnl::rnn_flags::undef
@ undef
Undefined RNN flags.
dnnl::eltwise_forward::eltwise_forward
eltwise_forward()=default
Default constructor. Produces an empty object.
dnnl_eltwise_swish
@ dnnl_eltwise_swish
Eltwise: swish.
Definition: dnnl_types.h:747
dnnl::error::wrap_c_api
static void wrap_c_api(dnnl_status_t status, const char *message)
A convenience function for wrapping calls to C API functions.
Definition: dnnl.hpp:111
dnnl::eltwise_backward::eltwise_backward
eltwise_backward(const primitive_desc &pd)
Constructs an eltwise backward propagation primitive.
Definition: dnnl.hpp:5379
dnnl::inner_product_backward_data::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const inner_product_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an inner product backward propagation primitive.
Definition: dnnl.hpp:6746
dnnl::primitive_desc_base::diff_weights_desc
memory::desc diff_weights_desc(int idx) const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:2586
dnnl::lstm_backward::primitive_desc::dst_layer_desc
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:7900
dnnl::prop_kind::undef
@ undef
Undefined propagation kind.
dnnl::inner_product_forward::inner_product_forward
inner_product_forward()=default
Default constructor. Produces an empty object.
dnnl::convolution_backward_data::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const convolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a convolution backward propagation primitive.
Definition: dnnl.hpp:3626
dnnl::batch_normalization_backward::primitive_desc::variance_desc
memory::desc variance_desc() const
Returns memory descriptor for variance.
Definition: dnnl.hpp:6117
dnnl_dilated_convolution_backward_weights_desc_init
dnnl_status_t DNNL_API dnnl_dilated_convolution_backward_weights_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated convolution weights gradient primitive.
dnnl::algorithm::eltwise_linear
@ eltwise_linear
Elementwise: linear.
dnnl::set_verbose
status set_verbose(int level)
Configures verbose output to stdout.
Definition: dnnl.hpp:9493
dnnl::deconvolution_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a deconvolution forward propagation primitive.
Definition: dnnl.hpp:4181
dnnl::batch_normalization_forward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5943
dnnl::inner_product_forward::primitive_desc
Primitive descriptor for an inner product forward propagation primitive.
Definition: dnnl.hpp:6605
dnnl::handle
DNNL C API handle wrapper class.
Definition: dnnl.hpp:134
dnnl::pooling_backward::pooling_backward
pooling_backward()=default
Default constructor. Produces an empty object.
dnnl::softmax_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a softmax forward propagation primitive.
Definition: dnnl.hpp:5440
dnnl::primitive_desc_base::src_desc
memory::desc src_desc(int idx) const
Returns a source memory descriptor.
Definition: dnnl.hpp:2541
dnnl::algorithm::convolution_auto
@ convolution_auto
Convolution algorithm (either direct or Winograd) is chosen just in time.
dnnl_primitive_destroy
dnnl_status_t DNNL_API dnnl_primitive_destroy(dnnl_primitive_t primitive)
Destroys a primitive.
dnnl::lstm_forward::primitive_desc::weights_layer_desc
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:7652
dnnl::inner_product_backward_weights::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an inner product weights update primitive from a C API primitiv...
Definition: dnnl.hpp:6899
dnnl::batch_normalization_forward::desc
Descriptor for a batch normalization forward propagation primitive.
Definition: dnnl.hpp:5840
dnnl::engine::get_sycl_context
cl::sycl::context DNNL_API get_sycl_context() const
Returns the underlying SYCL context object.
dnnl::binary::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a binary primitive from a C API primitive descriptor that must ...
Definition: dnnl.hpp:9022
dnnl_memory_create
dnnl_status_t DNNL_API dnnl_memory_create(dnnl_memory_t *memory, const dnnl_memory_desc_t *memory_desc, dnnl_engine_t engine, void *handle)
Creates a memory object.
dnnl_pooling_forward_desc_init
dnnl_status_t DNNL_API dnnl_pooling_forward_desc_init(dnnl_pooling_desc_t *pool_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t kernel, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for pooling forward propagation primitive.
dnnl_logsoftmax_backward_desc_init
dnnl_status_t DNNL_API dnnl_logsoftmax_backward_desc_init(dnnl_logsoftmax_desc_t *logsoftmax_desc, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, int logsoftmax_axis)
Initializes a descriptor for logsoftmax backward propagation primitive.
dnnl::vanilla_rnn_backward::primitive_desc::weights_layer_desc
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:7441
dnnl::inner_product_backward_data::inner_product_backward_data
inner_product_backward_data()=default
Default constructor. Produces an empty object.
dnnl::lbr_gru_backward::primitive_desc::weights_layer_desc
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:8703
dnnl::rnn_primitive_desc_base::src_layer_desc
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:6959
dnnl::convolution_backward_data::convolution_backward_data
convolution_backward_data(const primitive_desc &pd)
Constructs a convolution backward propagation primitive.
Definition: dnnl.hpp:3679
dnnl::inner_product_backward_weights::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const inner_product_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an inner product weights update primitive.
Definition: dnnl.hpp:6886
dnnl::batch_normalization_backward::primitive_desc::diff_src_desc
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:6103
dnnl_shuffle_forward_desc_init
dnnl_status_t DNNL_API dnnl_shuffle_forward_desc_init(dnnl_shuffle_desc_t *shuffle_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, int axis, dnnl_dim_t group_size)
Initializes a descriptor for shuffle forward propagation primitive.
dnnl::lbr_gru_forward
LBR GRU forward propagation primitive.
Definition: dnnl.hpp:8371
dnnl::resampling_backward::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:9449
dnnl::batch_normalization_backward::batch_normalization_backward
batch_normalization_backward(const primitive_desc &pd)
Constructs a batch normalization backward propagation primitive.
Definition: dnnl.hpp:6131
dnnl::convolution_backward_weights::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for a convolution weights gradient primitive with bias.
Definition: dnnl.hpp:3717
dnnl_memory_desc_t
Memory descriptor.
Definition: dnnl_types.h:977
dnnl_backward_bias
@ dnnl_backward_bias
Backward bias propagation.
Definition: dnnl_types.h:658
dnnl::vanilla_rnn_forward::primitive_desc::weights_iter_desc
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:7231
dnnl::lstm_forward::primitive_desc::src_iter_c_desc
memory::desc src_iter_c_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7647
dnnl_matmul
@ dnnl_matmul
A matrix multiplication primitive.
Definition: dnnl_types.h:701
dnnl::primitive_attr::set_output_scales
void set_output_scales(int mask, const std::vector< float > &scales)
Sets output scaling factors correspondence mask and values.
Definition: dnnl.hpp:1045
dnnl::convolution_backward_weights::convolution_backward_weights
convolution_backward_weights(const primitive_desc &pd)
Constructs a convolution weights gradient primitive.
Definition: dnnl.hpp:3955
dnnl::logsoftmax_forward::logsoftmax_forward
logsoftmax_forward(const primitive_desc &pd)
Constructs a logsoftmax forward propagation primitive.
Definition: dnnl.hpp:5701
dnnl::handle::operator!=
bool operator!=(const handle &other) const
Inequality operator.
Definition: dnnl.hpp:218
dnnl::convolution_forward::primitive_desc::bias_desc
memory::desc bias_desc() const
Returns the bias memory descriptor.
Definition: dnnl.hpp:3499
dnnl_cpu_isa_t
dnnl_cpu_isa_t
CPU instruction set flags.
Definition: dnnl_types.h:2026
dnnl::inner_product_forward::primitive_desc::bias_desc
memory::desc bias_desc() const
Returns the bias memory descriptor.
Definition: dnnl.hpp:6661
dnnl::memory::desc::operator!=
bool operator!=(const desc &other) const
An inequality operator.
Definition: dnnl.hpp:2230
dnnl::layer_normalization_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const layer_normalization_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a layer normalization backward propagation primitive.
Definition: dnnl.hpp:6463
dnnl::pooling_backward::desc
Descriptor for a pooling backward propagation primitive.
Definition: dnnl.hpp:5031
dnnl::shuffle_forward::primitive_desc
Primitive descriptor for a shuffle forward propagation primitive.
Definition: dnnl.hpp:8815
dnnl::batch_normalization_forward::batch_normalization_forward
batch_normalization_forward()=default
Default constructor. Produces an empty object.
dnnl::deconvolution_forward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:4220
dnnl::vanilla_rnn_forward::desc
Descriptor for a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7091
dnnl_lrn_forward_desc_init
dnnl_status_t DNNL_API dnnl_lrn_forward_desc_init(dnnl_lrn_desc_t *lrn_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *data_desc, dnnl_dim_t local_size, float alpha, float beta, float k)
Initializes a descriptor for LRN forward propagation primitive.
dnnl::binary::desc::data
dnnl_binary_desc_t data
Underlying C operation descriptor.
Definition: dnnl.hpp:8958
dnnl_nChw4c
@ dnnl_nChw4c
4D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcd4b
Definition: dnnl_types.h:473
dnnl::query::scratchpad_engine
@ scratchpad_engine
scratchpad engine
dnnl::lstm_backward::primitive_desc::diff_src_layer_desc
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:7918
dnnl::lbr_gru_backward::primitive_desc::bias_desc
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:8713
dnnl::inner_product_backward_weights::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6904
dnnl::post_ops::get_params_eltwise
void get_params_eltwise(int index, float &scale, algorithm &algorithm, float &alpha, float &beta) const
Returns parameters of an elementwise post-up.
Definition: dnnl.hpp:923
dnnl_engine_destroy
dnnl_status_t DNNL_API dnnl_engine_destroy(dnnl_engine_t engine)
Destroys an engine.
dnnl.h
dnnl::primitive_desc_base::reset_with_clone
void reset_with_clone(const_dnnl_primitive_desc_t pd)
Resets the value of the handle to a clone of a C API primitive descriptor.
Definition: dnnl.hpp:2684
dnnl_bacd
@ dnnl_bacd
permuted 4D tensor
Definition: dnnl_types.h:194
dnnl_format_kind_any
@ dnnl_format_kind_any
Unspecified format kind.
Definition: dnnl_types.h:85
dnnl_post_ops_len
int DNNL_API dnnl_post_ops_len(const_dnnl_post_ops_t post_ops)
Returns the length of post-ops.
dnnl::layer_normalization_backward::primitive_desc
Primitive descriptor for a layer normalization backward propagation primitive.
Definition: dnnl.hpp:6426
dnnl::primitive_desc_base::scratchpad_desc
memory::desc scratchpad_desc() const
Returns the scratchpad memory descriptor.
Definition: dnnl.hpp:2642
dnnl_batch_normalization_forward_desc_init
dnnl_status_t DNNL_API dnnl_batch_normalization_forward_desc_init(dnnl_batch_normalization_desc_t *bnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, float epsilon, unsigned flags)
Initializes a descriptor for a batch normalization forward propagation primitive.
dnnl_nChw16c
@ dnnl_nChw16c
4D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcd16b
Definition: dnnl_types.h:470
dnnl::shuffle_backward::primitive_desc
Primitive descriptor for a shuffle backward propagation primitive.
Definition: dnnl.hpp:8892
dnnl_shuffle_backward_desc_init
dnnl_status_t DNNL_API dnnl_shuffle_backward_desc_init(dnnl_shuffle_desc_t *shuffle_desc, const dnnl_memory_desc_t *diff_data_desc, int axis, dnnl_dim_t group_size)
Initializes a descriptor for shuffle backward propagation primitive.
dnnl::deconvolution_backward_data::primitive_desc
Primitive descriptor for a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4330
dnnl::post_ops::get_params_sum
void get_params_sum(int index, float &scale) const
Returns the parameters of an accumulation (sum) post-op.
Definition: dnnl.hpp:889
dnnl_query_eltwise_d
@ dnnl_query_eltwise_d
eltwise descriptor
Definition: dnnl_types.h:1913
dnnl::algorithm::vanilla_lstm
@ vanilla_lstm
LSTM cell.
dnnl::handle::operator=
handle< T, traits > & operator=(const handle< T, traits > &)=default
Assignment operator.
dnnl::convolution_backward_weights::primitive_desc::diff_bias_desc
memory::desc diff_bias_desc() const
Returns the diff bias memory descriptor.
Definition: dnnl.hpp:3944
dnnl::algorithm::pooling_max
@ pooling_max
Max pooling.
dnnl::binary::desc
Descriptor for an elementwise binary operator primitive.
Definition: dnnl.hpp:8956
dnnl::deconvolution_backward_weights::desc
Descriptor for a deconvolution weights gradient primitive.
Definition: dnnl.hpp:4406
dnnl::concat::primitive_desc::src_desc
memory::desc src_desc(int idx=0) const
Returns a source memory descriptor.
Definition: dnnl.hpp:3025
dnnl_cba
@ dnnl_cba
permuted 3D tensor
Definition: dnnl_types.h:198
dnnl::rnn_primitive_desc_base::bias_desc
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:6983
dnnl_lrn_backward_desc_init
dnnl_status_t DNNL_API dnnl_lrn_backward_desc_init(dnnl_lrn_desc_t *lrn_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, dnnl_dim_t local_size, float alpha, float beta, float k)
Initializes a descriptor for LRN backward propagation primitive.
dnnl::handle_traits
A class that provides the destructor for a DNNL C API handle.
Definition: dnnl.hpp:118
dnnl::primitive_desc_base::weights_desc
memory::desc weights_desc(int idx) const
Returns a weights memory descriptor.
Definition: dnnl.hpp:2559
dnnl::gru_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const gru_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a GRU backward propagation primitive.
Definition: dnnl.hpp:8255
dnnl::lbr_gru_backward::primitive_desc::diff_src_layer_desc
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:8729
dnnl_query_num_of_inputs_s32
@ dnnl_query_num_of_inputs_s32
number of inputs expected
Definition: dnnl_types.h:1888
dnnl::status::invalid_arguments
@ invalid_arguments
The operation failed because of incorrect function arguments.
dnnl::memory::dims
std::vector< dim > dims
Vector of dimensions.
Definition: dnnl.hpp:1612
dnnl::softmax_backward::primitive_desc
Primitive descriptor for a softmax backward propagation primitive.
Definition: dnnl.hpp:5521
dnnl::deconvolution_backward_data
Deconvolution backward propagation primitive.
Definition: dnnl.hpp:4236
dnnl::batch_normalization_forward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:5949
dnnl_acbde
@ dnnl_acbde
permuted 5D tensor
Definition: dnnl_types.h:188
dnnl::lstm_backward::primitive_desc::diff_dst_layer_desc
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:7948
dnnl::deconvolution_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, 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)
Constructs a descriptor for a deconvolution forward propagation primitive without bias.
Definition: dnnl.hpp:4049
dnnl_post_ops_get_params_sum
dnnl_status_t DNNL_API dnnl_post_ops_get_params_sum(const_dnnl_post_ops_t post_ops, int index, float *scale)
Returns the parameters of an accumulation (sum) post-op.
dnnl_primitive_attr_set_scratchpad_mode
dnnl_status_t DNNL_API dnnl_primitive_attr_set_scratchpad_mode(dnnl_primitive_attr_t attr, dnnl_scratchpad_mode_t mode)
Sets primitive attributes scratchpad mode.
dnnl::primitive_attr::get_post_ops
const post_ops get_post_ops() const
Returns post-ops previously set via set_post_ops().
Definition: dnnl.hpp:1155
dnnl::vanilla_rnn_forward::primitive_desc::src_layer_desc
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:7218
dnnl::gru_forward::primitive_desc::dst_layer_desc
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:8111
dnnl::memory::desc
A memory descriptor.
Definition: dnnl.hpp:2106
dnnl::convolution_forward::primitive_desc::weights_desc
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:3490
dnnl::primitive
Base class for all computational primitives.
Definition: dnnl.hpp:260
dnnl_alg_kind_t
dnnl_alg_kind_t
Kinds of algorithms.
Definition: dnnl_types.h:707
dnnl_deconvolution_winograd
@ dnnl_deconvolution_winograd
Winograd deconvolution.
Definition: dnnl_types.h:718
dnnl_cpu_isa_avx512_mic
@ dnnl_cpu_isa_avx512_mic
Intel(R) Advanced Vector Extensions 512 subset for Intel(R) Xeon Phi(TM) Processors x200 Series.
Definition: dnnl_types.h:2041
dnnl::lrn_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for an LRN forward propagation primitive.
Definition: dnnl.hpp:4739
dnnl::query::lrn_d
@ lrn_d
lrn descriptor
dnnl::logsoftmax_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a logsoftmax forward propagation primitive.
Definition: dnnl.hpp:5668
dnnl::layer_normalization_backward::primitive_desc::dst_desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6489
dnnl::batch_normalization_backward::batch_normalization_backward
batch_normalization_backward()=default
Default constructor. Produces an empty object.
dnnl_memory_desc_init_by_strides
dnnl_status_t DNNL_API dnnl_memory_desc_init_by_strides(dnnl_memory_desc_t *memory_desc, int ndims, const dnnl_dims_t dims, dnnl_data_type_t data_type, const dnnl_dims_t strides)
Initializes a memory descriptor using dimensions and strides.
dnnl_success
@ dnnl_success
The operation was successful.
Definition: dnnl_types.h:41
dnnl::memory::get_engine
engine get_engine() const
Returns the associated engine.
Definition: dnnl.hpp:2301
dnnl::memory::format_kind
format_kind
Memory format kind.
Definition: dnnl.hpp:1644
dnnl_eltwise_exp
@ dnnl_eltwise_exp
Eltwise: exponent.
Definition: dnnl_types.h:740
dnnl_abcdef
@ dnnl_abcdef
plain 6D tensor
Definition: dnnl_types.h:182
dnnl::convolution_forward::convolution_forward
convolution_forward(const primitive_desc &pd)
Constructs a convolution forward propagation primitive.
Definition: dnnl.hpp:3508
dnnl::memory::desc::operator==
bool operator==(const desc &other) const
An equality operator.
Definition: dnnl.hpp:2222
dnnl::shuffle_forward
Shuffle forward propagation primitive.
Definition: dnnl.hpp:8784
dnnl::query::logsoftmax_d
@ logsoftmax_d
logsoftmax descriptor
dnnl::memory::memory
memory(const desc &md, const engine &engine, cl::sycl::buffer< T, ndims > &buf)
Constructs a memory from a SYCL buffer.
Definition: dnnl.hpp:2276
dnnl::lbr_gru_forward::lbr_gru_forward
lbr_gru_forward(const primitive_desc &pd)
Constructs an LBR GRU forward propagation primitive.
Definition: dnnl.hpp:8530
dnnl_primitive_attr_set_zero_points
dnnl_status_t DNNL_API dnnl_primitive_attr_set_zero_points(dnnl_primitive_attr_t attr, int arg, dnnl_dim_t count, int mask, const int32_t *zero_points)
Sets primitive attributes zero points for primitive operations for a given memory argument.
dnnl::matmul::matmul
matmul()=default
Default constructor. Produces an empty object.
dnnl::lbr_gru_forward::lbr_gru_forward
lbr_gru_forward()=default
Default constructor. Produces an empty object.
dnnl::algorithm::vanilla_gru
@ vanilla_gru
GRU cell.
dnnl_primitive_create
dnnl_status_t DNNL_API dnnl_primitive_create(dnnl_primitive_t *primitive, const_dnnl_primitive_desc_t primitive_desc)
Creates a primitive.
dnnl::deconvolution_backward_data::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::convolution_forward::desc
Descriptor for a convolution forward propagation primitive.
Definition: dnnl.hpp:3236
dnnl::resampling_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, const std::vector< float > &factors, const memory::desc &src_desc)
Constructs a descriptor for a resampling forward propagation primitive using source memory descriptor...
Definition: dnnl.hpp:9234
dnnl::matmul::desc::desc
desc(const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc)
Constructs a descriptor for a matmul primitive.
Definition: dnnl.hpp:9077
dnnl::memory::desc::is_zero
bool is_zero() const
Checks whether the memory descriptor is zero (empty).
Definition: dnnl.hpp:2216
dnnl::rnn_primitive_desc_base::rnn_primitive_desc_base
rnn_primitive_desc_base(dnnl_primitive_desc_t pd, dnnl::prop_kind prop_kind, dnnl::algorithm cell_kind)
Constructs an RNN primitive descriptor base from a C API primitive descriptor while checking that it ...
Definition: dnnl.hpp:6953
dnnl_bidirectional_sum
@ dnnl_bidirectional_sum
Bidirectional execution of RNN primitive with summation of the results.
Definition: dnnl_types.h:1399
dnnl::lstm_forward::lstm_forward
lstm_forward(const primitive_desc &pd)
Constructs an LSTM forward propagation primitive.
Definition: dnnl.hpp:7689
dnnl::lstm_backward::primitive_desc::diff_weights_iter_desc
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:7938
dnnl::lstm_forward::primitive_desc::bias_desc
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:7662
dnnl_eltwise_linear
@ dnnl_eltwise_linear
Eltwise: linear.
Definition: dnnl_types.h:732
dnnl_nCw16c
@ dnnl_nCw16c
3D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBc16b
Definition: dnnl_types.h:479
dnnl
DNNL namespace.
Definition: dnnl.hpp:82
dnnl_vanilla_gru
@ dnnl_vanilla_gru
GRU cell.
Definition: dnnl_types.h:769
dnnl::primitive::kind::logsoftmax
@ logsoftmax
A logsoftmax primitive.
dnnl::lbr_gru_forward::primitive_desc::bias_desc
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:8508
dnnl::query::shuffle_d
@ shuffle_d
shuffle descriptor
dnnl::softmax_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a softmax forward propagation primitive.
Definition: dnnl.hpp:5456
dnnl_abc
@ dnnl_abc
plain 3D tensor
Definition: dnnl_types.h:179
dnnl_stream
dnnl::matmul::primitive_desc::weights_desc
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:9151
dnnl::convolution_backward_weights::desc
Descriptor for a convolution weights gradient primitive.
Definition: dnnl.hpp:3685
dnnl::query::impl_info_str
@ impl_info_str
implementation name
dnnl::deconvolution_backward_data::desc
Descriptor for a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4238
dnnl::lbr_gru_forward::primitive_desc::dst_layer_desc
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:8511
dnnl_binary_desc_t
A descriptor of a binary operation.
Definition: dnnl_types.h:1477
dnnl::memory::desc::submemory_desc
desc submemory_desc(const memory::dims &dims, const memory::dims &offsets) const
Constructs a memory descriptor for a region inside an area described by this memory descriptor.
Definition: dnnl.hpp:2171
dnnl::pooling_forward::pooling_forward
pooling_forward()=default
Default constructor. Produces an empty object.
dnnl::lbr_gru_backward::primitive_desc::weights_iter_desc
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:8708
dnnl::reorder::primitive_desc::get_dst_engine
engine get_dst_engine() const
Returns the engine on which the destination memory is allocated.
Definition: dnnl.hpp:2871
dnnl::primitive::kind::batch_normalization
@ batch_normalization
A batch normalization primitive.
dnnl_primitive_attr_clone
dnnl_status_t DNNL_API dnnl_primitive_attr_clone(dnnl_primitive_attr_t *attr, const_dnnl_primitive_attr_t existing_attr)
Clones primitive attributes.
dnnl::batch_normalization_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::memory::get_data_handle
void * get_data_handle() const
Returns the underlying memory buffer.
Definition: dnnl.hpp:2311
dnnl_convolution_direct
@ dnnl_convolution_direct
Direct convolution.
Definition: dnnl_types.h:710
dnnl_post_ops_get_kind
dnnl_primitive_kind_t DNNL_API dnnl_post_ops_get_kind(const_dnnl_post_ops_t post_ops, int index)
Returns the kind of a post-op entry.
dnnl::sum::sum
sum(const primitive_desc &pd)
Constructs a sum primitive.
Definition: dnnl.hpp:3142
dnnl::concat::concat
concat(const primitive_desc &pd)
Constructs a concatenation primitive.
Definition: dnnl.hpp:3036
dnnl_query_diff_src_md
@ dnnl_query_diff_src_md
source gradient memory desc
Definition: dnnl_types.h:1930
dnnl::vanilla_rnn_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7201
dnnl::algorithm::eltwise_gelu
@ eltwise_gelu
Elementwise: gelu.
dnnl::vanilla_rnn_forward
Vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7089
dnnl::lbr_gru_backward::primitive_desc::src_layer_desc
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:8695
dnnl::algorithm::eltwise_square
@ eltwise_square
Elementwise: square.
dnnl::stream::get_ocl_command_queue
cl_command_queue get_ocl_command_queue() const
Returns the underlying OpenCL queue object.
Definition: dnnl.hpp:1481
dnnl::vanilla_rnn_backward::vanilla_rnn_backward
vanilla_rnn_backward(const primitive_desc &pd)
Constructs a vanilla RNN backward propagation primitive.
Definition: dnnl.hpp:7508
dnnl::shuffle_backward::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:8931
dnnl::algorithm::vanilla_rnn
@ vanilla_rnn
RNN cell.
dnnl::convolution_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, 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)
Constructs a descriptor for a dilated convolution forward propagation primitive without bias.
Definition: dnnl.hpp:3419
dnnl::deconvolution_forward::deconvolution_forward
deconvolution_forward(const primitive_desc &pd)
Constructs a deconvolution forward propagation primitive.
Definition: dnnl.hpp:4232
dnnl::version
const version_t * version()
Returns library version information.
Definition: dnnl.hpp:9498
dnnl_forward_scoring
@ dnnl_forward_scoring
Forward data propagation (alias for dnnl_forward_inference).
Definition: dnnl_types.h:648
dnnl::binary::binary
binary()=default
Default constructor. Produces an empty object.
dnnl_aBcde8b
@ dnnl_aBcde8b
5D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:284
dnnl::reorder::reorder
reorder(const primitive_desc &pd)
Constructs a reorder primitive.
Definition: dnnl.hpp:2887
dnnl::matmul::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a matmul primitive.
Definition: dnnl.hpp:9121
dnnl::inner_product_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an inner product forward propagation primitive from a C API pri...
Definition: dnnl.hpp:6646
dnnl::inner_product_backward_data::desc::desc
desc(const memory::desc &diff_src_desc, const memory::desc &weights_desc, const memory::desc &diff_dst_desc)
Constructs a descriptor for an inner product backward propagation primitive.
Definition: dnnl.hpp:6696
dnnl_deconvolution_forward_desc_init
dnnl_status_t DNNL_API dnnl_deconvolution_forward_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a deconvolution forward propagation primitive.
dnnl::post_ops::kind
primitive::kind kind(int index) const
Returns the primitive kind of post-op at entry with a certain index.
Definition: dnnl.hpp:851
dnnl::lbr_gru_forward::primitive_desc::src_iter_desc
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8495
dnnl::algorithm
algorithm
Kinds of algorithms.
Definition: dnnl.hpp:479
dnnl::convolution_backward_data::primitive_desc
Primitive descriptor for a convolution backward propagation primitive.
Definition: dnnl.hpp:3609
dnnl::lstm_backward::primitive_desc::dst_iter_c_desc
memory::desc dst_iter_c_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7908
dnnl_prop_kind_undef
@ dnnl_prop_kind_undef
Undefined propagation type.
Definition: dnnl_types.h:639
dnnl_resampling_forward_desc_init
dnnl_status_t DNNL_API dnnl_resampling_forward_desc_init(dnnl_resampling_desc_t *resampling_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const float *factors, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *dst_desc)
Initializes a descriptor for a resampling forward propagation primitive.
dnnl::batch_normalization_backward::primitive_desc::weights_desc
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6097
dnnl::resampling_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::primitive::get_kind
kind get_kind() const
Returns the kind of the primitive.
Definition: dnnl.hpp:385
dnnl_matmul_desc_init
dnnl_status_t DNNL_API dnnl_matmul_desc_init(dnnl_matmul_desc_t *matmul_desc, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc)
Initializes a matrix multiplication descriptor.
dnnl::deconvolution_backward_weights::primitive_desc::diff_bias_desc
memory::desc diff_bias_desc() const
Returns the diff bias memory descriptor.
Definition: dnnl.hpp:4658
dnnl_blocked
@ dnnl_blocked
A tensor in a generic format described by the stride and blocking values in each dimension.
Definition: dnnl_types.h:89
dnnl::lbr_gru_backward::primitive_desc::diff_src_iter_desc
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:8734
dnnl_memory_desc_init_by_tag
dnnl_status_t DNNL_API dnnl_memory_desc_init_by_tag(dnnl_memory_desc_t *memory_desc, int ndims, const dnnl_dims_t dims, dnnl_data_type_t data_type, dnnl_format_tag_t tag)
Initializes a memory descriptor using dimensions and memory format tag.
dnnl_query_primitive_kind
@ dnnl_query_primitive_kind
primitive kind
Definition: dnnl_types.h:1886
dnnl_unidirectional_left2right
@ dnnl_unidirectional_left2right
Unidirectional execution of RNN primitive from left to right.
Definition: dnnl_types.h:1391
dnnl::query::time_estimate_f64
@ time_estimate_f64
runtime estimation (seconds), unimplemented
dnnl::logsoftmax_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, const logsoftmax_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a logsoftmax backward propagation primitive.
Definition: dnnl.hpp:5755
dnnl_primitive_desc_iterator_fetch
dnnl_primitive_desc_t DNNL_API dnnl_primitive_desc_iterator_fetch(const_dnnl_primitive_desc_iterator_t iterator)
Fetches the current primitive descriptor from a primitive descriptor iterator.
dnnl::pooling_forward::desc
Descriptor for a pooling forward propagation primitive.
Definition: dnnl.hpp:4914
dnnl::reorder::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for reorder primitive from a C API primitive descriptor which must ...
Definition: dnnl.hpp:2860
dnnl::eltwise_backward::primitive_desc
Primitive descriptor for eltwise backward propagation.
Definition: dnnl.hpp:5309
dnnl::resampling_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, const memory::desc &src_desc, const memory::desc &dst_desc)
Constructs a descriptor for a resampling forward propagation primitive using source and destination m...
Definition: dnnl.hpp:9211
dnnl::logsoftmax_forward::desc
Descriptor for a logsoftmax forward propagation primitive.
Definition: dnnl.hpp:5607
dnnl::resampling_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, const std::vector< float > &factors, const memory::desc &src_desc, const memory::desc &dst_desc)
Constructs a descriptor for a resampling forward propagation primitive.
Definition: dnnl.hpp:9266
dnnl_eltwise_elu
@ dnnl_eltwise_elu
Eltwise: parametric exponential linear unit (elu)
Definition: dnnl_types.h:724
dnnl::binary::primitive_desc::src0_desc
memory::desc src0_desc() const
Returns the memory descriptor for source #0.
Definition: dnnl.hpp:9029
dnnl::stream::flags::in_order
@ in_order
In-order execution.
dnnl::memory::map_data
T * map_data() const
Maps the data of the memory.
Definition: dnnl.hpp:2347
dnnl::cpu_isa::avx512_mic_4ops
@ avx512_mic_4ops
Intel(R) Advanced Vector Extensions 512 subset for Intel(R) Xeon Phi(TM) Processors 7235,...
dnnl::convolution_backward_data::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:3670
dnnl::status::out_of_memory
@ out_of_memory
The operation failed due to an out-of-memory condition.
dnnl::binary::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::batch_normalization_forward::batch_normalization_forward
batch_normalization_forward(const primitive_desc &pd)
Constructs a batch normalization forward propagation primitive.
Definition: dnnl.hpp:5985
dnnl::lstm_backward::primitive_desc::diff_src_iter_desc
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:7923
dnnl::concat::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::shuffle_forward::shuffle_forward
shuffle_forward(const primitive_desc &pd)
Constructs a shuffle forward propagation primitive.
Definition: dnnl.hpp:8860
dnnl_dilated_convolution_backward_data_desc_init
dnnl_status_t DNNL_API dnnl_dilated_convolution_backward_data_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated convolution backward propagation primitive.
dnnl::sum::primitive_desc::src_desc
memory::desc src_desc(int idx=0) const
Returns a source memory descriptor.
Definition: dnnl.hpp:3131
dnnl_layer_normalization_forward_desc_init
dnnl_status_t DNNL_API dnnl_layer_normalization_forward_desc_init(dnnl_layer_normalization_desc_t *lnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, const dnnl_memory_desc_t *stat_desc, float epsilon, unsigned flags)
Initializes a descriptor for layer normalization forward propagation primitive.
dnnl_nCw4c
@ dnnl_nCw4c
3D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBc4b
Definition: dnnl_types.h:482
dnnl::primitive_attr::get_scratchpad_mode
scratchpad_mode get_scratchpad_mode() const
Returns the scratchpad mode.
Definition: dnnl.hpp:963
dnnl_primitive_attr_set_rnn_weights_qparams
dnnl_status_t DNNL_API dnnl_primitive_attr_set_rnn_weights_qparams(dnnl_primitive_attr_t attr, dnnl_dim_t count, int mask, const float *scales)
Sets quantization scaling factors for RNN weights tensors.
dnnl::deconvolution_backward_weights::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for a deconvolution weights gradient primitive with bias.
Definition: dnnl.hpp:4437
dnnl_primitive_attr_set_post_ops
dnnl_status_t DNNL_API dnnl_primitive_attr_set_post_ops(dnnl_primitive_attr_t attr, const_dnnl_post_ops_t post_ops)
Sets primitive attributes post-ops.
dnnl::memory::desc::desc
desc()
Constructs a zero (empty) memory descriptor.
Definition: dnnl.hpp:2113
dnnl::stream::flags::out_of_order
@ out_of_order
Out-of-order execution.
dnnl::convolution_backward_weights::convolution_backward_weights
convolution_backward_weights()=default
Default constructor. Produces an empty object.
dnnl_primitive_desc_destroy
dnnl_status_t DNNL_API dnnl_primitive_desc_destroy(dnnl_primitive_desc_t primitive_desc)
Destroys a primitive descriptor.
dnnl::convolution_backward_data::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for dilated convolution backward propagation primitive.
Definition: dnnl.hpp:3588
dnnl_vanilla_lstm
@ dnnl_vanilla_lstm
LSTM cell.
Definition: dnnl_types.h:767
dnnl_any_engine
@ dnnl_any_engine
An unspecified engine.
Definition: dnnl_types.h:1556
dnnl::lrn_backward::lrn_backward
lrn_backward()=default
Default constructor. Produces an empty object.
dnnl::rnn_primitive_desc_base
Base class for primitive descriptors for RNN primitives.
Definition: dnnl.hpp:6940
dnnl::primitive_attr::primitive_attr
primitive_attr()
Constructs default (empty) primitive attributes.
Definition: dnnl.hpp:947
dnnl::pooling_backward::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for pooling backward propagation primitive.
Definition: dnnl.hpp:5059
dnnl_nCdhw4c
@ dnnl_nCdhw4c
5D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcde4b
Definition: dnnl_types.h:464
dnnl::lrn_backward::primitive_desc
Primitive descriptor for an LRN backward propagation primitive.
Definition: dnnl.hpp:4830
dnnl_resampling
@ dnnl_resampling
A resampling primitive.
Definition: dnnl_types.h:703
dnnl::lstm_forward
LSTM forward propagation primitive.
Definition: dnnl.hpp:7512
dnnl::inner_product_backward_data::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an inner product backward propagation primitive from a C API pr...
Definition: dnnl.hpp:6759
dnnl::primitive_desc_base::primitive_desc_base
primitive_desc_base(dnnl_primitive_desc_t pd, dnnl::primitive::kind prim_kind)
Constructs a primitive descriptor base object from a clone of a C API primitive descriptor after veri...
Definition: dnnl.hpp:2704
dnnl::layer_normalization_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a layer normalization forward propagation primitive.
Definition: dnnl.hpp:6259
dnnl::query::matmul_d
@ matmul_d
matmul descriptor
dnnl_cpu_isa_avx
@ dnnl_cpu_isa_avx
Intel(R) Advanced Vector Extensions.
Definition: dnnl_types.h:2034
dnnl_bca
@ dnnl_bca
permuted 3D tensor
Definition: dnnl_types.h:195
dnnl::primitive_desc_base::get_engine
engine get_engine() const
Returns the engine of the primitive descriptor.
Definition: dnnl.hpp:2487
dnnl::query::diff_weights_md
@ diff_weights_md
weights grad. memory desc
dnnl::query::op_d
@ op_d
op descriptor
dnnl_prop_kind_t
dnnl_prop_kind_t
Kinds of propagation.
Definition: dnnl_types.h:636
dnnl::gru_backward::primitive_desc::src_layer_desc
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:8292
dnnl::primitive_desc_base::impl_info_str
const char * impl_info_str() const
Returns implementation name.
Definition: dnnl.hpp:2490
dnnl_query_scratchpad_md
@ dnnl_query_scratchpad_md
scratchpad memory desc
Definition: dnnl_types.h:1936
dnnl::prop_kind::forward_scoring
@ forward_scoring
Forward data propagation, alias for dnnl::prop_kind::forward_inference.
dnnl::lstm_forward::primitive_desc::weights_iter_desc
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:7657
dnnl::batch_normalization_forward::primitive_desc::weights_desc
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:5946
dnnl::primitive_desc_base::query_md
memory::desc query_md(query what, int idx=0) const
Returns a memory descriptor.
Definition: dnnl.hpp:2521
dnnl::logsoftmax_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const logsoftmax_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a logsoftmax backward propagation primitive.
Definition: dnnl.hpp:5775
dnnl::batch_normalization_backward::primitive_desc::diff_weights_desc
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:6109
dnnl_dilated_convolution_forward_desc_init
dnnl_status_t DNNL_API dnnl_dilated_convolution_forward_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated convolution forward propagation primitive.
dnnl::resampling_backward::desc::desc
desc(algorithm algorithm, const memory::desc &diff_src_desc, const memory::desc &diff_dst_desc)
Constructs a descriptor for a resampling backward propagation primitive using source and destination ...
Definition: dnnl.hpp:9359
dnnl_eltwise_gelu
@ dnnl_eltwise_gelu
Eltwise: gelu.
Definition: dnnl_types.h:745
dnnl::convolution_backward_weights::desc::desc
desc(algorithm algorithm, 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)
Constructs a descriptor for a dilated convolution weights gradient primitive with bias.
Definition: dnnl.hpp:3808
dnnl::vanilla_rnn_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7185
dnnl::deconvolution_forward::primitive_desc::weights_desc
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:4217
dnnl_primitive_attr_get_output_scales
dnnl_status_t DNNL_API dnnl_primitive_attr_get_output_scales(const_dnnl_primitive_attr_t attr, dnnl_dim_t *count, int *mask, const float **scales)
Returns primitive attributes output scaling factors correspondence mask and values.
dnnl_query_weights_md
@ dnnl_query_weights_md
weights memory descriptor desc
Definition: dnnl_types.h:1931
dnnl::layer_normalization_backward::primitive_desc::workspace_desc
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:6511
dnnl::prop_kind::backward_data
@ backward_data
Backward data propagation.
dnnl::query::engine
@ engine
execution engine
dnnl::stream::flags::default_flags
@ default_flags
Default stream configuration.
dnnl::deconvolution_backward_weights::deconvolution_backward_weights
deconvolution_backward_weights(const primitive_desc &pd)
Constructs a deconvolution weights gradient primitive.
Definition: dnnl.hpp:4669
dnnl::primitive_desc_base
Base class for all primitive descriptors.
Definition: dnnl.hpp:2480
dnnl::softmax_backward::desc
Descriptor for a softmax backward propagation primitive.
Definition: dnnl.hpp:5491
dnnl::reorder::reorder
reorder()=default
Default constructor. Produces an empty object.
dnnl::lbr_gru_backward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::vanilla_rnn_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl_primitive_desc_query_md
const dnnl_memory_desc_t DNNL_API * dnnl_primitive_desc_query_md(const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what, int index)
Queries primitive descriptor for a memory descriptor.
dnnl_gemm_u8s8s32
dnnl_status_t DNNL_API dnnl_gemm_u8s8s32(char transa, char transb, char offsetc, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const uint8_t *A, dnnl_dim_t lda, uint8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo, float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co)
Performs integer matrix-matrix multiply on 8-bit unsigned matrix A, 8-bit signed matrix B,...
dnnl_query_batch_normalization_d
@ dnnl_query_batch_normalization_d
batch normalization descriptor
Definition: dnnl_types.h:1917
dnnl_post_ops_create
dnnl_status_t DNNL_API dnnl_post_ops_create(dnnl_post_ops_t *post_ops)
Creates empty post-ops sequence.
dnnl::resampling_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const resampling_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a resampling backward propagation primitive.
Definition: dnnl.hpp:9428
dnnl::resampling_forward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:9324
dnnl::memory::desc::desc
desc(const memory::dims &dims, data_type data_type, format_tag format_tag)
Constructs a memory descriptor.
Definition: dnnl.hpp:2126
dnnl::convolution_backward_data::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a convolution backward propagation primitive from a C API primi...
Definition: dnnl.hpp:3659
dnnl::lstm_backward::desc
Descriptor for an LSTM backward propagation primitive.
Definition: dnnl.hpp:7695
dnnl::inner_product_backward_weights::inner_product_backward_weights
inner_product_backward_weights()=default
Default constructor. Produces an empty object.
dnnl::set_jit_dump
status set_jit_dump(int enable)
Configures dumping of JIT-generated code.
Definition: dnnl.hpp:9503
dnnl::gru_backward::primitive_desc::dst_iter_desc
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:8318
dnnl::softmax_backward::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5582
dnnl::vanilla_rnn_forward::primitive_desc::dst_layer_desc
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:7239
dnnl::deconvolution_forward
Deconvolution forward propagation primitive.
Definition: dnnl.hpp:3969
dnnl::lrn_backward
Local response normalization (LRN) backward propagation primitive.
Definition: dnnl.hpp:4790
dnnl::primitive::kind::eltwise
@ eltwise
An element-wise primitive.
dnnl::logsoftmax_forward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5689
dnnl::pooling_forward::primitive_desc::primitive_desc
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl::gru_forward::gru_forward
gru_forward()=default
Default constructor. Produces an empty object.
dnnl::softmax_backward::primitive_desc::diff_src_desc
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:5579
const_dnnl_op_desc_t
const typedef void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition: dnnl_types.h:1049
dnnl::softmax_forward::desc
Descriptor for a softmax forward propagation primitive.
Definition: dnnl.hpp:5395
dnnl::shuffle_backward::shuffle_backward
shuffle_backward()=default
Default constructor. Produces an empty object.
dnnl_undefined_primitive
@ dnnl_undefined_primitive
Undefined primitive.
Definition: dnnl_types.h:665
dnnl::lstm_backward::primitive_desc::diff_src_iter_c_desc
memory::desc diff_src_iter_c_desc() const
Returns diff source recurrent cell state memory descriptor.
Definition: dnnl.hpp:7928
dnnl::engine::kind::cpu
@ cpu
CPU engine.
dnnl::vanilla_rnn_backward::primitive_desc
Primitive descriptor for a RNN backward propagation primitive.
Definition: dnnl.hpp:7378
dnnl::sum
Out-of-place summation (sum) primitive.
Definition: dnnl.hpp:3050
dnnl::logsoftmax_forward::primitive_desc
Primitive descriptor for a logsoftmax forward propagation primitive.
Definition: dnnl.hpp:5638
dnnl_vanilla_rnn_forward_desc_init
dnnl_status_t DNNL_API dnnl_vanilla_rnn_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, unsigned flags, float alpha, float beta)
Initializes a descriptor for vanilla RNN forward propagation primitive.
dnnl::primitive::kind::deconvolution
@ deconvolution
A deconvolution primitive.
dnnl::rnn_direction::unidirectional
@ unidirectional
Alias for dnnl::rnn_direction::unidirectional_left2right.
dnnl::layer_normalization_forward::layer_normalization_forward
layer_normalization_forward()=default
Default constructor. Produces an empty object.
dnnl::batch_normalization_backward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, const batch_normalization_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a batch normalization backward propagation primitive.
Definition: dnnl.hpp:6074
dnnl_eltwise_soft_relu
@ dnnl_eltwise_soft_relu
Eltwise: soft_relu.
Definition: dnnl_types.h:736
dnnl::reorder::primitive_desc::primitive_desc
primitive_desc(const engine &src_engine, const memory::desc &src_md, const engine &dst_engine, const memory::desc &dst_md, const primitive_attr &attr=primitive_attr())
Constructs a primitive descriptor for reorder primitive.
Definition: dnnl.hpp:2822
dnnl::gru_backward::primitive_desc::src_iter_desc
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8297
dnnl::vanilla_rnn_forward::primitive_desc
Primitive descriptor for a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7171
dnnl::lrn_forward::lrn_forward
lrn_forward()=default
Default constructor. Produces an empty object.
dnnl::pooling_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a pooling forward propagation primitive from a C API primitive ...
Definition: dnnl.hpp:5004
DNNL_ARG_FROM
#define DNNL_ARG_FROM
A special mnemonic for reorder source argument.
Definition: dnnl_types.h:1696
dnnl_unidirectional_right2left
@ dnnl_unidirectional_right2left
Unidirectional execution of RNN primitive from right to left.
Definition: dnnl_types.h:1393
dnnl_aBcd8b
@ dnnl_aBcd8b
4D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:248
dnnl::gru_backward::gru_backward
gru_backward(const primitive_desc &pd)
Constructs a GRU backward propagation primitive.
Definition: dnnl.hpp:8367
dnnl::algorithm::pooling_avg_include_padding
@ pooling_avg_include_padding
Average pooling include padding.
dnnl::deconvolution_backward_weights::primitive_desc::diff_dst_desc
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:4655
dnnl::layer_normalization_forward::primitive_desc::src_desc
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6293
dnnl::gru_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a GRU forward propagation primitive.
Definition: dnnl.hpp:8073
dnnl_ab
@ dnnl_ab
plain 2D tensor
Definition: dnnl_types.h:178
dnnl::logsoftmax_backward::primitive_desc
Primitive descriptor for a logsoftmax backward propagation primitive.
Definition: dnnl.hpp:5738
dnnl_query_scratchpad_engine
@ dnnl_query_scratchpad_engine
(scratch) memory, additional to all inputs and outputs memory (bytes)
Definition: dnnl_types.h:1897
dnnl::primitive_attr::set_rnn_weights_qparams
void set_rnn_weights_qparams(int mask, const std::vector< float > &scales)
Sets quantization scaling factors for RNN weights tensors.
Definition: dnnl.hpp:1243
dnnl_runtime_error
@ dnnl_runtime_error
Primitive or engine failed on execution.
Definition: dnnl_types.h:51
dnnl::query::deconvolution_d
@ deconvolution_d
deconvolution descriptor
dnnl_post_ops_get_params_eltwise
dnnl_status_t DNNL_API dnnl_post_ops_get_params_eltwise(const_dnnl_post_ops_t post_ops, int index, float *scale, dnnl_alg_kind_t *alg_kind, float *alpha, float *beta)
Returns the parameters of an elementwise post-up.
dnnl::resampling_backward::desc
Descriptor for a resampling backward propagation primitive.
Definition: dnnl.hpp:9342
dnnl::gru_backward
GRU backward propagation primitive.
Definition: dnnl.hpp:8134
dnnl_query_exec_arg_md
@ dnnl_query_exec_arg_md
memory desc of an execute argument
Definition: dnnl_types.h:1937
dnnl::lstm_backward::primitive_desc::bias_desc
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:7897
dnnl::deconvolution_forward::desc::desc
desc(prop_kind prop_kind, algorithm algorithm, 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)
Constructs a descriptor for a dilated deconvolution forward propagation primitive with bias.
Definition: dnnl.hpp:4098
dnnl::lstm_backward::primitive_desc::src_iter_desc
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7879
dnnl::layer_normalization_forward::primitive_desc::primitive_desc
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &engine, bool allow_empty=false)
Constructs a primitive descriptor for a layer normalization forward propagation primitive.
Definition: dnnl.hpp:6275
dnnl::deconvolution_forward::desc
Descriptor for a deconvolution forward propagation primitive.
Definition: dnnl.hpp:3971
dnnl::batch_normalization_backward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a batch normalization backward propagation primitive from a C A...
Definition: dnnl.hpp:6087
dnnl::query::primitive_kind
@ primitive_kind
primitive kind
dnnl_pooling_avg_exclude_padding
@ dnnl_pooling_avg_exclude_padding
Average pooling exclude padding.
Definition: dnnl_types.h:757
dnnl_binary_add
@ dnnl_binary_add
Binary add.
Definition: dnnl_types.h:779
dnnl_set_jit_dump
dnnl_status_t DNNL_API dnnl_set_jit_dump(int enable)
Configures dumping of JIT-generated code.
dnnl::eltwise_forward::primitive_desc::primitive_desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an eltwise forward propagation primitive from a C API primitive...
Definition: dnnl.hpp:5251
dnnl::vanilla_rnn_backward::primitive_desc::weights_iter_desc
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:7446
dnnl_binary_desc_init
dnnl_status_t DNNL_API dnnl_binary_desc_init(dnnl_binary_desc_t *binary_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src0_desc, const dnnl_memory_desc_t *src1_desc, const dnnl_memory_desc_t *dst_desc)
Initializes a descriptor for a binary primitive.