23 #include "dnnl_config.h" 31 #include <unordered_map> 35 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL 40 #include <CL/sycl.hpp> 57 struct error :
public std::exception {
66 : status(astatus), message(amessage) {}
69 const char *
what() const noexcept
override {
return message; }
98 template <
typename T,
typename traits = handle_traits<T>>
103 std::shared_ptr<typename std::remove_pointer<T>::type> _data {0};
106 bool operator==(
const T other)
const {
return other == _data.get(); }
107 bool operator!=(
const T other)
const {
return !(*
this == other); }
128 explicit handle(T t,
bool weak =
false) { reset(t, weak); }
133 void reset(T t,
bool weak =
false) {
134 _data.reset(t, weak ? &dummy_destructor : traits::destructor);
138 T
get(
bool allow_emtpy =
false)
const {
139 T result = _data.get();
141 if (allow_emtpy ==
false && result ==
nullptr)
143 "attempt to use uninitialized object");
148 explicit operator T()
const {
return get(
true); }
150 explicit operator bool()
const {
return get(
true) !=
nullptr; }
152 bool operator==(
const handle &other)
const {
153 return other._data.get() == _data.get();
155 bool operator!=(
const handle &other)
const {
return !(*
this == other); }
237 stream &astream,
const std::unordered_map<int, memory> &args)
const;
239 #ifdef DNNL_SYCL_DPCPP 240 cl::sycl::event DNNL_API execute_sycl(
stream &astream,
241 const std::unordered_map<int, memory> &args,
242 const std::vector<cl::sycl::event> &deps = {})
const;
253 "could not get primitive descriptor by primitive");
308 undef = dnnl_alg_kind_undef,
426 enum class rnn_flags : unsigned {
undef = dnnl_rnn_flags_undef };
432 #define DNNL_DEFINE_BITMASK_OPS(enum_name) \ 433 inline enum_name operator|(enum_name lhs, enum_name rhs) { \ 434 return static_cast<enum_name>( \ 435 static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); \ 438 inline enum_name operator&(enum_name lhs, enum_name rhs) { \ 439 return static_cast<enum_name>( \ 440 static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); \ 443 inline enum_name operator^(enum_name lhs, enum_name rhs) { \ 444 return static_cast<enum_name>( \ 445 static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); \ 448 inline enum_name &operator|=(enum_name &lhs, enum_name rhs) { \ 449 lhs = static_cast<enum_name>( \ 450 static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); \ 454 inline enum_name &operator&=(enum_name &lhs, enum_name rhs) { \ 455 lhs = static_cast<enum_name>( \ 456 static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); \ 460 inline enum_name &operator^=(enum_name &lhs, enum_name rhs) { \ 461 lhs = static_cast<enum_name>( \ 462 static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); \ 466 inline enum_name operator~(enum_name rhs) { \ 467 return static_cast<enum_name>(~static_cast<unsigned>(rhs)); \ 471 DNNL_DEFINE_BITMASK_OPS(rnn_flags)
473 #undef DNNL_DEFINE_BITMASK_OPS 475 enum class rnn_direction {
478 unidirectional = dnnl_unidirectional,
602 dnnl_post_ops_t result;
604 "could not create post operation sequence");
614 "post_ops index is out of range");
648 "could not get sum params");
661 get(), scale, convert_to_c(alg), alpha, beta),
662 "could not append eltwise");
667 float &alpha,
float &beta)
const {
670 get(), index, &scale, &c_alg, &alpha, &beta),
671 "could not get eltwise params");
691 dnnl_primitive_attr_t result;
693 "could not create a primitive attr");
701 :
handle<dnnl_primitive_attr_t>(attr) {}
708 "could not get scratchpad mode");
715 get(), dnnl::convert_to_c(mode)),
716 "could not set scratchpad mode");
724 const float *c_scales;
726 get(), &count, &c_mask, &c_scales),
727 "could not get int output scales");
728 scales.resize(count);
732 scales[c] = c_scales[c];
753 "could not set int output scales");
761 "could not get post operation sequence");
762 result.
reset(const_cast<dnnl_post_ops_t>(c_result),
true);
769 "could not set post operation sequence");
783 "could not set rnn data int scale/shift");
811 get(), (
int)scales.size(), mask, &scales[0]),
812 "could not set rnn weights int scales");
862 dnnl_engine_t aengine;
865 "could not create an engine");
869 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL 870 engine(kind akind, cl_device_id device, cl_context context) {
873 dnnl_engine_t aengine;
876 "could not create an engine");
882 DNNL_API
engine(kind akind,
const cl::sycl::device &dev,
888 const cl::sycl::context &ctx);
892 explicit engine(
const dnnl_engine_t &aengine) :
handle(aengine, true) {}
897 dnnl_engine_t engine_q;
901 "could not get engine from primitive_desc");
902 reset(engine_q,
true);
909 "could not get the engine kind");
913 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL 914 cl_context get_ocl_context()
const {
916 cl_context context =
nullptr;
918 "could not get a context handle");
924 cl_device_id device =
nullptr;
926 "could not get a device handle");
932 cl::sycl::context DNNL_API get_sycl_context()
const;
936 cl::sycl::device DNNL_API get_sycl_device()
const;
939 template <
class primitive_desc>
949 template <
class primitive_desc>
951 dnnl_engine_t engine_q;
953 dnnl::convert_to_c(what), 0, &engine_q),
954 "could not get engine from primitive_desc");
996 dnnl_stream_t astream;
999 "could not create a stream");
1003 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL 1007 dnnl_stream_t astream;
1009 "could not create a stream");
1015 cl_command_queue queue =
nullptr;
1017 "could not get OpenCL command queue");
1023 DNNL_API
stream(
const engine &eng, cl::sycl::queue &aqueue);
1030 cl::sycl::queue DNNL_API get_sycl_queue()
const;
1042 static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs));
1047 static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs));
1052 static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs));
1056 return static_cast<stream::flags>(~static_cast<
unsigned>(rhs));
1073 typedef std::vector<dim> dims;
1075 template <
typename T>
1076 static void validate_dims(
const std::vector<T> &v) {
1156 Abc16a = dnnl_Abc16a,
1157 ABc16a16b = dnnl_ABc16a16b,
1159 ABc16b16a = dnnl_ABc16b16a,
1162 ABc4b16a4b = dnnl_ABc4b16a4b,
1163 ABc4b4a = dnnl_ABc4b4a,
1164 ABc8a16b2a = dnnl_ABc8a16b2a,
1165 ABc8a8b = dnnl_ABc8a8b,
1167 ABc8b16a2b = dnnl_ABc8b16a2b,
1168 ABc8b8a = dnnl_ABc8b8a,
1169 Abcd16a = dnnl_Abcd16a,
1170 ABcd16a16b = dnnl_ABcd16a16b,
1172 ABcd16b16a = dnnl_ABcd16b16a,
1173 aBCd16b16c = dnnl_aBCd16b16c,
1174 aBCd16c16b = dnnl_aBCd16c16b,
1175 Abcd4a = dnnl_Abcd4a,
1177 ABcd4b16a4b = dnnl_ABcd4b16a4b,
1178 ABcd4b4a = dnnl_ABcd4b4a,
1179 aBCd4c16b4c = dnnl_aBCd4c16b4c,
1180 aBCd4c4b = dnnl_aBCd4c4b,
1181 ABcd8a16b2a = dnnl_ABcd8a16b2a,
1182 ABcd8a8b = dnnl_ABcd8a8b,
1185 ABcd8b16a2b = dnnl_ABcd8b16a2b,
1186 aBCd8b16c2b = dnnl_aBCd8b16c2b,
1189 aBCd8b8c = dnnl_aBCd8b8c,
1190 aBCd8c16b2c = dnnl_aBCd8c16b2c,
1191 aBCd8c8b = dnnl_aBCd8c8b,
1192 Abcde16a = dnnl_Abcde16a,
1193 ABcde16a16b = dnnl_ABcde16a16b,
1195 ABcde16b16a = dnnl_ABcde16b16a,
1196 aBCde16b16c = dnnl_aBCde16b16c,
1197 aBCde16c16b = dnnl_aBCde16c16b,
1198 aBCde2c8b4c = dnnl_aBCde2c8b4c,
1199 Abcde4a = dnnl_Abcde4a,
1201 ABcde4b4a = dnnl_ABcde4b4a,
1202 aBCde4b4c = dnnl_aBCde4b4c,
1203 aBCde4c16b4c = dnnl_aBCde4c16b4c,
1204 aBCde4c4b = dnnl_aBCde4c4b,
1205 Abcde8a = dnnl_Abcde8a,
1206 ABcde8a8b = dnnl_ABcde8a8b,
1208 ABcde8b16a2b = dnnl_ABcde8b16a2b,
1209 aBCde8b16c2b = dnnl_aBCde8b16c2b,
1210 ABcde8b8a = dnnl_ABcde8b8a,
1211 aBCde8b8c = dnnl_aBCde8b8c,
1212 ABcd4a8b8a4b = dnnl_ABcd4a8b8a4b,
1213 ABcd2a8b8a2b = dnnl_ABcd2a8b8a2b,
1214 aBCde4b8c8b4c = dnnl_aBCde4b8c8b4c,
1215 aBCde2b8c8b2c = dnnl_aBCde2b8c8b2c,
1216 aBCde8c16b2c = dnnl_aBCde8c16b2c,
1217 aBCde8c8b = dnnl_aBCde8c8b,
1219 aBCdef16b16c = dnnl_aBCdef16b16c,
1220 aBCdef16c16b = dnnl_aBCdef16c16b,
1222 aBCdef4c4b = dnnl_aBCdef4c4b,
1223 aBCdef8b8c = dnnl_aBCdef8b8c,
1224 aBCdef8c16b2c = dnnl_aBCdef8c16b2c,
1225 aBCdef8c8b = dnnl_aBCdef8c8b,
1226 aBdc16b = dnnl_aBdc16b,
1227 aBdc4b = dnnl_aBdc4b,
1228 aBdc8b = dnnl_aBdc8b,
1229 aBdec16b = dnnl_aBdec16b,
1230 aBdec4b = dnnl_aBdec4b,
1231 aBdec8b = dnnl_aBdec8b,
1232 aBdefc16b = dnnl_aBdefc16b,
1233 aCBdef16c16b = dnnl_aCBdef16c16b,
1234 aBdefc4b = dnnl_aBdefc4b,
1235 aBdefc8b = dnnl_aBdefc8b,
1236 Acb16a = dnnl_Acb16a,
1239 aCBd16b16c = dnnl_aCBd16b16c,
1240 aCBd16c16b = dnnl_aCBd16c16b,
1241 aCBde16b16c = dnnl_aCBde16b16c,
1242 aCBde16c16b = dnnl_aCBde16c16b,
1243 Acdb16a = dnnl_Acdb16a,
1244 Acdb4a = dnnl_Acdb4a,
1245 Acdb8a = dnnl_Acdb8a,
1246 Acdeb16a = dnnl_Acdeb16a,
1247 Acdeb4a = dnnl_Acdeb4a,
1248 Acdeb8a = dnnl_Acdeb8a,
1249 BAc16a16b = dnnl_BAc16a16b,
1250 BAc16b16a = dnnl_BAc16b16a,
1251 BAcd16a16b = dnnl_BAcd16a16b,
1252 BAcd16b16a = dnnl_BAcd16b16a,
1253 ABcd32a32b = dnnl_ABcd32a32b,
1254 BAcde16b16 = dnnl_BAcde16b16a,
1255 aBdec32b = dnnl_aBdec32b,
1256 Abcdef16a = dnnl_Abcdef16a,
1257 Acdb32a = dnnl_Acdb32a,
1310 NCw16n16c = dnnl_NCw16n16c,
1311 NChw16n16c = dnnl_NChw16n16c,
1312 NCdhw16n16c = dnnl_NCdhw16n16c,
1313 NChw32n32c = dnnl_NChw32n32c,
1314 IOhw16i16o = dnnl_IOhw16i16o,
1315 Ohwi32o = dnnl_Ohwi32o,
1316 IOdhw16i16o = dnnl_IOdhw16i16o,
1317 gIOhw16i16o = dnnl_gIOhw16i16o,
1318 gOhwi32o = dnnl_gOhwi32o,
1319 Goidhw16g = dnnl_Goidhw16g,
1320 IOw16o16i = dnnl_IOw16o16i,
1321 OIw16i16o = dnnl_OIw16i16o,
1322 IOw16i16o = dnnl_IOw16i16o,
1323 gIOw16i16o = dnnl_gIOw16i16o,
1324 OIw16o16i = dnnl_OIw16o16i,
1325 Oiw16o = dnnl_Oiw16o,
1326 OIw4i16o4i = dnnl_OIw4i16o4i,
1327 OIw4i4o = dnnl_OIw4i4o,
1329 OIw8i16o2i = dnnl_OIw8i16o2i,
1330 OIw8i8o = dnnl_OIw8i8o,
1331 OIw8o16i2o = dnnl_OIw8o16i2o,
1332 OIw8o8i = dnnl_OIw8o8i,
1333 Owi16o = dnnl_Owi16o,
1336 IOhw16o16i = dnnl_IOhw16o16i,
1337 Ohwi16o = dnnl_Ohwi16o,
1338 Ohwi4o = dnnl_Ohwi4o,
1339 Ohwi8o = dnnl_Ohwi8o,
1340 OIhw16i16o = dnnl_OIhw16i16o,
1341 OIhw16o16i = dnnl_OIhw16o16i,
1342 Oihw16o = dnnl_Oihw16o,
1343 OIhw4i16o4i = dnnl_OIhw4i16o4i,
1344 OIhw4i4o = dnnl_OIhw4i4o,
1345 Oihw4o = dnnl_Oihw4o,
1346 OIhw8i16o2i = dnnl_OIhw8i16o2i,
1347 OIhw8i8o = dnnl_OIhw8i8o,
1348 OIhw8o16i2o = dnnl_OIhw8o16i2o,
1349 OIhw8o8i = dnnl_OIhw8o8i,
1350 Odhwi16o = dnnl_Odhwi16o,
1351 Odhwi4o = dnnl_Odhwi4o,
1352 Odhwi8o = dnnl_Odhwi8o,
1353 OIdhw16i16o = dnnl_OIdhw16i16o,
1354 OIdhw16o16i = dnnl_OIdhw16o16i,
1355 Oidhw16o = dnnl_Oidhw16o,
1356 OIdhw4i4o = dnnl_OIdhw4i4o,
1357 Oidhw4o = dnnl_Oidhw4o,
1358 OIdhw8i16o2i = dnnl_OIdhw8i16o2i,
1359 OIdhw8i8o = dnnl_OIdhw8i8o,
1360 OIdhw8o8i = dnnl_OIdhw8o8i,
1361 gIOw16o16i = dnnl_gIOw16o16i,
1362 gOIw16i16o = dnnl_gOIw16i16o,
1363 gOIw16o16i = dnnl_gOIw16o16i,
1364 gOiw16o = dnnl_gOiw16o,
1365 gOIw4i16o4i = dnnl_gOIw4i16o4i,
1366 gOIw4i4o = dnnl_gOIw4i4o,
1367 gOiw4o = dnnl_gOiw4o,
1368 gOIw8i16o2i = dnnl_gOIw8i16o2i,
1369 gOIw8i8o = dnnl_gOIw8i8o,
1370 gOIw8o16i2o = dnnl_gOIw8o16i2o,
1371 gOIw8o8i = dnnl_gOIw8o8i,
1372 gOwi16o = dnnl_gOwi16o,
1373 gOwi4o = dnnl_gOwi4o,
1374 gOwi8o = dnnl_gOwi8o,
1375 gIOhw16o16i = dnnl_gIOhw16o16i,
1376 gOhwi16o = dnnl_gOhwi16o,
1377 gOhwi4o = dnnl_gOhwi4o,
1378 gOhwi8o = dnnl_gOhwi8o,
1379 Goihw16g = dnnl_Goihw16g,
1380 gOIhw16i16o = dnnl_gOIhw16i16o,
1381 gOIhw16o16i = dnnl_gOIhw16o16i,
1382 gOihw16o = dnnl_gOihw16o,
1383 gOIhw2i8o4i = dnnl_gOIhw2i8o4i,
1384 gOIhw4i16o4i = dnnl_gOIhw4i16o4i,
1385 gOIhw4i4o = dnnl_gOIhw4i4o,
1386 gOIhw4o4i = dnnl_gOIhw4o4i,
1387 gOihw4o = dnnl_gOihw4o,
1388 Goihw8g = dnnl_Goihw8g,
1389 gOIhw8i16o2i = dnnl_gOIhw8i16o2i,
1390 gOIhw8i8o = dnnl_gOIhw8i8o,
1391 gOIhw8o16i2o = dnnl_gOIhw8o16i2o,
1392 OIhw4o8i8o4i = dnnl_OIhw4o8i8o4i,
1393 OIhw2o8i8o2i = dnnl_OIhw2o8i8o2i,
1394 gOIhw4o8i8o4i = dnnl_gOIhw4o8i8o4i,
1395 gOIhw2o8i8o2i = dnnl_gOIhw2o8i8o2i,
1396 gOIhw8o8i = dnnl_gOIhw8o8i,
1397 gIOdhw16i16o = dnnl_gIOdhw16i16o,
1398 gOdhwi16o = dnnl_gOdhwi16o,
1399 gOdhwi4o = dnnl_gOdhwi4o,
1400 gOdhwi8o = dnnl_gOdhwi8o,
1401 gOIdhw16i16o = dnnl_gOIdhw16i16o,
1402 gOIdhw16o16i = dnnl_gOIdhw16o16i,
1403 gOidhw16o = dnnl_gOidhw16o,
1404 gOIdhw4i4o = dnnl_gOIdhw4i4o,
1405 gOidhw4o = dnnl_gOidhw4o,
1406 gOIdhw8i16o2i = dnnl_gOIdhw8i16o2i,
1407 gOIdhw8i8o = dnnl_gOIdhw8i8o,
1408 gOIdhw8o8i = dnnl_gOIdhw8o8i,
1426 validate_dims(adims);
1429 adims.size() == 0 ? nullptr : &adims[0],
1430 convert_to_c(adata_type),
1431 convert_to_c(aformat_tag)),
1432 "could not initialize a memory descriptor by tag");
1441 validate_dims(adims);
1444 adims.size() == 0 ? nullptr : &adims[0],
1445 convert_to_c(adata_type),
1446 astrides.size() == 0 ? nullptr : &astrides[0]),
1447 "could not initialize a memory descriptor by strides");
1462 &sub_md, &data, &adims[0], &offsets[0]),
1463 "could not initialize a sub-memory");
1464 return desc(sub_md);
1471 (
int)adims.size(), &adims[0]),
1472 "could not reshape a memory descriptor");
1473 return desc(out_md);
1483 bool operator==(
const desc &other)
const {
1487 bool operator!=(
const desc &other)
const {
return !operator==(other); }
1499 #ifdef DNNL_USE_DPCPP_USM 1500 :
memory(with_sycl_tag {}, md, aengine, ahandle,
true) {
1503 :
memory(with_sycl_tag {}, md, aengine, ahandle,
false) {
1513 dnnl_memory_t result;
1516 "could not create a memory");
1521 #if DNNL_WITH_SYCL && defined(DNNL_USE_SYCL_BUFFERS) 1522 template <
typename T,
int ndims = 1>
1529 cl::sycl::buffer<T, ndims> &buf)
1530 :
memory(md, aengine, DNNL_MEMORY_NONE) {
1531 set_sycl_buffer(buf);
1540 :
memory(md, aengine, DNNL_MEMORY_ALLOCATE) {}
1546 "could not get memory descriptor from a memory");
1547 return desc(*cdesc);
1552 dnnl_engine_t engine_q;
1554 "could not get engine from a memory");
1564 "could not get native handle");
1568 void set_data_handle(
void *
handle)
const {
1570 "could not set native handle");
1588 template <
typename T =
void>
1592 "could not map the data");
1593 return static_cast<T *
>(mapped_ptr);
1606 "could not unmap the data");
1609 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL 1610 cl_mem get_ocl_mem_object()
const {
1614 "could not get OpenCL memory object");
1621 "could not set OpenCL memory object");
1625 #if DNNL_WITH_SYCL && defined(DNNL_USE_SYCL_BUFFERS) 1626 template <
typename T,
int ndims = 1>
1632 static_assert(ndims == 1,
"only 1D buffers supported");
1636 "could not get SYCL buffer object");
1641 return cl::sycl::buffer<T, ndims>(cl::sycl::range<1>(1));
1643 auto &buf_u8 = *
static_cast<cl::sycl::buffer<uint8_t, 1> *
>(handle_ptr);
1644 if (offset) *offset = 0;
1645 auto range = cl::sycl::range<1>(buf_u8.get_size() /
sizeof(T));
1646 return buf_u8.reinterpret<T, 1>(range);
1654 template <
typename T,
int ndims>
1656 auto range = cl::sycl::range<1>(buf.get_size());
1657 auto buf_u8 = buf.template reinterpret<uint8_t, 1>(range);
1659 get(), static_cast<void *>(&buf_u8)),
1660 "could not set SYCL buffer object");
1674 struct with_sycl_tag {};
1677 void *ahandle,
bool is_usm);
1682 return a == memory::convert_to_c(b);
1695 return a == memory::convert_to_c(b);
1729 "could not query implementation info string");
1737 get(), dnnl::convert_to_c(q), 0, &res);
1746 if (!std::any_of(valid_q.cbegin(), valid_q.cend(),
1747 [=](
query q) {
return what == q; }))
1751 get(), dnnl::convert_to_c(what), idx);
1765 dnnl_engine_t engine_q;
1769 "could not get scratchpad engine from a primitive_desc");
1778 "could not get attributes");
1779 dnnl_primitive_attr_t cattr;
1781 "could not clone attributes");
1788 dnnl_primitive_desc_t new_pd;
1790 "could not clone primitive descriptor");
1812 if (pd ==
nullptr)
return;
1825 "could not get primitive kind from the primitive descriptor");
1826 if (pd_kind != c_prim_kind)
1828 "primitive descriptor operation kind mismatch");
1838 "could not get propagation kind " 1839 "from the primitive descriptor");
1844 && (pd_prop_kind == c_prop_kind1
1845 || pd_prop_kind == c_prop_kind2))) {
1846 reset_with_clone(pd);
1852 "primitive descriptor propagation kind mismatch");
1871 using primitive_desc_base::primitive_desc_base;
1873 primitive_desc() =
default;
1878 dnnl_primitive_desc_t result;
1881 src_engine.
get(), &dst_md.
data, dst_engine.
get(),
1883 "could not create a reorder primitive descriptor");
1889 dnnl_primitive_desc_t result;
1896 "could not create a reorder primitive descriptor");
1902 primitive_desc(dnnl_primitive_desc_t pd)
1905 engine get_src_engine()
const {
1909 engine get_dst_engine()
const {
1919 :
primitive(primitive_desc(src, dst).
get()) {}
1921 using primitive::execute;
1924 primitive::execute(astream, {{DNNL_ARG_FROM, src}, {DNNL_ARG_TO, dst}});
1927 #ifdef DNNL_SYCL_DPCPP 1928 using primitive::execute_sycl;
1931 const std::vector<cl::sycl::event> &deps = {})
const {
1932 return primitive::execute_sycl(astream,
1933 {{DNNL_ARG_FROM, src},
1951 inline std::vector<dnnl_memory_desc_t> convert_to_c(
1952 const std::vector<memory::desc> &mems) {
1953 std::vector<dnnl_memory_desc_t> c_api_mems;
1954 c_api_mems.reserve(mems.size());
1955 for (
const auto &s : mems)
1956 c_api_mems.push_back(s.data);
1970 using primitive_desc_base::primitive_desc_base;
1972 primitive_desc(
const memory::desc &dst,
int concat_dimension,
1973 const std::vector<memory::desc> &srcs,
const engine &aengine,
1975 auto c_api_srcs = convert_to_c(srcs);
1977 dnnl_primitive_desc_t result;
1980 (
int)c_api_srcs.size(), concat_dimension,
1981 &c_api_srcs[0], aattr.get(), aengine.
get()),
1982 "could not create a concat primitive descriptor");
1986 primitive_desc(
int concat_dimension,
1987 const std::vector<memory::desc> &srcs,
const engine &aengine,
1989 auto c_api_srcs = convert_to_c(srcs);
1991 dnnl_primitive_desc_t result;
1994 (
int)c_api_srcs.size(), concat_dimension,
1995 &c_api_srcs[0], aattr.get(), aengine.
get()),
1996 "could not create a concat primitive descriptor");
2002 primitive_desc(dnnl_primitive_desc_t pd)
2030 using primitive_desc_base::primitive_desc_base;
2032 primitive_desc() =
default;
2035 const std::vector<float> &scales,
2036 const std::vector<memory::desc> &srcs,
const engine &aengine,
2041 "number of scales not equal to number of srcs");
2043 auto c_api_srcs = convert_to_c(srcs);
2045 dnnl_primitive_desc_t result;
2048 (
int)c_api_srcs.size(), &scales[0], &c_api_srcs[0],
2049 aattr.get(), aengine.
get()),
2050 "could not create a sum primitive descriptor");
2054 primitive_desc(
const std::vector<float> &scales,
2055 const std::vector<memory::desc> &srcs,
const engine &aengine,
2060 "number of scales not equal to number of srcs");
2062 auto c_api_srcs = convert_to_c(srcs);
2063 dnnl_primitive_desc_t result;
2066 (
int)c_api_srcs.size(), &scales[0], &c_api_srcs[0],
2067 aattr.get(), aengine.
get()),
2068 "could not create a sum primitive descriptor");
2074 primitive_desc(dnnl_primitive_desc_t pd)
2099 using primitive_desc_base::primitive_desc_base;
2110 bool allow_empty =
false)
2111 : allow_empty(allow_empty) {
2112 dnnl_primitive_desc_iterator_t iterator =
nullptr;
2114 desc, attr ? attr->
get() :
nullptr, e.
get(), hint_fwd_pd);
2117 status,
"could not create a primitive descriptor iterator");
2118 pd_iterator.reset(iterator);
2139 bool allow_empty =
false;
2143 pd_iterator.
get(allow_empty));
2146 "could not fetch a primitive descriptor from the iterator");
2182 const memory::dims &strides,
const memory::dims &padding_l,
2183 const memory::dims &padding_r) {
2184 memory::validate_dims(strides);
2185 memory::validate_dims(padding_l);
2186 memory::validate_dims(padding_r);
2189 dnnl::convert_to_c(aprop_kind),
2190 convert_to_c(aalgorithm), &src_desc.
data,
2192 &strides[0], &padding_l[0], &padding_r[0]),
2193 "could not create a convolution forward descriptor");
2206 const memory::desc &dst_desc,
const memory::dims &strides,
2207 const memory::dims &padding_l,
const memory::dims &padding_r) {
2208 memory::validate_dims(strides);
2209 memory::validate_dims(padding_l);
2210 memory::validate_dims(padding_r);
2213 dnnl::convert_to_c(aprop_kind),
2214 convert_to_c(aalgorithm), &src_desc.
data,
2215 &weights_desc.
data,
nullptr, &dst_desc.
data,
2216 &strides[0], &padding_l[0], &padding_r[0]),
2217 "could not create a convolution forward descriptor");
2231 const memory::dims &strides,
const memory::dims &dilates,
2232 const memory::dims &padding_l,
const memory::dims &padding_r) {
2233 memory::validate_dims(strides);
2234 memory::validate_dims(dilates);
2235 memory::validate_dims(padding_l);
2236 memory::validate_dims(padding_r);
2238 dnnl::convert_to_c(aprop_kind),
2239 convert_to_c(aalgorithm), &src_desc.
data,
2240 &weights_desc.
data, &bias_desc.
data,
2241 &dst_desc.
data, &strides[0], &dilates[0],
2242 &padding_l[0], &padding_r[0]),
2243 "could not create a dilated convolution forward " 2257 const memory::desc &dst_desc,
const memory::dims &strides,
2258 const memory::dims &dilates,
const memory::dims &padding_l,
2259 const memory::dims &padding_r) {
2260 memory::validate_dims(strides);
2261 memory::validate_dims(dilates);
2262 memory::validate_dims(padding_l);
2263 memory::validate_dims(padding_r);
2265 dnnl::convert_to_c(aprop_kind),
2266 convert_to_c(aalgorithm), &src_desc.
data,
2267 &weights_desc.
data,
nullptr,
2268 &dst_desc.
data, &strides[0], &dilates[0],
2269 &padding_l[0], &padding_r[0]),
2270 "could not create a dilated convolution forward " 2284 &desc.data, nullptr, e, nullptr, allow_empty) {}
2289 const engine &e,
bool allow_empty =
false)
2345 const memory::desc &diff_dst_desc,
const memory::dims &strides,
2346 const memory::dims &padding_l,
const memory::dims &padding_r) {
2347 memory::validate_dims(strides);
2348 memory::validate_dims(padding_l);
2349 memory::validate_dims(padding_r);
2352 convert_to_c(aalgorithm), &diff_src_desc.
data,
2353 &weights_desc.
data, &diff_dst_desc.
data,
2354 &strides[0], &padding_l[0], &padding_r[0]),
2355 "could not create a convolution backward data descriptor");
2366 const memory::desc &diff_dst_desc,
const memory::dims &strides,
2367 const memory::dims &dilates,
const memory::dims &padding_l,
2368 const memory::dims &padding_r) {
2369 memory::validate_dims(strides);
2370 memory::validate_dims(dilates);
2371 memory::validate_dims(padding_l);
2372 memory::validate_dims(padding_r);
2375 convert_to_c(aalgorithm), &diff_src_desc.
data,
2376 &weights_desc.
data, &diff_dst_desc.
data,
2377 &strides[0], &dilates[0], &padding_l[0],
2379 "could not create a convolution backward data descriptor");
2391 bool allow_empty =
false)
2393 &desc.data, nullptr, e, hint_fwd_pd.get(), allow_empty) {}
2400 bool allow_empty =
false)
2402 &desc.data, &attr, e, hint_fwd_pd.get(), allow_empty) {}
2452 const memory::desc &diff_dst_desc,
const memory::dims &strides,
2453 const memory::dims &padding_l,
const memory::dims &padding_r) {
2454 memory::validate_dims(strides);
2455 memory::validate_dims(padding_l);
2456 memory::validate_dims(padding_r);
2459 convert_to_c(aalgorithm), &src_desc.
data,
2460 &diff_weights_desc.
data, &diff_bias_desc.
data,
2461 &diff_dst_desc.
data, &strides[0], &padding_l[0],
2463 "could not create a convolution backward weights " 2475 const memory::desc &diff_dst_desc,
const memory::dims &strides,
2476 const memory::dims &padding_l,
const memory::dims &padding_r) {
2477 memory::validate_dims(strides);
2478 memory::validate_dims(padding_l);
2479 memory::validate_dims(padding_r);
2481 convert_to_c(aalgorithm), &src_desc.
data,
2482 &diff_weights_desc.
data,
nullptr,
2483 &diff_dst_desc.
data, &strides[0],
2484 &padding_l[0], &padding_r[0]),
2485 "could not create a convolution backward weights " 2498 const memory::desc &diff_dst_desc,
const memory::dims &strides,
2499 const memory::dims &dilates,
const memory::dims &padding_l,
2500 const memory::dims &padding_r) {
2501 memory::validate_dims(strides);
2502 memory::validate_dims(dilates);
2503 memory::validate_dims(padding_l);
2504 memory::validate_dims(padding_r);
2507 convert_to_c(aalgorithm), &src_desc.
data,
2508 &diff_weights_desc.
data, &diff_bias_desc.
data,
2509 &diff_dst_desc.
data, &strides[0], &dilates[0],
2510 &padding_l[0], &padding_r[0]),
2511 "could not create a convolution backward weights " 2523 const memory::desc &diff_dst_desc,
const memory::dims &strides,
2524 const memory::dims &dilates,
const memory::dims &padding_l,
2525 const memory::dims &padding_r) {
2526 memory::validate_dims(strides);
2527 memory::validate_dims(dilates);
2528 memory::validate_dims(padding_l);
2529 memory::validate_dims(padding_r);
2532 convert_to_c(aalgorithm), &src_desc.
data,
2533 &diff_weights_desc.
data,
nullptr,
2534 &diff_dst_desc.
data, &strides[0], &dilates[0],
2535 &padding_l[0], &padding_r[0]),
2536 "could not create a convolution backward weights " 2548 bool allow_empty =
false)
2550 &desc.data, nullptr, e, hint_fwd_pd.get(), allow_empty) {}
2557 bool allow_empty =
false)
2559 &desc.data, &attr, e, hint_fwd_pd.get(), allow_empty) {}
2622 const memory::dims &strides,
const memory::dims &padding_l,
2623 const memory::dims &padding_r) {
2624 memory::validate_dims(strides);
2625 memory::validate_dims(padding_l);
2626 memory::validate_dims(padding_r);
2629 dnnl::convert_to_c(aprop_kind),
2630 convert_to_c(aalgorithm), &src_desc.
data,
2632 &strides[0], &padding_l[0], &padding_r[0]),
2633 "could not create a deconvolution forward descriptor");
2646 const memory::desc &dst_desc,
const memory::dims &strides,
2647 const memory::dims &padding_l,
const memory::dims &padding_r) {
2648 memory::validate_dims(strides);
2649 memory::validate_dims(padding_l);
2650 memory::validate_dims(padding_r);
2653 dnnl::convert_to_c(aprop_kind),
2654 convert_to_c(aalgorithm), &src_desc.
data,
2655 &weights_desc.
data,
nullptr, &dst_desc.
data,
2656 &strides[0], &padding_l[0], &padding_r[0]),
2657 "could not create a deconvolution forward descriptor");
2671 const memory::dims &strides,
const memory::dims &dilates,
2672 const memory::dims &padding_l,
const memory::dims &padding_r) {
2673 memory::validate_dims(strides);
2674 memory::validate_dims(dilates);
2675 memory::validate_dims(padding_l);
2676 memory::validate_dims(padding_r);
2678 &data, dnnl::convert_to_c(aprop_kind),
2679 convert_to_c(aalgorithm), &src_desc.
data,
2680 &weights_desc.
data, &bias_desc.
data,
2681 &dst_desc.
data, &strides[0], &dilates[0],
2682 &padding_l[0], &padding_r[0]),
2683 "could not create a dilated deconvolution forward " 2697 const memory::desc &dst_desc,
const memory::dims &strides,
2698 const memory::dims &dilates,
const memory::dims &padding_l,
2699 const memory::dims &padding_r) {
2700 memory::validate_dims(strides);
2701 memory::validate_dims(dilates);
2702 memory::validate_dims(padding_l);
2703 memory::validate_dims(padding_r);
2705 &data, dnnl::convert_to_c(aprop_kind),
2706 convert_to_c(aalgorithm), &src_desc.
data,
2707 &weights_desc.
data,
nullptr,
2708 &dst_desc.
data, &strides[0], &dilates[0],
2709 &padding_l[0], &padding_r[0]),
2710 "could not create a dilated deconvolution forward " 2724 &desc.data, nullptr, e, nullptr, allow_empty) {}
2729 const engine &e,
bool allow_empty =
false)
2785 const memory::desc &diff_dst_desc,
const memory::dims &strides,
2786 const memory::dims &padding_l,
const memory::dims &padding_r) {
2787 memory::validate_dims(strides);
2788 memory::validate_dims(padding_l);
2789 memory::validate_dims(padding_r);
2792 convert_to_c(aalgorithm), &diff_src_desc.
data,
2793 &weights_desc.
data, &diff_dst_desc.
data,
2794 &strides[0], &padding_l[0], &padding_r[0]),
2795 "could not create a deconvolution backward data " 2807 const memory::desc &diff_dst_desc,
const memory::dims &strides,
2808 const memory::dims &dilates,
const memory::dims &padding_l,
2809 const memory::dims &padding_r) {
2810 memory::validate_dims(strides);
2811 memory::validate_dims(dilates);
2812 memory::validate_dims(padding_l);
2813 memory::validate_dims(padding_r);
2816 convert_to_c(aalgorithm), &diff_src_desc.
data,
2817 &weights_desc.
data, &diff_dst_desc.
data,
2818 &strides[0], &dilates[0], &padding_l[0],
2820 "could not create a dilated deconvolution backward data " 2833 bool allow_empty =
false)
2835 &desc.data, nullptr, e, hint_fwd_pd.get(), allow_empty) {}
2842 bool allow_empty =
false)
2844 &desc.data, &attr, e, hint_fwd_pd.get(), allow_empty) {}
2894 const memory::desc &diff_dst_desc,
const memory::dims &strides,
2895 const memory::dims &padding_l,
const memory::dims &padding_r) {
2896 memory::validate_dims(strides);
2897 memory::validate_dims(padding_l);
2898 memory::validate_dims(padding_r);
2901 convert_to_c(aalgorithm), &src_desc.
data,
2902 &diff_weights_desc.
data, &diff_bias_desc.
data,
2903 &diff_dst_desc.
data, &strides[0], &padding_l[0],
2905 "could not create a deconvolution backward weights " 2917 const memory::desc &diff_dst_desc,
const memory::dims &strides,
2918 const memory::dims &padding_l,
const memory::dims &padding_r) {
2919 memory::validate_dims(strides);
2920 memory::validate_dims(padding_l);
2921 memory::validate_dims(padding_r);
2923 &data, convert_to_c(aalgorithm),
2924 &src_desc.
data, &diff_weights_desc.
data,
2925 nullptr, &diff_dst_desc.
data, &strides[0],
2926 &padding_l[0], &padding_r[0]),
2927 "could not create a deconvolution backward weights " 2940 const memory::desc &diff_dst_desc,
const memory::dims &strides,
2941 const memory::dims &dilates,
const memory::dims &padding_l,
2942 const memory::dims &padding_r) {
2943 memory::validate_dims(strides);
2944 memory::validate_dims(dilates);
2945 memory::validate_dims(padding_l);
2946 memory::validate_dims(padding_r);
2949 convert_to_c(aalgorithm), &src_desc.
data,
2950 &diff_weights_desc.
data, &diff_bias_desc.
data,
2951 &diff_dst_desc.
data, &strides[0], &dilates[0],
2952 &padding_l[0], &padding_r[0]),
2953 "could not create a dilated deconvolution backward " 2954 "weights descriptor");
2965 const memory::desc &diff_dst_desc,
const memory::dims &strides,
2966 const memory::dims &dilates,
const memory::dims &padding_l,
2967 const memory::dims &padding_r) {
2968 memory::validate_dims(strides);
2969 memory::validate_dims(dilates);
2970 memory::validate_dims(padding_l);
2971 memory::validate_dims(padding_r);
2974 convert_to_c(aalgorithm), &src_desc.
data,
2975 &diff_weights_desc.
data,
nullptr,
2976 &diff_dst_desc.
data, &strides[0], &dilates[0],
2977 &padding_l[0], &padding_r[0]),
2978 "could not create a dilated deconvolution backward weights " 2990 bool allow_empty =
false)
2992 &desc.data, nullptr, e, hint_fwd_pd.get(), allow_empty) {}
2999 bool allow_empty =
false)
3001 &desc.data, &attr, e, hint_fwd_pd.get(), allow_empty) {}
3060 float alpha,
float beta,
float k = 1.f) {
3062 dnnl::convert_to_c(aprop_kind),
3063 convert_to_c(aalgorithm), &src_desc.
data,
3064 local_size, alpha, beta, k),
3065 "could not create a lrn forward descriptor");
3077 &desc.data,
nullptr, e,
nullptr, allow_empty) {}
3080 const engine &e,
bool allow_empty =
false)
3124 const memory::desc &diff_data_desc, memory::dim local_size,
3125 float alpha,
float beta,
float k = 1.f) {
3128 &diff_data_desc.
data, &data_desc.
data, local_size,
3130 "could not create a lrn backward descriptor");
3141 bool allow_empty =
false)
3143 &desc.data,
nullptr, e, hint_fwd_pd.
get(), allow_empty) {}
3147 bool allow_empty =
false)
3149 &desc.data, &attr, e, hint_fwd_pd.
get(), allow_empty) {}
3205 const memory::dims &strides,
const memory::dims &kernel,
3206 const memory::dims &padding_l,
const memory::dims &padding_r) {
3207 memory::validate_dims(strides);
3208 memory::validate_dims(kernel);
3209 memory::validate_dims(padding_l);
3210 memory::validate_dims(padding_r);
3212 dnnl::convert_to_c(aprop_kind),
3213 convert_to_c(aalgorithm), &src_desc.
data,
3214 &dst_desc.
data, &strides[0], &kernel[0],
3215 &padding_l[0], &padding_r[0]),
3216 "could not init a forward pooling descriptor");
3227 &desc.data,
nullptr, e,
nullptr, allow_empty) {}
3230 const engine &e,
bool allow_empty =
false)
3260 struct pooling_backward :
public primitive {
3270 const memory::desc &diff_dst_desc,
const memory::dims &strides,
3271 const memory::dims &kernel,
const memory::dims &padding_l,
3272 const memory::dims &padding_r) {
3273 memory::validate_dims(strides);
3274 memory::validate_dims(kernel);
3275 memory::validate_dims(padding_l);
3276 memory::validate_dims(padding_r);
3279 convert_to_c(aalgorithm), &diff_src_desc.
data,
3280 &diff_dst_desc.
data, &strides[0], &kernel[0],
3281 &padding_l[0], &padding_r[0]),
3282 "could not init a backward pooling descriptor");
3292 bool allow_empty =
false)
3294 &desc.data,
nullptr, e, hint_fwd_pd.
get(), allow_empty) {}
3299 bool allow_empty =
false)
3301 &desc.data, &attr, e, hint_fwd_pd.
get(), allow_empty) {}
3327 pooling_backward() =
default;
3363 const memory::desc &src_desc,
float alpha = 0,
float beta = 0) {
3365 dnnl::convert_to_c(aprop_kind),
3366 dnnl::convert_to_c(aalgorithm),
3367 &src_desc.
data, alpha, beta),
3368 "could not create a eltwise forward descriptor");
3379 &desc.data,
nullptr, e,
nullptr, allow_empty) {}
3382 const engine &e,
bool allow_empty =
false)
3420 dnnl::convert_to_c(aalgorithm),
3421 &diff_data_desc.
data, &data_desc.
data, alpha, beta),
3422 "could not create a eltwise backward descriptor");
3432 bool allow_empty =
false)
3434 &desc.data,
nullptr, e, hint_fwd_pd.
get(), allow_empty) {}
3439 bool allow_empty =
false)
3441 &desc.data, &attr, e, hint_fwd_pd.
get(), allow_empty) {}
3491 dnnl::convert_to_c(aprop_kind),
3492 &data_desc.
data, softmax_axis),
3493 "could not create a softmax forward descriptor");
3504 &desc.data,
nullptr, e,
nullptr, allow_empty) {}
3507 const engine &e,
bool allow_empty =
false)
3544 &data_desc.
data, softmax_axis),
3545 "could not init a backward softmax descriptor");
3555 bool allow_empty =
false)
3557 &desc.data,
nullptr, e, hint_fwd_pd.
get(), allow_empty) {}
3562 bool allow_empty =
false)
3564 &desc.data, &attr, e, hint_fwd_pd.
get(), allow_empty) {}
3631 dnnl::convert_to_c(aprop_kind), &src_desc.
data,
3632 epsilon, convert_to_c(flags)),
3633 "could not create a batch normalization forward " 3645 &desc.data,
nullptr, e,
nullptr, allow_empty) {}
3648 const engine &e,
bool allow_empty =
false)
3695 "could not get a batch-normalization descriptor");
3727 dnnl::convert_to_c(aprop_kind),
3728 &diff_data_desc.
data, &data_desc.
data,
3729 epsilon, convert_to_c(flags)),
3730 "could not create a batch normalization backward " 3741 bool allow_empty =
false)
3743 &desc.data,
nullptr, e, hint_fwd_pd.
get(), allow_empty) {}
3748 bool allow_empty =
false)
3750 &desc.data, &attr, e, hint_fwd_pd.
get(), allow_empty) {}
3849 dnnl::convert_to_c(aprop_kind), &src_desc.
data,
3850 &stat_desc.
data, epsilon, convert_to_c(flags)),
3851 "could not create a layer normalization forward " 3859 dnnl::convert_to_c(aprop_kind), &src_desc.
data,
3860 nullptr, epsilon, convert_to_c(flags)),
3861 "could not create a layer normalization forward " 3873 &desc.data,
nullptr, e,
nullptr, allow_empty) {}
3876 const engine &e,
bool allow_empty =
false)
3923 "could not get a layer-normalization descriptor");
3956 dnnl::convert_to_c(aprop_kind),
3957 &diff_data_desc.
data, &data_desc.
data,
3958 &stat_desc.
data, epsilon, convert_to_c(flags)),
3959 "could not create a layer normalization backward " 3967 dnnl::convert_to_c(aprop_kind),
3968 &diff_data_desc.
data, &data_desc.
data,
3969 nullptr, epsilon, convert_to_c(flags)),
3970 "could not create a layer normalization backward " 3981 bool allow_empty =
false)
3983 &desc.data,
nullptr, e, hint_fwd_pd.
get(), allow_empty) {}
3988 bool allow_empty =
false)
3990 &desc.data, &attr, e, hint_fwd_pd.
get(), allow_empty) {}
4075 dnnl::convert_to_c(aprop_kind),
4076 &src_desc.
data, &weights_desc.
data,
4078 "could not create a inner product forward descriptor");
4086 dnnl::convert_to_c(aprop_kind), &src_desc.
data,
4087 &weights_desc.
data,
nullptr, &dst_desc.
data),
4088 "could not create a inner product forward descriptor");
4099 &desc.data,
nullptr, e,
nullptr, allow_empty) {}
4102 const engine &e,
bool allow_empty =
false)
4153 &diff_src_desc.
data, &weights_desc.
data,
4154 &diff_dst_desc.
data),
4155 "could not create a inner product backward data " 4167 bool allow_empty =
false)
4169 &desc.data,
nullptr, e, hint_fwd_pd.
get(), allow_empty) {}
4174 bool allow_empty =
false)
4176 &desc.data, &attr, e, hint_fwd_pd.
get(), allow_empty) {}
4222 &src_desc.
data, &diff_weights_desc.
data,
4223 &diff_bias_desc.
data, &diff_dst_desc.
data),
4224 "could not create a inner product backward weights " 4232 &src_desc.
data, &diff_weights_desc.
data,
nullptr,
4233 &diff_dst_desc.
data),
4234 "could not create a inner product backward weights " 4246 bool allow_empty =
false)
4248 &desc.data,
nullptr, e, hint_fwd_pd.
get(), allow_empty) {}
4253 bool allow_empty =
false)
4255 &desc.data, &attr, e, hint_fwd_pd.
get(), allow_empty) {}
4297 using primitive_desc::primitive_desc;
4299 rnn_primitive_desc_base() =
default;
4304 rnn_primitive_desc_base(dnnl_primitive_desc_t pd,
4311 rc,
"could not retrieve rnn_desc from a primitive descriptor");
4324 reset_with_clone(pd);
4331 : rnn_primitive_desc_base(pd, prop_kind, prop_kind, cell_kind) {}
4362 rnn_direction direction,
const memory::desc &src_layer_desc,
4369 rnn_flags flags = rnn_flags::undef,
float alpha = 0.0f,
4370 float beta = 0.0f) {
4373 dnnl::convert_to_c(aprop_kind),
4374 dnnl::convert_to_c(activation),
4375 dnnl::convert_to_c(direction), &src_layer_desc.
data,
4376 &src_iter_desc.
data, &weights_layer_desc.
data,
4377 &weights_iter_desc.
data, &bias_desc.
data,
4378 &dst_layer_desc.
data, &dst_iter_desc.
data,
4379 dnnl::convert_to_c(flags), alpha, beta),
4380 "could not create an RNN forward descriptor");
4390 : rnn_primitive_desc_base(
4391 &desc.data,
nullptr, e,
nullptr, allow_empty) {}
4394 const engine &e,
bool allow_empty =
false)
4395 : rnn_primitive_desc_base(
4396 &desc.data, &attr, e,
nullptr, allow_empty) {}
4489 rnn_direction direction,
const memory::desc &src_layer_desc,
4503 rnn_flags flags = rnn_flags::undef,
float alpha = 0.0f,
4504 float beta = 0.0f) {
4507 dnnl::convert_to_c(aprop_kind),
4508 dnnl::convert_to_c(activation),
4509 dnnl::convert_to_c(direction), &src_layer_desc.
data,
4510 &src_iter_desc.
data, &weights_layer_desc.
data,
4511 &weights_iter_desc.
data, &bias_desc.
data,
4512 &dst_layer_desc.
data, &dst_iter_desc.
data,
4513 &diff_src_layer_desc.
data, &diff_src_iter_desc.
data,
4514 &diff_weights_layer_desc.
data,
4515 &diff_weights_iter_desc.
data, &diff_bias_desc.
data,
4516 &diff_dst_layer_desc.
data, &diff_dst_iter_desc.
data,
4517 dnnl::convert_to_c(flags), alpha, beta),
4518 "could not create an RNN backward descriptor");
4528 bool allow_empty =
false)
4529 : rnn_primitive_desc_base(
4530 &desc.data,
nullptr, e, hint_fwd_pd.
get(), allow_empty) {}
4535 bool allow_empty =
false)
4536 : rnn_primitive_desc_base(
4537 &desc.data, &attr, e, hint_fwd_pd.
get(), allow_empty) {}
4679 rnn_flags flags = rnn_flags::undef) {
4682 dnnl::convert_to_c(aprop_kind),
4683 dnnl::convert_to_c(direction), &src_layer_desc.
data,
4684 &src_iter_desc.
data, &src_iter_c_desc.
data,
4685 &weights_layer_desc.
data, &weights_iter_desc.
data,
4686 &bias_desc.
data, &dst_layer_desc.
data,
4687 &dst_iter_desc.
data, &dst_iter_c_desc.
data,
4688 dnnl::convert_to_c(flags)),
4689 "could not create an LSTM forward descriptor");
4699 : rnn_primitive_desc_base(
4700 &desc.data,
nullptr, e,
nullptr, allow_empty) {}
4703 const engine &e,
bool allow_empty =
false)
4704 : rnn_primitive_desc_base(
4705 &desc.data, &attr, e,
nullptr, allow_empty) {}
4827 rnn_flags flags = rnn_flags::undef) {
4830 dnnl::convert_to_c(aprop_kind),
4831 dnnl::convert_to_c(direction), &src_layer_desc.
data,
4832 &src_iter_desc.
data, &src_iter_c_desc.
data,
4833 &weights_layer_desc.
data, &weights_iter_desc.
data,
4834 &bias_desc.
data, &dst_layer_desc.
data,
4835 &dst_iter_desc.
data, &dst_iter_c_desc.
data,
4836 &diff_src_layer_desc.
data, &diff_src_iter_desc.
data,
4837 &diff_src_iter_c_desc.
data,
4838 &diff_weights_layer_desc.
data,
4839 &diff_weights_iter_desc.
data, &diff_bias_desc.
data,
4840 &diff_dst_layer_desc.
data, &diff_dst_iter_desc.
data,
4841 &diff_dst_iter_c_desc.
data,
4842 dnnl::convert_to_c(flags)),
4843 "could not create an LSTM backward descriptor");
4853 bool allow_empty =
false)
4854 : rnn_primitive_desc_base(
4855 &desc.data,
nullptr, e, hint_fwd_pd.
get(), allow_empty) {}
4860 bool allow_empty =
false)
4861 : rnn_primitive_desc_base(
4862 &desc.data, &attr, e, hint_fwd_pd.
get(), allow_empty) {}
5023 rnn_flags flags = rnn_flags::undef) {
5026 dnnl::convert_to_c(aprop_kind),
5027 dnnl::convert_to_c(direction), &src_layer_desc.
data,
5028 &src_iter_desc.
data, &weights_layer_desc.
data,
5029 &weights_iter_desc.
data, &bias_desc.
data,
5030 &dst_layer_desc.
data, &dst_iter_desc.
data,
5031 dnnl::convert_to_c(flags)),
5032 "could not create a GRU forward descriptor");
5042 : rnn_primitive_desc_base(
5043 &desc.data,
nullptr, e,
nullptr, allow_empty) {}
5046 const engine &e,
bool allow_empty =
false)
5047 : rnn_primitive_desc_base(
5048 &desc.data, &attr, e,
nullptr, allow_empty) {}
5153 rnn_flags flags = rnn_flags::undef) {
5156 dnnl::convert_to_c(aprop_kind),
5157 dnnl::convert_to_c(direction), &src_layer_desc.
data,
5158 &src_iter_desc.
data, &weights_layer_desc.
data,
5159 &weights_iter_desc.
data, &bias_desc.
data,
5160 &dst_layer_desc.
data, &dst_iter_desc.
data,
5161 &diff_src_layer_desc.
data, &diff_src_iter_desc.
data,
5162 &diff_weights_layer_desc.
data,
5163 &diff_weights_iter_desc.
data, &diff_bias_desc.
data,
5164 &diff_dst_layer_desc.
data, &diff_dst_iter_desc.
data,
5165 dnnl::convert_to_c(flags)),
5166 "could not create an GRU backward descriptor");
5176 bool allow_empty =
false)
5177 : rnn_primitive_desc_base(
5178 &desc.data,
nullptr, e, hint_fwd_pd.
get(), allow_empty) {}
5182 bool allow_empty =
false)
5183 : rnn_primitive_desc_base(
5184 &desc.data, &attr, e, hint_fwd_pd.
get(), allow_empty) {}
5325 rnn_flags flags = rnn_flags::undef) {
5328 dnnl::convert_to_c(aprop_kind),
5329 dnnl::convert_to_c(direction), &src_layer_desc.
data,
5330 &src_iter_desc.
data, &weights_layer_desc.
data,
5331 &weights_iter_desc.
data, &bias_desc.
data,
5332 &dst_layer_desc.
data, &dst_iter_desc.
data,
5333 dnnl::convert_to_c(flags)),
5334 "could not create a Linear-before-reset GRU forward " 5345 : rnn_primitive_desc_base(
5346 &desc.data,
nullptr, e,
nullptr, allow_empty) {}
5349 const engine &e,
bool allow_empty =
false)
5350 : rnn_primitive_desc_base(
5351 &desc.data, &attr, e,
nullptr, allow_empty) {}
5456 rnn_flags flags = rnn_flags::undef) {
5459 dnnl::convert_to_c(aprop_kind),
5460 dnnl::convert_to_c(direction), &src_layer_desc.
data,
5461 &src_iter_desc.
data, &weights_layer_desc.
data,
5462 &weights_iter_desc.
data, &bias_desc.
data,
5463 &dst_layer_desc.
data, &dst_iter_desc.
data,
5464 &diff_src_layer_desc.
data, &diff_src_iter_desc.
data,
5465 &diff_weights_layer_desc.
data,
5466 &diff_weights_iter_desc.
data, &diff_bias_desc.
data,
5467 &diff_dst_layer_desc.
data, &diff_dst_iter_desc.
data,
5468 dnnl::convert_to_c(flags)),
5469 "could not create an LBR_GRU backward descriptor");
5479 bool allow_empty =
false)
5480 : rnn_primitive_desc_base(
5481 &desc.data,
nullptr, e, hint_fwd_pd.
get(), allow_empty) {}
5486 bool allow_empty =
false)
5487 : rnn_primitive_desc_base(
5488 &desc.data, &attr, e, hint_fwd_pd.
get(), allow_empty) {}
5493 : rnn_primitive_desc_base(
5617 dnnl::convert_to_c(aprop_kind),
5618 &data_desc.
data, axis, group_size),
5619 "could not create a shuffle forward descriptor");
5629 bool allow_empty =
false)
5631 &desc.data, &aattr, e,
nullptr, allow_empty) {}
5662 desc(
const memory::desc &diff_data_desc,
int axis,
int group_size) {
5664 &diff_data_desc.
data, axis, group_size),
5665 "could not create a shuffle backward descriptor");
5671 primitive_desc() =
default;
5673 primitive_desc(
const desc &desc,
const engine &e,
5676 bool allow_empty =
false)
5678 &desc.data, &aattr, e, hint_fwd_pd.
get(), allow_empty) {}
5682 primitive_desc(dnnl_primitive_desc_t pd)
5726 "could not create a binary descriptor");
5731 primitive_desc() =
default;
5737 &desc.data,
nullptr, e,
nullptr, allow_empty) {}
5747 primitive_desc(dnnl_primitive_desc_t pd)
5775 dnnl_primitive_t result;
5777 "could not create a primitive");
5781 inline primitive::primitive(
const primitive_desc &pd) :
primitive(pd.get()) {}
5783 inline void primitive::execute(
5784 stream &astream,
const std::unordered_map<int, memory> &args)
const {
5785 std::vector<dnnl_exec_arg_t> c_args;
5786 c_args.reserve(args.size());
5787 for (
const auto &a : args)
5788 c_args.push_back({a.first, a.second.get()});
5791 (int)c_args.size(), c_args.data()),
5792 "could not execute a primitive");
layer normalization for forward propagation.
Definition: dnnl.hpp:3830
cl_device_id get_ocl_device() const
Returns the OpenCL device associated with the engine.
Definition: dnnl.hpp:923
deconvolution_forward(const primitive_desc &pd)
Creates a deconvolution forward propagation primitive from the corresponding primitive descriptor...
Definition: dnnl.hpp:2764
4D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcd8b ...
Definition: dnnl_types.h:454
1D tensor, an alias to dnnl_a
Definition: dnnl_types.h:338
void * get_data_handle() const
Returns a handle of the data contained in the memory.
Definition: dnnl.hpp:1561
flags
Stream flags.
Definition: dnnl.hpp:980
memory::desc diff_weights_desc() const
Queries diff weights memory descriptor.
Definition: dnnl.hpp:3013
Primitive descriptor for shuffle forward propagation.
Definition: dnnl.hpp:5624
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc, const memory::dims &strides, const memory::dims &dilates, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for dilated convolution forward propagation with bias using prop_kind (possi...
Definition: dnnl.hpp:2255
desc reshape(const dims &adims)
Constructs a memory descriptor by reshaping existing one.
Definition: dnnl.hpp:1468
2D RNN statistics tensor, an alias to dnnl_ba
Definition: dnnl_types.h:346
memory::desc dst_layer_desc() const
Queries destination layer memory descriptor.
Definition: dnnl.hpp:4437
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 softmax_desc for forward propagation using prop_kind (possible values are dnnl_forward_...
memory::desc src_iter_c_desc() const
Queries source recurrent cell state memory descriptor.
Definition: dnnl.hpp:4884
dnnl_data_type_t
Data type specification.
Definition: dnnl_types.h:68
memory::desc diff_src_desc() const
Queries diff source memory descriptor.
Definition: dnnl.hpp:3576
32-bit signed integer.
Definition: dnnl_types.h:78
Deconvolution forward propagation.
Definition: dnnl.hpp:2605
memory::desc weights_iter_desc() const
Queries weights iteration memory descriptor.
Definition: dnnl.hpp:5379
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:3093
dnnl_status_t DNNL_API dnnl_primitive_attr_destroy(dnnl_primitive_attr_t attr)
Deletes an attr.
memory::desc diff_dst_iter_desc() const
Queries diff destination recurrent hidden state memory descriptor.
Definition: dnnl.hpp:4973
Primitive descriptor for pooling forward propagation.
Definition: dnnl.hpp:3221
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for convolution backward propagation from a C primitive descriptor...
Definition: dnnl.hpp:2406
RNN descriptor for backward propagation.
Definition: dnnl.hpp:4468
Max pooling.
Definition: dnnl_types.h:695
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:5644
3D CNN activations tensor, an alias to dnnl_abc
Definition: dnnl_types.h:348
5D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcde8b ...
Definition: dnnl_types.h:445
A descriptor for an RNN operation.
Definition: dnnl_types.h:1235
memory::desc weights_iter_desc() const
Queries weights iteration memory descriptor.
Definition: dnnl.hpp:4894
The operation failed because requested functionality is not implemented.
Definition: dnnl_types.h:58
memory(const desc &md, const engine &aengine, cl::sycl::buffer< T, ndims > &buf)
Constructs a memory from a SYCL buffer.
Definition: dnnl.hpp:1528
non-standard 16-bit (bfloat16 w/ 7 bit mantissa) floating point.
Definition: dnnl_types.h:74
desc(algorithm aalgorithm, const memory::desc &data_desc, const memory::desc &diff_data_desc, memory::dim local_size, float alpha, float beta, float k=1.f)
Initializes a descriptor for backward propagation using aalgorithm, memory descriptors data_desc and ...
Definition: dnnl.hpp:3123
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &dst_desc, const memory::dims &strides, const memory::dims &kernel, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a pooling descriptor for forward propagation using aprop_kind (possible values are dnnl::...
Definition: dnnl.hpp:3203
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for batch normalization backward propagation from a C primitive de...
Definition: dnnl.hpp:3754
Primitive descriptor for convolution backward propagation.
Definition: dnnl.hpp:2384
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:3096
Primitive descriptor for pooling backward propagation.
Definition: dnnl.hpp:3287
Forward data propagation, alias for dnnl::prop_kind::forward_training.
desc(prop_kind aprop_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)
Initializes an RNN descriptor for forward propagation using prop_kind, activation, direction, and memory descriptors.
Definition: dnnl.hpp:4361
memory::desc dst_iter_desc() const
Queries destination recurrent hidden state memory descriptor.
Definition: dnnl.hpp:4759
2D CNN activations tensor, an alias to dnnl_ab
Definition: dnnl_types.h:340
3D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:223
5D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcde4b ...
Definition: dnnl_types.h:442
memory::desc diff_weights_desc() const
Queries diff weights (scale and shift) memory descriptor.
Definition: dnnl.hpp:4030
Average pooling exclude padding.
memory::desc diff_dst_desc() const
Queries diff destination memory descriptor.
Definition: dnnl.hpp:4195
plain 1D tensor
Definition: dnnl_types.h:183
A reorder primitive.
Definition: dnnl_types.h:619
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 an inner product descriptor ip_desc for backward propagation with respect to weights usin...
void set_scratchpad_mode(scratchpad_mode mode)
Sets scratchpad mode.
Definition: dnnl.hpp:713
pooling descriptor
Definition: dnnl_types.h:1591
Eltwise: soft_relu.
Definition: dnnl_types.h:682
deconvolution_backward_weights(const primitive_desc &pd)
Creates a deconvolution weight update primitive from the corresponding primitive descriptor.
Definition: dnnl.hpp:3032
Descriptor for convolution forward propagation.
Definition: dnnl.hpp:2168
permuted 5D tensor
Definition: dnnl_types.h:205
An inner product primitive.
Definition: dnnl_types.h:643
memory::desc diff_weights_desc() const
Queries diff weights (scale and shift) memory descriptor.
Definition: dnnl.hpp:3797
desc(algorithm aalgorithm, const memory::desc &diff_src_desc, const memory::desc &weights_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for deconvolution backward propagation using aalgorithm, memory descriptors...
Definition: dnnl.hpp:2783
memory::desc src_iter_desc() const
Queries source recurrent hidden state memory descriptor.
Definition: dnnl.hpp:4879
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 layer normalization descriptor lnrm_desc for backward propagation with respect to data ...
memory::desc src_iter_desc() const
Queries source iteration memory descriptor.
Definition: dnnl.hpp:4554
memory::desc bias_desc() const
Queries bias memory descriptor.
Definition: dnnl.hpp:2312
void append_eltwise(float scale, algorithm alg, float alpha, float beta)
Appends eltwise post operation.
Definition: dnnl.hpp:659
memory::desc weights_iter_desc() const
Queries weights iteration memory descriptor.
Definition: dnnl.hpp:5515
desc(const dims &adims, data_type adata_type, const dims &astrides)
Constructs a memory descriptor by strides.
Definition: dnnl.hpp:1440
permuted 3D tensor
Definition: dnnl_types.h:193
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:3397
memory::desc src_iter_desc() const
Queries source iteration memory descriptor.
Definition: dnnl.hpp:5505
Primitive descriptor for convolution weight update.
Definition: dnnl.hpp:2542
static size_t get_count(kind akind)
Returns the number of engines of a certain kind.
Definition: dnnl.hpp:851
Forward data propagation (training mode).
Definition: dnnl_types.h:594
dnnl_query_t
Primitive descriptor query specification.
Definition: dnnl_types.h:1558
Winograd convolution.
Definition: dnnl_types.h:658
desc(prop_kind aprop_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)
Initializes an GRU descriptor for backward propagation using prop_kind, direction, and memory descriptors.
Definition: dnnl.hpp:5138
Primitive iterator passed over last primitive descriptor.
Definition: dnnl_types.h:60
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:5239
4D CNN weights tensor, an alias to dnnl_abcd
Definition: dnnl_types.h:375
Eltwise: exponent.
Definition: dnnl_types.h:686
5D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:276
Shuffle for backward propagation.
Definition: dnnl.hpp:5654
Eltwise: abs.
Definition: dnnl_types.h:674
dnnl_status_t DNNL_API dnnl_engine_create_ocl(dnnl_engine_t *engine, dnnl_engine_kind_t kind, cl_device_id device, cl_context context)
Creates an engine of particular kind associated with a given OpenCL device and context objects...
An opaque structure for primitive descriptor attributes.
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &e, const deconvolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Initializes a primitive descriptor for deconvolution weight update with attributes defined by attr...
Definition: dnnl.hpp:2996
memory::desc dst_iter_desc() const
Queries destination iteration memory descriptor.
Definition: dnnl.hpp:5400
3D CNN weights tensor, an alias to dnnl_cba
Definition: dnnl_types.h:371
Deconvolution weight update.
Definition: dnnl.hpp:2879
memory::desc diff_dst_desc() const
Queries diff destination memory descriptor.
Definition: dnnl.hpp:4277
memory::desc diff_src_layer_desc() const
Queries diff source layer memory descriptor.
Definition: dnnl.hpp:4932
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:5641
void get_output_scales(int &mask, std::vector< float > &scales) const
Gets correspondence scale mask and a constant floating point vector of output scales previously set b...
Definition: dnnl.hpp:721
desc(algorithm aalgorithm, const memory::desc &diff_src_desc, const memory::desc &weights_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for convolution backward propagation using aalgorithm, memory descriptors...
Definition: dnnl.hpp:2343
memory::desc src_iter_desc() const
Queries source recurrent hidden state memory descriptor.
Definition: dnnl.hpp:4723
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition: dnnl_types.h:778
memory::desc weights_desc() const
Queries weights memory descriptor.
Definition: dnnl.hpp:2744
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for convolution forward propagation with bias using prop_kind (possible valu...
Definition: dnnl.hpp:2204
5D CNN activations tensor, an alias to dnnl_acdeb
Definition: dnnl_types.h:360
2D CNN activations tensor, an alias to dnnl_ba
Definition: dnnl_types.h:342
A class that provides the destructor for an DNNL C handle.
Definition: dnnl.hpp:83
Local response normalization for forward propagation.
Definition: dnnl.hpp:3047
A sum primitive.
Definition: dnnl_types.h:625
Initializes an inner product descriptor for backward propagation with respect to data using memory de...
Definition: dnnl.hpp:4147
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for convolution forward propagation without bias using aprop_kind (possible ...
Definition: dnnl.hpp:2179
source memory desc
Definition: dnnl_types.h:1602
memory consumption (bytes)
memory::desc diff_dst_desc() const
Queries diff destination memory descriptor.
Definition: dnnl.hpp:4020
dnnl_memory_desc_t data
The underlying C API data structure.
Definition: dnnl.hpp:1415
Undefined primitive.
Definition: dnnl_types.h:617
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 using a stream, and nargs arguments args.
LBR_GRU for backward propagation.
Definition: dnnl.hpp:5420
Descriptor for layer normalization forward propagation.
Definition: dnnl.hpp:3833
softmax descriptor
Definition: dnnl_types.h:1590
memory::desc diff_dst_desc() const
Queries diff destination memory descriptor.
Definition: dnnl.hpp:3458
memory::desc weights_layer_desc() const
Queries weights layer memory descriptor.
Definition: dnnl.hpp:4419
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:2301
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &e, const deconvolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Initializes a primitive descriptor for deconvolution backward propagation with attributes defined by ...
Definition: dnnl.hpp:2839
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for softmax forward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:3513
memory::desc dst_iter_desc() const
Queries destination iteration memory descriptor.
Definition: dnnl.hpp:5097
A tensor in a generic format described by the stride and blocking values in each dimension.
Definition: dnnl_types.h:95
desc(algorithm aalgorithm, const memory::desc &src0, const memory::desc &src1, const memory::desc &dst)
Initializes a binary descriptor using algorithm, memory descriptors src0_desc, src1_desc and dst_desc...
Definition: dnnl.hpp:5721
dnnl_status_t DNNL_API dnnl_primitive_attr_create(dnnl_primitive_attr_t *attr)
Creates an empty (default) attr attribute.
permuted 5D tensor
Definition: dnnl_types.h:206
Convolution algorithm(either direct or Winograd) is chosen just in time.
Bidirectional execution of RNN primitive with summation of the results.
Definition: dnnl_types.h:1230
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:4452
primitive::kind kind(int index) const
Returns the kind of post operation with index index.
Definition: dnnl.hpp:612
dnnl_status_t DNNL_API dnnl_stream_destroy(dnnl_stream_t stream)
Destroys an execution stream.
permuted 5D tensor
Definition: dnnl_types.h:192
A pooling primitive.
Definition: dnnl_types.h:635
A user shall query and provide the scratchpad memory to primitives.
Forward data propagation (training mode).
3D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBc16b ...
Definition: dnnl_types.h:457
Initializes an inner product descriptor for backward propagation with respect to weights using memory...
Definition: dnnl.hpp:4214
number of inputs expected
dnnl_status_t DNNL_API dnnl_primitive_attr_get_scratchpad_mode(const_dnnl_primitive_attr_t attr, dnnl_scratchpad_mode_t *mode)
Returns the scratchpad mode set in the attribute attr.
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:3245
memory::desc src_layer_desc() const
Queries source layer memory descriptor.
Definition: dnnl.hpp:5058
weights memory descriptor desc
Definition: dnnl_types.h:1604
memory::desc diff_weights_iter_desc() const
Queries diff weights iteration memory descriptor.
Definition: dnnl.hpp:4955
memory::desc bias_desc() const
Queries bias memory descriptor.
Definition: dnnl.hpp:5387
memory::desc weights_desc() const
Queries weights memory descriptor.
Definition: dnnl.hpp:4117
4D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcd4b ...
Definition: dnnl_types.h:451
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 dilated convolution descriptor conv_desc for forward propagation using prop_kind (possi...
plain 4D tensor
Definition: dnnl_types.h:186
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_desc for a given parent_memory_desc, with dims sizes and offsets.
The operation was successful.
Definition: dnnl_types.h:52
Descriptor for batch normalization backward propagation.
Definition: dnnl.hpp:3712
plain 6D tensor
Definition: dnnl_types.h:188
memory::desc diff_dst_iter_desc() const
Queries diff destination iteration memory descriptor.
Definition: dnnl.hpp:4633
memory::desc diff_weights_layer_desc() const
Queries diff weights layer memory descriptor.
Definition: dnnl.hpp:4950
A descriptor of a pooling operation.
Definition: dnnl_types.h:1069
A (out-of-place) concat primitive.
Definition: dnnl_types.h:623
Eltwise: parametric exponential linear unit (elu)
Definition: dnnl_types.h:670
kind get_kind() const
Returns the kind of the engine.
Definition: dnnl.hpp:906
A memory descriptor.
Definition: dnnl.hpp:1412
destination grad. memory desc
Definition: dnnl_types.h:1607
source gradient memory desc
Definition: dnnl_types.h:1603
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:2317
memory::desc dst_layer_desc() const
Queries destination layer memory descriptor.
Definition: dnnl.hpp:5224
desc(const dims &adims, data_type adata_type, format_tag aformat_tag)
Constructs a memory descriptor.
Definition: dnnl.hpp:1425
desc(prop_kind aprop_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)
Initializes a GRU descriptor for forward propagation using prop_kind, direction, and memory descripto...
Definition: dnnl.hpp:5015
8-bit signed integer.
Definition: dnnl_types.h:80
memory::desc diff_dst_iter_desc() const
Queries diff destination iteration memory descriptor.
Definition: dnnl.hpp:5280
Backward bias propagation.
Definition: dnnl_types.h:610
4D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:245
desc(prop_kind aprop_kind, const memory::desc &src_desc, float epsilon, normalization_flags flags)
Initializes a batch normalization descriptor for forward propagation using prop_kind (possible values...
Definition: dnnl.hpp:3627
memory::desc dst_layer_desc() const
Queries destination layer memory descriptor.
Definition: dnnl.hpp:4751
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 GRU descriptor rnn_desc for backward propagation using prop_kind, direction, and memory descriptors.
dnnl_status_t DNNL_API dnnl_primitive_desc_destroy(dnnl_primitive_desc_t primitive_desc)
Deletes a primitive_desc.
Bidirectional execution of RNN primitive with concatenation of the results.
Definition: dnnl_types.h:1227
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:3010
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 memory descriptor.
memory::desc diff_weights_layer_desc() const
Queries diff weights layer memory descriptor.
Definition: dnnl.hpp:5561
Out-of-order execution.
Definition: dnnl_types.h:1625
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, float *alpha, float *beta)
Gets the eltwise parameters of the post operation with index index in the sequence of post_ops...
Primitive descriptor for local response normalization forward propagation.
Definition: dnnl.hpp:3071
Descriptor for LSTM forward propagation.
Definition: dnnl.hpp:4649
memory::desc dst_iter_desc() const
Queries destination iteration memory descriptor.
Definition: dnnl.hpp:5232
workspace memory desc
Definition: dnnl_types.h:1608
memory::desc diff_src_layer_desc() const
Queries diff source layer memory descriptor.
Definition: dnnl.hpp:5548
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc, const memory::dims &strides, const memory::dims &dilates, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for dilated convolution forward propagation without bias using prop_kind (po...
Definition: dnnl.hpp:2228
memory(const desc &md, const engine &aengine)
Constructs a memory.
Definition: dnnl.hpp:1539
An execution engine.
Definition: dnnl.hpp:832
Backward data propagation.
Definition: dnnl_types.h:606
no query
Definition: dnnl_types.h:1559
Average pooling include padding.
GRU for forward propagation.
Definition: dnnl.hpp:4992
Primitive descriptor for layer normalization forward propagation.
Definition: dnnl.hpp:3867
convolution_backward_data(const primitive_desc &pd)
Creates a convolution backward propagation primitive from the corresponding primitive descriptor...
Definition: dnnl.hpp:2430
const char * impl_info_str() const
Returns implementation name.
Definition: dnnl.hpp:1725
memory::desc weights_layer_desc() const
Queries weights layer memory descriptor.
Definition: dnnl.hpp:5510
void unmap_data(void *mapped_ptr) const
Unmaps the previously mapped data for the memory.
Definition: dnnl.hpp:1604
memory::desc bias_desc() const
Queries bias memory descriptor.
Definition: dnnl.hpp:5084
scratchpad memory desc
Definition: dnnl_types.h:1609
Descriptor for local response normalization backward propagation.
Definition: dnnl.hpp:3116
Primitive descriptor for inner product backward propagation with respect to weights.
Definition: dnnl.hpp:4241
4D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:237
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:5104
deconvolution descriptor
Definition: dnnl_types.h:1587
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 an lrn_desc for forward propagation using prop_kind (possible values are dnnl_forward_tra...
GRU cell with linear before reset.
dnnl_status_t DNNL_API dnnl_post_ops_append_sum(dnnl_post_ops_t post_ops, float scale)
Appends accumulation (sum) post operation to the post_ops.
Backward propagation (with respect to all parameters).
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 batch normalization descriptor bnrm_desc for backward propagation with respect to data ...
memory::desc weights_layer_desc() const
Queries weights layer memory descriptor.
Definition: dnnl.hpp:5374
desc(prop_kind aprop_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)
Initializes an LSTM descriptor for forward propagation using prop_kind, direction, and memory descriptors.
Definition: dnnl.hpp:4669
Descriptor for local response normalization forward propagation.
Definition: dnnl.hpp:3050
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:4264
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for convolution forward propagation from a C primitive descriptor ...
Definition: dnnl.hpp:2295
LSTM for backward propagation.
Definition: dnnl.hpp:4784
engine(kind akind, size_t index)
Constructs an engine.
Definition: dnnl.hpp:861
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 convolution descriptor conv_desc for backward propagation with respect to data using al...
memory::dim query_s64(query q) const
Queries the memory::dim value (same as int64_t).
Definition: dnnl.hpp:1734
dnnl_status_t DNNL_API dnnl_primitive_create(dnnl_primitive_t *primitive, const_dnnl_primitive_desc_t primitive_desc)
Creates a primitive using a primitive_desc descriptor.
int DNNL_API dnnl_memory_desc_equal(const dnnl_memory_desc_t *lhs, const dnnl_memory_desc_t *rhs)
Compares two memory descriptors.
memory::desc diff_weights_desc() const
Queries diff weights memory descriptor.
Definition: dnnl.hpp:2571
memory::desc mean_desc() const
Queries mean memory descriptor.
Definition: dnnl.hpp:3900
16-bit/half-precision floating point.
Definition: dnnl_types.h:72
dnnl_primitive_kind_t DNNL_API dnnl_post_ops_get_kind(const_dnnl_post_ops_t post_ops, int index)
Returns the kind of post operation with index index in given post_ops.
void get_params_eltwise(int index, float &scale, algorithm &alg, float &alpha, float &beta) const
Gets the eltwise parameters of the post operation with index index.
Definition: dnnl.hpp:666
op descriptor
Definition: dnnl_types.h:1585
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 attribute of a primitive_desc.
dnnl_alg_kind_t cell_kind
RNN cell kind.
Definition: dnnl_types.h:1244
Undefined memory format tag.
Definition: dnnl_types.h:172
memory::desc dst_layer_desc() const
Queries destination layer memory descriptor.
Definition: dnnl.hpp:5528
propagation kind
Definition: dnnl_types.h:1581
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 layer normalization descriptor lnrm_desc for forward propagation using prop_kind (possi...
memory::desc diff_src_desc() const
Queries diff source gradient memory descriptor.
Definition: dnnl.hpp:2411
memory::desc diff_bias_desc() const
Queries diff bias memory descriptor.
Definition: dnnl.hpp:4620
memory::desc weights_desc() const
Queries weights (scale and shift) memory descriptor.
Definition: dnnl.hpp:4012
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 dilated convolution descriptor conv_desc for backward propagation with respect to data ...
dnnl_normalization_flags_t
Flags for batch normalization primitive.
Definition: dnnl_types.h:726
Inner product for forward propagation.
Definition: dnnl.hpp:4058
memory::desc diff_dst_desc() const
Queries diff destination memory descriptor.
Definition: dnnl.hpp:3315
A descriptor of a binary operation.
Definition: dnnl_types.h:1302
Eltwise: bounded_relu.
Definition: dnnl_types.h:680
memory::desc src_iter_desc() const
Queries source iteration memory descriptor.
Definition: dnnl.hpp:4414
engine get_engine() const
Returns the engine of the primitive descriptor.
Definition: dnnl.hpp:1722
inner product descriptor
Definition: dnnl_types.h:1595
4D CNN weights tensor, an alias to dnnl_bcda
Definition: dnnl_types.h:381
Element-wise operations for backward propagation.
Definition: dnnl.hpp:3407
deconvolution_backward_data(const primitive_desc &pd)
Creates a deconvolution backward propagation primitive from the corresponding primitive descriptor...
Definition: dnnl.hpp:2872
primitive kind
Definition: dnnl_types.h:1562
void set_rnn_data_qparams(float scale, float shift)
Sets quantization scale and shift for RNN data tensors.
Definition: dnnl.hpp:780
memory::desc src_layer_desc() const
Queries source layer memory descriptor.
Definition: dnnl.hpp:4871
Packed weights format used in RNN.
Definition: dnnl_types.h:99
memory::desc diff_bias_desc() const
Queries diff bias memory descriptor.
Definition: dnnl.hpp:4272
Initializes an eltwise descriptor for forward propagation using prop_kind (possible values are dnnl::...
Definition: dnnl.hpp:3360
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:5543
T get(bool allow_emtpy=false) const
Returns the value of the underlying C handle.
Definition: dnnl.hpp:138
Inner product for backward propagation with respect to weights.
Definition: dnnl.hpp:4207
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &e, bool allow_empty=false)
Initializes primitive descriptor for deconvolution forward propagation with attributes defined by att...
Definition: dnnl.hpp:2728
memory::desc diff_bias_desc() const
Queries diff bias memory descriptor.
Definition: dnnl.hpp:3018
Use scale and shift parameters.
memory::desc bias_desc() const
Queries bias memory descriptor.
Definition: dnnl.hpp:5523
A descriptor of a convolution operation.
Definition: dnnl_types.h:957
3D CNN activations tensor, an alias to dnnl_acb
Definition: dnnl_types.h:350
dnnl_status_t DNNL_API dnnl_memory_destroy(dnnl_memory_t memory)
Deletes a memory.
dnnl_status_t DNNL_API dnnl_engine_get_ocl_device(dnnl_engine_t engine, cl_device_id *device)
Returns an OpenCL device associated with an engine.
dnnl_status_t DNNL_API dnnl_memory_set_data_handle(dnnl_memory_t memory, void *handle)
For a memory, sets the data handle.
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for local response normalization forward propagation from a C prim...
Definition: dnnl.hpp:3087
memory::desc src_iter_desc() const
Queries source iter memory descriptor.
Definition: dnnl.hpp:5201
dnnl_primitive_kind_t
Kinds of primitives.
Definition: dnnl_types.h:615
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for GRU forward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:5052
permuted 5D tensor
Definition: dnnl_types.h:194
Default stream configuration.
Definition: dnnl_types.h:1627
format_kind
Memory format kind.
Definition: dnnl.hpp:1100
desc(const dnnl_memory_desc_t &adata)
Constructs a memory descriptor from a C API data structure.
Definition: dnnl.hpp:1453
Base class for all computational primitives.
Definition: dnnl.hpp:186
Backward weights propagation.
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:4114
data_type
Data type specification.
Definition: dnnl.hpp:1082
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_desc memory descriptor using ndims, dims, data_type, and strides.
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:4771
memory::desc weights_layer_desc() const
Queries weights layer memory descriptor.
Definition: dnnl.hpp:4889
desc(const memory::desc &diff_desc, const memory::desc &data_desc, int softmax_axis)
Initializes a softmax descriptor for backward propagation using memory descriptors diff_desc and data...
Definition: dnnl.hpp:3540
Binary add.
Definition: dnnl_types.h:720
Creates an out-of-place sum primitive descriptor for sum of n inputs multiplied by the scale with res...
Definition: dnnl.hpp:2028
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for deconvolution forward propagation from a C primitive descripto...
Definition: dnnl.hpp:2735
memory::desc weights_layer_desc() const
Queries weights layer memory descriptor.
Definition: dnnl.hpp:5206
memory::desc dst_iter_desc() const
Queries destination iteration memory descriptor.
Definition: dnnl.hpp:5536
batch normalization descriptor
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for shuffle forward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:5635
5D CNN weights tensor, an alias to dnnl_abcde
Definition: dnnl_types.h:385
memory::desc src_iter_desc() const
Queries source iteration memory descriptor.
Definition: dnnl.hpp:5066
Descriptor for LBR GRU forward propagation.
Definition: dnnl.hpp:5297
desc(algorithm aalgorithm, const memory::desc &diff_src_desc, const memory::desc &weights_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &dilates, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes descriptor for dilated deconvolution backward propagation using aalgorithm, memory descriptors, strides, padding_l, and padding_r.
Definition: dnnl.hpp:2805
memory::desc diff_src_desc() const
Queries diff source gradient memory descriptor.
Definition: dnnl.hpp:4185
Batch normalization for forward propagation.
Definition: dnnl.hpp:3613
Convolution forward propagation.
Definition: dnnl.hpp:2165
Primitive descriptor for deconvolution weight update.
Definition: dnnl.hpp:2984
memory::desc mean_desc() const
Queries mean memory descriptor.
Definition: dnnl.hpp:3764
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:3322
source gradient memory desc
memory::desc diff_dst_desc() const
Queries diff destination memory descriptor.
Definition: dnnl.hpp:3780
Initializes an eltwise descriptor for backward propagation using aalgorithm algorithm memory descript...
Definition: dnnl.hpp:3412
shuffle descriptor
Definition: dnnl_types.h:1588
memory::desc diff_src_iter_desc() const
Queries diff source iteration memory descriptor.
Definition: dnnl.hpp:5556
cl_command_queue get_ocl_command_queue() const
Returns the OpenCL command queue associated with the stream.
Definition: dnnl.hpp:1014
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1241
binary descriptor
Definition: dnnl_types.h:1598
memory::desc scratchpad_desc() const
Queries scratchpad memory descriptor.
Definition: dnnl.hpp:1759
Element-wise operations for forward propagation.
Definition: dnnl.hpp:3354
memory::desc weights_iter_desc() const
Queries weights iteration memory descriptor.
Definition: dnnl.hpp:5076
Local response normalization for backward propagation.
Definition: dnnl.hpp:3113
memory::desc dst_layer_desc() const
Queries destination layer memory descriptor.
Definition: dnnl.hpp:4907
memory::desc diff_bias_desc() const
Queries diff bias memory descriptor.
Definition: dnnl.hpp:5267
runtime estimation (seconds)
Definition: dnnl_types.h:1567
dnnl_status_t DNNL_API dnnl_primitive_attr_set_scratchpad_mode(dnnl_primitive_attr_t attr, dnnl_scratchpad_mode_t mode)
Sets scratchpad mode.
dnnl_status_t DNNL_API dnnl_stream_get_ocl_command_queue(dnnl_stream_t stream, cl_command_queue *queue)
Returns the OpenCL command queue associated with an execution stream.
memory::desc diff_src_iter_desc() const
Queries diff source recurrent hidden state memory descriptor.
Definition: dnnl.hpp:4940
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:3394
primitive_desc(const_dnnl_op_desc_t desc, const primitive_attr *attr, const engine &e, const_dnnl_primitive_desc_t hint_fwd_pd, bool allow_empty=false)
Creates a primitive descriptor from given op_desc, attr, engine, and optionally a hint primitive desc...
Definition: dnnl.hpp:2108
A (out-of-place) concat primitive.
Vanilla RNN for forward propagation.
Definition: dnnl.hpp:4337
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:2568
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 count, correspondence scale mask, and a pointer to a constant floating point array of output ...
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:3101
6D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:293
5D CNN weights tensor (incl. groups), an alias to dnnl_acbde
Definition: dnnl_types.h:400
memory::desc query_md(query what, int idx=0) const
Queries and returns requested memory descriptor.
Definition: dnnl.hpp:1742
memory::desc variance_desc() const
Queries variance memory descriptor.
Definition: dnnl.hpp:4007
DNNL exception class.
Definition: dnnl.hpp:57
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 an inner product descriptor ip_desc for forward propagation using prop_kind (possible val...
Eltwise: linear.
Definition: dnnl_types.h:678
memory::desc weights_iter_desc() const
Queries weights iteration memory descriptor.
Definition: dnnl.hpp:4564
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 an RNN descriptor rnn_desc for backward propagation using prop_kind, activation, direction, and memory descriptors.
8-bit unsigned integer.
Definition: dnnl_types.h:82
desc(prop_kind aprop_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)
Initializes an LBR_GRU descriptor for backward propagation using prop_kind, direction, and memory descriptors.
Definition: dnnl.hpp:5441
plain 2D tensor
Definition: dnnl_types.h:184
permuted 4D tensor
Definition: dnnl_types.h:204
Backward weights propagation.
Definition: dnnl_types.h:608
A descriptor of a element-wise operation.
Definition: dnnl_types.h:1017
A descriptor of a Softmax operation.
Definition: dnnl_types.h:1053
dnnl_status_t DNNL_API dnnl_primitive_destroy(dnnl_primitive_t primitive)
Deletes a primitive.
Descriptor for convolution weight update.
Definition: dnnl.hpp:2440
An opaque structure for a chain of post operations.
algorithm
Kinds of algorithms.
Definition: dnnl.hpp:307
A descriptor of an inner product operation.
Definition: dnnl_types.h:1188
dnnl_status_t DNNL_API dnnl_engine_destroy(dnnl_engine_t engine)
Destroys an engine.
An LRN primitive.
Definition: dnnl_types.h:637
Descriptor for deconvolution weight update.
Definition: dnnl.hpp:2882
int len() const
Returns the length of post operations.
Definition: dnnl.hpp:609
A batch normalization primitive.
Definition: dnnl_types.h:639
Pooling for forward propagation.
Definition: dnnl.hpp:3192
A rnn primitive.
Definition: dnnl_types.h:645
Average pooling include padding.
Definition: dnnl_types.h:697
memory::desc weights_desc() const
Queries weights memory descriptor.
Definition: dnnl.hpp:2304
memory::desc src_layer_desc() const
Queries source layer memory descriptor.
Definition: dnnl.hpp:4546
primitive_desc(const desc &desc, const engine &e, const convolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Initializes primitive descriptor for convolution backward propagation.
Definition: dnnl.hpp:2389
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for inner product forward propagation from a C primitive descripto...
Definition: dnnl.hpp:4108
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 binary descriptor binary_desc, alg_kind (possible values are dnnl_binary_add and dnnl_b...
Local response normalization (LRN) across multiple channels.
Definition: dnnl_types.h:702
cl::sycl::buffer< T, ndims > get_sycl_buffer(size_t *offset=nullptr) const
Returns the underlying SYCL buffer object.
Definition: dnnl.hpp:1631
desc(algorithm aalgorithm, const memory::desc &diff_src_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &kernel, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a pooling descriptor for backward propagation using aalgorithm, memory descriptors...
Definition: dnnl.hpp:3269
handle(T t, bool weak=false)
Constructs a C handle wrapper from a C handle.
Definition: dnnl.hpp:128
memory::desc diff_src_desc() const
Queries diff source memory descriptor.
Definition: dnnl.hpp:3310
memory::desc dst_iter_c_desc() const
Queries destination recurrent cell state memory descriptor.
Definition: dnnl.hpp:4764
error(dnnl_status_t astatus, const char *amessage)
Constructs an error instance.
Definition: dnnl.hpp:65
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:3250
memory::desc bias_desc() const
Queries bias memory descriptor.
Definition: dnnl.hpp:4902
memory::desc diff_weights_layer_desc() const
Queries diff weights layer memory descriptor.
Definition: dnnl.hpp:5257
Primitive descriptor for batch normalization forward propagation.
Definition: dnnl.hpp:3639
dnnl_rnn_flags_t
Flags for RNN cell.
Definition: dnnl_types.h:1217
dnnl_status_t DNNL_API dnnl_post_ops_destroy(dnnl_post_ops_t post_ops)
Deletes a post_ops sequence.
dnnl_status_t DNNL_API dnnl_sum_primitive_desc_create(dnnl_primitive_desc_t *sum_primitive_desc, const dnnl_memory_desc_t *dst_mds, int n, const float *scales, const dnnl_memory_desc_t *src_mds, const_dnnl_primitive_attr_t attr, dnnl_engine_t engine)
Creates out-of-place sum_primitive_desc for sum of n inputs multiplied by scale with resulting output...
weights memory descriptor desc
Use scale and shift parameters.
Definition: dnnl_types.h:751
memory::desc src_layer_desc() const
Queries source layer memory descriptor.
Definition: dnnl.hpp:4715
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for layer normalization backward propagation from a C primitive de...
Definition: dnnl.hpp:3994
primitive_desc(const desc &desc, const engine &e, bool allow_empty=false)
Initializes a primitive descriptor for deconvolution forward propagation.
Definition: dnnl.hpp:2721
memory::desc weights_iter_desc() const
Queries weights iteration memory descriptor.
Definition: dnnl.hpp:5211
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 an lrn_desc for backward propagation using alg_kind, memory descriptors data_desc and dif...
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:3450
4D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:231
dnnl_status_t DNNL_API dnnl_primitive_desc_clone(dnnl_primitive_desc_t *primitive_desc, const_dnnl_primitive_desc_t existing_primitive_desc)
Makes a copy of a primitive_desc.
dnnl_format_tag_t
Memory format tag specification.
Definition: dnnl_types.h:170
memory::desc dst_layer_desc() const
Queries destination layer memory descriptor.
Definition: dnnl.hpp:5392
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:5407
stream & wait()
Waits for all primitives in the stream to finish.
Definition: dnnl.hpp:1034
weights grad. memory desc
for creating scratchpad memory
Definition: dnnl_types.h:1576
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:3777
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for batch normalization forward propagation from a C primitive des...
Definition: dnnl.hpp:3654
Shuffle for forward propagation.
Definition: dnnl.hpp:5605
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 an inner product descriptor ip_desc for backward propagation with respect to data using m...
Eltwise: gelu.
Definition: dnnl_types.h:691
post_ops()
Creates an empty sequence of post operations.
Definition: dnnl.hpp:601
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:3889
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 an LSTM descriptor rnn_desc for backward propagation using prop_kind, direction...
bool next_impl()
Advances the next implementation for the given op descriptor.
Definition: dnnl.hpp:2128
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for RNN backward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:4541
weights grad. memory desc
Definition: dnnl_types.h:1605
Backward propagation (with respect to all parameters).
Definition: dnnl_types.h:604
memory::desc diff_dst_desc() const
Queries diff destination memory descriptor.
Definition: dnnl.hpp:3581
dnnl_status_t
Status values returned by the library functions.
Definition: dnnl_types.h:50
const void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition: dnnl_types.h:954
Implements primitive descriptor and primitive for concat.
Definition: dnnl.hpp:1968
Primitive attributes.
Definition: dnnl.hpp:686
memory::desc src_layer_desc() const
Queries source layer memory descriptor.
Definition: dnnl.hpp:5497
dnnl_status_t DNNL_API dnnl_primitive_get_primitive_desc(const_dnnl_primitive_t primitive, const_dnnl_primitive_desc_t *primitive_desc)
Retrieves a reference to the primitive_desc descriptor of given primitive.
memory::desc weights_desc() const
Queries weights memory descriptor.
Definition: dnnl.hpp:2416
2D RNN statistics tensor, an alias to dnnl_ab
Definition: dnnl_types.h:344
4D CNN weights tensor, an alias to dnnl_cdba
Definition: dnnl_types.h:377
4D CNN activations tensor, an alias to dnnl_abcd
Definition: dnnl_types.h:352
kind
Kinds of primitives.
Definition: dnnl.hpp:194
number of outputs expected
Definition: dnnl_types.h:1565
primitive_desc(dnnl_primitive_desc_t cpd)
Initializes a primitive descriptor for inner product weights update from a C primitive descriptor cpd...
Definition: dnnl.hpp:4259
primitive_attr(dnnl_primitive_attr_t attr)
Creates primitive attributes from a C dnnl_primitive_attr_t handle.
Definition: dnnl.hpp:700
Vanilla RNN for backward propagation.
Definition: dnnl.hpp:4465
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for layer normalization forward propagation from a C primitive des...
Definition: dnnl.hpp:3882
memory::desc diff_dst_desc() const
Queries diff destination memory descriptor.
Definition: dnnl.hpp:3023
memory::desc diff_dst_desc() const
Queries diff destination memory descriptor.
Definition: dnnl.hpp:3164
layer normalization backward propagation.
Definition: dnnl.hpp:3937
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 pooling descriptor pool_desc for backward propagation using alg_kind, memory descriptors, and pooling parameters in the spatial domain: strides, kernel sizes, padding_l, and padding_r.
4D RNN states tensor in the format (num_layers, num_directions, batch, state channels).
Definition: dnnl_types.h:410
memory::desc bias_desc() const
Queries bias memory descriptor.
Definition: dnnl.hpp:4432
dnnl_status_t DNNL_API dnnl_reorder_primitive_desc_create(dnnl_primitive_desc_t *reorder_primitive_desc, const dnnl_memory_desc_t *src_md, dnnl_engine_t src_engine, const dnnl_memory_desc_t *dst_md, dnnl_engine_t dst_engine, const_dnnl_primitive_attr_t attr)
Initializes a reorder_primitive_desc using the description of the source (src_engine and src_md) and ...
memory::desc diff_src_layer_desc() const
Queries diff source layer memory descriptor.
Definition: dnnl.hpp:4597
Unidirectional execution of RNN primitive from left to right.
Definition: dnnl_types.h:1222
memory::desc diff_bias_desc() const
Queries diff bias memory descriptor.
Definition: dnnl.hpp:2576
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 *weights_scales)
Sets quantization scales weights_scales for RNN weights tensors.
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for LSTM forward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:4709
The operation failed because of incorrect function arguments.
Definition: dnnl_types.h:56
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_desc from a C counterpart.
Definition: dnnl.hpp:1808
const char * what() const noexcept override
Returns the explanatory string.
Definition: dnnl.hpp:69
dnnl_rnn_direction_t
A direction of RNN primitive execution.
Definition: dnnl_types.h:1220
Use global statistics.
Definition: dnnl_types.h:738
dnnl_status_t DNNL_API dnnl_memory_get_memory_desc(const_dnnl_memory_t memory, const dnnl_memory_desc_t **memory_desc)
Returns a memory_desc associated with memory.
kind
Kinds of engines.
Definition: dnnl.hpp:837
dnnl_status_t DNNL_API dnnl_memory_get_engine(const_dnnl_memory_t memory, dnnl_engine_t *engine)
Returns an engine associated with memory.
Average pooling exclude padding, alias for dnnl::algorithm::pooling_avg_include_padding.
Direct deconvolution.
Definition: dnnl_types.h:662
Primitive descriptor for batch normalization backward propagation.
Definition: dnnl.hpp:3736
GRU descriptor for backward propagation.
Definition: dnnl.hpp:5120
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: dnnl_types.h:668
dnnl_status_t DNNL_API dnnl_stream_wait(dnnl_stream_t stream)
Waits for all primitives in the execution stream to finish.
Batch normalization backward propagation.
Definition: dnnl.hpp:3709
dnnl_status_t DNNL_API dnnl_engine_get_ocl_context(dnnl_engine_t engine, cl_context *context)
Returns an OpenCL context associated with an engine.
memory::desc weights_desc() const
Queries weights (scale and shift) memory descriptor.
Definition: dnnl.hpp:3892
memory::desc bias_desc() const
Queries bias memory descriptor.
Definition: dnnl.hpp:2752
memory::desc diff_dst_desc() const
Queries diff destination memory descriptor.
Definition: dnnl.hpp:2421
dnnl_status_t DNNL_API dnnl_deconvolution_backward_weights_desc_init(dnnl_deconvolution_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 deconvolution descriptor conv_desc for backward propagation with respect to weights usi...
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1238
Descriptor for batch normalization forward propagation.
Definition: dnnl.hpp:3616
Primitive descriptor for local response normalization backward propagation.
Definition: dnnl.hpp:3136
dnnl_alg_kind_t
Kinds of algorithms.
Definition: dnnl_types.h:653
Descriptor for binary.
Definition: dnnl.hpp:5716
dnnl_status_t DNNL_API dnnl_engine_create(dnnl_engine_t *engine, dnnl_engine_kind_t kind, size_t index)
Creates an engine of particular kind and index.
memory::desc diff_src_layer_desc() const
Queries diff source layer memory descriptor.
Definition: dnnl.hpp:5244
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_forward_desc_init(dnnl_deconvolution_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 dilated deconvolution descriptor deconv_desc for forward propagation using prop_kind (p...
dnnl_status_t DNNL_API dnnl_memory_map_data(const_dnnl_memory_t memory, void **mapped_ptr)
For a memory, maps the data of the memory to mapped_ptr.
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:4017
dnnl_status_t DNNL_API dnnl_primitive_attr_clone(dnnl_primitive_attr_t *attr, const_dnnl_primitive_attr_t existing_attr)
Makes a copy of an existing_attr.
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for GRU backward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:5188
memory::desc weights_desc() const
Queries weights memory descriptor.
Definition: dnnl.hpp:4190
dnnl_status_t DNNL_API dnnl_engine_get_kind(dnnl_engine_t engine, dnnl_engine_kind_t *kind)
Returns the kind of an engine.
LSTM for forward propagation.
Definition: dnnl.hpp:4646
Eltwise: swish.
Definition: dnnl_types.h:693
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 primitive descriptor.
memory::desc diff_src_desc() const
Queries diff source memory descriptor.
Definition: dnnl.hpp:4025
A descriptor of a shuffle operation.
Definition: dnnl_types.h:1000
void reset(T t, bool weak=false)
Resets the value of a C handle.
Definition: dnnl.hpp:133
Forward data propagation (inference mode).
A deconvolution primitive.
Definition: dnnl_types.h:629
5D CNN activations tensor, an alias to dnnl_abcde
Definition: dnnl_types.h:358
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_backward_weights_desc_init(dnnl_deconvolution_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 dilated deconvolution descriptor conv_desc for backward propagation with respect to wei...
3D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBc8b ...
Definition: dnnl_types.h:463
const_dnnl_primitive_desc_t get_primitive_desc() const
Returns the descriptor of the underlying C API primitive.
Definition: dnnl.hpp:250
memory::desc diff_src_desc() const
Queries diff source gradient memory descriptor.
Definition: dnnl.hpp:2853
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:3908
desc submemory_desc(const dims &adims, const dims &offsets)
Constructs a sub-memory descriptor.
Definition: dnnl.hpp:1459
memory::desc bias_desc() const
Queries bias memory descriptor.
Definition: dnnl.hpp:5219
Primitive descriptor for LBR_GRU backward propagation.
Definition: dnnl.hpp:5474
int DNNL_API dnnl_post_ops_len(const_dnnl_post_ops_t post_ops)
Returns the length of post operations for given post_ops.
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_backward_data_desc_init(dnnl_deconvolution_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 dilated deconvolution descriptor conv_desc for backward propagation with respect to dat...
memory::desc weights_layer_desc() const
Queries weights layer memory descriptor.
Definition: dnnl.hpp:4559
2D CNN weights tensor, an alias to dnnl_ab
Definition: dnnl_types.h:363
Convolution backward propagation.
Definition: dnnl.hpp:2331
Weights format used in 8bit Winograd convolution.
Definition: dnnl_types.h:97
Primitive descriptor for deconvolution forward propagation.
Definition: dnnl.hpp:2716
execution engine
Definition: dnnl_types.h:1561
Local response normalization (LRN) across multiple channels.
memory::desc bias_desc() const
Queries bias memory descriptor.
Definition: dnnl.hpp:4125
5D RNN weights tensor in the format (num_layers, num_directions, num_gates, output_channels, input_channels).
Definition: dnnl_types.h:424
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &e, const convolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Initializes a primitive descriptor for convolution weight update with attributes defined by attr...
Definition: dnnl.hpp:2554
memory::desc bias_desc() const
Queries bias memory descriptor.
Definition: dnnl.hpp:4572
Primitive descriptor for RNN forward propagation.
Definition: dnnl.hpp:4385
memory::desc dst_iter_desc() const
Queries destination iteration memory descriptor.
Definition: dnnl.hpp:4585
Softmax for forward propagation.
Definition: dnnl.hpp:3479
LRN within a single channel.
Definition: dnnl_types.h:704
Descriptor for deconvolution backward propagation.
Definition: dnnl.hpp:2774
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 an LBR GRU descriptor rnn_desc for backward propagation using prop_kind, direction, and memory descriptors.
memory::desc diff_dst_layer_desc() const
Queries diff destination layer memory descriptor.
Definition: dnnl.hpp:5576
5D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:267
desc(algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &dilates, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for dilated convolution weight update with bias using aalgorithm, memory descriptors, strides, dilates padding_l, and padding_r.
Definition: dnnl.hpp:2495
dnnl_stream_flags_t
Stream flags.
Definition: dnnl_types.h:1618
#define DNNL_MAX_NDIMS
Maximum number of dimensions a tensor can have.
Definition: dnnl_types.h:775
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:4592
4D CNN activations tensor, an alias to dnnl_bcda
Definition: dnnl_types.h:356
A user shall query and provide the scratchpad memory to primitives.
Definition: dnnl_types.h:1382
3D RNN data tensor in the format (batch, seq_length, input channels).
Definition: dnnl_types.h:407
memory::desc diff_src_iter_c_desc() const
Queries diff source recurrent cell state memory descriptor.
Definition: dnnl.hpp:4945
4D CNN weights tensor, an alias to dnnl_bacd
Definition: dnnl_types.h:383
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_desc memory descriptor using ndims, dims, data_type, and format tag...
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for softmax backward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:3568
Descriptor for GRU forward propagation.
Definition: dnnl.hpp:4995
3D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:217
Average pooling exclude padding.
Definition: dnnl_types.h:699
dnnl_status_t DNNL_API dnnl_post_ops_create(dnnl_post_ops_t *post_ops)
Creates an empty sequence of post operations post_ops.
desc(prop_kind aprop_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)
Initializes an RNN descriptor for backward propagation using prop_kind, activation, direction, and memory descriptors.
Definition: dnnl.hpp:4488
Primitive descriptor for GRU backward propagation.
Definition: dnnl.hpp:5171
memory::desc diff_dst_iter_desc() const
Queries diff destination iteration memory descriptor.
Definition: dnnl.hpp:5584
engine get_engine() const
Returns the engine of the memory.
Definition: dnnl.hpp:1551
destination grad. memory desc
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:4130
memory::desc variance_desc() const
Queries variance memory descriptor.
Definition: dnnl.hpp:3903
memory::desc weights_layer_desc() const
Queries weights layer memory descriptor.
Definition: dnnl.hpp:5071
Eltwise: hyperbolic tangent non-linearity (tanh)
dnnl_status_t DNNL_API dnnl_concat_primitive_desc_create(dnnl_primitive_desc_t *concat_primitive_desc, const dnnl_memory_desc_t *dst_md, int n, int concat_dimension, const dnnl_memory_desc_t *src_mds, const_dnnl_primitive_attr_t attr, dnnl_engine_t engine)
Creates out-of-place concat_primitive_desc for concatenation of n inputs by concat_dimension with res...
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for deconvolution backward propagation from a C primitive descript...
Definition: dnnl.hpp:2848
CPU engine.
Definition: dnnl_types.h:1325
A descriptor of a Layer Normalization operation.
Definition: dnnl_types.h:1156
RNN cell.
Definition: dnnl_types.h:706
3D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:213
Primitive descriptor for eltwise forward propagation.
Definition: dnnl.hpp:3373
dnnl_status_t DNNL_API dnnl_primitive_desc_iterator_next(dnnl_primitive_desc_iterator_t iterator)
Iterates over primitive descriptors.
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 for given op_desc, attr, engine, and optionally a hint primit...
dnnl_scratchpad_mode_t
Scratchpad mode.
Definition: dnnl_types.h:1378
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 post_ops for given attr.
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc, const memory::dims &strides, const memory::dims &dilates, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for dilated deconvolution forward propagation with bias using aprop_kind (po...
Definition: dnnl.hpp:2668
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 shuffle_desc for backward propagation using memory descriptor diff_data_desc, axis, and group_size.
5D CNN weights tensor (incl. groups), an alias to dnnl_decab
Definition: dnnl_types.h:398
The library manages scratchpad (default)
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 convolution descriptor conv_desc for backward propagation with respect to weights using...
reorder destination engine
Undefined memory format kind, used for empty memory descriptors.
Definition: dnnl_types.h:88
void set_output_scales(int mask, const std::vector< float > &scales)
Sets output scales for primitive operations.
Definition: dnnl.hpp:750
Primitive descriptor for LSTM forward propagation.
Definition: dnnl.hpp:4694
static void wrap_c_api(dnnl_status_t status, const char *message)
A convenience function for wrapping calls to the C API.
Definition: dnnl.hpp:76
dnnl_status_t DNNL_API dnnl_deconvolution_forward_desc_init(dnnl_deconvolution_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 deconvolution descriptor deconv_desc for forward propagation using prop_kind (possible ...
convolution_forward(const primitive_desc &pd)
Creates a convolution forward propagation primitive from the corresponding primitive descriptor...
Definition: dnnl.hpp:2324
dnnl_status_t DNNL_API dnnl_memory_unmap_data(const_dnnl_memory_t memory, void *mapped_ptr)
For a memory, unmaps a mapped pointer to the data of the memory.
dnnl_primitive_desc_t DNNL_API dnnl_primitive_desc_iterator_fetch(const_dnnl_primitive_desc_iterator_t iterator)
Fetches the current primitive descriptor.
A softmax primitive.
Definition: dnnl_types.h:633
source engine
Definition: dnnl_types.h:1578
GRU for backward propagation.
Definition: dnnl.hpp:5117
desc(algorithm aalgorithm, const memory::desc &diff_src_desc, const memory::desc &weights_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &dilates, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for dilated convolution backward propagation using aalgorithm, memory descriptors, strides, padding_l, and padding_r.
Definition: dnnl.hpp:2364
desc(algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for deconvolution weight update without bias using aalgorithm, memory descriptors, strides, padding_l, and padding_r.
Definition: dnnl.hpp:2915
Inner product for backward propagation with respect to data.
Definition: dnnl.hpp:4140
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 convolution descriptor conv_desc for backward propagation with respect to weights using...
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 scales for primitive operations.
LBR_GRU for forward propagation.
Definition: dnnl.hpp:5294
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:4037
A base class for descriptors of all primitives that have an operation descriptor and that support ite...
Definition: dnnl.hpp:2098
memory::desc diff_dst_desc() const
Queries diff destination memory descriptor.
Definition: dnnl.hpp:2863
Undefined propagation type.
Definition: dnnl_types.h:591
A class for wrapping an DNNL handle.
Definition: dnnl.hpp:99
5D CNN weights tensor (incl. groups), an alias to dnnl_abcde
Definition: dnnl_types.h:396
4D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcd16b ...
Definition: dnnl_types.h:448
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for LBR GRU backward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:5492
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:3242
memory::desc diff_bias_desc() const
Queries diff bias memory descriptor.
Definition: dnnl.hpp:4960
Memory descriptor.
Definition: dnnl_types.h:884
runtime estimation (seconds), unimplemented
Implements descriptor, primitive descriptor, and primitive for the binary.
Definition: dnnl.hpp:5713
Forward data propagation (alias for dnnl_forward_inference).
Definition: dnnl_types.h:600
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 pooling descriptor pool_desc for forward propagation using prop_kind (possible values a...
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for LSTM backward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:4866
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 convolution descriptor conv_desc for forward propagation using prop_kind (possible valu...
memory::desc mean_desc() const
Queries mean memory descriptor.
Definition: dnnl.hpp:4004
5D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcde16b ...
Definition: dnnl_types.h:439
6D CNN weights tensor (incl. groups), an alias to dnnl_abcdef
Definition: dnnl_types.h:402
batch normalization descriptor
Definition: dnnl_types.h:1593
void get_params_sum(int index, float &scale) const
Gets the parameters of the accumulation (sum) post operation with index index.
Definition: dnnl.hpp:646
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:3522
Descriptor for softmax backward propagation.
Definition: dnnl.hpp:3535
primitive_attr get_primitive_attr() const
Returns the attributes.
Definition: dnnl.hpp:1775
Deconvolution backward propagation.
Definition: dnnl.hpp:2771
Eltwise: ReLU.
Definition: dnnl_types.h:666
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 for given memory_desc and engine.
Binary mul.
Definition: dnnl_types.h:722
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 an LBR GRU descriptor rnn_desc for forward propagation using prop_kind, direction, and memory descriptors.
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.
void append_sum(float scale=1.)
Appends accumulation (sum) post operation.
Definition: dnnl.hpp:639
Unidirectional execution of RNN primitive from right to left.
Definition: dnnl_types.h:1224
Undefined propagation kind.
Backward data propagation.
Primitive descriptor for convolution forward propagation.
Definition: dnnl.hpp:2276
memory::desc diff_dst_iter_c_desc() const
Queries diff destination recurrent cell state memory descriptor.
Definition: dnnl.hpp:4978
memory::desc diff_weights_layer_desc() const
Queries diff weights layer memory descriptor.
Definition: dnnl.hpp:4610
dnnl_status_t DNNL_API dnnl_deconvolution_backward_data_desc_init(dnnl_deconvolution_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 deconvolution descriptor conv_desc for backward propagation with respect to data using ...
Forward data propagation, alias for dnnl::prop_kind::forward_inference.
Memory that describes the data.
Definition: dnnl.hpp:1071
convolution_backward_weights(const primitive_desc &pd)
Creates convolution weight update primitive from corresponding primitive descriptor.
Definition: dnnl.hpp:2590
engine(const dnnl_engine_t &aengine)
Constructs an engine from other engine aengine.
Definition: dnnl.hpp:892
memory::desc src_layer_desc() const
Queries source layer memory descriptor.
Definition: dnnl.hpp:4406
Descriptor for pooling backward propagation.
Definition: dnnl.hpp:3263
memory::desc weights_desc() const
Queries weights (scale and shift) memory descriptor.
Definition: dnnl.hpp:3664
4D CNN weights tensor (incl. groups), an alias to dnnl_abcd
Definition: dnnl_types.h:394
memory::desc diff_weights_iter_desc() const
Queries diff weights iteration memory descriptor.
Definition: dnnl.hpp:5566
number of outputs expected
dnnl_status_t DNNL_API dnnl_primitive_attr_set_rnn_data_qparams(dnnl_primitive_attr_t attr, const float scale, const float shift)
Sets quantization scale and shift for RNN data tensors.
memory::desc weights_layer_desc() const
Queries weights layer memory descriptor.
Definition: dnnl.hpp:4733
memory::desc bias_desc() const
Queries bias memory descriptor.
Definition: dnnl.hpp:4746
memory::desc variance_desc() const
Queries variance memory descriptor.
Definition: dnnl.hpp:3767
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:3171
memory::desc dst_layer_desc() const
Queries destination layer memory descriptor.
Definition: dnnl.hpp:5089
engine scratchpad_engine() const
Returns the engine that owns the scratchpad memory.
Definition: dnnl.hpp:1764
Primitive descriptor for softmax backward propagation.
Definition: dnnl.hpp:3550
Initializes a reorder primitive using the description of the source (src_engine and src_md) and desti...
Definition: dnnl.hpp:1869
Initializes an inner product descriptor for forward propagation using prop_kind (possible values are ...
Definition: dnnl.hpp:4069
memory::desc src_iter_c_desc() const
Queries source recurrent cell state memory descriptor.
Definition: dnnl.hpp:4728
memory::desc diff_weights_desc() const
Queries diff weights memory descriptor.
Definition: dnnl.hpp:4267
Descriptor for shuffle forward propagation.
Definition: dnnl.hpp:5608
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:4001
3D CNN weights tensor, an alias to dnnl_abc
Definition: dnnl_types.h:367
query
Primitive descriptor query specification.
Definition: dnnl.hpp:494
LRN within a single channel.
memory::desc diff_src_desc() const
Queries diff source memory descriptor.
Definition: dnnl.hpp:3159
Primitive descriptor for LSTM backward propagation.
Definition: dnnl.hpp:4848
permuted 4D tensor
Definition: dnnl_types.h:201
memory::desc mean_desc() const
Queries mean memory descriptor.
Definition: dnnl.hpp:3679
engine(const handle< dnnl_primitive_desc_t > &pd)
Constructs an engine from the primitive descriptor pd by querying its engine.
Definition: dnnl.hpp:896
Undefined memory format tag.
Definition: dnnl_types.h:175
5D RNN weights tensor in the format (num_layers, num_directions, input_channels, num_gates, output_channels).
Definition: dnnl_types.h:417
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 an out_memory_desc with new ndims and dims from a in_memory_desc.
memory::desc diff_weights_iter_desc() const
Queries diff weights iteration memory descriptor.
Definition: dnnl.hpp:5262
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:3787
memory::desc diff_src_desc() const
Queries diff source memory descriptor.
Definition: dnnl.hpp:3453
dnnl_status_t DNNL_API dnnl_memory_get_data_handle(const_dnnl_memory_t memory, void **handle)
For a memory, returns the data handle.
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for LBR GRU forward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:5355
dnnl_status_t DNNL_API dnnl_memory_get_ocl_mem_object(const_dnnl_memory_t memory, cl_mem *mem_object)
For a memory returns the OpenCL memory object associated with it.
Fuse with ReLU.
Definition: dnnl_types.h:764
3D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBc4b ...
Definition: dnnl_types.h:460
memory::desc diff_dst_desc() const
Queries diff destination memory descriptor.
Definition: dnnl.hpp:2581
primitive_desc(const desc &desc, const engine &e, const deconvolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Initializes a primitive descriptor for deconvolution weight update.
Definition: dnnl.hpp:2988
size_t DNNL_API dnnl_engine_get_count(dnnl_engine_kind_t kind)
Returns the number of engines of a particular kind.
Primitive descriptor for RNN backward propagation.
Definition: dnnl.hpp:4523
plain 3D tensor
Definition: dnnl_types.h:185
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 an LSTM descriptor rnn_desc for forward propagation using prop_kind, direction, and memory descriptors.
desc get_desc() const
Returns the descriptor of the memory.
Definition: dnnl.hpp:1543
The base class for all primitive descriptors.
Definition: dnnl.hpp:1716
Primitive descriptor for layer normalization backward propagation.
Definition: dnnl.hpp:3976
Descriptor for RNN forward propagation.
Definition: dnnl.hpp:4340
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:2757
4D RNN bias tensor in the format (num_layers, num_directions, num_gates, output_channels).
Definition: dnnl_types.h:431
prop_kind
Propagation kind.
Definition: dnnl.hpp:276
Eltwise: parametric exponential linear unit (elu)
dnnl_status_t DNNL_API dnnl_softmax_backward_desc_init(dnnl_softmax_desc_t *softmax_desc, const dnnl_memory_desc_t *diff_desc, const dnnl_memory_desc_t *data_desc, int softmax_axis)
Initializes a softmax_desc for backward propagation using memory descriptors diff_desc and data_desc...
permuted 3D tensor
Definition: dnnl_types.h:203
6D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:289
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &e, bool allow_empty=false)
Initializes a primitive descriptor for convolution forward propagation with attributes defined by att...
Definition: dnnl.hpp:2288
A descriptor of a Local Response Normalization (LRN) operation.
Definition: dnnl_types.h:1102
int ndims
Number of dimensions.
Definition: dnnl_types.h:886
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, memory::dim local_size, float alpha, float beta, float k=1.f)
Initializes a descriptor for forward propagation using prop_kind (possible values are dnnl::forward_t...
Definition: dnnl.hpp:3058
number of inputs expected
Definition: dnnl_types.h:1564
An element-wise primitive.
Definition: dnnl_types.h:631
void set_rnn_weights_qparams(int mask, const std::vector< float > &scales)
Sets quantization scales weights_scales for RNN weights tensors.
Definition: dnnl.hpp:809
dnnl_status_t DNNL_API dnnl_post_ops_append_eltwise(dnnl_post_ops_t post_ops, float scale, dnnl_alg_kind_t alg, float alpha, float beta)
Appends eltwise post operation to the post_ops with given parameters kind, alpha, and beta (...
desc(prop_kind aprop_kind, const memory::desc &src_desc, const memory::desc &stat_desc, float epsilon, normalization_flags flags)
Initializes a layer normalization descriptor for forward propagation using prop_kind (possible values...
Definition: dnnl.hpp:3844
desc(algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for convolution weight update with bias using aalgorithm, memory descriptors, strides, padding_l, and padding_r.
Definition: dnnl.hpp:2449
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for RNN forward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:4400
Primitive descriptor for inner product forward propagation.
Definition: dnnl.hpp:4093
Direct convolution.
Definition: dnnl_types.h:656
Forward data propagation (alias for dnnl_forward_training).
Definition: dnnl_types.h:602
desc(prop_kind aprop_kind, const memory::desc &data_desc, int axis, int group_size)
Initializes a shuffle descriptor for forward propagation using prop_kind, memory descriptor data_desc...
Definition: dnnl.hpp:5614
Descriptor for convolution forward propagation.
Definition: dnnl.hpp:2608
memory::desc src_iter_desc() const
Queries source iteration memory descriptor.
Definition: dnnl.hpp:5369
A shuffle primitive.
Definition: dnnl_types.h:621
5D CNN weights tensor, an alias to dnnl_cdeba
Definition: dnnl_types.h:387
Default order execution.
Definition: dnnl_types.h:1621
handle()=default
Empty constructor.
The library manages scratchpad (default)
Definition: dnnl_types.h:1380
Backward bias propagation.
stream(const engine &aengine, flags aflags=flags::default_flags)
Constructs a stream.
Definition: dnnl.hpp:995
memory::desc diff_dst_layer_desc() const
Queries diff destination layer memory descriptor.
Definition: dnnl.hpp:4625
memory::desc src_layer_desc() const
Queries source layer memory descriptor.
Definition: dnnl.hpp:5193
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for pooling backward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:3305
Primitive descriptor for GRU forward propagation.
Definition: dnnl.hpp:5037
memory::desc weights_iter_desc() const
Queries weights iteration memory descriptor.
Definition: dnnl.hpp:4738
A descriptor of a Batch Normalization operation.
Definition: dnnl_types.h:1128
Eltwise: square root.
Definition: dnnl_types.h:676
memory::desc dst_layer_desc() const
Queries destination layer memory descriptor.
Definition: dnnl.hpp:4577
(scratch) memory, additional to all inputs and outputs memory (bytes)
Definition: dnnl_types.h:1573
permuted 5D tensor
Definition: dnnl_types.h:196
primitive_desc(const desc &desc, const engine &e, const deconvolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Initializes a primitive descriptor for deconvolution backward propagation.
Definition: dnnl.hpp:2831
Primitive or engine failed on execution.
Definition: dnnl_types.h:62
dnnl_prop_kind_t
Kinds of propagation.
Definition: dnnl_types.h:588
scratchpad_mode
Scratchpad mode.
Definition: dnnl.hpp:264
lrn descriptor
Definition: dnnl_types.h:1592
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:3519
permuted 4D tensor
Definition: dnnl_types.h:199
desc(algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &dilates, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for dilated convolution weight update without bias using aalgorithm...
Definition: dnnl.hpp:2521
dnnl_status_t DNNL_API dnnl_memory_set_ocl_mem_object(dnnl_memory_t memory, cl_mem mem_object)
For a memory sets the OpenCL memory object associated with it.
desc(prop_kind aprop_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)
Initializes an LBR GRU descriptor for forward propagation using prop_kind, direction, and memory descriptors.
Definition: dnnl.hpp:5317
desc(algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for deconvolution weight update with bias using aalgorithm, memory descriptors, strides, padding_l, and padding_r.
Definition: dnnl.hpp:2891
An opaque structure to describe a primitive descriptor.
LBR_GRU descriptor for backward propagation.
Definition: dnnl.hpp:5423
dnnl_status_t DNNL_API dnnl_post_ops_get_params_sum(const_dnnl_post_ops_t post_ops, int index, float *scale)
Gets the parameters of the accumulation (sum) post operation with index index in the sequence of post...
memory::desc diff_src_desc() const
Queries diff source memory descriptor.
Definition: dnnl.hpp:3792
dnnl_status_t DNNL_API dnnl_primitive_desc_iterator_destroy(dnnl_primitive_desc_iterator_t iterator)
Deletes a primitive descriptor iterator.
bool is_zero() const
Returns true if the memory descriptor describes an empty memory.
Definition: dnnl.hpp:1481
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:3674
desc(prop_kind aprop_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, float epsilon, normalization_flags flags)
Initializes a batch normalization descriptor for backward propagation with respect to data and scale-...
Definition: dnnl.hpp:3723
permuted 2D tensor
Definition: dnnl_types.h:197
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for local response normalization backward propagation from a C pri...
Definition: dnnl.hpp:3154
A binary primitive.
Definition: dnnl_types.h:649
LSTM descriptor for backward propagation.
Definition: dnnl.hpp:4787
Primitive descriptor for inner product backward propagation with respect to data. ...
Definition: dnnl.hpp:4162
Forward data propagation (inference mode).
Definition: dnnl_types.h:598
Descriptor for layer normalization backward propagation.
Definition: dnnl.hpp:3940
memory::desc diff_src_iter_desc() const
Queries diff source iteration memory descriptor.
Definition: dnnl.hpp:5252
Convolution algorithm(either direct or Winograd) is chosen just in time.
Definition: dnnl_types.h:660
permuted 3D tensor
Definition: dnnl_types.h:198
destination engine
Definition: dnnl_types.h:1579
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:3661
GRU cell with linear before reset.
Definition: dnnl_types.h:718
memory::desc diff_src_iter_desc() const
Queries diff source iteration memory descriptor.
Definition: dnnl.hpp:4605
desc(prop_kind aprop_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)
Initializes an LSTM descriptor for backward propagation using prop_kind, direction, and memory descriptors.
Definition: dnnl.hpp:4808
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for deconvolution forward propagation with bias using prop_kind (possible va...
Definition: dnnl.hpp:2619
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for element-wise operations for forward propagation from a C primi...
Definition: dnnl.hpp:3388
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:2741
memory::desc diff_dst_layer_desc() const
Queries diff destination layer memory descriptor.
Definition: dnnl.hpp:5272
Primitive descriptor for deconvolution backward propagation.
Definition: dnnl.hpp:2826
Softmax for backward propagation.
Definition: dnnl.hpp:3532
LSTM cell.
Definition: dnnl_types.h:708
layer normalization descriptor
Definition: dnnl_types.h:1594
convolution descriptor
Definition: dnnl_types.h:1586
layer normalization descriptor
memory::desc weights_desc() const
Queries weights memory descriptor.
Definition: dnnl.hpp:2858
Primitive descriptor for LBR_GRU forward propagation.
Definition: dnnl.hpp:5340
void set_post_ops(post_ops ops)
Sets post_ops for future use.
Definition: dnnl.hpp:767
void set_ocl_mem_object(cl_mem mem_object)
Sets the OpenCL memory object mem_object associated with the memory.
Definition: dnnl.hpp:1619
dnnl_status_t DNNL_API dnnl_primitive_attr_set_post_ops(dnnl_primitive_attr_t attr, const_dnnl_post_ops_t post_ops)
Sets configured post_ops to an attribute attr for future use (when primitive descriptor is being crea...
memory::desc dst_iter_desc() const
Queries destination recurrent hidden state memory descriptor.
Definition: dnnl.hpp:4915
Eltwise: logistic.
Definition: dnnl_types.h:684
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for convolution weights update from a C primitive descriptor pd...
Definition: dnnl.hpp:2563
desc(prop_kind aprop_kind, const memory::desc &data_desc, int softmax_axis)
Initializes a softmax descriptor for forward propagation using prop_kind (possible values are dnnl::f...
Definition: dnnl.hpp:3488
scratchpad_mode get_scratchpad_mode() const
Returns the scratchpad mode.
Definition: dnnl.hpp:704
dnnl_status_t DNNL_API dnnl_stream_create_ocl(dnnl_stream_t *stream, dnnl_engine_t engine, cl_command_queue queue)
Creates an execution stream for a given engine associated with an OpenCL command queue.
primitive_desc(const desc &desc, const primitive_attr &attr, const engine &e, const convolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Initializes primitive descriptor for convolution backward propagation with attributes defined by attr...
Definition: dnnl.hpp:2397
GRU cell.
Definition: dnnl_types.h:710
Undefined data type, used for empty memory descriptors.
Definition: dnnl_types.h:70
memory::desc diff_dst_layer_desc() const
Queries diff destination layer memory descriptor.
Definition: dnnl.hpp:4965
T * map_data() const
Maps the data of the memory.
Definition: dnnl.hpp:1589
desc(algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &dilates, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for dilated deconvolution weight update without bias using aalgorithm...
Definition: dnnl.hpp:2963
2D CNN weights tensor, an alias to dnnl_ba
Definition: dnnl_types.h:365
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc, const memory::dims &strides, const memory::dims &dilates, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for dilated deconvolution forward propagation without bias using aprop_kind ...
Definition: dnnl.hpp:2695
Descriptor for pooling forward propagation.
Definition: dnnl.hpp:3195
primitive_desc(const desc &desc, const engine &e, const convolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Initializes a primitive descriptor for convolution weight update.
Definition: dnnl.hpp:2546
memory::desc weights_desc() const
Queries weights (scale and shift) memory descriptor.
Definition: dnnl.hpp:3772
void set_sycl_buffer(cl::sycl::buffer< T, ndims > &buf)
Sets the underlying buffer to the given SYCL buffer.
Definition: dnnl.hpp:1655
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for deconvolution forward propagation without bias using prop_kind (possible...
Definition: dnnl.hpp:2644
desc(algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for convolution weight update without bias using aalgorithm, memory descriptors, strides, padding_l, and padding_r.
Definition: dnnl.hpp:2473
desc(prop_kind aprop_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, const memory::desc &stat_desc, float epsilon, normalization_flags flags)
Initializes a layer normalization descriptor for backward propagation with respect to data and scale-...
Definition: dnnl.hpp:3951
Convolution weight update.
Definition: dnnl.hpp:2437
A convolution primitive.
Definition: dnnl_types.h:627
desc()
Constructs a zero memory descriptor.
Definition: dnnl.hpp:1418
4D tensor blocked by 1st and 2nd dimension with block size 8
Definition: dnnl_types.h:250
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for element-wise operations for backward propagation from a C prim...
Definition: dnnl.hpp:3445
Primitive descriptor for softmax forward propagation.
Definition: dnnl.hpp:3498
Primitive descriptor for eltwise backward propagation.
Definition: dnnl.hpp:3427
Descriptor for softmax forward propagation.
Definition: dnnl.hpp:3482
const post_ops get_post_ops() const
Returns post_ops previously set by set_post_ops.
Definition: dnnl.hpp:757
primitive_desc(const desc &desc, const engine &e, bool allow_empty=false)
Initializes a primitive descriptor for convolution forward propagation.
Definition: dnnl.hpp:2281
memory::desc dst_iter_c_desc() const
Queries destination recurrent cell state memory descriptor.
Definition: dnnl.hpp:4920
32-bit/single-precision floating point.
Definition: dnnl_types.h:76
destination memory desc
Definition: dnnl_types.h:1606
memory::desc variance_desc() const
Queries variance memory descriptor.
Definition: dnnl.hpp:3682
memory::desc workspace_desc() const
Queries workspace memory descriptor.
Definition: dnnl.hpp:4927
format_tag
Memory format tag specification.
Definition: dnnl.hpp:1118
Unspecified format kind.
Definition: dnnl_types.h:91
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 an eltwise_desc for backward propagation using alg_kind algorithm memory descriptors diff...
memory::desc dst_iter_desc() const
Queries destination iteration memory descriptor.
Definition: dnnl.hpp:4445
memory::desc src_layer_desc() const
Queries source layer memory descriptor.
Definition: dnnl.hpp:5361
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for deconvolution weights update from a C primitive descriptor pd...
Definition: dnnl.hpp:3005
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for inner product backward propagation from a C primitive descript...
Definition: dnnl.hpp:4180
primitive_desc(dnnl_primitive_desc_t pd)
Initializes a primitive descriptor for pooling forward propagation from a C primitive descriptor pd...
Definition: dnnl.hpp:3236
memory::desc weights_iter_desc() const
Queries weights iteration memory descriptor.
Definition: dnnl.hpp:4424
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:3573
Just a sentinel, not real memory format tag.
Definition: dnnl_types.h:333
rnn descriptor
Definition: dnnl_types.h:1596
desc(algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &dilates, const memory::dims &padding_l, const memory::dims &padding_r)
Initializes a descriptor for dilated deconvolution weight update with bias using aalgorithm, memory descriptors, strides, dilates padding_l, and padding_r.
Definition: dnnl.hpp:2937
eltwise descriptor
Definition: dnnl_types.h:1589
normalization_flags
Flags for batch normalization primitive.
Definition: dnnl.hpp:383
Winograd deconvolution.
Definition: dnnl_types.h:664
memory::desc src_desc() const
Queries source memory descriptor.
Definition: dnnl.hpp:3761
primitive_attr()
Creates default primitive attributes.
Definition: dnnl.hpp:690
memory consumption – extra
Definition: dnnl_types.h:1568
size_t get_size() const
Returns the number of bytes required to allocate the memory described including the padding area...
Definition: dnnl.hpp:1478
plain 5D tensor
Definition: dnnl_types.h:187
A layer normalization primitive.
Definition: dnnl_types.h:641
dnnl_engine_kind_t
Kinds of engines.
Definition: dnnl_types.h:1321
Descriptor for convolution backward propagation.
Definition: dnnl.hpp:2334
An unspecified engine.
Definition: dnnl_types.h:1323
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:3669
Eltwise: square.
Definition: dnnl_types.h:672
size_t DNNL_API dnnl_memory_desc_get_size(const dnnl_memory_desc_t *memory_desc)
Returns the size (in bytes) that is required for given memory_desc.
An execution stream.
Definition: dnnl.hpp:976
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 batch normalization descriptor bnrm_desc for forward propagation using prop_kind (possi...
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 GRU descriptor rnn_desc for forward propagation using prop_kind, direction, and memory descriptors.
permuted 4D tensor
Definition: dnnl_types.h:195
memory::desc diff_bias_desc() const
Queries diff bias memory descriptor.
Definition: dnnl.hpp:5571
memory::desc dst_desc() const
Queries destination memory descriptor.
Definition: dnnl.hpp:3897
memory::desc diff_weights_iter_desc() const
Queries diff weights iteration memory descriptor.
Definition: dnnl.hpp:4615
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 an RNN descriptor rnn_desc for forward propagation using prop_kind, activation, direction, and memory descriptors.
5D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:260
GPU engine.
Definition: dnnl_types.h:1327
3D RNN data tensor in the format (seq_length, batch, input channels).
Definition: dnnl_types.h:405
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 an eltwise_desc for forward propagation using prop_kind (possible values are dnnl_forward...
Post operations.
Definition: dnnl.hpp:597
4D CNN activations tensor, an alias to dnnl_acdb
Definition: dnnl_types.h:354
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 shuffle_desc for forward propagation using prop_kind, memory descriptor data_desc...