oneAPI Deep Neural Network Library (oneDNN)
1.95.0
Performance library for Deep Learning
Go to the documentation of this file.
23 #include "dnnl_config.h"
32 #include <unordered_map>
36 #if DNNL_CPU_THREADING_RUNTIME == DNNL_RUNTIME_THREADPOOL
37 #include "dnnl_threadpool_iface.hpp"
40 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
45 #include <CL/sycl.hpp>
54 #ifndef DNNL_ENABLE_EXCEPTIONS
55 #if __cpp_exceptions || __EXCEPTIONS \
56 || (defined(_MSC_VER) && !defined(__clang__))
57 #define DNNL_ENABLE_EXCEPTIONS 1
59 #define DNNL_ENABLE_EXCEPTIONS 0
63 #if defined(__GNUC__) || defined(__clang__)
64 #define DNNL_TRAP() __builtin_trap()
65 #elif defined(__INTEL_COMPILER) || defined(_MSC_VER)
66 #define DNNL_TRAP() __debugbreak()
68 #error "unknown compiler"
71 #if DNNL_ENABLE_EXCEPTIONS
72 #define DNNL_THROW_ERROR(status, msg) throw error(status, msg)
75 #define DNNL_THROW_ERROR(status, msg) \
96 struct error :
public std::exception {
108 const char *
what() const noexcept
override {
return message; }
121 template <
typename T>
122 void validate_container_size(
const T &v,
const char *error_message,
123 int min_size = 1,
int max_size = -1) {
124 const int size = (int)v.size();
125 if (size < min_size || (max_size >= 0 && size > max_size))
131 template <
typename T>
147 template <
typename T,
typename traits = handle_traits<T>>
151 std::shared_ptr<typename std::remove_pointer<T>::type> data_ {0};
154 bool operator==(
const T other)
const {
return other == data_.get(); }
155 bool operator!=(
const T other)
const {
return !(*
this == other); }
188 void reset(T t,
bool weak =
false) {
189 data_.reset(t, weak ? &dummy_destructor : traits::destructor);
197 T
get(
bool allow_empty =
false)
const {
198 T result = data_.get();
199 if (allow_empty ==
false && result ==
nullptr)
209 explicit operator T()
const {
return get(
true); }
214 explicit operator bool()
const {
return get(
true) !=
nullptr; }
223 return other.data_.get() == data_.get();
269 struct primitive_desc;
363 const std::unordered_map<int, memory> &args)
const;
365 #ifdef DNNL_SYCL_DPCPP
366 cl::sycl::event DNNL_API execute_sycl(
const stream &astream,
381 const std::unordered_map<int, memory> &args,
382 const std::vector<cl::sycl::event> &deps = {})
const;
397 "could not get a primitive descriptor from a primitive");
408 "could not get a primitive kind from a primitive descriptor");
498 undef = dnnl_alg_kind_undef,
668 #define DNNL_DEFINE_BITMASK_OPS(enum_name) \
669 inline enum_name operator|(enum_name lhs, enum_name rhs) { \
670 return static_cast<enum_name>( \
671 static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); \
674 inline enum_name operator&(enum_name lhs, enum_name rhs) { \
675 return static_cast<enum_name>( \
676 static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); \
679 inline enum_name operator^(enum_name lhs, enum_name rhs) { \
680 return static_cast<enum_name>( \
681 static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); \
684 inline enum_name &operator|=(enum_name &lhs, enum_name rhs) { \
685 lhs = static_cast<enum_name>( \
686 static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); \
690 inline enum_name &operator&=(enum_name &lhs, enum_name rhs) { \
691 lhs = static_cast<enum_name>( \
692 static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); \
696 inline enum_name &operator^=(enum_name &lhs, enum_name rhs) { \
697 lhs = static_cast<enum_name>( \
698 static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); \
702 inline enum_name operator~(enum_name rhs) { \
703 return static_cast<enum_name>(~static_cast<unsigned>(rhs)); \
902 "could not create an engine");
906 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
907 engine(
kind akind, cl_device_id device, cl_context context) {
917 "could not create an engine");
923 DNNL_API
engine(
kind akind,
const cl::sycl::device &dev,
929 const cl::sycl::context &ctx);
941 "could not get an engine from a primitive_desc");
942 reset(c_engine,
true);
950 "could not get kind of an engine");
954 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
958 cl_context context =
nullptr;
960 "could not get an OpenCL context from an engine");
967 cl_device_id device =
nullptr;
969 "could not get an OpenCL device from an engine");
987 template <
typename primitive_desc>
997 template <
typename primitive_desc>
1002 "could not get an engine from a primitive_desc");
1003 return engine(c_engine,
true);
1054 "could not create stream attributes");
1058 #if DNNL_CPU_THREADING_RUNTIME == DNNL_RUNTIME_THREADPOOL
1068 "could not set stream threadpool attribute");
1079 "could not set stream threadpool attribute");
1118 "could not create a stream");
1122 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
1123 stream(
const engine &aengine, cl_command_queue queue) {
1130 "could not create a stream");
1137 cl_command_queue queue =
nullptr;
1139 "could not get an OpenCL command queue from a stream");
1145 DNNL_API
stream(
const engine &aengine, cl::sycl::queue &queue);
1254 template <
typename T>
1256 validate_container_size(
1511 Abc16a = dnnl_Abc16a,
1512 ABc16a16b = dnnl_ABc16a16b,
1513 ABc4a4b = dnnl_ABc4a4b,
1516 ABc16b16a = dnnl_ABc16b16a,
1519 ABc4b16a4b = dnnl_ABc4b16a4b,
1520 ABc2b8a4b = dnnl_ABc2b8a4b,
1521 ABc16b16a4b = dnnl_ABc16b16a4b,
1522 ABc16b16a2b = dnnl_ABc16b16a2b,
1523 ABc4b4a = dnnl_ABc4b4a,
1524 ABc8a16b2a = dnnl_ABc8a16b2a,
1525 ABc8a8b = dnnl_ABc8a8b,
1526 ABc8a4b = dnnl_ABc8a4b,
1528 ABc8b16a2b = dnnl_ABc8b16a2b,
1529 ABc8b8a = dnnl_ABc8b8a,
1530 Abcd8a = dnnl_Abcd8a,
1531 Abcd16a = dnnl_Abcd16a,
1532 Abcd32a = dnnl_Abcd32a,
1533 ABcd16a16b = dnnl_ABcd16a16b,
1536 ABcd16b16a = dnnl_ABcd16b16a,
1537 aBCd16b16c = dnnl_aBCd16b16c,
1538 aBCd16c16b = dnnl_aBCd16c16b,
1539 Abcd4a = dnnl_Abcd4a,
1541 ABcd4b16a4b = dnnl_ABcd4b16a4b,
1542 ABcd2b8a4b = dnnl_ABcd2b8a4b,
1543 ABcd4b4a = dnnl_ABcd4b4a,
1544 ABcd4a4b = dnnl_ABcd4a4b,
1545 aBCd4c16b4c = dnnl_aBCd4c16b4c,
1546 aBCd2c8b4c = dnnl_aBCd2c8b4c,
1547 ABcd16b16a4b = dnnl_ABcd16b16a4b,
1548 ABcd16b16a2b = dnnl_ABcd16b16a2b,
1549 aBCd16c16b4c = dnnl_aBCd16c16b4c,
1550 aBCd16c16b2c = dnnl_aBCd16c16b2c,
1551 aBCd4c4b = dnnl_aBCd4c4b,
1552 aBCd4b4c = dnnl_aBCd4b4c,
1553 ABcd8a16b2a = dnnl_ABcd8a16b2a,
1554 ABcd8a8b = dnnl_ABcd8a8b,
1555 ABcd8a4b = dnnl_ABcd8a4b,
1558 ABcd8b16a2b = dnnl_ABcd8b16a2b,
1559 aBCd8b16c2b = dnnl_aBCd8b16c2b,
1562 aBCd8b8c = dnnl_aBCd8b8c,
1563 aBCd8b4c = dnnl_aBCd8b4c,
1564 aBCd8c16b2c = dnnl_aBCd8c16b2c,
1565 aBCd8c8b = dnnl_aBCd8c8b,
1566 Abcde16a = dnnl_Abcde16a,
1567 Abcde32a = dnnl_Abcde32a,
1568 ABcde16a16b = dnnl_ABcde16a16b,
1571 ABcde16b16a = dnnl_ABcde16b16a,
1572 aBCde16b16c = dnnl_aBCde16b16c,
1573 aBCde16c16b = dnnl_aBCde16c16b,
1574 aBCde2c8b4c = dnnl_aBCde2c8b4c,
1575 Abcde4a = dnnl_Abcde4a,
1577 ABcde4b4a = dnnl_ABcde4b4a,
1578 ABcde4a4b = dnnl_ABcde4a4b,
1579 aBCde4b4c = dnnl_aBCde4b4c,
1580 aBCde4c16b4c = dnnl_aBCde4c16b4c,
1581 aBCde16c16b4c = dnnl_aBCde16c16b4c,
1582 aBCde16c16b2c = dnnl_aBCde16c16b2c,
1583 aBCde4c4b = dnnl_aBCde4c4b,
1584 Abcde8a = dnnl_Abcde8a,
1585 ABcde8a8b = dnnl_ABcde8a8b,
1586 ABcde8a4b = dnnl_ABcde8a4b,
1588 ABcde8b16a2b = dnnl_ABcde8b16a2b,
1591 aBCde8b16c2b = dnnl_aBCde8b16c2b,
1592 ABcde8b8a = dnnl_ABcde8b8a,
1593 aBCde8b8c = dnnl_aBCde8b8c,
1594 aBCde8b4c = dnnl_aBCde8b4c,
1595 ABcd4a8b8a4b = dnnl_ABcd4a8b8a4b,
1596 ABcd2a8b8a2b = dnnl_ABcd2a8b8a2b,
1597 aBCde4b8c8b4c = dnnl_aBCde4b8c8b4c,
1598 aBCde2b8c8b2c = dnnl_aBCde2b8c8b2c,
1599 aBCde8c16b2c = dnnl_aBCde8c16b2c,
1600 aBCde8c8b = dnnl_aBCde8c8b,
1602 aBCdef16b16c = dnnl_aBCdef16b16c,
1603 aBCdef16c16b = dnnl_aBCdef16c16b,
1606 aBCdef4c4b = dnnl_aBCdef4c4b,
1607 aBCdef4b4c = dnnl_aBCdef4b4c,
1608 aBCdef8b8c = dnnl_aBCdef8b8c,
1609 aBCdef8b4c = dnnl_aBCdef8b4c,
1610 aBCdef8c16b2c = dnnl_aBCdef8c16b2c,
1611 aBCdef4c16b4c = dnnl_aBCdef4c16b4c,
1612 aBCdef8c8b = dnnl_aBCdef8c8b,
1613 aBdc16b = dnnl_aBdc16b,
1614 aBdc4b = dnnl_aBdc4b,
1615 aBdc8b = dnnl_aBdc8b,
1616 aBdec16b = dnnl_aBdec16b,
1617 aBdec4b = dnnl_aBdec4b,
1618 aBdec8b = dnnl_aBdec8b,
1619 aBdefc16b = dnnl_aBdefc16b,
1620 aCBdef16c16b = dnnl_aCBdef16c16b,
1621 aCBdef16b16c = dnnl_aCBdef16b16c,
1622 aBdefc4b = dnnl_aBdefc4b,
1623 aBdefc8b = dnnl_aBdefc8b,
1624 Acb16a = dnnl_Acb16a,
1627 aCBd16b16c = dnnl_aCBd16b16c,
1628 aCBd16c16b = dnnl_aCBd16c16b,
1629 aCBde16b16c = dnnl_aCBde16b16c,
1630 aCBde16c16b = dnnl_aCBde16c16b,
1631 Acdb16a = dnnl_Acdb16a,
1632 Acdb4a = dnnl_Acdb4a,
1633 Acdb8a = dnnl_Acdb8a,
1634 Acdeb16a = dnnl_Acdeb16a,
1635 Acdeb4a = dnnl_Acdeb4a,
1636 Acdeb8a = dnnl_Acdeb8a,
1637 BAc16a16b = dnnl_BAc16a16b,
1638 BAc16b16a = dnnl_BAc16b16a,
1639 BAcd16a16b = dnnl_BAcd16a16b,
1640 BAcd16b16a = dnnl_BAcd16b16a,
1641 ABcd32a32b = dnnl_ABcd32a32b,
1642 BAcde16b16a = dnnl_BAcde16b16a,
1643 BAcde16a16b = dnnl_BAcde16a16b,
1644 aBdec32b = dnnl_aBdec32b,
1645 Abcdef16a = dnnl_Abcdef16a,
1646 Abcdef32a = dnnl_Abcdef32a,
1647 Acdb32a = dnnl_Acdb32a,
1651 aBCd2c4b2c = dnnl_aBCd2c4b2c,
1652 aBCde2c4b2c = dnnl_aBCde2c4b2c,
1653 aBCdef2c4b2c = dnnl_aBCdef2c4b2c,
1654 aBCd4b8c2b = dnnl_aBCd4b8c2b,
1655 aBCde4b8c2b = dnnl_aBCde4b8c2b,
1656 aBCdef4b8c2b = dnnl_aBCdef4b8c2b,
1657 aBCd4c8b2c = dnnl_aBCd4c8b2c,
1658 aBCde4c8b2c = dnnl_aBCde4c8b2c,
1659 aBCdef4c8b2c = dnnl_aBCdef4c8b2c,
1672 NCw16n16c = dnnl_NCw16n16c,
1673 NChw16n16c = dnnl_NChw16n16c,
1674 NCdhw16n16c = dnnl_NCdhw16n16c,
1675 NCdhw32n32c = dnnl_NCdhw32n32c,
1676 NChw32n32c = dnnl_NChw32n32c,
1677 IOhw16i16o = dnnl_IOhw16i16o,
1678 Ohwi32o = dnnl_Ohwi32o,
1679 IOdhw16i16o = dnnl_IOdhw16i16o,
1680 gIOhw16i16o = dnnl_gIOhw16i16o,
1681 gOhwi32o = dnnl_gOhwi32o,
1682 Goidhw16g = dnnl_Goidhw16g,
1683 IOw16o16i = dnnl_IOw16o16i,
1684 OIw16i16o = dnnl_OIw16i16o,
1685 IOw16i16o = dnnl_IOw16i16o,
1686 gIOw16i16o = dnnl_gIOw16i16o,
1687 OIw16o16i = dnnl_OIw16o16i,
1688 Oiw16o = dnnl_Oiw16o,
1689 OIw4i16o4i = dnnl_OIw4i16o4i,
1690 OIw2i8o4i = dnnl_OIw2i8o4i,
1691 OIw4i4o = dnnl_OIw4i4o,
1692 OIw4o4i = dnnl_OIw4o4i,
1694 OIw8i16o2i = dnnl_OIw8i16o2i,
1695 OIw8i8o = dnnl_OIw8i8o,
1696 OIw8o16i2o = dnnl_OIw8o16i2o,
1697 OIw8o8i = dnnl_OIw8o8i,
1698 OIw8o4i = dnnl_OIw8o4i,
1699 Owi16o = dnnl_Owi16o,
1700 OwI16o2i = dnnl_OwI16o2i,
1703 IOhw16o16i = dnnl_IOhw16o16i,
1704 Ohwi16o = dnnl_Ohwi16o,
1705 OhwI16o2i = dnnl_OhwI16o2i,
1706 Ohwi4o = dnnl_Ohwi4o,
1707 Ohwi8o = dnnl_Ohwi8o,
1708 OIhw16i16o = dnnl_OIhw16i16o,
1709 OIhw16o16i = dnnl_OIhw16o16i,
1710 Oihw16o = dnnl_Oihw16o,
1711 OIhw4i16o4i = dnnl_OIhw4i16o4i,
1712 OIhw4i4o = dnnl_OIhw4i4o,
1713 OIhw4o4i = dnnl_OIhw4o4i,
1714 Oihw4o = dnnl_Oihw4o,
1715 OIhw8i16o2i = dnnl_OIhw8i16o2i,
1716 OIhw8i8o = dnnl_OIhw8i8o,
1717 OIhw8o16i2o = dnnl_OIhw8o16i2o,
1718 OIhw8o8i = dnnl_OIhw8o8i,
1719 OIhw8o4i = dnnl_OIhw8o4i,
1720 OIhw2i8o4i = dnnl_OIhw2i8o4i,
1721 IOdhw16o16i = dnnl_IOdhw16o16i,
1722 Odhwi16o = dnnl_Odhwi16o,
1723 OdhwI16o2i = dnnl_OdhwI16o2i,
1724 Odhwi4o = dnnl_Odhwi4o,
1725 Odhwi8o = dnnl_Odhwi8o,
1726 OIdhw16i16o = dnnl_OIdhw16i16o,
1727 OIdhw16o16i = dnnl_OIdhw16o16i,
1728 Oidhw16o = dnnl_Oidhw16o,
1729 OIdhw4i4o = dnnl_OIdhw4i4o,
1730 OIdhw4o4i = dnnl_OIdhw4o4i,
1731 Oidhw4o = dnnl_Oidhw4o,
1732 OIdhw8i16o2i = dnnl_OIdhw8i16o2i,
1733 OIdhw4i16o4i = dnnl_OIdhw4i16o4i,
1734 OIdhw2i8o4i = dnnl_OIdhw2i8o4i,
1735 OIdhw8i8o = dnnl_OIdhw8i8o,
1736 OIdhw8o8i = dnnl_OIdhw8o8i,
1737 OIdhw8o4i = dnnl_OIdhw8o4i,
1738 gIOw16o16i = dnnl_gIOw16o16i,
1739 gOIw16i16o = dnnl_gOIw16i16o,
1740 gOIw16o16i = dnnl_gOIw16o16i,
1741 gOiw16o = dnnl_gOiw16o,
1742 gOIw4i16o4i = dnnl_gOIw4i16o4i,
1743 gOIw2i8o4i = dnnl_gOIw2i8o4i,
1744 gOIw4i4o = dnnl_gOIw4i4o,
1745 gOIw4o4i = dnnl_gOIw4o4i,
1746 gOiw4o = dnnl_gOiw4o,
1747 gOIw8i16o2i = dnnl_gOIw8i16o2i,
1748 gOIw8i8o = dnnl_gOIw8i8o,
1749 gOIw8o16i2o = dnnl_gOIw8o16i2o,
1750 gOIw8o8i = dnnl_gOIw8o8i,
1751 gOIw8o4i = dnnl_gOIw8o4i,
1752 gOwi16o = dnnl_gOwi16o,
1753 gOwI16o2i = dnnl_gOwI16o2i,
1754 gOwi4o = dnnl_gOwi4o,
1755 gOwi8o = dnnl_gOwi8o,
1756 Goiw8g = dnnl_Goiw8g,
1757 Goiw16g = dnnl_Goiw16g,
1758 gIOhw16o16i = dnnl_gIOhw16o16i,
1759 gOhwi16o = dnnl_gOhwi16o,
1760 gOhwI16o2i = dnnl_gOhwI16o2i,
1761 gOhwi4o = dnnl_gOhwi4o,
1762 gOhwi8o = dnnl_gOhwi8o,
1763 Goihw16g = dnnl_Goihw16g,
1764 gOIhw16i16o = dnnl_gOIhw16i16o,
1765 gOIhw16o16i = dnnl_gOIhw16o16i,
1766 gOihw16o = dnnl_gOihw16o,
1767 gOIhw4i16o4i = dnnl_gOIhw4i16o4i,
1768 gOIhw2i8o4i = dnnl_gOIhw2i8o4i,
1769 gOIhw4i4o = dnnl_gOIhw4i4o,
1770 gOIhw4o4i = dnnl_gOIhw4o4i,
1771 gOihw4o = dnnl_gOihw4o,
1772 Goihw8g = dnnl_Goihw8g,
1773 gOIhw8i16o2i = dnnl_gOIhw8i16o2i,
1774 gOIhw8i8o = dnnl_gOIhw8i8o,
1775 gOIhw8o16i2o = dnnl_gOIhw8o16i2o,
1776 OIw4o8i8o4i = dnnl_OIw4o8i8o4i,
1777 OIdhw4o8i8o4i = dnnl_OIdhw4o8i8o4i,
1778 OIhw4o8i8o4i = dnnl_OIhw4o8i8o4i,
1779 OIhw2o8i8o2i = dnnl_OIhw2o8i8o2i,
1780 gOIw4o8i8o4i = dnnl_gOIw4o8i8o4i,
1781 gOIdhw4o8i8o4i = dnnl_gOIdhw4o8i8o4i,
1782 gOIhw4o8i8o4i = dnnl_gOIhw4o8i8o4i,
1783 gOIhw2o8i8o2i = dnnl_gOIhw2o8i8o2i,
1784 OIhw16i16o4i = dnnl_OIhw16i16o4i,
1785 OIhw16i16o2i = dnnl_OIhw16i16o2i,
1786 gOIhw16i16o4i = dnnl_gOIhw16i16o4i,
1787 gOIhw16i16o2i = dnnl_gOIhw16i16o2i,
1788 gOIhw8o8i = dnnl_gOIhw8o8i,
1789 gOIhw8o4i = dnnl_gOIhw8o4i,
1790 gIOdhw16i16o = dnnl_gIOdhw16i16o,
1791 gIOdhw16o16i = dnnl_gIOdhw16o16i,
1792 gOdhwi16o = dnnl_gOdhwi16o,
1793 gOdhwI16o2i = dnnl_gOdhwI16o2i,
1794 gOdhwi4o = dnnl_gOdhwi4o,
1795 gOdhwi8o = dnnl_gOdhwi8o,
1796 gOIdhw16i16o = dnnl_gOIdhw16i16o,
1797 gOIdhw16o16i = dnnl_gOIdhw16o16i,
1798 gOidhw16o = dnnl_gOidhw16o,
1799 gOIdhw4i4o = dnnl_gOIdhw4i4o,
1800 gOIdhw4o4i = dnnl_gOIdhw4o4i,
1801 gOidhw4o = dnnl_gOidhw4o,
1802 gOIdhw8i16o2i = dnnl_gOIdhw8i16o2i,
1803 gOIdhw4i16o4i = dnnl_gOIdhw4i16o4i,
1804 gOIdhw2i8o4i = dnnl_gOIdhw2i8o4i,
1805 gOIdhw8i8o = dnnl_gOIdhw8i8o,
1806 gOIdhw8o8i = dnnl_gOIdhw8o8i,
1807 gOIdhw8o4i = dnnl_gOIdhw8o4i,
1808 gOIw2i4o2i = dnnl_gOIw2i4o2i,
1809 gOIhw2i4o2i = dnnl_gOIhw2i4o2i,
1810 gOIdhw2i4o2i = dnnl_gOIdhw2i4o2i,
1811 gOIw2o4i2o = dnnl_gOIw2o4i2o,
1812 gOIhw2o4i2o = dnnl_gOIhw2o4i2o,
1813 gOIdhw2o4i2o = dnnl_gOIdhw2o4i2o,
1814 gOIw4i8o2i = dnnl_gOIw4i8o2i,
1815 gOIhw4i8o2i = dnnl_gOIhw4i8o2i,
1816 gOIdhw4i8o2i = dnnl_gOIdhw4i8o2i,
1817 gOIw4o8i2o = dnnl_gOIw4o8i2o,
1818 gOIhw4o8i2o = dnnl_gOIhw4o8i2o,
1819 gOIdhw4o8i2o = dnnl_gOIdhw4o8i2o,
1848 bool allow_empty =
false)
1850 validate_dims(adims);
1852 (
int)adims.size(), adims.data(),
convert_to_c(adata_type),
1856 "could not construct a memory descriptor using a "
1876 bool allow_empty =
false)
1878 validate_dims(adims);
1879 if (!strides.empty()) validate_dims(strides, (
int)adims.size());
1881 (
int)adims.size(), adims.data(),
convert_to_c(adata_type),
1882 strides.empty() ?
nullptr : &strides[0]);
1885 "could not construct a memory descriptor using "
1906 bool allow_empty =
false)
const {
1907 validate_dims(adims, data.
ndims);
1908 validate_dims(offsets, data.
ndims);
1911 &sub_md, &data, adims.data(), offsets.data());
1914 return desc(sub_md);
1962 if (data.
ndims) validate_dims(adims, 1);
1965 &out_md, &data, (
int)adims.size(), adims.data());
1968 status,
"could not reshape a memory descriptor");
1969 return desc(out_md);
2009 bool allow_empty =
false)
const {
2010 validate_dims(permutation, data.
ndims);
2013 &out_md, &data, permutation.data());
2016 "could not permute axes of a memory descriptor");
2017 return desc(out_md);
2062 explicit operator bool()
const {
return data.
ndims != 0; }
2078 #ifdef DNNL_USE_DPCPP_USM
2079 :
memory(with_sycl_tag {}, md,
engine, ahandle,
true) {
2082 : memory(with_sycl_tag {}, md,
engine, ahandle,
false) {
2086 memory(
const desc &md,
const engine &aengine,
void *handle) {
2110 "could not create a memory object");
2115 #if DNNL_WITH_SYCL && defined(DNNL_USE_SYCL_BUFFERS)
2116 template <
typename T,
int ndims = 1>
2123 cl::sycl::buffer<T, ndims> &buf)
2124 :
memory(md, aengine, DNNL_MEMORY_NONE) {
2125 set_sycl_buffer(buf);
2136 :
memory(md, aengine, DNNL_MEMORY_ALLOCATE) {}
2142 "could not get a memory descriptor from a memory object");
2143 return desc(*cdesc);
2150 "could not get an engine from a memory object");
2151 return engine(c_engine,
true);
2161 "could not get a native handle from a memory object");
2195 "could not set native handle of a memory object");
2210 "could not set native handle of a memory object");
2233 template <
typename T =
void>
2237 "could not map memory object data");
2238 return static_cast<T *
>(mapped_ptr);
2252 "could not unmap memory object data");
2255 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
2256 cl_mem get_ocl_mem_object()
const {
2260 "could not get OpenCL buffer object from a memory object");
2273 "could not set OpenCL buffer object from a memory object");
2277 #if DNNL_WITH_SYCL && defined(DNNL_USE_SYCL_BUFFERS)
2278 template <
typename T,
int ndims = 1>
2286 static_assert(ndims == 1,
"only 1D buffers supported");
2290 "could not get SYCL buffer object");
2295 return cl::sycl::buffer<T, ndims>(cl::sycl::range<1>(1));
2297 auto &buf_u8 = *
static_cast<cl::sycl::buffer<uint8_t, 1> *
>(handle_ptr);
2298 if (offset) *offset = 0;
2299 auto range = cl::sycl::range<1>(buf_u8.get_size() /
sizeof(T));
2300 return buf_u8.reinterpret<T, 1>(range);
2308 template <
typename T,
int ndims>
2310 auto range = cl::sycl::range<1>(buf.get_size());
2311 auto buf_u8 = buf.template reinterpret<uint8_t, 1>(range);
2313 get(),
static_cast<void *
>(&buf_u8)),
2314 "could not set SYCL buffer object");
2327 struct with_sycl_tag {};
2329 DNNL_API memory(with_sycl_tag,
const desc &md,
const engine &engine,
2330 void *ahandle,
bool is_usm);
2335 return a == memory::convert_to_c(b);
2348 return a == memory::convert_to_c(b);
2405 "post-ops index is out of range");
2444 "could not append a sum post-op");
2447 memory::convert_to_c(data_type)),
2448 "could not append a sum post-op");
2457 "could not get parameters of a sum post-op");
2469 get(), index, &scale, &c_data_type),
2470 "could not get parameters of a sum post-op");
2488 float scale,
algorithm aalgorithm,
float alpha,
float beta) {
2491 "could not append an elementwise post-op");
2502 float &alpha,
float &beta)
const {
2505 get(), index, &scale, &c_alg, &alpha, &beta),
2506 "could not get parameters of an elementwise post-op");
2540 int mask,
const std::vector<float> &scales) {
2543 memory::convert_to_c(weights_data_type),
2544 memory::convert_to_c(bias_data_type),
2545 memory::convert_to_c(dst_data_type),
2546 scales.size(), mask, &scales[0]),
2547 "could not append depthwise post-op");
2566 int &mask, std::vector<float> &scales)
const {
2573 const float *c_scales;
2575 &c_weights_data_type, &c_bias_data_type,
2576 &c_dst_data_type, &count, &c_mask, &c_scales),
2577 "could not get parameters of depthwise post-op");
2582 scales.resize(count);
2586 scales[c] = c_scales[c];
2625 int mask,
const std::vector<float> &scales) {
2628 memory::convert_to_c(weights_data_type),
2629 memory::convert_to_c(bias_data_type),
2630 memory::convert_to_c(dst_data_type),
2631 scales.size(), mask, &scales[0]),
2632 "could not append depthwise post-op");
2651 int &mask, std::vector<float> &scales)
const {
2658 const float *c_scales;
2660 &c_weights_data_type, &c_bias_data_type,
2661 &c_dst_data_type, &count, &c_mask, &c_scales),
2662 "could not get parameters of depthwise post-op");
2667 scales.resize(count);
2671 scales[c] = c_scales[c];
2695 "could not create primitive attribute");
2712 "could not get scratchpad mode primitive attribute");
2722 "could not set scratchpad mode primitive attribute");
2737 const float *c_scales;
2739 get(), &count, &c_mask, &c_scales),
2740 "could not get output scales primitive attribute");
2741 scales.resize(count);
2745 scales[c] = c_scales[c];
2794 "could not set output scales primitive attribute");
2808 void get_scales(
int arg,
int &mask, std::vector<float> &scales)
const {
2811 const float *c_scales;
2813 get(), arg, &count, &c_mask, &c_scales),
2814 "could not get scales primitive attributes");
2815 scales.resize(count);
2819 scales[c] = c_scales[c];
2838 void set_scales(
int arg,
int mask,
const std::vector<float> &scales) {
2841 (
dnnl_dim_t)scales.size(), mask, scales.data()),
2842 "could not set scales primitive attribute");
2856 int arg,
int &mask, std::vector<int32_t> &zero_points)
const {
2859 const int32_t *c_zero_points;
2861 get(), arg, &count, &c_mask, &c_zero_points),
2862 "could not get zero points primitive attribute");
2863 zero_points.resize(count);
2867 zero_points[c] = c_zero_points[c];
2891 int arg,
int mask,
const std::vector<int32_t> &zero_points) {
2894 zero_points.data()),
2895 "could not set zero points primitive attribute");
2905 "could not get post-ops primitive attribute");
2920 "could not set post-ops primitive attribute");
2959 "could not set RNN data quantization parameters primitive "
2991 (
int)scales.size(), mask, scales.data()),
2992 "could not set RNN weights quantization parameters primitive "
3019 "could not retrieve implementation info string from a "
3020 "primitive descriptor");
3053 if (!std::any_of(valid_q.cbegin(), valid_q.cend(),
3054 [=](
query q) { return what == q; }))
3056 "memory descriptor query is invalid");
3180 "could not retrieve scratchpad engine from a primitive "
3182 return engine(c_engine,
true);
3190 "could not get attributes from a primitive descriptor");
3193 "could not clone primitive attributes");
3203 "could not get primitive kind from a primitive descriptor");
3214 "could not clone a primitive descriptor");
3267 if (pd ==
nullptr)
return;
3280 rc,
"could not get primitive kind from a primitive descriptor");
3281 if (pd_kind != c_prim_kind)
3283 "primitive descriptor operation kind mismatch");
3293 "could not get propagation kind from the primitive "
3299 && (pd_prop_kind == c_prop_kind1
3300 || pd_prop_kind == c_prop_kind2))) {
3307 "primitive descriptor propagation kind mismatch");
3353 bool allow_empty =
false) {
3357 dst_engine.
get(), attr.get());
3360 "could not create a primitive descriptor for a reorder "
3378 bool allow_empty =
false) {
3387 "could not create a primitive descriptor for a reorder "
3448 #ifdef DNNL_SYCL_DPCPP
3449 using primitive::execute_sycl;
3461 cl::sycl::event execute_sycl(
const stream &astream,
memory &src,
3462 memory &dst,
const std::vector<cl::sycl::event> &deps = {})
const {
3463 return primitive::execute_sycl(astream,
3484 const std::vector<memory::desc> &mems) {
3485 std::vector<dnnl_memory_desc_t> c_mems;
3486 c_mems.reserve(mems.size());
3487 for (
const auto &s : mems)
3488 c_mems.push_back(s.data);
3513 const std::vector<memory::desc> &srcs,
const engine &aengine,
3520 (
int)c_srcs.size(), concat_dimension, c_srcs.data(),
3521 attr.get(), aengine.
get()),
3522 "could not create a primitive descriptor for a concat "
3540 const std::vector<memory::desc> &srcs,
const engine &aengine,
3547 (
int)c_api_srcs.size(), concat_dimension,
3548 c_api_srcs.data(), attr.get(), aengine.
get()),
3549 "could not create a primitive descriptor for a concat "
3604 const std::vector<float> &scales,
3605 const std::vector<memory::desc> &srcs,
const engine &aengine,
3607 validate_container_size(scales,
3608 "counts of scales and sources are not equal",
3609 (
int)srcs.size(), (
int)srcs.size());
3616 (
int)c_api_srcs.size(), scales.data(),
3617 c_api_srcs.data(), attr.get(), aengine.
get()),
3618 "could not create a primitive descriptor for a sum "
3634 const std::vector<memory::desc> &srcs,
const engine &aengine,
3636 validate_container_size(scales,
3637 "counts of scales and sources are not equal",
3638 (
int)srcs.size(), (
int)srcs.size());
3644 (
int)c_api_srcs.size(), scales.data(),
3645 c_api_srcs.data(), attr.get(), aengine.
get()),
3646 "could not create a primitive descriptor for a sum "
3709 bool allow_empty =
false)
3710 : allow_empty_(allow_empty) {
3713 desc, attr ? attr->
get() :
nullptr, aengine.
get(), hint_fwd_pd);
3716 status,
"could not create a primitive descriptor iterator");
3717 pd_iterator.reset(iterator);
3730 status,
"could not advance a primitive descriptor iterator");
3736 bool allow_empty_ =
false;
3740 pd_iterator.
get(allow_empty_));
3743 "could not fetch a primitive descriptor from a primitive "
3744 "descriptor iterator");
3810 &strides[0], &padding_l[0], &padding_r[0]),
3811 "could not create a descriptor for a convolution forward "
3812 "propagation primitive");
3854 &weights_desc.
data,
nullptr, &dst_desc.
data,
3855 &strides[0], &padding_l[0], &padding_r[0]),
3856 "could not create a descriptor for a convolution forward "
3857 "propagation primitive");
3904 &weights_desc.
data, &bias_desc.
data,
3905 &dst_desc.
data, &strides[0], &dilates[0],
3906 &padding_l[0], &padding_r[0]),
3907 "could not create a descriptor for a dilated convolution "
3908 "forward propagation primitive");
3953 &weights_desc.
data,
nullptr,
3954 &dst_desc.
data, &strides[0], &dilates[0],
3955 &padding_l[0], &padding_r[0]),
3956 "could not create a descriptor for a dilated convolution "
3957 "forward propagation primitive");
3977 bool allow_empty =
false)
3979 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
3993 const engine &aengine,
bool allow_empty =
false)
3995 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
4075 &weights_desc.
data, &diff_dst_desc.
data,
4076 &strides[0], &padding_l[0], &padding_r[0]),
4077 "could not create a descriptor for a convolution backward "
4078 "propagation primitive");
4120 &weights_desc.
data, &diff_dst_desc.
data,
4121 &strides[0], &dilates[0], &padding_l[0],
4123 "could not create a descriptor for a dilated convolution "
4124 "backward propagation primitive");
4148 bool allow_empty =
false)
4150 hint_fwd_pd.
get(), allow_empty) {}
4169 bool allow_empty =
false)
4171 hint_fwd_pd.
get(), allow_empty) {}
4246 &diff_weights_desc.
data, &diff_bias_desc.
data,
4247 &diff_dst_desc.
data, &strides[0], &padding_l[0],
4249 "could not create a descriptor for a convolution weights "
4250 "update primitive");
4287 &diff_weights_desc.
data,
nullptr,
4288 &diff_dst_desc.
data, &strides[0],
4289 &padding_l[0], &padding_r[0]),
4290 "could not create a descriptor for a convolution weights "
4291 "update primitive");
4336 &diff_weights_desc.
data, &diff_bias_desc.
data,
4337 &diff_dst_desc.
data, &strides[0], &dilates[0],
4338 &padding_l[0], &padding_r[0]),
4339 "could not create a descriptor for a dilated convolution "
4340 "weights gradient primitive");
4382 &diff_weights_desc.
data,
nullptr,
4383 &diff_dst_desc.
data, &strides[0], &dilates[0],
4384 &padding_l[0], &padding_r[0]),
4385 "could not create a descriptor for a dilated convolution "
4386 "weights gradient primitive");
4409 bool allow_empty =
false)
4411 hint_fwd_pd.
get(), allow_empty) {}
4429 bool allow_empty =
false)
4431 hint_fwd_pd.
get(), allow_empty) {}
4530 &strides[0], &padding_l[0], &padding_r[0]),
4531 "could not create a descriptor for a deconvolution forward "
4532 "propagation primitive");
4573 &weights_desc.
data,
nullptr, &dst_desc.
data,
4574 &strides[0], &padding_l[0], &padding_r[0]),
4575 "could not create a descriptor for a deconvolution forward "
4576 "propagation primitive");
4622 &weights_desc.
data, &bias_desc.
data,
4623 &dst_desc.
data, &strides[0], &dilates[0],
4624 &padding_l[0], &padding_r[0]),
4625 "could not create a descriptor for a dilated deconvolution "
4626 "forward propagation primitive");
4670 &weights_desc.
data,
nullptr,
4671 &dst_desc.
data, &strides[0], &dilates[0],
4672 &padding_l[0], &padding_r[0]),
4673 "could not create a descriptor for a dilated deconvolution "
4674 "forward propagation primitive");
4694 bool allow_empty =
false)
4696 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
4710 const engine &aengine,
bool allow_empty =
false)
4712 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
4787 &weights_desc.
data, &diff_dst_desc.
data,
4788 &strides[0], &padding_l[0], &padding_r[0]),
4789 "could not create a descriptor for a deconvolution "
4790 "backward propagation primitive");
4831 &weights_desc.
data, &diff_dst_desc.
data,
4832 &strides[0], &dilates[0], &padding_l[0],
4834 "could not create a descriptor for a dilated deconvolution "
4835 "backward propagation primitive");
4859 bool allow_empty =
false)
4861 hint_fwd_pd.
get(), allow_empty) {}
4880 bool allow_empty =
false)
4882 hint_fwd_pd.
get(), allow_empty) {}
4956 &diff_weights_desc.
data, &diff_bias_desc.
data,
4957 &diff_dst_desc.
data, &strides[0], &padding_l[0],
4959 "could not create a descriptor for a deconvolution weights "
4960 "update primitive");
4996 &src_desc.
data, &diff_weights_desc.
data,
4997 nullptr, &diff_dst_desc.
data, &strides[0],
4998 &padding_l[0], &padding_r[0]),
4999 "could not create a descriptor for a deconvolution weights "
5000 "update primitive");
5044 &diff_weights_desc.
data, &diff_bias_desc.
data,
5045 &diff_dst_desc.
data, &strides[0], &dilates[0],
5046 &padding_l[0], &padding_r[0]),
5047 "could not create a descriptor for a dilated deconvolution "
5048 "weights gradient primitive");
5089 &diff_weights_desc.
data,
nullptr,
5090 &diff_dst_desc.
data, &strides[0], &dilates[0],
5091 &padding_l[0], &padding_r[0]),
5092 "could not create a descriptor for a dilated deconvolution "
5093 "weights gradient primitive");
5117 bool allow_empty =
false)
5119 hint_fwd_pd.
get(), allow_empty) {}
5138 bool allow_empty =
false)
5140 hint_fwd_pd.
get(), allow_empty) {}
5210 float alpha,
float beta,
float k = 1.f) {
5214 local_size, alpha, beta, k),
5215 "could not create a descriptor for a lrn forward "
5216 "propagation primitive");
5235 bool allow_empty =
false)
5237 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
5250 const engine &aengine,
bool allow_empty =
false)
5252 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
5304 float alpha,
float beta,
float k = 1.f) {
5307 &diff_data_desc.
data, &data_desc.
data, local_size,
5309 "could not create a descriptor for a lrn backward "
5310 "propagation primitive");
5333 bool allow_empty =
false)
5335 hint_fwd_pd.
get(), allow_empty) {}
5353 bool allow_empty =
false)
5355 hint_fwd_pd.
get(), allow_empty) {}
5437 &dst_desc.
data, &strides[0], &kernel[0],
5438 &padding_l[0], &padding_r[0]),
5439 "could not create a descriptor for a pooling forward "
5440 "propagation primitive");
5459 bool allow_empty =
false)
5461 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
5474 const engine &aengine,
bool allow_empty =
false)
5476 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
5546 &diff_dst_desc.
data, &strides[0], &kernel[0],
5547 &padding_l[0], &padding_r[0]),
5548 "could not create a descriptor for a pooling backward "
5549 "propagation primitive");
5572 bool allow_empty =
false)
5574 hint_fwd_pd.
get(), allow_empty) {}
5592 bool allow_empty =
false)
5594 hint_fwd_pd.
get(), allow_empty) {}
5672 &data_desc.
data, alpha, beta),
5673 "could not create a descriptor for an eltwise forward "
5674 "propagation primitive");
5694 bool allow_empty =
false)
5696 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
5710 const engine &aengine,
bool allow_empty =
false)
5712 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
5764 &diff_data_desc.
data, &data_desc.
data, alpha, beta),
5765 "could not create a descriptor for an eltwise backward "
5766 "propagation primitive");
5790 bool allow_empty =
false)
5792 hint_fwd_pd.
get(), allow_empty) {}
5811 bool allow_empty =
false)
5813 hint_fwd_pd.
get(), allow_empty) {}
5875 &data_desc.
data, softmax_axis),
5876 "could not create a descriptor for a softmax forward "
5877 "propagation primitive");
5897 bool allow_empty =
false)
5899 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
5913 const engine &aengine,
bool allow_empty =
false)
5915 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
5964 &data_desc.
data, softmax_axis),
5965 "could not create a descriptor for a softmax backward "
5966 "propagation primitive");
5990 bool allow_empty =
false)
5992 hint_fwd_pd.
get(), allow_empty) {}
6011 bool allow_empty =
false)
6013 hint_fwd_pd.
get(), allow_empty) {}
6072 int logsoftmax_axis) {
6075 &data_desc.
data, logsoftmax_axis),
6076 "could not create a descriptor for a logsoftmax forward "
6077 "propagation primitive");
6097 bool allow_empty =
false)
6099 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
6113 const engine &aengine,
bool allow_empty =
false)
6115 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
6165 int logsoftmax_axis) {
6167 &diff_data_desc.
data, &data_desc.
data,
6169 "could not create a descriptor for a logsoftmax backward "
6170 "propagation primitive");
6194 bool allow_empty =
false)
6196 hint_fwd_pd.
get(), allow_empty) {}
6215 bool allow_empty =
false)
6217 hint_fwd_pd.
get(), allow_empty) {}
6300 "could not create a descriptor for a batch normalization "
6301 "forward propagation primitive");
6322 bool allow_empty =
false)
6324 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
6338 const engine &aengine,
bool allow_empty =
false)
6340 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
6385 "could not retrieve a descriptor from a primitive "
6386 "descriptor for batch normalization forward propagation "
6426 &diff_data_desc.
data, &data_desc.
data,
6428 "could not create a descriptor for a batch normalization "
6429 "backward propagation primitive");
6454 bool allow_empty =
false)
6456 hint_fwd_pd.
get(), allow_empty) {}
6475 bool allow_empty =
false)
6477 hint_fwd_pd.
get(), allow_empty) {}
6580 "could not create a descriptor for a layer normalization "
6581 "forward propagation primitive");
6600 "could not create a descriptor for a layer normalization "
6601 "forward propagation primitive");
6622 bool allow_empty =
false)
6624 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
6638 const engine &aengine,
bool allow_empty =
false)
6640 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
6683 "could not retrieve a descriptor from a primitive "
6684 "descriptor for layer normalization forward propagation "
6726 &diff_data_desc.
data, &data_desc.
data,
6728 "could not create a descriptor for a batch normalization "
6729 "backward propagation primitive");
6749 &diff_data_desc.
data, &data_desc.
data,
6751 "could not create a descriptor for a batch normalization "
6752 "backward propagation primitive");
6777 bool allow_empty =
false)
6779 hint_fwd_pd.
get(), allow_empty) {}
6798 bool allow_empty =
false)
6800 hint_fwd_pd.
get(), allow_empty) {}
6890 &src_desc.
data, &weights_desc.
data,
6892 "could not create a descriptor for an inner product "
6893 "forward propagation primitive");
6915 &weights_desc.
data,
nullptr, &dst_desc.
data),
6916 "could not create a descriptor for an inner product "
6917 "forward propagation primitive");
6937 bool allow_empty =
false)
6939 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
6953 const engine &aengine,
bool allow_empty =
false)
6955 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
7010 &diff_src_desc.
data, &weights_desc.
data,
7011 &diff_dst_desc.
data),
7012 "could not create a descriptor for an inner product "
7013 "backward propagation primitive");
7038 bool allow_empty =
false)
7040 hint_fwd_pd.
get(), allow_empty) {}
7059 bool allow_empty =
false)
7061 hint_fwd_pd.
get(), allow_empty) {}
7115 &src_desc.
data, &diff_weights_desc.
data,
7116 &diff_bias_desc.
data, &diff_dst_desc.
data),
7117 "could not create a descriptor for an inner product "
7118 "weights gradient primitive");
7136 &src_desc.
data, &diff_weights_desc.
data,
nullptr,
7137 &diff_dst_desc.
data),
7138 "could not create a descriptor for an inner product "
7139 "weights gradient primitive");
7163 bool allow_empty =
false)
7165 hint_fwd_pd.
get(), allow_empty) {}
7184 bool allow_empty =
false)
7186 hint_fwd_pd.
get(), allow_empty) {}
7236 using primitive_desc::primitive_desc;
7420 "could not retrieve a descriptor from a primitive descriptor "
7421 "for an RNN primitive");
7428 && (
rnn_d->prop_kind == c_prop_kind1
7429 ||
rnn_d->prop_kind == c_prop_kind2)
7430 &&
rnn_d->cell_kind == c_cell_kind;
7434 "mismatch between expected and provided descriptors for an "
7496 float beta = 0.0f) {
7502 &src_iter_desc.
data, &weights_layer_desc.
data,
7503 &weights_iter_desc.
data, &bias_desc.
data,
7504 &dst_layer_desc.
data, &dst_iter_desc.
data,
7506 "could not create a descriptor for a vanilla RNN forward "
7507 "propagation primitive");
7527 bool allow_empty =
false)
7529 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
7543 const engine &aengine,
bool allow_empty =
false)
7545 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
7676 float beta = 0.0f) {
7682 &src_iter_desc.
data, &weights_layer_desc.
data,
7683 &weights_iter_desc.
data, &bias_desc.
data,
7684 &dst_layer_desc.
data, &dst_iter_desc.
data,
7685 &diff_src_layer_desc.
data, &diff_src_iter_desc.
data,
7686 &diff_weights_layer_desc.
data,
7687 &diff_weights_iter_desc.
data, &diff_bias_desc.
data,
7688 &diff_dst_layer_desc.
data, &diff_dst_iter_desc.
data,
7690 "could not create a descriptor for a vanilla RNN backward "
7691 "propagation primitive");
7715 bool allow_empty =
false)
7717 hint_fwd_pd.
get(), allow_empty) {}
7736 bool allow_empty =
false)
7738 hint_fwd_pd.
get(), allow_empty) {}
7900 &src_iter_desc.
data, &src_iter_c_desc.
data,
7901 &weights_layer_desc.
data, &weights_iter_desc.
data,
7902 &weights_peephole_desc.
data,
7903 &weights_projection_desc.
data, &bias_desc.
data,
7904 &dst_layer_desc.
data, &dst_iter_desc.
data,
7906 "could not create a descriptor for an LSTM forward "
7907 "propagation primitive");
7967 &src_iter_desc.
data, &src_iter_c_desc.
data,
7968 &weights_layer_desc.
data, &weights_iter_desc.
data,
7969 &weights_peephole_desc.
data, &bias_desc.
data,
7970 &dst_layer_desc.
data, &dst_iter_desc.
data,
7972 "could not create a descriptor for an LSTM forward "
7973 "propagation primitive");
8027 &src_iter_desc.
data, &src_iter_c_desc.
data,
8028 &weights_layer_desc.
data, &weights_iter_desc.
data,
8029 &bias_desc.
data, &dst_layer_desc.
data,
8030 &dst_iter_desc.
data, &dst_iter_c_desc.
data,
8032 "could not create a descriptor for an LSTM forward "
8033 "propagation primitive");
8052 bool allow_empty =
false)
8054 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
8067 const engine &aengine,
bool allow_empty =
false)
8069 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
8255 &src_iter_desc.
data, &src_iter_c_desc.
data,
8256 &weights_layer_desc.
data, &weights_iter_desc.
data,
8257 &weights_peephole_desc.
data,
8258 &weights_projection_desc.
data, &bias_desc.
data,
8259 &dst_layer_desc.
data, &dst_iter_desc.
data,
8260 &dst_iter_c_desc.
data, &diff_src_layer_desc.
data,
8261 &diff_src_iter_desc.
data,
8262 &diff_src_iter_c_desc.
data,
8263 &diff_weights_layer_desc.
data,
8264 &diff_weights_iter_desc.
data,
8265 &diff_weights_peephole_desc.
data,
8266 &diff_weights_projection_desc.
data,
8267 &diff_bias_desc.
data, &diff_dst_layer_desc.
data,
8268 &diff_dst_iter_desc.
data,
8269 &diff_dst_iter_c_desc.
data,
8271 "could not create a descriptor for an LSTM backward "
8272 "propagation primitive");
8365 &src_iter_desc.
data, &src_iter_c_desc.
data,
8366 &weights_layer_desc.
data, &weights_iter_desc.
data,
8367 &weights_peephole_desc.
data, &bias_desc.
data,
8368 &dst_layer_desc.
data, &dst_iter_desc.
data,
8369 &dst_iter_c_desc.
data, &diff_src_layer_desc.
data,
8370 &diff_src_iter_desc.
data,
8371 &diff_src_iter_c_desc.
data,
8372 &diff_weights_layer_desc.
data,
8373 &diff_weights_iter_desc.
data,
8374 &diff_weights_peephole_desc.
data,
8375 &diff_bias_desc.
data, &diff_dst_layer_desc.
data,
8376 &diff_dst_iter_desc.
data,
8377 &diff_dst_iter_c_desc.
data,
8379 "could not create a descriptor for an LSTM backward "
8380 "propagation primitive");
8462 &src_iter_desc.
data, &src_iter_c_desc.
data,
8463 &weights_layer_desc.
data, &weights_iter_desc.
data,
8464 &bias_desc.
data, &dst_layer_desc.
data,
8465 &dst_iter_desc.
data, &dst_iter_c_desc.
data,
8466 &diff_src_layer_desc.
data, &diff_src_iter_desc.
data,
8467 &diff_src_iter_c_desc.
data,
8468 &diff_weights_layer_desc.
data,
8469 &diff_weights_iter_desc.
data, &diff_bias_desc.
data,
8470 &diff_dst_layer_desc.
data, &diff_dst_iter_desc.
data,
8471 &diff_dst_iter_c_desc.
data,
8473 "could not create a descriptor for an LSTM backward "
8474 "propagation primitive");
8497 bool allow_empty =
false)
8499 hint_fwd_pd.
get(), allow_empty) {}
8517 bool allow_empty =
false)
8519 hint_fwd_pd.
get(), allow_empty) {}
8701 &src_iter_desc.
data, &weights_layer_desc.
data,
8702 &weights_iter_desc.
data, &bias_desc.
data,
8703 &dst_layer_desc.
data, &dst_iter_desc.
data,
8705 "could not create a descriptor for a GRU forward "
8706 "propagation primitive");
8725 bool allow_empty =
false)
8727 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
8740 const engine &aengine,
bool allow_empty =
false)
8742 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
8869 &src_iter_desc.
data, &weights_layer_desc.
data,
8870 &weights_iter_desc.
data, &bias_desc.
data,
8871 &dst_layer_desc.
data, &dst_iter_desc.
data,
8872 &diff_src_layer_desc.
data, &diff_src_iter_desc.
data,
8873 &diff_weights_layer_desc.
data,
8874 &diff_weights_iter_desc.
data, &diff_bias_desc.
data,
8875 &diff_dst_layer_desc.
data, &diff_dst_iter_desc.
data,
8877 "could not create a descriptor for a GRU backward "
8878 "propagation primitive");
8901 bool allow_empty =
false)
8903 hint_fwd_pd.
get(), allow_empty) {}
8921 bool allow_empty =
false)
8923 hint_fwd_pd.
get(), allow_empty) {}
9066 &src_iter_desc.
data, &weights_layer_desc.
data,
9067 &weights_iter_desc.
data, &bias_desc.
data,
9068 &dst_layer_desc.
data, &dst_iter_desc.
data,
9070 "could not create a descriptor for an LBR GRU forward "
9071 "propagation primitive");
9091 bool allow_empty =
false)
9093 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
9107 const engine &aengine,
bool allow_empty =
false)
9109 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
9237 &src_iter_desc.
data, &weights_layer_desc.
data,
9238 &weights_iter_desc.
data, &bias_desc.
data,
9239 &dst_layer_desc.
data, &dst_iter_desc.
data,
9240 &diff_src_layer_desc.
data, &diff_src_iter_desc.
data,
9241 &diff_weights_layer_desc.
data,
9242 &diff_weights_iter_desc.
data, &diff_bias_desc.
data,
9243 &diff_dst_layer_desc.
data, &diff_dst_iter_desc.
data,
9245 "could not create a descriptor for an LBR GRU backward "
9246 "propagation primitive");
9270 bool allow_empty =
false)
9272 hint_fwd_pd.
get(), allow_empty) {}
9291 bool allow_empty =
false)
9293 hint_fwd_pd.
get(), allow_empty) {}
9413 &data_desc.
data, axis, group_size),
9414 "could not create a descriptor for a shuffle forward "
9415 "propagation primitive");
9437 bool allow_empty =
false)
9439 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
9484 &diff_data_desc.
data, axis, group_size),
9485 "could not create a descriptor for a shuffle backward "
9486 "propagation primitive");
9512 bool allow_empty =
false)
9514 hint_fwd_pd.
get(), allow_empty) {}
9574 "could not create a descriptor for a binary operation "
9594 bool allow_empty =
false)
9596 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
9609 const engine &aengine,
bool allow_empty =
false)
9611 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
9669 &weights_desc.
data,
nullptr, &dst_desc.
data),
9670 "could not create a descriptor for a matmul primitive");
9682 &weights_desc.
data, &bias_desc.
data,
9684 "could not create a descriptor for a matmul primitive");
9702 bool allow_empty =
false)
9704 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
9716 const engine &aengine,
bool allow_empty =
false)
9718 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
9791 "could not create a resampling forward descriptor");
9806 const std::vector<float> &factors,
9812 &src_desc.
data,
nullptr),
9813 "could not create a resampling forward descriptor");
9833 const std::vector<float> &factors,
const memory::desc &src_desc,
9835 if (!factors.empty())
9841 "could not create a resampling forward descriptor");
9861 bool allow_empty =
false)
9863 &adesc.data, nullptr, aengine, nullptr, allow_empty) {}
9877 const engine &aengine,
bool allow_empty =
false)
9879 &adesc.data, &attr, aengine, nullptr, allow_empty) {}
9926 &diff_src_desc.
data, &diff_dst_desc.
data),
9927 "could not create a resampling backward data descriptor");
9942 if (!factors.empty())
9946 &diff_src_desc.
data, &diff_dst_desc.
data),
9947 "could not create a resampling backward data descriptor");
9971 bool allow_empty =
false)
9973 hint_fwd_pd.
get(), allow_empty) {}
9992 bool allow_empty =
false)
9994 hint_fwd_pd.
get(), allow_empty) {}
10104 return static_cast<status>(
10126 "could not get primitive cache capacity");
10133 "could not set primitive cache capacity");
10150 transa, transb, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc));
10157 float beta, int32_t *C,
dnnl_dim_t ldc,
const int32_t *co) {
10159 K, alpha, A, lda, ao, B, ldb, bo, beta, C, ldc, co));
10166 float beta, int32_t *C,
dnnl_dim_t ldc,
const int32_t *co) {
10168 K, alpha, A, lda, ao, B, ldb, bo, beta, C, ldc, co));
10171 #if DNNL_CPU_RUNTIME == DNNL_RUNTIME_THREADPOOL
10177 return static_cast<status>(dnnl_sgemm_tp(
10178 transa, transb, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc, tp));
10184 float beta, int32_t *C,
dnnl_dim_t ldc,
const int32_t *co,
10186 return static_cast<status>(dnnl_gemm_u8s8s32_tp(transa, transb, offsetc, M,
10187 N, K, alpha, A, lda, ao, B, ldb, bo, beta, C, ldc, co, tp));
10194 float beta, int32_t *C,
dnnl_dim_t ldc,
const int32_t *co,
10196 return static_cast<status>(dnnl_gemm_s8s8s32_tp(transa, transb, offsetc, M,
10197 N, K, alpha, A, lda, ao, B, ldb, bo, beta, C, ldc, co, tp));
10209 "could not create a primitive");
10215 inline void primitive::execute(
const stream &astream,
10216 const std::unordered_map<int, memory> &args)
const {
10217 std::vector<dnnl_exec_arg_t> c_args;
10218 c_args.reserve(args.size());
10219 for (
const auto &a : args)
10220 c_args.push_back({a.first, a.second.get(
true)});
10223 (
int)c_args.size(), c_args.data()),
10224 "could not execute a primitive");
10229 #undef DNNL_DEFINE_BITMASK_OPS
primitive_desc(const desc &adesc, const engine &aengine, const inner_product_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an inner product backward propagation primitive.
Definition: dnnl.hpp:7036
@ dnnl_query_time_estimate_f64
runtime estimation (seconds)
Definition: dnnl_types.h:2102
@ dnnl_query_reorder_dst_engine
destination engine
Definition: dnnl_types.h:2114
void set_data_handle(void *handle) const
Sets the underlying memory buffer.
Definition: dnnl.hpp:2207
dnnl_status_t DNNL_API dnnl_memory_set_ocl_mem_object(dnnl_memory_t memory, cl_mem mem_object)
Sets OpenCL memory object associated with a memory object.
handle(handle< T, traits > &&)=default
Move constructor.
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:7785
primitive(const primitive_desc &pd)
Constructs a primitive from a primitive descriptor.
status gemm_s8s8s32(char transa, char transb, char offsetc, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const int8_t *A, dnnl_dim_t lda, int8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo, float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co)
Performs integer matrix-matrix multiply on 8-bit signed matrix A, 8-bit signed matrix B,...
Definition: dnnl.hpp:10163
@ eltwise_d
eltwise descriptor
dnnl_status_t DNNL_API dnnl_primitive_desc_iterator_next(dnnl_primitive_desc_iterator_t iterator)
Advances the primitive descriptor iterator to point to the next available implementation.
Resampling backward propagation primitive.
Definition: dnnl.hpp:9909
deconvolution_backward_data(const primitive_desc &pd)
Constructs a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4910
@ sse41
Intel Streaming SIMD Extensions 4.1 (Intel SSE4.1)
primitive_desc()=default
Default constructor. Produces an empty object.
@ dnnl_aBcdef4b
6D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:349
memory::desc src_desc(int idx=0) const
Returns a source memory descriptor.
Definition: dnnl.hpp:9621
@ dnnl_scratchpad_mode_library
The library manages the scratchpad allocation according to the policy specified by the DNNL_ENABLE_CO...
Definition: dnnl_types.h:1808
@ diff_dst_md
destination gradient (diff) memory desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:4015
void set_rnn_data_qparams(float scale, float shift)
Sets quantization scale and shift parameters for RNN data tensors.
Definition: dnnl.hpp:2956
layer_normalization_forward(const primitive_desc &pd)
Constructs a layer normalization forward propagation primitive.
Definition: dnnl.hpp:6698
logsoftmax_backward()=default
Default constructor. Produces an empty object.
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)
Constructs a descriptor for a vanilla RNN backward propagation primitive.
Definition: dnnl.hpp:7660
primitive_desc_base(dnnl_primitive_desc_t pd, dnnl::primitive::kind prim_kind, dnnl::prop_kind prop_kind1, dnnl::prop_kind prop_kind2)
Constructs a primitive descriptor base object from a clone of a C API primitive descriptor after veri...
Definition: dnnl.hpp:3263
Descriptor for an LSTM forward propagation primitive.
Definition: dnnl.hpp:7832
struct dnnl_stream_attr * dnnl_stream_attr_t
An execution stream attributes handle.
Definition: dnnl_types.h:2185
@ softmax
A softmax primitive.
engine()=default
Constructs an empty engine.
dnnl_status_t DNNL_API dnnl_set_jit_profiling_flags(unsigned flags)
Sets library profiling flags.
memory::desc diff_dst_iter_c_desc() const
Returns diff destination recurrent cell state memory descriptor.
Definition: dnnl.hpp:7394
dnnl_status_t DNNL_API dnnl_inner_product_forward_desc_init(dnnl_inner_product_desc_t *ip_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc)
Initializes descriptor for inner product forward propagation.
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:7274
dnnl_status_t DNNL_API dnnl_convolution_forward_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a convolution forward propagation primitive.
primitive_desc()=default
Default constructor. Produces an empty object.
softmax_backward(const primitive_desc &pd)
Constructs a softmax backward propagation primitive.
Definition: dnnl.hpp:6041
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6026
vanilla_rnn_backward()=default
Default constructor. Produces an empty object.
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:8774
@ dnnl_s32
32-bit signed integer.
Definition: dnnl_types.h:72
@ success
The operation was successful.
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a deconvolution forward propagation primitive from a C API prim...
Definition: dnnl.hpp:4720
@ dnnl_eltwise_round
Eltwise: round.
Definition: dnnl_types.h:888
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5269
Primitive descriptor for an elementwise binary operator primitive.
Definition: dnnl.hpp:9580
rnn_direction
A direction of RNN primitive execution.
Definition: dnnl.hpp:710
primitive_desc()=default
Default constructor. Produces an empty object.
@ dnnl_eltwise_relu_use_dst_for_bwd
Eltwise: ReLU (dst for backward)
Definition: dnnl_types.h:890
convolution_backward_data()=default
Default constructor. Produces an empty object.
void execute(const stream &astream, const std::unordered_map< int, memory > &args) const
Executes computations specified by the primitive in a specified stream.
@ all
Any ISA (excepting those listed as initial support)
Descriptor for a GRU forward propagation primitive.
Definition: dnnl.hpp:8653
size_t get_size() const
Returns size of the memory descriptor in bytes.
Definition: dnnl.hpp:2038
Reorder primitive.
Definition: dnnl.hpp:3325
@ dnnl_query_pooling_d
pooling descriptor
Definition: dnnl_types.h:2126
@ num_of_inputs_s32
number of inputs expected
Shuffle backward propagation primitive.
Definition: dnnl.hpp:9469
Descriptor for an inner product forward propagation primitive.
Definition: dnnl.hpp:6868
@ resampling_d
resampling descriptor
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:7769
@ backward
Backward propagation (with respect to all parameters).
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a LBR GRU forward propagation primitive from a C API primitive ...
Definition: dnnl.hpp:9117
@ dnnl_ABcde2b8a4b
5D tensor blocked by 1st dimension with block size 8
Definition: dnnl_types.h:289
cl::sycl::buffer< T, ndims > get_sycl_buffer(size_t *offset=nullptr) const
Returns the underlying SYCL buffer object.
Definition: dnnl.hpp:2285
memory::desc diff_dst_iter_c_desc() const
Returns diff destination recurrent cell state memory descriptor.
Definition: dnnl.hpp:8636
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc variance_desc() const
Returns memory descriptor for variance.
Definition: dnnl.hpp:6838
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:7777
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:9000
const char * what() const noexcept override
Returns the explanatory string.
Definition: dnnl.hpp:108
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:8985
dnnl_status_t DNNL_API dnnl_pooling_backward_desc_init(dnnl_pooling_desc_t *pool_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t kernel, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for pooling backward propagation primitive.
@ any
An unspecified engine.
void get_params_dw_k3s2p1(int index, memory::data_type &weights_data_type, memory::data_type &bias_data_type, memory::data_type &dst_data_type, int &mask, std::vector< float > &scales) const
Returns the parameters of an depthwise post-op with stride 2.
Definition: dnnl.hpp:2649
@ pooling_d
pooling descriptor
const_dnnl_primitive_desc_t get_primitive_desc() const
Returns the C API primitive descriptor of the underlying C API primitive.
Definition: dnnl.hpp:394
Primitive descriptor for an LBR GRU forward propagation primitive.
Definition: dnnl.hpp:9076
Convolution weights gradient primitive.
Definition: dnnl.hpp:4203
An execution stream.
Definition: dnnl.hpp:1086
@ bidirectional_concat
Bidirectional execution of RNN primitive with concatenation of the results.
desc(const dnnl_memory_desc_t &data)
Constructs a memory descriptor from a C API data structure.
Definition: dnnl.hpp:1892
void get_params_dw_k3s1p1(int index, memory::data_type &weights_data_type, memory::data_type &bias_data_type, memory::data_type &dst_data_type, int &mask, std::vector< float > &scales) const
Returns the parameters of an depthwise post-op with stride 1.
Definition: dnnl.hpp:2564
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a deconvolution forward propagation primitive.
Definition: dnnl.hpp:4693
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)
Constructs a descriptor for a deconvolution forward propagation primitive without bias.
Definition: dnnl.hpp:4562
@ diff_src_md
source gradient (diff) memory desc
primitive_desc(const desc &adesc, const engine &aengine, const convolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a convolution weights gradient primitive.
Definition: dnnl.hpp:4407
primitive_desc(const desc &adesc, const engine &aengine, const softmax_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a softmax backward propagation primitive.
Definition: dnnl.hpp:5988
@ dnnl_aBCde2b4c2b
5D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:337
desc(prop_kind aprop_kind, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc)
Constructs a descriptor for an inner product forward propagation primitive with bias.
Definition: dnnl.hpp:6885
@ dnnl_query_memory_consumption_s64
memory consumption – extra
Definition: dnnl_types.h:2103
@ dnnl_s8
8-bit signed integer.
Definition: dnnl_types.h:74
prop_kind
Propagation kind.
Definition: dnnl.hpp:461
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5493
int len() const
Returns the number of post-ops entries.
Definition: dnnl.hpp:2398
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a matmul primitive from a C API primitive descriptor that must ...
Definition: dnnl.hpp:9724
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_forward_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated deconvolution forward propagation primitive.
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for an elementwise binary operator primitive.
Definition: dnnl.hpp:9593
dnnl_format_tag_t
Memory format tag specification.
Definition: dnnl_types.h:164
@ dnnl_f16
16-bit/half-precision floating point.
Definition: dnnl_types.h:66
@ dnnl_inner_product
An inner product primitive.
Definition: dnnl_types.h:816
primitive_desc()=default
Default constructor. Produces an empty object.
@ dnnl_unimplemented
The operation failed because requested functionality is not implemented.
Definition: dnnl_types.h:47
@ exec_arg_md
memory desc of an execute argument
@ dnnl_decab
permuted 5D tensor
Definition: dnnl_types.h:204
Softmax backward propagation primitive.
Definition: dnnl.hpp:5945
primitive_desc()=default
Default constructor. Produces an empty object.
An opaque structure to describe a primitive descriptor iterator.
@ dnnl_batch_normalization
A batch normalization primitive.
Definition: dnnl_types.h:812
Vanilla RNN backward propagation primitive.
Definition: dnnl.hpp:7603
rnn_primitive_desc_base(dnnl_primitive_desc_t pd, dnnl::prop_kind aprop_kind, dnnl::algorithm cell_kind)
Constructs an RNN primitive descriptor base from a C API primitive descriptor while checking that it ...
Definition: dnnl.hpp:7248
@ dnnl_query_logsoftmax_d
logsoftmax descriptor
Definition: dnnl_types.h:2134
status gemm_u8s8s32(char transa, char transb, char offsetc, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const uint8_t *A, dnnl_dim_t lda, uint8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo, float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co)
Performs integer matrix-matrix multiply on 8-bit unsigned matrix A, 8-bit signed matrix B,...
Definition: dnnl.hpp:10154
Descriptor for a vanilla RNN backward propagation primitive.
Definition: dnnl.hpp:7605
memory::desc diff_src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5368
LBR GRU backward propagation primitive.
Definition: dnnl.hpp:9167
#define DNNL_ARG_DST_ITER_C
A special mnemonic for LSTM output recurrent cell state vector.
Definition: dnnl_types.h:1914
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:9728
@ eltwise_soft_relu
Elementwise: soft_relu.
Primitive descriptor for an LSTM forward propagation primitive.
Definition: dnnl.hpp:8038
lrn_backward(const primitive_desc &pd)
Constructs an LRN backward propagation primitive.
Definition: dnnl.hpp:5383
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)
Constructs a descriptor for a dilated convolution forward propagation primitive without bias.
Definition: dnnl.hpp:3941
#define DNNL_ARG_WEIGHTS_ITER
A special mnemonic for RNN weights applied to the recurrent input.
Definition: dnnl_types.h:1932
primitive_desc(const desc &adesc, const engine &aengine, const eltwise_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an elementwise backward propagation primitive.
Definition: dnnl.hpp:5788
dnnl_status_t DNNL_API dnnl_lstm_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *src_iter_c_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, unsigned flags)
Initializes a descriptor for LSTM forward propagation primitive.
engine(const handle< dnnl_primitive_desc_t > &pd)
Constructs an engine based on a primitive from the primitive descriptor pd by querying its engine.
Definition: dnnl.hpp:936
desc(prop_kind aprop_kind, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc)
Constructs a descriptor for an inner product forward propagation primitive without bias.
Definition: dnnl.hpp:6909
dnnl_cpu_isa_t DNNL_API dnnl_get_effective_cpu_isa(void)
Gets the maximal ISA the library can dispatch to on the CPU.
dnnl_status_t
Status values returned by the library functions.
Definition: dnnl_types.h:39
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:7334
@ dnnl_query_reorder_src_engine
source engine
Definition: dnnl_types.h:2113
engine get_src_engine() const
Returns the engine on which the source memory is allocated.
Definition: dnnl.hpp:3401
memory(const desc &md, const engine &aengine)
Constructs a memory object.
Definition: dnnl.hpp:2135
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:8764
#define DNNL_ARG_WEIGHTS_PROJECTION
A special mnemonic for RNN weights applied to the projection weights.
Definition: dnnl_types.h:1944
An execution engine.
Definition: dnnl.hpp:865
@ avx
Intel Advanced Vector Extensions (Intel AVX)
desc(prop_kind aprop_kind, const memory::desc &data_desc, float epsilon, normalization_flags flags)
Constructs a batch normalization descriptor for forward propagation.
Definition: dnnl.hpp:6294
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for sum primitive from a C API primitive descriptor which must have...
Definition: dnnl.hpp:3655
@ eltwise_tanh_use_dst_for_bwd
Elementwise: hyperbolic tangent non-linearity (tanh) (dst for backward)
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:5610
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an eltwise backward propagation primitive from a C API primitiv...
Definition: dnnl.hpp:5821
inner_product_forward(const primitive_desc &pd)
Constructs an inner product forward propagation primitive.
Definition: dnnl.hpp:6987
desc()=default
Default constructor. Produces an empty object.
void get_zero_points(int arg, int &mask, std::vector< int32_t > &zero_points) const
Returns zero points correspondence mask and values.
Definition: dnnl.hpp:2855
dnnl_status_t DNNL_API dnnl_memory_get_ocl_mem_object(const_dnnl_memory_t memory, cl_mem *mem_object)
Returns an OpenCL memory object associated with a memory object.
@ dnnl_softmax
A softmax primitive.
Definition: dnnl_types.h:806
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a deconvolution backward propagation primitive from a C API pri...
Definition: dnnl.hpp:4890
@ dnnl_normalization_flags_none
Use no normalization flags.
Definition: dnnl_types.h:951
Local response normalization (LRN) forward propagation primitive.
Definition: dnnl.hpp:5190
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:7202
Descriptor for an elementwise backward propagation primitive.
Definition: dnnl.hpp:5744
dnnl_status_t DNNL_API dnnl_post_ops_get_params_dw_k3s2p1(const_dnnl_post_ops_t post_ops, int index, dnnl_data_type_t *weights_data_type, dnnl_data_type_t *bias_data_type, dnnl_data_type_t *dst_data_type, dnnl_dim_t *count, int *mask, const float **scales)
Returns the parameters of an depthwise post-op with stride 2.
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a resampling backward propagation primitive from a C API primit...
Definition: dnnl.hpp:10002
@ dnnl_query_rnn_d
rnn descriptor
Definition: dnnl_types.h:2131
#define DNNL_ARG_TO
A special mnemonic for reorder destination argument.
Definition: dnnl_types.h:1900
@ runtime_error
Primitive or engine failed on execution.
#define DNNL_MAX_NDIMS
Maximum number of dimensions a tensor can have.
Definition: dnnl_types.h:1002
@ dnnl_scratchpad_mode_user
The user manages the scratchpad allocation by querying and providing the scratchpad memory to primiti...
Definition: dnnl_types.h:1813
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:8601
@ reorder_dst_engine
reorder destination engine
kind
Kinds of primitives supported by the library.
Definition: dnnl.hpp:283
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:8756
post_ops()
Constructs an empty sequence of post-ops.
Definition: dnnl.hpp:2390
status set_jit_profiling_jitdumpdir(const std::string &dir)
Sets JIT dump output path.
Definition: dnnl.hpp:10074
Primitive descriptor for a pooling backward propagation primitive.
Definition: dnnl.hpp:5554
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:8944
@ dnnl_defcab
permuted 6D tensor
Definition: dnnl_types.h:205
@ dnnl_aBcde16b
5D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:291
layer_normalization_backward(const primitive_desc &pd)
Constructs a layer normalization backward propagation primitive.
Definition: dnnl.hpp:6852
dnnl_memory_desc_t data
The underlying C API data structure.
Definition: dnnl.hpp:1826
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:8124
Descriptor for a GRU backward propagation primitive.
Definition: dnnl.hpp:8802
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a LBR GRU forward propagation primitive.
Definition: dnnl.hpp:9090
primitive_desc(const memory &src, const memory &dst, const primitive_attr &attr=primitive_attr(), bool allow_empty=false)
Constructs a primitive descriptor for reorder primitive.
Definition: dnnl.hpp:3376
An opaque structure to describe an engine.
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:6824
eltwise_forward(const primitive_desc &pd)
Constructs an eltwise forward propagation primitive.
Definition: dnnl.hpp:5738
logsoftmax_forward()=default
Default constructor. Produces an empty object.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:7588
Descriptor for resampling forward propagation.
Definition: dnnl.hpp:9767
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:5832
stream & wait()
Waits for all primitives executing in the stream to finish.
Definition: dnnl.hpp:1158
@ dnnl_eltwise_relu
Eltwise: ReLU.
Definition: dnnl_types.h:849
@ dnnl_acb
permuted 3D tensor
Definition: dnnl_types.h:188
A descriptor of a matrix multiplication operation.
Definition: dnnl_types.h:1685
@ eltwise_elu
Elementwise: exponential linear unit (ELU)
@ shuffle
A shuffle primitive.
@ pooling_avg
Average pooling exclude padding, alias for dnnl::algorithm::pooling_avg_include_padding.
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:8769
concat()=default
Default constructor. Produces an empty object.
size_t DNNL_API dnnl_memory_desc_get_size(const dnnl_memory_desc_t *memory_desc)
Returns the size of a memory descriptor.
memory::desc diff_weights_peephole_desc() const
Returns diff weights peephole memory descriptor.
Definition: dnnl.hpp:7358
@ dnnl_eltwise_abs
Eltwise: abs.
Definition: dnnl_types.h:857
cl::sycl::device DNNL_API get_sycl_device() const
Returns the underlying SYCL device object.
primitive_desc()=default
Default constructor. Produces an empty object.
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a softmax backward propagation primitive from a C API primitive...
Definition: dnnl.hpp:6021
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:4184
void append_sum(float scale=1.f, memory::data_type data_type=memory::data_type::undef)
Appends an accumulation (sum) post-op.
Definition: dnnl.hpp:2440
@ none
Use no normalization flags.
dnnl_normalization_flags_t
Flags for normalization primitives.
Definition: dnnl_types.h:942
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:8631
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:9327
@ dnnl_eltwise_sqrt_use_dst_for_bwd
Eltwise: square root (dst for backward)
Definition: dnnl_types.h:896
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a resampling forward propagation primitive.
Definition: dnnl.hpp:9860
memory::desc diff_src_desc(int idx) const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:3095
Elementwise unary operation backward propagation primitive.
Definition: dnnl.hpp:5742
@ unimplemented
The operation failed because requested functionality is not implemented.
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 &weights_peephole_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_weights_peephole_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_layer_desc, const memory::desc &diff_dst_iter_desc, const memory::desc &diff_dst_iter_c_desc, rnn_flags flags=rnn_flags::undef)
Constructs an LSTM (with or without peephole) descriptor for backward propagation using prop_kind,...
Definition: dnnl.hpp:8339
@ dnnl_shuffle
A shuffle primitive.
Definition: dnnl_types.h:794
@ dnnl_query_shuffle_d
shuffle descriptor
Definition: dnnl_types.h:2123
desc permute_axes(const std::vector< int > &permutation, bool allow_empty=false) const
Constructs a memory descriptor by permuting axes in an existing one.
Definition: dnnl.hpp:2008
Matrix multiplication (matmul) primitive.
Definition: dnnl.hpp:9655
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:10007
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:8550
memory::desc weights_peephole_desc() const
Returns weights peephole memory descriptor.
Definition: dnnl.hpp:7286
A descriptor of a convolution operation.
Definition: dnnl_types.h:1224
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:4187
primitive_desc(const desc &adesc, const engine &aengine, const convolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a convolution backward propagation primitive.
Definition: dnnl.hpp:4146
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:4009
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:7346
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6492
dnnl_primitive_kind_t
Kinds of primitives.
Definition: dnnl_types.h:788
Elementwise unary operation forward propagation primitive.
Definition: dnnl.hpp:5649
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:5613
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const convolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a convolution backward propagation primitive.
Definition: dnnl.hpp:4166
dnnl_status_t DNNL_API dnnl_memory_desc_permute_axes(dnnl_memory_desc_t *out_memory_desc, const dnnl_memory_desc_t *in_memory_desc, const int *permutation)
Initializes a memory descriptor by permuting axes in an existing one.
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:5156
dnnl_rnn_flags_t
Flags for RNN cell.
Definition: dnnl_types.h:1555
@ dnnl_pooling_max
Max pooling.
Definition: dnnl_types.h:902
dnnl_status_t DNNL_API dnnl_engine_get_kind(dnnl_engine_t engine, dnnl_engine_kind_t *kind)
Returns the kind of an engine.
dnnl_status_t DNNL_API dnnl_memory_desc_reshape(dnnl_memory_desc_t *out_memory_desc, const dnnl_memory_desc_t *in_memory_desc, int ndims, const dnnl_dims_t dims)
Initializes a memory descriptor by reshaping an existing one.
dnnl_stream_flags_t
Stream flags.
Definition: dnnl_types.h:2162
dnnl_query_t
Primitive descriptor query specification.
Definition: dnnl_types.h:2093
@ eltwise_bounded_relu
Elementwise: bounded_relu.
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a logsoftmax forward propagation primitive from a C API primiti...
Definition: dnnl.hpp:6123
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a resampling forward propagation primitive from a C API primiti...
Definition: dnnl.hpp:9887
void append_dw_k3s2p1(memory::data_type weights_data_type, memory::data_type bias_data_type, memory::data_type dst_data_type, int mask, const std::vector< float > &scales)
Appends a depthwise post-op convolution with stride 2.
Definition: dnnl.hpp:2623
dnnl_status_t DNNL_API dnnl_logsoftmax_forward_desc_init(dnnl_logsoftmax_desc_t *logsoftmax_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, int logsoftmax_axis)
Initializes a descriptor for logsoftmax forward propagation primitive.
@ dnnl_bf16
non-standard 16-bit (bfloat16 w/ 7 bit mantissa) floating point.
Definition: dnnl_types.h:68
desc submemory_desc(const dims &adims, const dims &offsets, bool allow_empty=false) const
Constructs a memory descriptor for a region inside an area described by this memory descriptor.
Definition: dnnl.hpp:1905
void set_threadpool(threadpool_iface *threadpool)
Sets the threadpool attribute.
Definition: dnnl.hpp:1066
rnn_flags
RNN cell flags.
Definition: dnnl.hpp:656
A descriptor for an RNN operation.
Definition: dnnl_types.h:1577
@ dnnl_bcdea
permuted 5D tensor
Definition: dnnl_types.h:199
dnnl_rnn_direction_t
A direction of RNN primitive execution.
Definition: dnnl_types.h:1561
desc()=default
Default constructor. Produces an empty object.
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8088
cpu_isa
CPU instruction set flags.
Definition: dnnl.hpp:10079
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a logsoftmax forward propagation primitive.
Definition: dnnl.hpp:6112
@ dnnl_sum
A sum primitive.
Definition: dnnl_types.h:798
static size_t get_count(kind akind)
Returns the number of engines of a certain kind.
Definition: dnnl.hpp:889
void set_data_handle(void *handle, const stream &astream) const
Sets the underlying memory buffer.
Definition: dnnl.hpp:2192
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a convolution weights gradient primitive from a C API primitive...
Definition: dnnl.hpp:4439
@ forward_training
Forward data propagation (training mode).
Descriptor for a matmul primitive.
Definition: dnnl.hpp:9657
inner_product_backward_weights(const primitive_desc &pd)
Constructs an inner product weights gradient primitive.
Definition: dnnl.hpp:7221
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:8785
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a shuffle forward propagation primitive from a C API primitive ...
Definition: dnnl.hpp:9447
Primitive descriptor for an LRN forward propagation primitive.
Definition: dnnl.hpp:5221
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a shuffle backward propagation primitive from a C API primitive...
Definition: dnnl.hpp:9522
@ dnnl_backward_weights
Backward weights propagation.
Definition: dnnl_types.h:781
@ layer_normalization_d
layer normalization descriptor
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc dst_desc(int idx) const
Returns a destination memory descriptor.
Definition: dnnl.hpp:3077
@ dnnl_a
plain 1D tensor
Definition: dnnl_types.h:177
bool next_impl()
Advances the primitive iterator to the next implementation.
Definition: dnnl.hpp:3725
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:9370
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6658
A descriptor of an inner product operation.
Definition: dnnl_types.h:1521
void set_ocl_mem_object(cl_mem mem_object)
Sets the OpenCL memory object mem_object associated with the memory.
Definition: dnnl.hpp:2271
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:8119
Primitive descriptor for an inner product weights gradient primitive.
Definition: dnnl.hpp:7144
dnnl_status_t DNNL_API dnnl_post_ops_append_dw_k3s2p1(dnnl_post_ops_t post_ops, dnnl_data_type_t weights_data_type, dnnl_data_type_t bias_data_type, dnnl_data_type_t dst_data_type, dnnl_dim_t count, int mask, const float *scales)
Appends a depthwise post-op convolution with stride 2.
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a layer normalization forward propagation primitive from a C AP...
Definition: dnnl.hpp:6648
@ dnnl_gpu
GPU engine.
Definition: dnnl_types.h:1743
primitive()=default
Default constructor. Constructs an empty object.
dnnl_status_t DNNL_API dnnl_memory_unmap_data(const_dnnl_memory_t memory, void *mapped_ptr)
Unmaps a memory object and writes back any changes made to the previously mapped memory buffer.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:5496
Logsoftmax forward propagation primitive.
Definition: dnnl.hpp:6055
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)
Constructs a descriptor for a GRU backward propagation primitive.
Definition: dnnl.hpp:8849
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 &weights_peephole_desc, const memory::desc &weights_projection_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_weights_peephole_desc, const memory::desc &diff_weights_projection_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_layer_desc, const memory::desc &diff_dst_iter_desc, const memory::desc &diff_dst_iter_c_desc, rnn_flags flags=rnn_flags::undef)
Constructs an LSTM (with or without peephole and with or without projection) descriptor for backward ...
Definition: dnnl.hpp:8227
dnnl_status_t DNNL_API dnnl_layer_normalization_backward_desc_init(dnnl_layer_normalization_desc_t *lnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, const dnnl_memory_desc_t *stat_desc, float epsilon, unsigned flags)
Initializes a descriptor for a layer normalization backward propagation primitive.
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:8970
@ eltwise_abs
Elementwise: abs.
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:3662
desc(algorithm aalgorithm, const std::vector< float > &factors, const memory::desc &diff_src_desc, const memory::desc &diff_dst_desc)
Constructs a descriptor for resampling backward propagation primitive.
Definition: dnnl.hpp:9939
@ lrn_across_channels
Local response normalization (LRN) across multiple channels.
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:7374
desc(prop_kind aprop_kind, algorithm aalgorithm, const std::vector< float > &factors, const memory::desc &src_desc, const memory::desc &dst_desc)
Constructs a descriptor for a resampling forward propagation primitive.
Definition: dnnl.hpp:9832
Descriptor for an elementwise forward propagation primitive.
Definition: dnnl.hpp:5651
memory::dims dims() const
Returns dimensions of the memory descriptor.
Definition: dnnl.hpp:2024
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a vanilla RNN backward propagation primitive from a C API primi...
Definition: dnnl.hpp:7746
LSTM backward propagation primitive.
Definition: dnnl.hpp:8147
Descriptor for a layer normalization forward propagation primitive.
Definition: dnnl.hpp:6559
deconvolution_backward_weights()=default
Default constructor. Produces an empty object.
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5729
@ dnnl_query_diff_weights_md
weights grad. memory desc
Definition: dnnl_types.h:2143
primitive_desc(const desc &adesc, const engine &aengine, const resampling_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a resampling backward propagation primitive.
Definition: dnnl.hpp:9969
gru_forward(const primitive_desc &pd)
Constructs a GRU forward propagation primitive.
Definition: dnnl.hpp:8796
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a layer normalization backward propagation primitive from a C A...
Definition: dnnl.hpp:6808
@ dnnl_query_prop_kind
propagation kind
Definition: dnnl_types.h:2116
@ dnnl_eltwise_logistic
Eltwise: logistic.
Definition: dnnl_types.h:867
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:9136
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:8545
@ inner_product_d
inner product descriptor
pooling_forward(const primitive_desc &pd)
Constructs a pooling forward propagation primitive.
Definition: dnnl.hpp:5505
@ dnnl_eltwise
An element-wise primitive.
Definition: dnnl_types.h:804
GRU forward propagation primitive.
Definition: dnnl.hpp:8651
@ deconvolution_direct
Direct deconvolution.
kind
Kinds of engines.
Definition: dnnl.hpp:870
@ dnnl_aBc16b
3D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:214
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:9360
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:6504
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:7567
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a GRU forward propagation primitive from a C API primitive desc...
Definition: dnnl.hpp:8750
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 &weights_peephole_desc, const memory::desc &weights_projection_desc, const memory::desc &bias_desc, const memory::desc &dst_layer_desc, const memory::desc &dst_iter_desc, const memory::desc &dst_iter_c_desc, rnn_flags flags=rnn_flags::undef)
Constructs a descriptor for an LSTM (with or without peephole and with or without projection) forward...
Definition: dnnl.hpp:7883
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:8532
memory::desc variance_desc() const
Returns memory descriptor for variance.
Definition: dnnl.hpp:6372
inner_product_backward_data(const primitive_desc &pd)
Constructs an inner product backward propagation primitive.
Definition: dnnl.hpp:7089
@ dnnl_convolution_auto
Convolution algorithm(either direct or Winograd) is chosen just in time.
Definition: dnnl_types.h:843
binary(const primitive_desc &pd)
Constructs an elementwise binary operation primitive.
Definition: dnnl.hpp:9639
@ dnnl_cdba
permuted 4D tensor
Definition: dnnl_types.h:201
@ dnnl_eltwise_sqrt
Eltwise: square root.
Definition: dnnl_types.h:859
@ dnnl_cpu_isa_avx512_core
Intel AVX-512 subset for Intel Xeon Scalable processor family and Intel Core processor family.
Definition: dnnl_types.h:2273
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:9123
lstm_backward()=default
Default constructor. Produces an empty object.
bool operator==(const handle< T, traits > &other) const
Equality operator.
Definition: dnnl.hpp:222
stream()=default
Constructs an empty stream.
@ dnnl_eltwise_bounded_relu
Eltwise: bounded_relu.
Definition: dnnl_types.h:863
lbr_gru_backward(const primitive_desc &pd)
Constructs an LBR GRU backward propagation primitive.
Definition: dnnl.hpp:9381
static void validate_dims(const std::vector< T > &v, int min_size=0)
Helper function that validates that an std::vector of dimensions can be safely converted to the C API...
Definition: dnnl.hpp:1255
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)
Constructs a descriptor for a convolution forward propagation primitive without bias.
Definition: dnnl.hpp:3843
desc(algorithm aalgorithm, const memory::desc &src0, const memory::desc &src1, const memory::desc &dst)
Constructs a descriptor for an elementwise binary operator primitive.
Definition: dnnl.hpp:9569
status set_max_cpu_isa(cpu_isa isa)
Sets the maximal ISA the library can dispatch to on the CPU.
Definition: dnnl.hpp:10103
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6234
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a batch normalization forward propagation primitive.
Definition: dnnl.hpp:6337
desc()=default
Default constructor. Produces an empty object.
Primitive descriptor for an LSTM backward propagation primitive.
Definition: dnnl.hpp:8479
@ pooling
A pooling primitive.
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:7080
dnnl_status_t DNNL_API dnnl_lstm_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *src_iter_c_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_src_iter_c_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, const dnnl_memory_desc_t *diff_dst_iter_c_desc, unsigned flags)
Initializes a descriptor for an LSTM backward propagation primitive.
primitive_desc()=default
Default constructor. Produces an empty object.
primitive_attr get_primitive_attr() const
Returns the primitive attributes.
Definition: dnnl.hpp:3187
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:8954
@ reorder_src_engine
reorder source engine
desc()=default
Default constructor. Produces an empty object.
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for concat primitive from a C API primitive descriptor which must h...
Definition: dnnl.hpp:3558
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for an LRN forward propagation primitive.
Definition: dnnl.hpp:5234
primitive_desc(const desc &adesc, const engine &aengine, const lbr_gru_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an LBR GRU backward propagation primitive.
Definition: dnnl.hpp:9268
@ dnnl_forward_inference
Forward data propagation (inference mode).
Definition: dnnl_types.h:771
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)
Constructs a descriptor for a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4777
@ dnnl_query_impl_info_str
for creating scratchpad memory
Definition: dnnl_types.h:2111
@ dnnl_query_dst_md
destination memory desc
Definition: dnnl_types.h:2144
@ dnnl_query_resampling_d
resampling descriptor
Definition: dnnl_types.h:2136
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:7326
void set_scratchpad_mode(scratchpad_mode mode)
Sets scratchpad mode.
Definition: dnnl.hpp:2719
scratchpad_mode
Scratchpad mode.
Definition: dnnl.hpp:427
memory::desc diff_src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5607
@ dnnl_query_inner_product_d
inner product descriptor
Definition: dnnl_types.h:2130
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7564
#define DNNL_ARG_DIFF_WEIGHTS_LAYER
A special mnemonic for diff of RNN weights applied to the layer input.
Definition: dnnl_types.h:2012
@ pooling_avg_exclude_padding
Average pooling exclude padding.
@ dnnl_rnn_flags_undef
Undefined RNN flags.
Definition: dnnl_types.h:1557
@ dnnl_nCdhw16c
5D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcde16b
Definition: dnnl_types.h:532
@ dnnl_query_convolution_d
convolution descriptor
Definition: dnnl_types.h:2121
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:8995
Primitive descriptor for a resampling forward propagation primitive.
Definition: dnnl.hpp:9846
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)
Constructs a descriptor for a GRU forward propagation primitive.
Definition: dnnl.hpp:8688
@ dnnl_cpu_isa_avx512_core_amx
Intel AVX-512, Intel DL Boost and bfloat16 support and Intel AMX with 8-bit integer and bfloat16 supp...
Definition: dnnl_types.h:2288
memory::desc mean_desc() const
Returns memory descriptor for mean.
Definition: dnnl.hpp:6368
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5266
@ eltwise_sqrt
Elementwise: square root.
primitive_desc()=default
Default constructor. Produces an empty object.
engine scratchpad_engine() const
Returns the engine on which the scratchpad memory is located.
Definition: dnnl.hpp:3175
#define DNNL_ARG_DIFF_WEIGHTS_PEEPHOLE
A special mnemonic for diff of RNN weights applied to the peephole weights.
Definition: dnnl_types.h:2024
@ dnnl_aBCdef2c8b4c
6D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:344
dnnl_status_t DNNL_API dnnl_lstm_backward_desc_init_v2(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 *weights_peephole_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_weights_peephole_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, const dnnl_memory_desc_t *diff_dst_iter_c_desc, unsigned flags)
Initializes a descriptor for an LSTM (with or without peephole) backward propagation primitive.
memory::desc diff_weights_projection_desc() const
Returns diff weights projection memory descriptor.
Definition: dnnl.hpp:8616
sum()=default
Default constructor. Produces an empty object.
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:7790
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:7780
@ eltwise_sqrt_use_dst_for_bwd
Elementwise: square root (dst for backward)
@ eltwise_log
Elementwise: natural logarithm.
lrn_forward(const primitive_desc &pd)
Constructs an LRN forward propagation primitive.
Definition: dnnl.hpp:5281
primitive_desc()=default
Default constructor. Produces an empty object.
@ dnnl_bcda
permuted 4D tensor
Definition: dnnl_types.h:198
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const batch_normalization_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a batch normalization backward propagation primitive.
Definition: dnnl.hpp:6472
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:7577
dnnl_status_t DNNL_API dnnl_stream_create_v2(dnnl_stream_t *stream, dnnl_engine_t engine, unsigned flags, const_dnnl_stream_attr_t attr)
Creates an execution stream.
Primitive descriptor for a sum primitive.
Definition: dnnl.hpp:3589
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)
Constructs a descriptor for an LSTM forward propagation primitive.
Definition: dnnl.hpp:8012
deconvolution_forward()=default
Default constructor. Produces an empty object.
@ dnnl_eltwise_gelu_tanh
Eltwise: gelu.
Definition: dnnl_types.h:874
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 associated with an OpenCL device and an OpenCL context.
@ dnnl_bidirectional_concat
Bidirectional execution of RNN primitive with concatenation of the results.
Definition: dnnl_types.h:1568
reorder(const memory &src, const memory &dst, const primitive_attr &attr=primitive_attr())
Constructs a reorder primitive that would reorder data between memory objects having the same memory ...
Definition: dnnl.hpp:3432
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:3130
A descriptor of a pooling operation.
Definition: dnnl_types.h:1382
Layer normalization forward propagation primitive.
Definition: dnnl.hpp:6557
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:4444
@ lbr_gru
GRU cell with linear before reset.
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5153
primitive_desc_base()=default
Default constructor. Produces an empty object.
void set_zero_points(int arg, int mask, const std::vector< int32_t > &zero_points)
Sets zero points for primitive operations for a given memory argument.
Definition: dnnl.hpp:2890
#define DNNL_ARG_DIFF_DST_ITER_C
A special mnemonic for gradient (diff) of RNN input recurrent cell state vector.
Definition: dnnl_types.h:2000
A container for stream attributes.
Definition: dnnl.hpp:1041
@ convolution_winograd
Winograd convolution.
desc(prop_kind aprop_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, float epsilon, normalization_flags flags)
Constructs a descriptor for layer normalization backward propagation primitive.
Definition: dnnl.hpp:6744
primitive_desc(const engine &src_engine, const memory::desc &src_md, const engine &dst_engine, const memory::desc &dst_md, const primitive_attr &attr=primitive_attr(), bool allow_empty=false)
Constructs a primitive descriptor for reorder primitive.
Definition: dnnl.hpp:3350
kind get_kind() const
Returns the kind of the engine.
Definition: dnnl.hpp:947
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:7772
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a convolution forward propagation primitive.
Definition: dnnl.hpp:3992
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)
Constructs a descriptor for a dilated convolution forward propagation primitive with bias.
Definition: dnnl.hpp:3892
@ dnnl_aBcd32b
4D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:246
dnnl_data_type_t
Data type specification.
Definition: dnnl_types.h:62
@ dnnl_ba
permuted 2D tensor
Definition: dnnl_types.h:193
desc(const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_desc)
Constructs a descriptor for an inner product descriptor weights update primitive with bias.
Definition: dnnl.hpp:7109
@ dnnl_lrn_within_channel
LRN within a single channel.
Definition: dnnl_types.h:912
dnnl_status_t DNNL_API dnnl_memory_destroy(dnnl_memory_t memory)
Destroys a memory object.
Primitive descriptor for resampling backward propagation primitive.
Definition: dnnl.hpp:9952
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:3154
void set_post_ops(const post_ops ops)
Sets post-ops.
Definition: dnnl.hpp:2918
@ eltwise_gelu_tanh
Elementwise: tanh-based gelu.
dnnl_status_t DNNL_API dnnl_primitive_attr_create(dnnl_primitive_attr_t *attr)
Creates an empty (default) primitive attributes with all the parameters set to their default values.
eltwise_backward()=default
Default constructor. Produces an empty object.
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a GRU backward propagation primitive from a C API primitive des...
Definition: dnnl.hpp:8931
dnnl_status_t DNNL_API dnnl_lstm_backward_desc_init_v3(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 *weights_peephole_desc, const dnnl_memory_desc_t *weights_projection_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_weights_peephole_desc, const dnnl_memory_desc_t *diff_weights_projection_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, const dnnl_memory_desc_t *diff_dst_iter_c_desc, unsigned flags)
Initializes a descriptor for an LSTM (with or without peephole and with or with out recurrent project...
@ dnnl_binary_mul
Binary mul.
Definition: dnnl_types.h:930
void append_dw_k3s1p1(memory::data_type weights_data_type, memory::data_type bias_data_type, memory::data_type dst_data_type, int mask, const std::vector< float > &scales)
Appends a depthwise post-op convolution with stride 1.
Definition: dnnl.hpp:2538
Primitive descriptor for an elementwise forward propagation primitive.
Definition: dnnl.hpp:5679
dnnl::primitive::kind get_kind() const
Returns the kind of the primitive descriptor.
Definition: dnnl.hpp:3199
@ unidirectional_left2right
Unidirectional execution of RNN primitive from left to right.
dnnl_status_t DNNL_API dnnl_primitive_attr_get_zero_points(const_dnnl_primitive_attr_t attr, int arg, dnnl_dim_t *count, int *mask, const int32_t **zero_points)
Returns count, correspondence zero point mask, and a pointer to a constant int32_t array of zero_poin...
@ dnnl_format_tag_undef
Undefined memory format tag.
Definition: dnnl_types.h:166
@ dnnl_binary_min
Binary min.
Definition: dnnl_types.h:934
dnnl_status_t DNNL_API dnnl_post_ops_get_params_sum_v2(const_dnnl_post_ops_t post_ops, int index, float *scale, dnnl_data_type_t *data_type)
Returns the parameters of an accumulation (sum) post-op with a data type parameter.
@ resampling
A resampling primitive.
dnnl_status_t DNNL_API dnnl_primitive_attr_set_output_scales(dnnl_primitive_attr_t attr, dnnl_dim_t count, int mask, const float *scales)
Sets output scaling factors correspondence mask and values.
dnnl_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.
desc(prop_kind aprop_kind, algorithm aalgorithm, const std::vector< float > &factors, const memory::desc &src_desc)
Constructs a descriptor for a resampling forward propagation primitive using source memory descriptor...
Definition: dnnl.hpp:9805
shuffle_forward()=default
Default constructor. Produces an empty object.
dnnl_status_t DNNL_API dnnl_softmax_forward_desc_init(dnnl_softmax_desc_t *softmax_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, int softmax_axis)
Initializes a descriptor for softmax forward propagation primitive.
dnnl_status_t DNNL_API dnnl_primitive_desc_clone(dnnl_primitive_desc_t *primitive_desc, const_dnnl_primitive_desc_t existing_primitive_desc)
Clones a primitive descriptor.
const dnnl_version_t DNNL_API * dnnl_version(void)
Returns library version information.
@ dnnl_format_kind_rnn_packed
Packed weights format used in RNN.
Definition: dnnl_types.h:93
@ dnnl_use_scaleshift
Use scale and shift parameters.
Definition: dnnl_types.h:977
@ dnnl_eltwise_log
Eltwise: natural logarithm.
Definition: dnnl_types.h:880
Primitive descriptor for an LBR GRU backward propagation primitive.
Definition: dnnl.hpp:9251
Descriptor for an LRN forward propagation primitive.
Definition: dnnl.hpp:5192
Primitive descriptor for a softmax forward propagation primitive.
Definition: dnnl.hpp:5882
@ dnnl_query_layer_normalization_d
layer normalization descriptor
Definition: dnnl_types.h:2129
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)
Constructs a descriptor for a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7487
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:5371
dnnl_status_t DNNL_API dnnl_memory_set_data_handle(dnnl_memory_t memory, void *handle)
Sets the underlying memory buffer.
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an LRN forward propagation primitive from a C API primitive des...
Definition: dnnl.hpp:5260
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)
Constructs a descriptor for a dilated deconvolution backward propagation primitive.
Definition: dnnl.hpp:4819
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for an inner product forward propagation primitive.
Definition: dnnl.hpp:6952
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:3415
primitive_desc()=default
Default constructor. Produces an empty object.
int get_primitive_cache_capacity()
Returns the number of primitives that can be held in the primitive cache at the same time.
Definition: dnnl.hpp:10123
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:3412
Post-ops.
Definition: dnnl.hpp:2386
@ dnnl_ABcd8b8a
4D tensor blocked by 1st and 2nd dimension with block size 8
Definition: dnnl_types.h:273
cl_device_id get_ocl_device() const
Returns the OpenCL device associated with the engine.
Definition: dnnl.hpp:966
@ dnnl_resampling_linear
Linear Resampling Method.
Definition: dnnl_types.h:938
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:7074
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:3136
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:8990
lstm_forward()=default
Default constructor. Produces an empty object.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:3160
Primitive descriptor for a layer normalization forward propagation primitive.
Definition: dnnl.hpp:6607
@ dnnl_forward_training
Forward data propagation (training mode).
Definition: dnnl_types.h:767
query
Primitive descriptor query specification.
Definition: dnnl.hpp:743
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:8782
dnnl_status_t DNNL_API dnnl_primitive_desc_query(const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what, int index, void *result)
Queries a primitive descriptor for various pieces of information.
void set_sycl_buffer(cl::sycl::buffer< T, ndims > &buf)
Sets the underlying buffer to the given SYCL buffer.
Definition: dnnl.hpp:2309
@ dnnl_bac
permuted 3D tensor
Definition: dnnl_types.h:194
@ dnnl_eltwise_square
Eltwise: square.
Definition: dnnl_types.h:855
@ dnnl_fuse_norm_relu
Fuse with ReLU.
Definition: dnnl_types.h:990
@ dnnl_bacde
permuted 5D tensor
Definition: dnnl_types.h:196
#define DNNL_ARG_DIFF_WEIGHTS_ITER
A special mnemonic for diff of RNN weights applied to the recurrent input.
Definition: dnnl_types.h:2018
@ eltwise_clip
Elementwise: clip.
dnnl_status_t DNNL_API dnnl_primitive_execute(const_dnnl_primitive_t primitive, dnnl_stream_t stream, int nargs, const dnnl_exec_arg_t *args)
Executes a primitive.
@ dnnl_cpu_isa_avx512_mic_4ops
Intel AVX-512 subset for Intel Xeon Phi processors 7235, 7285, 7295 Series.
Definition: dnnl_types.h:2269
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:9131
logsoftmax_backward(const primitive_desc &pd)
Constructs a logsoftmax backward propagation primitive.
Definition: dnnl.hpp:6249
Deconvolution weights gradient primitive.
Definition: dnnl.hpp:4914
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:9149
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6969
desc(const memory::desc &diff_data_desc, const memory::desc &data_desc, int softmax_axis)
Constructs a descriptor for a softmax backward propagation primitive.
Definition: dnnl.hpp:5960
@ convolution_d
convolution descriptor
dnnl_status_t DNNL_API dnnl_stream_destroy(dnnl_stream_t stream)
Destroys an execution stream.
#define DNNL_ARG_DIFF_BIAS
Gradient (diff) of the bias tensor argument.
Definition: dnnl_types.h:2033
dnnl_status_t DNNL_API dnnl_primitive_attr_destroy(dnnl_primitive_attr_t attr)
Destroys primitive attributes.
@ fuse_norm_relu
Fuse normalization with ReLU.
@ eltwise_round
Elementwise: round.
dnnl_status_t DNNL_API dnnl_post_ops_append_sum(dnnl_post_ops_t post_ops, float scale)
Appends an accumulation (sum) to post-ops.
@ num_of_outputs_s32
number of outputs expected
primitive_desc(const desc &adesc, const engine &aengine, const lstm_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an LSTM backward propagation primitive.
Definition: dnnl.hpp:8495
#define DNNL_ARG_WEIGHTS_PEEPHOLE
A special mnemonic for RNN weights applied to the peephole weights.
Definition: dnnl_types.h:1938
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7262
Tensor concatenation (concat) primitive.
Definition: dnnl.hpp:3494
dnnl_status_t DNNL_API dnnl_gru_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, unsigned flags)
Initializes a descriptor for GRU forward propagation primitive.
dnnl_status_t DNNL_API dnnl_gemm_s8s8s32(char transa, char transb, char offsetc, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const int8_t *A, dnnl_dim_t lda, int8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo, float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co)
Performs integer matrix-matrix multiply on 8-bit signed matrix A, 8-bit signed matrix B,...
@ dnnl_format_kind_wino
Weights format used in 8bit Winograd convolution.
Definition: dnnl_types.h:91
Descriptor for a logsoftmax backward propagation primitive.
Definition: dnnl.hpp:6151
@ dnnl_convolution_winograd
Winograd convolution.
Definition: dnnl_types.h:841
Convolution forward propagation primitive.
Definition: dnnl.hpp:3762
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:6237
Descriptor for a batch normalization backward propagation primitive.
Definition: dnnl.hpp:6406
@ dnnl_ABcde4b16a4b
5D tensor blocked by 1st dimension with block size 16
Definition: dnnl_types.h:287
@ dnnl_nChw8c
4D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcd8b
Definition: dnnl_types.h:550
Batch normalization forward propagation primitive.
Definition: dnnl.hpp:6275
dnnl_status_t DNNL_API dnnl_memory_desc_init_submemory(dnnl_memory_desc_t *memory_desc, const dnnl_memory_desc_t *parent_memory_desc, const dnnl_dims_t dims, const dnnl_dims_t offsets)
Initializes a memory descriptor for a region inside an area described by an existing memory descripto...
dnnl_engine_kind_t
Kinds of engines.
Definition: dnnl_types.h:1737
@ dnnl_binary
A binary primitive.
Definition: dnnl_types.h:822
@ dnnl_cdeba
permuted 5D tensor
Definition: dnnl_types.h:203
@ forward_inference
Forward data propagation (inference mode).
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:7800
memory::desc mean_desc() const
Returns memory descriptor for mean.
Definition: dnnl.hpp:6835
@ dnnl_eltwise_tanh
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: dnnl_types.h:851
error(dnnl_status_t status, const char *message)
Constructs an instance of an exception class.
Definition: dnnl.hpp:104
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:8957
@ dnnl_aBc4b
3D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:220
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5490
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl_status_t DNNL_API dnnl_stream_attr_create(dnnl_stream_attr_t *attr, dnnl_engine_kind_t kind)
Creates execution stream attributes for a stream that runs on an engine of a particular kind.
@ dnnl_abcde
plain 5D tensor
Definition: dnnl_types.h:181
@ dnnl_nCw8c
3D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBc8b
Definition: dnnl_types.h:562
desc(prop_kind aprop_kind, const memory::desc &data_desc, float epsilon, normalization_flags flags)
Constructs a descriptor for layer normalization forward propagation primitive.
Definition: dnnl.hpp:6594
dnnl_status_t DNNL_API dnnl_post_ops_append_eltwise(dnnl_post_ops_t post_ops, float scale, dnnl_alg_kind_t alg_kind, float alpha, float beta)
Appends an elementwise post-op.
Descriptor for an inner product weights gradient primitive.
Definition: dnnl.hpp:7095
dnnl_dims_t dims
Dimensions in the following order:
Definition: dnnl_types.h:1157
@ dnnl_stream_default_order
Default order execution.
Definition: dnnl_types.h:2165
@ avx512_core_vnni
Intel AVX-512 and Intel Deep Learning Boost (Intel DL Boost) support for Intel Xeon Scalable processo...
dnnl_status_t DNNL_API dnnl_primitive_attr_get_scratchpad_mode(const_dnnl_primitive_attr_t attr, dnnl_scratchpad_mode_t *mode)
Returns the primitive attributes scratchpad mode.
dnnl_status_t DNNL_API dnnl_concat_primitive_desc_create(dnnl_primitive_desc_t *concat_primitive_desc, const dnnl_memory_desc_t *dst_desc, int n, int concat_dimension, const dnnl_memory_desc_t *src_descs, const_dnnl_primitive_attr_t attr, dnnl_engine_t engine)
Creates a primitive descriptor for an out-of-place concatenation primitive.
dnnl_status_t DNNL_API dnnl_post_ops_destroy(dnnl_post_ops_t post_ops)
Destroys post-ops.
dnnl_status_t DNNL_API dnnl_eltwise_backward_desc_init(dnnl_eltwise_desc_t *eltwise_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, float alpha, float beta)
Initializes a descriptor for eltwise backward propagation primitive.
primitive_desc()=default
Default constructor. Produces an empty object.
Softmax forward propagation primitive.
Definition: dnnl.hpp:5855
@ resampling_nearest
Nearest Neighbor resampling method.
@ dnnl_pooling
A pooling primitive.
Definition: dnnl_types.h:808
Batch normalization backward propagation primitive.
Definition: dnnl.hpp:6404
@ dnnl_acdb
permuted 4D tensor
Definition: dnnl_types.h:191
@ dnnl_query_lrn_d
lrn descriptor
Definition: dnnl_types.h:2127
dnnl_status_t DNNL_API dnnl_convolution_backward_data_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a convolution backward propagation primitive.
@ dnnl_backward
Backward propagation (with respect to all parameters).
Definition: dnnl_types.h:777
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6355
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:7077
A descriptor of a Softmax operation.
Definition: dnnl_types.h:1352
@ undef
Undefined algorithm.
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a layer normalization forward propagation primitive.
Definition: dnnl.hpp:6637
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const lbr_gru_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an LBR GRU backward propagation primitive.
Definition: dnnl.hpp:9288
@ dnnl_cpu_isa_avx512_core_bf16
Intel AVX-512, Intel DL Boost and bfloat16 support for Intel Xeon Scalable processor family and Intel...
Definition: dnnl_types.h:2283
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)
Constructs a descriptor for pooling forward propagation primitive.
Definition: dnnl.hpp:5426
dnnl_status_t DNNL_API dnnl_memory_get_data_handle(const_dnnl_memory_t memory, void **handle)
Returns memory object's data handle.
vanilla_rnn_forward(const primitive_desc &pd)
Constructs a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7599
@ dnnl_iterator_ends
Primitive iterator passed over last primitive descriptor.
Definition: dnnl_types.h:49
@ default_order
Default order execution.
@ scratchpad_md
scratchpad memory desc
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)
Constructs a descriptor for pooling backward propagation primitive.
Definition: dnnl.hpp:5535
data_type
Data type specification.
Definition: dnnl.hpp:1261
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const gru_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a GRU backward propagation primitive.
Definition: dnnl.hpp:8918
primitive_desc(const desc &adesc, const engine &aengine, const deconvolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4857
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an LRN backward propagation primitive from a C API primitive de...
Definition: dnnl.hpp:5363
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const lrn_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an LRN backward propagation primitive.
Definition: dnnl.hpp:5350
Descriptor for an LBR GRU forward propagation primitive.
Definition: dnnl.hpp:9017
dnnl_status_t DNNL_API dnnl_primitive_attr_set_scales(dnnl_primitive_attr_t attr, int arg, dnnl_dim_t count, int mask, const float *scales)
Sets primitive attributes scaling factors for primitive operations for a given memory argument.
cl_context get_ocl_context() const
Returns the OpenCL context associated with the engine.
Definition: dnnl.hpp:957
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7526
dnnl_status_t DNNL_API dnnl_sgemm(char transa, char transb, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const float *A, dnnl_dim_t lda, const float *B, dnnl_dim_t ldb, float beta, float *C, dnnl_dim_t ldc)
Performs single-precision matrix-matrix multiply.
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const lstm_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an LSTM backward propagation primitive.
Definition: dnnl.hpp:8514
Primitive descriptor for a convolution weights gradient primitive.
Definition: dnnl.hpp:4391
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6498
memory::desc weights_peephole_desc() const
Returns weights peephole memory descriptor.
Definition: dnnl.hpp:8106
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)
Constructs a descriptor for LBR GRU backward propagation primitive.
Definition: dnnl.hpp:9217
dnnl_status_t DNNL_API dnnl_stream_wait(dnnl_stream_t stream)
Waits for all primitives in the execution stream to finish computations.
dnnl_status_t DNNL_API dnnl_memory_set_data_handle_v2(dnnl_memory_t memory, void *handle, dnnl_stream_t stream)
Sets the underlying memory buffer.
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:7352
An opaque structure to describe a primitive descriptor.
desc(const memory::desc &diff_data_desc, const memory::desc &data_desc, int logsoftmax_axis)
Constructs a descriptor for a logsoftmax backward propagation primitive.
Definition: dnnl.hpp:6164
#define DNNL_ARG_SRC_ITER_C
A special mnemonic for RNN input recurrent cell state vector.
Definition: dnnl_types.h:1891
Primitive descriptor for a pooling forward propagation primitive.
Definition: dnnl.hpp:5445
dnnl_status_t DNNL_API dnnl_sum_primitive_desc_create(dnnl_primitive_desc_t *sum_primitive_desc, const dnnl_memory_desc_t *dst_desc, int n, const float *scales, const dnnl_memory_desc_t *src_descs, const_dnnl_primitive_attr_t attr, dnnl_engine_t engine)
Creates a primitive descriptor for an (out-of-place) sum primitive.
static engine query(const primitive_desc &pd)
Returns the engine of a primitive descriptor.
Definition: dnnl.hpp:988
@ dnnl_nCdhw8c
5D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcde8b
Definition: dnnl_types.h:538
@ dnnl_pooling_avg
Average pooling (alias for dnnl_pooling_avg_exclude_padding)
Definition: dnnl_types.h:908
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a softmax forward propagation primitive from a C API primitive ...
Definition: dnnl.hpp:5923
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const layer_normalization_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a layer normalization backward propagation primitive.
Definition: dnnl.hpp:6795
@ dnnl_vanilla_rnn
RNN cell.
Definition: dnnl_types.h:914
@ weights_md
weights memory descriptor desc
#define DNNL_ARG_DIFF_SRC_ITER
A special mnemonic for gradient (diff) of RNN input recurrent hidden state vector.
Definition: dnnl_types.h:1973
@ avx2
Intel Advanced Vector Extensions 2 (Intel AVX2)
dnnl_status_t DNNL_API dnnl_primitive_desc_get_attr(const_dnnl_primitive_desc_t primitive_desc, const_dnnl_primitive_attr_t *attr)
Returns a constant reference to the attributes of a primitive descriptor.
@ dnnl_unidirectional
Alias for dnnl_unidirectional_left2right.
Definition: dnnl_types.h:1573
@ inner_product
An inner product primitive.
#define DNNL_ARG_DIFF_DST_ITER
A special mnemonic for gradient (diff) of RNN input recurrent hidden state vector.
Definition: dnnl_types.h:1994
dnnl_status_t DNNL_API dnnl_gru_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags)
Initializes a descriptor for GRU backward propagation primitive.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:8132
@ dnnl_abdc
permuted 4D tensor
Definition: dnnl_types.h:186
@ dnnl_eltwise_pow
Eltwise: pow.
Definition: dnnl_types.h:884
void set_primitive_cache_capacity(int capacity)
Sets a number of primitives that can be held in the primitive cache at a time.
Definition: dnnl.hpp:10131
memory::desc dst_iter_c_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8127
Primitive descriptor for a deconvolution forward propagation primitive.
Definition: dnnl.hpp:4679
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a matmul primitive.
Definition: dnnl.hpp:9715
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:8581
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:6827
@ undef
Undefined primitive.
Resampling forward propagation.
Definition: dnnl.hpp:9765
@ avx512_core_amx
Intel AVX-512, Intel DL Boost and bfloat16 support and Intel AMX with 8-bit integer and bfloat16 supp...
desc(algorithm aalgorithm, const memory::desc &diff_src_desc, const memory::desc &diff_dst_desc)
Constructs a descriptor for a resampling backward propagation primitive using source and destination ...
Definition: dnnl.hpp:9922
desc get_desc() const
Returns the associated memory descriptor.
Definition: dnnl.hpp:2139
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:9456
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:7380
@ dnnl_aBcd4b
4D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:248
Inner product weights gradient primitive.
Definition: dnnl.hpp:7093
memory::desc mean_desc() const
Returns memory descriptor for mean.
Definition: dnnl.hpp:6667
resampling_backward(const primitive_desc &pd)
Constructs a resampling backward propagation primitive.
Definition: dnnl.hpp:10019
@ layer_normalization
A layer normalization primitive.
dnnl_status_t DNNL_API dnnl_lstm_forward_desc_init_v2(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 *weights_peephole_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, unsigned flags)
Initializes a descriptor for an LSTM (with or without peephole) forward propagation primitive.
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc src_iter_c_desc() const
Returns source recurrent cell state memory descriptor.
Definition: dnnl.hpp:7268
format_tag
Memory format tag specification.
Definition: dnnl.hpp:1335
@ dnnl_query_matmul_d
matrix multiplication (matmul) descriptor
Definition: dnnl_types.h:2135
void unmap_data(void *mapped_ptr) const
Unmaps a memory object and writes back any changes made to the previously mapped memory buffer.
Definition: dnnl.hpp:2250
#define DNNL_ARG_DIFF_DST_LAYER
A special mnemonic for gradient (diff) of RNN output vector.
Definition: dnnl_types.h:1988
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8761
#define DNNL_ARG_SRC_LAYER
A special mnemonic for RNN input vector.
Definition: dnnl_types.h:1876
struct dnnl_primitive_desc * dnnl_primitive_desc_t
A primitive descriptor handle.
Definition: dnnl_types.h:1780
stream_attr(engine::kind akind)
Constructs stream attributes for a stream that runs on an engine of a particular kind.
Definition: dnnl.hpp:1051
@ dnnl_query_binary_d
binary descriptor
Definition: dnnl_types.h:2133
@ dnnl_lbr_gru
GRU cell with linear before reset.
Definition: dnnl_types.h:926
@ not_required
Queried element is not required for given primitive.
dnnl_status_t DNNL_API dnnl_lbr_gru_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags)
Initializes a descriptor for LBR GRU backward propagation primitive.
primitive_desc()=default
Default constructor. Produces an empty object.
@ backward_weights
Backward weights propagation.
@ dst_md
destination memory desc
@ dnnl_forward
Forward data propagation (alias for dnnl_forward_training).
Definition: dnnl_types.h:775
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:9896
@ dnnl_f32
32-bit/single-precision floating point.
Definition: dnnl_types.h:70
@ batch_normalization_d
batch normalization descriptor
@ dnnl_acbdef
permuted 6D tensor
Definition: dnnl_types.h:190
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &data_desc, memory::dim local_size, float alpha, float beta, float k=1.f)
Constructs a descriptor for a LRN forward propagation primitive.
Definition: dnnl.hpp:5208
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const convolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a convolution weights gradient primitive.
Definition: dnnl.hpp:4426
normalization_flags
Flags for normalization primitives.
Definition: dnnl.hpp:613
Inner product backward propagation primitive.
Definition: dnnl.hpp:6991
@ dnnl_use_global_stats
Use global statistics.
Definition: dnnl_types.h:964
@ binary_d
binary descriptor
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)
Constructs a descriptor for a convolution forward propagation primitive with bias.
Definition: dnnl.hpp:3797
matmul(const primitive_desc &pd)
Constructs a matmul primitive.
Definition: dnnl.hpp:9749
@ dnnl_lrn_across_channels
Local response normalization (LRN) across multiple channels.
Definition: dnnl_types.h:910
memory::desc mean_desc() const
Returns memory descriptor for mean.
Definition: dnnl.hpp:6512
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a batch normalization forward propagation primitive from a C AP...
Definition: dnnl.hpp:6348
@ dnnl_concat
A (out-of-place) concat primitive.
Definition: dnnl_types.h:796
Inner product forward propagation primitive.
Definition: dnnl.hpp:6866
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:4898
@ dnnl_query_diff_dst_md
destination grad. memory desc
Definition: dnnl_types.h:2145
@ dnnl_format_kind_undef
Undefined memory format kind, used for empty memory descriptors.
Definition: dnnl_types.h:82
Logsoftmax backward propagation primitive.
Definition: dnnl.hpp:6149
@ dnnl_aBcdef16b
6D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:339
@ dnnl_layer_normalization
A layer normalization primitive.
Definition: dnnl_types.h:814
@ workspace_md
workspace memory desc
Primitive descriptor for a GRU backward propagation primitive.
Definition: dnnl.hpp:8883
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:4726
dnnl_status_t DNNL_API dnnl_set_max_cpu_isa(dnnl_cpu_isa_t isa)
Sets the maximal ISA the library can dispatch to on the CPU.
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:9365
dnnl_data_type_t data_type
Data type of the tensor elements.
Definition: dnnl_types.h:1160
dnnl_status_t DNNL_API dnnl_convolution_backward_weights_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a convolution weights gradient primitive.
@ iterator_ends
Primitive iterator passed over last primitive descriptor.
desc(const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_dst_desc)
Constructs a descriptor for an inner product descriptor weights update primitive without bias.
Definition: dnnl.hpp:7131
primitive_desc(const desc &adesc, const engine &aengine, const pooling_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a pooling backward propagation primitive.
Definition: dnnl.hpp:5570
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:7795
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a LBR GRU backward propagation primitive from a C API primitive...
Definition: dnnl.hpp:9301
#define DNNL_ARG_BIAS
Bias tensor argument.
Definition: dnnl_types.h:1947
@ src_md
source memory desc
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a deconvolution weights gradient primitive from a C API primiti...
Definition: dnnl.hpp:5148
@ convolution_direct
Direct convolution.
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:4901
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an LSTM forward propagation primitive from a C API primitive de...
Definition: dnnl.hpp:8077
convolution_forward()=default
Default constructor. Produces an empty object.
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a layer normalization forward propagation primitive.
Definition: dnnl.hpp:6621
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:5272
stream(const engine &aengine, flags aflags=flags::default_flags, const stream_attr &attr=stream_attr())
Constructs a stream for the specified engine and with behavior controlled by the specified flags.
Definition: dnnl.hpp:1112
@ eltwise_logistic
Elementwise: logistic.
@ dnnl_cpu_isa_all
Any ISA (excepting those listed as initial support)
Definition: dnnl_types.h:2252
dnnl_status_t DNNL_API dnnl_reorder_primitive_desc_create(dnnl_primitive_desc_t *reorder_primitive_desc, const dnnl_memory_desc_t *src_desc, dnnl_engine_t src_engine, const dnnl_memory_desc_t *dst_desc, dnnl_engine_t dst_engine, const_dnnl_primitive_attr_t attr)
Creates a primitive descriptor for a reorder primitive.
memory::desc weights_projection_desc() const
Returns weights projection memory descriptor.
Definition: dnnl.hpp:8111
deconvolution_backward_data()=default
Default constructor. Produces an empty object.
@ dnnl_query_op_d
op descriptor
Definition: dnnl_types.h:2120
cl::sycl::queue DNNL_API get_sycl_queue() const
Returns the underlying SYCL queue object.
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:7751
primitive_desc(const desc &adesc, const engine &aengine, const shuffle_forward::primitive_desc &hint_fwd_pd, const primitive_attr &attr=primitive_attr(), bool allow_empty=false)
Constructs a primitive descriptor for a shuffle backward propagation primitive.
Definition: dnnl.hpp:9509
dnnl_status_t DNNL_API dnnl_softmax_backward_desc_init(dnnl_softmax_desc_t *softmax_desc, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, int softmax_axis)
Initializes a descriptor for softmax backward propagation primitive.
primitive_desc()=default
Default constructor. Produces an empty object.
void set_scales(int arg, int mask, const std::vector< float > &scales)
Sets scaling factors for primitive operations for a given memory argument.
Definition: dnnl.hpp:2838
dnnl_primitive_kind_t convert_to_c(primitive::kind akind)
Converts primitive kind enum value from C++ API to C API type.
Definition: dnnl.hpp:390
Primitive descriptor for a convolution forward propagation primitive.
Definition: dnnl.hpp:3962
@ dnnl_out_of_memory
The operation failed due to an out-of-memory condition.
Definition: dnnl_types.h:43
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:7280
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition: dnnl_types.h:1034
dnnl_status_t DNNL_API dnnl_memory_get_memory_desc(const_dnnl_memory_t memory, const dnnl_memory_desc_t **memory_desc)
Returns the memory descriptor for a memory object.
primitive_desc(const desc &adesc, const engine &aengine, const layer_normalization_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a layer normalization backward propagation primitive.
Definition: dnnl.hpp:6775
dnnl_status_t DNNL_API dnnl_vanilla_rnn_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, unsigned flags, float alpha, float beta)
Initializes a descriptor for vanilla RNN backward propagation primitive.
lbr_gru_backward()=default
Default constructor. Produces an empty object.
dnnl_status_t DNNL_API dnnl_deconvolution_backward_weights_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a deconvolution weights gradient primitive.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:8965
vanilla_rnn_forward()=default
Default constructor. Produces an empty object.
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5726
@ eltwise_tanh
Elementwise: hyperbolic tangent non-linearity (tanh)
dnnl_status_t DNNL_API dnnl_resampling_backward_desc_init(dnnl_resampling_desc_t *resampling_desc, dnnl_alg_kind_t alg_kind, const float *factors, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *diff_dst_desc)
Initializes a descriptor for resampling backward propagation primitive.
@ dnnl_abcd
plain 4D tensor
Definition: dnnl_types.h:180
dnnl_status_t DNNL_API dnnl_post_ops_append_dw_k3s1p1(dnnl_post_ops_t post_ops, dnnl_data_type_t weights_data_type, dnnl_data_type_t bias_data_type, dnnl_data_type_t dst_data_type, dnnl_dim_t count, int mask, const float *scales)
Appends a depthwise post-op convolution with stride 1.
desc(prop_kind aprop_kind, const memory::desc &data_desc, int softmax_axis)
Constructs a descriptor for a softmax forward propagation primitive.
Definition: dnnl.hpp:5871
dnnl_status_t DNNL_API dnnl_primitive_get_primitive_desc(const_dnnl_primitive_t primitive, const_dnnl_primitive_desc_t *primitive_desc)
Retrieves a constant reference to the primitive descriptor of a given primitive.
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7756
desc(const dims &adims, data_type adata_type, const dims &strides, bool allow_empty=false)
Constructs a memory descriptor by strides.
Definition: dnnl.hpp:1875
Descriptor for a layer normalization backward propagation primitive.
Definition: dnnl.hpp:6704
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:8949
@ dnnl_u8
8-bit unsigned integer.
Definition: dnnl_types.h:76
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const logsoftmax_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a logsoftmax backward propagation primitive.
Definition: dnnl.hpp:6212
@ dnnl_query_workspace_md
workspace memory desc
Definition: dnnl_types.h:2146
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:8083
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:9741
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5826
@ dnnl_format_tag_last
Just a sentinel, not real memory format tag.
Definition: dnnl_types.h:410
handle()=default
Constructs an empty handle object.
primitive_desc()=default
Default constructor. Produces an empty object.
resampling_forward(const primitive_desc &pd)
Constructs a resampling forward propagation primitive.
Definition: dnnl.hpp:9905
@ dnnl_query_deconvolution_d
deconvolution descriptor
Definition: dnnl_types.h:2122
#define DNNL_ARG_DST_ITER
A special mnemonic for RNN input recurrent hidden state vector.
Definition: dnnl_types.h:1908
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for an LSTM forward propagation primitive.
Definition: dnnl.hpp:8066
@ dnnl_logsoftmax
A logsoftmax primitive.
Definition: dnnl_types.h:824
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a convolution forward propagation primitive from a C API primit...
Definition: dnnl.hpp:4003
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)
Constructs a descriptor for LBR GRU forward propagation primitive.
Definition: dnnl.hpp:9053
@ dnnl_format_tag_any
Undefined memory format tag.
Definition: dnnl_types.h:169
#define DNNL_ARG_DIFF_WEIGHTS_PROJECTION
A special mnemonic for diff of RNN weights applied to the projection weights.
Definition: dnnl_types.h:2030
@ dnnl_deconvolution_direct
Direct deconvolution.
Definition: dnnl_types.h:845
primitive_desc_base(dnnl_primitive_desc_t pd, dnnl::primitive::kind prim_kind, dnnl::prop_kind aprop_kind)
Constructs a primitive descriptor base object from a clone of a C API primitive descriptor after veri...
Definition: dnnl.hpp:3246
memory::desc dst_iter_c_desc() const
Returns destination recurrent cell state memory descriptor.
Definition: dnnl.hpp:7320
handle(T t, bool weak=false)
Constructs a handle wrapper object from a C API handle.
Definition: dnnl.hpp:181
int DNNL_API dnnl_memory_desc_equal(const dnnl_memory_desc_t *lhs, const dnnl_memory_desc_t *rhs)
Compares two memory descriptors.
@ dnnl_reorder
A reorder primitive.
Definition: dnnl_types.h:792
Primitive descriptor for a matmul primitive.
Definition: dnnl.hpp:9689
Primitive descriptor for a batch normalization forward propagation primitive.
Definition: dnnl.hpp:6307
memory::desc bias_desc() const
Returns the bias memory descriptor.
Definition: dnnl.hpp:9736
dnnl_status_t DNNL_API dnnl_deconvolution_backward_data_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a deconvolution backward propagation primitive.
A descriptor of a Local Response Normalization (LRN) operation.
Definition: dnnl_types.h:1420
@ dnnl_stream_default_flags
Default stream configuration.
Definition: dnnl_types.h:2171
@ avx512_mic
Intel Advanced Vector Extensions 512 (Intel AVX-512) subset for Intel Xeon Phi processors x200 Series...
primitive_desc(const desc &adesc, const engine &aengine, const deconvolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a deconvolution weights update primitive.
Definition: dnnl.hpp:5115
#define DNNL_ARG_WEIGHTS_LAYER
A special mnemonic for RNN weights applied to the layer input.
Definition: dnnl_types.h:1926
A descriptor of a shuffle operation.
Definition: dnnl_types.h:1277
primitive_desc(const desc &adesc, const engine &aengine, const logsoftmax_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a logsoftmax backward propagation primitive.
Definition: dnnl.hpp:6192
memory::desc src_iter_c_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8540
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)
Constructs a descriptor for a dilated convolution weights gradient primitive with bias.
Definition: dnnl.hpp:4323
Primitive descriptor for a batch normalization backward propagation primitive.
Definition: dnnl.hpp:6435
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6136
Primitive descriptor for a concat primitive.
Definition: dnnl.hpp:3496
gru_backward()=default
Default constructor. Produces an empty object.
@ dnnl_backward_data
Backward data propagation.
Definition: dnnl_types.h:779
@ use_scale_shift
Use scale and shift parameters.
softmax_backward()=default
Default constructor. Produces an empty object.
@ dnnl_acdeb
permuted 5D tensor
Definition: dnnl_types.h:192
Structure containing version information as per Semantic Versioning
Definition: dnnl_types.h:2220
A descriptor of a Batch Normalization operation.
Definition: dnnl_types.h:1451
@ memory_consumption_s64
memory required for scratchpad (bytes)
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:3148
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:3142
@ dnnl_eltwise_exp_use_dst_for_bwd
Eltwise: exp (dst for backward)
Definition: dnnl_types.h:900
Layer normalization backward propagation primitive.
Definition: dnnl.hpp:6702
memory(const desc &md, const engine &aengine, cl::sycl::buffer< T, ndims > &buf)
Constructs a memory object from a SYCL buffer.
Definition: dnnl.hpp:2122
@ library
The library manages the scratchpad allocation according to the policy specified by the DNNL_ENABLE_CO...
resampling_forward()=default
Default constructor. Produces an empty object.
Primitive descriptor for a GRU forward propagation primitive.
Definition: dnnl.hpp:8711
@ backward_bias
Backward bias propagation.
dnnl_status_t DNNL_API dnnl_set_verbose(int level)
Configures verbose output to stdout.
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a logsoftmax backward propagation primitive from a C API primit...
Definition: dnnl.hpp:6225
@ avx512_core
Intel AVX-512 subset for Intel Xeon Scalable processor family and Intel Core processor family.
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:7815
@ eltwise_swish
Elementwise: swish ( )
softmax_forward()=default
Default constructor. Produces an empty object.
dnnl_status_t DNNL_API dnnl_post_ops_append_sum_v2(dnnl_post_ops_t post_ops, float scale, dnnl_data_type_t data_type)
Appends an accumulation v2 (sum) to post-ops.
A descriptor of a element-wise operation.
Definition: dnnl_types.h:1299
dnnl_status_t DNNL_API dnnl_eltwise_forward_desc_init(dnnl_eltwise_desc_t *eltwise_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *data_desc, float alpha, float beta)
Initializes a descriptor for eltwise forward propagation primitive.
memory::desc diff_dst_desc(int idx) const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:3104
@ dnnl_aBcd16b
4D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:240
@ lrn_within_channel
LRN within a single channel.
@ dnnl_resampling_nearest
Nearest Neighbor Resampling Method.
Definition: dnnl_types.h:936
layer_normalization_backward()=default
Default constructor. Produces an empty object.
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:7314
primitive_desc(const desc &adesc, const engine &aengine, const batch_normalization_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a batch normalization backward propagation primitive.
Definition: dnnl.hpp:6452
@ user
The user manages the scratchpad allocation by querying and providing the scratchpad memory to primiti...
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6661
@ dnnl_rnn
A rnn primitive.
Definition: dnnl_types.h:818
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:7585
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:4447
handle< T, traits > & operator=(handle< T, traits > &&)=default
Move assignment operator.
@ undef
Undefined data type (used for empty memory descriptors).
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:4452
@ dnnl_aBc32b
3D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:218
memory::desc weights_peephole_desc() const
Returns weights peephole memory descriptor.
Definition: dnnl.hpp:8555
status set_jit_profiling_flags(unsigned flags)
Sets library profiling flags.
Definition: dnnl.hpp:10069
desc(prop_kind aprop_kind, const memory::desc &data_desc, const memory::desc &stat_desc, float epsilon, normalization_flags flags)
Constructs a descriptor for layer normalization forward propagation primitive.
Definition: dnnl.hpp:6573
desc reshape(const dims &adims, bool allow_empty=false) const
Constructs a memory descriptor by reshaping an existing one.
Definition: dnnl.hpp:1961
@ dnnl_query_num_of_outputs_s32
number of outputs expected
Definition: dnnl_types.h:2100
memory::desc src1_desc() const
Returns the memory descriptor for source #1.
Definition: dnnl.hpp:9627
Pooling forward propagation primitive.
Definition: dnnl.hpp:5397
@ dnnl_cpu_isa_sse41
Intel Streaming SIMD Extensions 4.1 (Intel SSE4.1)
Definition: dnnl_types.h:2255
@ dnnl_aBCd2b4c2b
4D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:285
dnnl_status_t DNNL_API dnnl_engine_get_ocl_device(dnnl_engine_t engine, cl_device_id *device)
Returns the OpenCL device associated with an engine.
status sgemm(char transa, char transb, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const float *A, dnnl_dim_t lda, const float *B, dnnl_dim_t ldb, float beta, float *C, dnnl_dim_t ldc)
Performs single-precision matrix-matrix multiply.
Definition: dnnl.hpp:10146
memory::dim query_s64(query what) const
Returns a memory::dim value (same as int64_t).
Definition: dnnl.hpp:3027
status
Status values returned by the library functions.
Definition: dnnl.hpp:10036
Descriptor for a LBR GRU backward propagation primitive.
Definition: dnnl.hpp:9169
dnnl_status_t DNNL_API dnnl_memory_get_engine(const_dnnl_memory_t memory, dnnl_engine_t *engine)
Returns the engine of a memory object.
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6818
@ dnnl_abdec
permuted 5D tensor
Definition: dnnl_types.h:187
@ dnnl_cpu_isa_avx2
Intel Advanced Vector Extensions 2 (Intel AVX2)
Definition: dnnl_types.h:2261
@ dnnl_cpu_isa_avx512_core_vnni
Intel AVX-512 and Intel Deep Learning Boost (Intel DL Boost) support for Intel Xeon Scalable processo...
Definition: dnnl_types.h:2278
dnnl_status_t DNNL_API dnnl_post_ops_get_params_dw_k3s1p1(const_dnnl_post_ops_t post_ops, int index, dnnl_data_type_t *weights_data_type, dnnl_data_type_t *bias_data_type, dnnl_data_type_t *dst_data_type, dnnl_dim_t *count, int *mask, const float **scales)
Returns the parameters of an depthwise post-op with stride 1.
primitive_desc(int concat_dimension, const std::vector< memory::desc > &srcs, const engine &aengine, const primitive_attr &attr=primitive_attr())
Constructs a primitive descriptor for an out-of-place concatenation primitive.
Definition: dnnl.hpp:3539
Convolution backward propagation primitive.
Definition: dnnl.hpp:4034
int ndims
Number of dimensions.
Definition: dnnl_types.h:1142
@ dnnl_aBc8b
3D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:230
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:7306
T get(bool allow_empty=false) const
Returns the underlying C API handle.
Definition: dnnl.hpp:197
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:3124
primitive_desc()=default
Default constructor. Produces an empty object.
A descriptor of a Layer Normalization operation.
Definition: dnnl_types.h:1484
cpu_isa get_effective_cpu_isa()
Gets the maximal ISA the library can dispatch to on the CPU.
Definition: dnnl.hpp:10109
Primitive descriptor for a reorder primitive.
Definition: dnnl.hpp:3327
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:9527
Elementwise binary operator primitive.
Definition: dnnl.hpp:9553
Descriptor for an LRN backward propagation primitive.
Definition: dnnl.hpp:5287
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)
Constructs a descriptor for a deconvolution weights gradient primitive without bias.
Definition: dnnl.hpp:4987
memory::desc bias_desc() const
Returns the bias memory descriptor.
Definition: dnnl.hpp:4735
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.
Descriptor for an inner product backward propagation primitive.
Definition: dnnl.hpp:6993
@ dnnl_not_required
Queried element is not required for given primitive.
Definition: dnnl_types.h:53
@ dnnl_eltwise_clip
Eltwise: clip.
Definition: dnnl_types.h:882
primitive_desc()=default
Default constructor. Produces an empty object.
primitive_desc()=default
Default constructor. Produces an empty object.
stream_attr()=default
Constructs default (empty) stream attributes.
size_t DNNL_API dnnl_engine_get_count(dnnl_engine_kind_t kind)
Returns the number of engines of a particular kind.
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:9332
dnnl_status_t DNNL_API dnnl_engine_create(dnnl_engine_t *engine, dnnl_engine_kind_t kind, size_t index)
Creates an engine.
@ dnnl_eltwise_logistic_use_dst_for_bwd
Eltwise: logistic (dst for backward)
Definition: dnnl_types.h:898
oneDNN exception class.
Definition: dnnl.hpp:96
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:6664
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &src_desc, const memory::desc &dst_desc)
Constructs a descriptor for a resampling forward propagation primitive using source and destination m...
Definition: dnnl.hpp:9785
primitive_desc()=default
Default constructor. Produces an empty object.
primitive_desc()=default
Default constructor. Produces an empty object.
@ dnnl_pooling_avg_include_padding
Average pooling include padding.
Definition: dnnl_types.h:904
@ avx512_core_bf16
Intel AVX-512, Intel DL Boost and bfloat16 support for Intel Xeon Scalable processor family and Intel...
memory::desc variance_desc() const
Returns memory descriptor for variance.
Definition: dnnl.hpp:6670
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:8980
memory::data_type data_type() const
Returns the data type of the memory descriptor.
Definition: dnnl.hpp:2030
dnnl_status_t DNNL_API dnnl_set_jit_profiling_jitdumpdir(const char *dir)
Sets JIT dump output path.
desc(const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc)
Constructs a descriptor for a matmul primitive.
Definition: dnnl.hpp:9679
dnnl_dim_t dim
Integer type for representing dimension sizes and indices.
Definition: dnnl.hpp:1243
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const deconvolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4877
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a vanilla RNN forward propagation primitive from a C API primit...
Definition: dnnl.hpp:7553
primitive_desc(const memory::desc &dst, int concat_dimension, const std::vector< memory::desc > &srcs, const engine &aengine, const primitive_attr &attr=primitive_attr())
Constructs a primitive descriptor for an out-of-place concatenation primitive.
Definition: dnnl.hpp:3512
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:7207
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:8573
dnnl_status_t DNNL_API dnnl_primitive_desc_iterator_destroy(dnnl_primitive_desc_iterator_t iterator)
Destroys a primitive descriptor iterator.
Primitive descriptor for a deconvolution weights gradient primitive.
Definition: dnnl.hpp:5098
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a pooling forward propagation primitive.
Definition: dnnl.hpp:5473
@ dnnl_deconvolution
A deconvolution primitive.
Definition: dnnl_types.h:802
dnnl_status_t DNNL_API dnnl_inner_product_backward_data_desc_init(dnnl_inner_product_desc_t *ip_desc, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc)
Initializes descriptor for inner product backward propagation.
void get_output_scales(int &mask, std::vector< float > &scales) const
Returns output scaling factors correspondence mask and values.
Definition: dnnl.hpp:2734
@ dnnl_aBcde4b
5D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:300
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for an LRN forward propagation primitive.
Definition: dnnl.hpp:5249
dnnl_status_t DNNL_API dnnl_memory_map_data(const_dnnl_memory_t memory, void **mapped_ptr)
Maps a memory object and returns a host-side pointer to a memory buffer with a copy of its contents.
@ forward
Forward data propagation, alias for dnnl::prop_kind::forward_training.
@ eltwise_relu
Elementwise: rectified linear unit (ReLU)
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6815
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_backward_weights_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated deconvolution weights gradient primitive.
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:8621
Pooling backward propagation primitive.
Definition: dnnl.hpp:5509
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:4895
@ dnnl_stream_out_of_order
Out-of-order execution.
Definition: dnnl_types.h:2169
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6972
@ resampling_linear
Linear (Bilinear, Trilinear) resampling method.
A base class for descriptors of all primitives that have an operation descriptor and that support ite...
Definition: dnnl.hpp:3680
lstm_backward(const primitive_desc &pd)
Constructs an LSTM backward propagation primitive.
Definition: dnnl.hpp:8647
@ use_global_stats
Use global statistics.
dnnl_status_t DNNL_API dnnl_batch_normalization_backward_desc_init(dnnl_batch_normalization_desc_t *bnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, float epsilon, unsigned flags)
Initializes a descriptor for a batch normalization backward propagation primitive.
dnnl_status_t DNNL_API dnnl_lbr_gru_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, unsigned flags)
Initializes a descriptor for LBR GRU forward propagation primitive.
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:9630
void reset(T t, bool weak=false)
Resets the handle wrapper objects to wrap a new C API handle.
Definition: dnnl.hpp:188
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5932
primitive_desc(const desc &adesc, const engine &aengine, const inner_product_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an inner product weights update primitive.
Definition: dnnl.hpp:7161
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:9355
memory::desc diff_weights_projection_desc() const
Returns diff weights projection memory descriptor.
Definition: dnnl.hpp:7365
@ dnnl_convolution
A convolution primitive.
Definition: dnnl_types.h:800
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:7810
flags
Stream flags. Can be combined using the bitwise OR operator.
Definition: dnnl.hpp:1090
memory::desc diff_src_iter_c_desc() const
Returns diff source recurrent cell state memory descriptor.
Definition: dnnl.hpp:7340
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:6520
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an LSTM backward propagation primitive from a C API primitive d...
Definition: dnnl.hpp:8527
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a pooling backward propagation primitive from a C API primitive...
Definition: dnnl.hpp:5602
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.
desc(const memory::desc &diff_data_desc, int axis, int group_size)
Constructs a descriptor for a shuffle backward propagation primitive.
Definition: dnnl.hpp:9482
dnnl_status_t DNNL_API dnnl_inner_product_backward_weights_desc_init(dnnl_inner_product_desc_t *ip_desc, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc)
Initializes descriptor for inner product weights gradient primitive.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:5374
desc()=default
Default constructor. Produces an empty object.
resampling_backward()=default
Default constructor. Produces an empty object.
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:5829
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:6830
@ bidirectional_sum
Bidirectional execution of RNN primitive with summation of the results.
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)
Constructs a descriptor for a dilated deconvolution weights gradient primitive with bias.
Definition: dnnl.hpp:5031
An opaque structure for primitive descriptor attributes.
dnnl_status_t DNNL_API dnnl_set_primitive_cache_capacity(int capacity)
Sets a number of primitives that can be held in the primitive cache at a time.
memory::desc diff_bias_desc() const
Returns the diff bias memory descriptor.
Definition: dnnl.hpp:7210
@ deconvolution_winograd
Winograd deconvolution.
@ unidirectional_right2left
Unidirectional execution of RNN primitive from right to left.
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)
Constructs a descriptor for a dilated deconvolution forward propagation primitive with bias.
Definition: dnnl.hpp:4610
@ dnnl_lrn
An LRN primitive.
Definition: dnnl_types.h:810
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:7805
dnnl_status_t DNNL_API dnnl_primitive_attr_get_scales(dnnl_primitive_attr_t attr, int arg, dnnl_dim_t *count, int *mask, const float **scales)
Returns primitive attributes scaling factors correspondence mask and values for a given memory argume...
@ eltwise_exp
Elementwise: exponent.
@ dnnl_query_src_md
source memory desc
Definition: dnnl_types.h:2140
dnnl_status_t DNNL_API dnnl_primitive_attr_set_rnn_data_qparams(dnnl_primitive_attr_t attr, const float scale, const float shift)
Set quantization scale and shift parameters for RNN data tensors.
rnn_primitive_desc_base()=default
Default constructor. Produces an empty object.
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)
Constructs a descriptor for dilated convolution backward propagation primitive.
Definition: dnnl.hpp:4108
@ convolution
A convolution primitive.
dnnl_status_t DNNL_API dnnl_primitive_attr_get_post_ops(const_dnnl_primitive_attr_t attr, const_dnnl_post_ops_t *post_ops)
Returns primitive attributes post-ops.
void get_params_sum(int index, float &scale, memory::data_type &data_type) const
Returns the parameters of an accumulation (sum) post-op.
Definition: dnnl.hpp:2465
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:9350
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:8975
memory::desc diff_dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6240
primitive_attr(dnnl_primitive_attr_t attr)
Creates primitive attributes from a C API dnnl_primitive_attr_t handle.
Definition: dnnl.hpp:2704
pooling_backward(const primitive_desc &pd)
Constructs a pooling backward propagation primitive.
Definition: dnnl.hpp:5622
Descriptor for a shuffle forward propagation primitive.
Definition: dnnl.hpp:9397
void execute(const stream &astream, memory &src, memory &dst) const
Executes the reorder primitive.
Definition: dnnl.hpp:3444
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:9453
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:3565
dnnl_scratchpad_mode_t
Scratchpad mode.
Definition: dnnl_types.h:1791
@ eltwise_pow
Elementwise: pow.
Primitive attributes.
Definition: dnnl.hpp:2688
softmax_forward(const primitive_desc &pd)
Constructs a softmax forward propagation primitive.
Definition: dnnl.hpp:5941
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:9335
primitive_desc()=default
Default constructor. Produces an empty object.
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const inner_product_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an inner product weights update primitive.
Definition: dnnl.hpp:7181
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6975
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:9311
dnnl_status_t DNNL_API dnnl_stream_attr_destroy(dnnl_stream_attr_t attr)
Destroys execution stream attributes.
@ dnnl_data_type_undef
Undefined data type, used for empty memory descriptors.
Definition: dnnl_types.h:64
shuffle_backward(const primitive_desc &pd)
Constructs a shuffle backward propagation primitive.
Definition: dnnl.hpp:9539
Primitive descriptor for an inner product backward propagation primitive.
Definition: dnnl.hpp:7019
dnnl_status_t DNNL_API dnnl_get_primitive_cache_capacity(int *capacity)
Returns the number of primitives that can be held in the primitive cache at the same time.
@ dnnl_query_engine
execution engine
Definition: dnnl_types.h:2096
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_backward_data_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated deconvolution backward propagation primitive.
#define DNNL_ARG_DIFF_SRC_LAYER
A special mnemonic for gradient (diff) of RNN input vector.
Definition: dnnl_types.h:1967
@ dnnl_query_softmax_d
softmax descriptor
Definition: dnnl_types.h:2125
A descriptor of resampling operation.
Definition: dnnl_types.h:1707
@ dnnl_invalid_arguments
The operation failed because of incorrect function arguments.
Definition: dnnl_types.h:45
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:9152
Descriptor for a convolution backward propagation primitive.
Definition: dnnl.hpp:4037
primitive_desc()=default
Default constructor. Produces an empty object.
@ dnnl_eltwise_elu_use_dst_for_bwd
Eltwise: exponential linear unit (elu) (dst for backward)
Definition: dnnl_types.h:894
Descriptor for a shuffle primitive backward propagation primitive.
Definition: dnnl.hpp:9472
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5929
@ softmax_d
softmax descriptor
@ dnnl_cpu
CPU engine.
Definition: dnnl_types.h:1741
Memory object.
Definition: dnnl.hpp:1241
dnnl_status_t DNNL_API dnnl_engine_get_ocl_context(dnnl_engine_t engine, cl_context *context)
Returns the OpenCL context associated with an engine.
An opaque structure for a chain of post operations.
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:7388
void get_scales(int arg, int &mask, std::vector< float > &scales) const
Returns scaling factors correspondence mask and values for a given memory argument.
Definition: dnnl.hpp:2808
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)
Constructs a descriptor for a deconvolution weights gradient primitive with bias.
Definition: dnnl.hpp:4945
@ dnnl_query_undef
no query
Definition: dnnl_types.h:2094
@ undef
Undefined RNN flags.
eltwise_forward()=default
Default constructor. Produces an empty object.
@ dnnl_eltwise_swish
Eltwise: swish.
Definition: dnnl_types.h:878
static void wrap_c_api(dnnl_status_t status, const char *message)
A convenience function for wrapping calls to C API functions.
Definition: dnnl.hpp:115
eltwise_backward(const primitive_desc &pd)
Constructs an eltwise backward propagation primitive.
Definition: dnnl.hpp:5841
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for an elementwise binary operator primitive.
Definition: dnnl.hpp:9608
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a GRU forward propagation primitive.
Definition: dnnl.hpp:8739
memory::desc diff_weights_desc(int idx) const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:3113
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:8568
@ undef
Undefined propagation kind.
inner_product_forward()=default
Default constructor. Produces an empty object.
memory::desc variance_desc() const
Returns memory descriptor for variance.
Definition: dnnl.hpp:6515
dnnl_status_t DNNL_API dnnl_dilated_convolution_backward_weights_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *diff_weights_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated convolution weights gradient primitive.
@ eltwise_linear
Elementwise: linear.
primitive(const_dnnl_primitive_desc_t c_pd)
Constructs a primitive from a C API primitive descriptor.
status set_verbose(int level)
Configures verbose output to stdout.
Definition: dnnl.hpp:10054
#define DNNL_ARG_DIFF_SRC_ITER_C
A special mnemonic for gradient (diff) of RNN input recurrent cell state vector.
Definition: dnnl_types.h:1979
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6358
Primitive descriptor for an inner product forward propagation primitive.
Definition: dnnl.hpp:6922
oneDNN C API handle wrapper class.
Definition: dnnl.hpp:148
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)
Constructs a descriptor for an LRN backward propagation primitive.
Definition: dnnl.hpp:5302
pooling_backward()=default
Default constructor. Produces an empty object.
primitive_desc(const desc &adesc, const engine &aengine, const primitive_attr &attr=primitive_attr(), bool allow_empty=false)
Constructs a primitive descriptor for a shuffle forward propagation primitive.
Definition: dnnl.hpp:9435
memory::desc diff_weights_peephole_desc() const
Returns diff weights peephole memory descriptor.
Definition: dnnl.hpp:8611
memory::desc src_desc(int idx) const
Returns a source memory descriptor.
Definition: dnnl.hpp:3068
Abstract threadpool interface.
Definition: dnnl_threadpool_iface.hpp:41
@ convolution_auto
Convolution algorithm that is chosen to be either direct or Winograd automatically.
dnnl_status_t DNNL_API dnnl_primitive_destroy(dnnl_primitive_t primitive)
Destroys a primitive.
primitive_desc(const memory::desc &dst, const std::vector< float > &scales, const std::vector< memory::desc > &srcs, const engine &aengine, const primitive_attr &attr=primitive_attr())
Constructs a primitive descriptor for a sum primitive.
Definition: dnnl.hpp:3603
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:8096
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an inner product weights update primitive from a C API primitiv...
Definition: dnnl.hpp:7194
Descriptor for a batch normalization forward propagation primitive.
Definition: dnnl.hpp:6277
cl::sycl::context DNNL_API get_sycl_context() const
Returns the underlying SYCL context object.
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a binary primitive from a C API primitive descriptor that must ...
Definition: dnnl.hpp:9617
dnnl_status_t DNNL_API dnnl_memory_create(dnnl_memory_t *memory, const dnnl_memory_desc_t *memory_desc, dnnl_engine_t engine, void *handle)
Creates a memory object.
@ dnnl_eltwise_gelu_erf
Eltwise: erf-based gelu.
Definition: dnnl_types.h:886
dnnl_status_t DNNL_API dnnl_pooling_forward_desc_init(dnnl_pooling_desc_t *pool_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t kernel, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for pooling forward propagation primitive.
dnnl_status_t DNNL_API dnnl_logsoftmax_backward_desc_init(dnnl_logsoftmax_desc_t *logsoftmax_desc, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, int logsoftmax_axis)
Initializes a descriptor for logsoftmax backward propagation primitive.
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:7759
inner_product_backward_data()=default
Default constructor. Produces an empty object.
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:9314
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)
Constructs a descriptor for a dilated deconvolution weights gradient primitive without bias.
Definition: dnnl.hpp:5077
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:7254
convolution_backward_data(const primitive_desc &pd)
Constructs a convolution backward propagation primitive.
Definition: dnnl.hpp:4199
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const resampling_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a resampling backward propagation primitive.
Definition: dnnl.hpp:9989
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:6501
dnnl_status_t DNNL_API dnnl_shuffle_forward_desc_init(dnnl_shuffle_desc_t *shuffle_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, int axis, dnnl_dim_t group_size)
Initializes a descriptor for shuffle forward propagation primitive.
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a deconvolution forward propagation primitive.
Definition: dnnl.hpp:4709
LBR GRU forward propagation primitive.
Definition: dnnl.hpp:9015
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:10010
batch_normalization_backward(const primitive_desc &pd)
Constructs a batch normalization backward propagation primitive.
Definition: dnnl.hpp:6529
Memory descriptor.
Definition: dnnl_types.h:1140
@ dnnl_backward_bias
Backward bias propagation.
Definition: dnnl_types.h:783
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:7572
memory::desc src_iter_c_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8091
@ dnnl_matmul
A matrix multiplication primitive.
Definition: dnnl_types.h:826
memory::desc weights_projection_desc() const
Returns weights projection memory descriptor.
Definition: dnnl.hpp:7292
void set_output_scales(int mask, const std::vector< float > &scales)
Sets output scaling factors correspondence mask and values.
Definition: dnnl.hpp:2790
convolution_backward_weights(const primitive_desc &pd)
Constructs a convolution weights gradient primitive.
Definition: dnnl.hpp:4469
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const softmax_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a softmax backward propagation primitive.
Definition: dnnl.hpp:6008
logsoftmax_forward(const primitive_desc &pd)
Constructs a logsoftmax forward propagation primitive.
Definition: dnnl.hpp:6145
bool operator!=(const handle &other) const
Inequality operator.
Definition: dnnl.hpp:232
memory::desc bias_desc() const
Returns the bias memory descriptor.
Definition: dnnl.hpp:4021
desc(prop_kind aprop_kind, const memory::desc &data_desc, int logsoftmax_axis)
Constructs a descriptor for a logsoftmax forward propagation primitive.
Definition: dnnl.hpp:6071
dnnl_cpu_isa_t
CPU instruction set flags.
Definition: dnnl_types.h:2250
#define DNNL_ARG_SRC_ITER
A special mnemonic for RNN input recurrent hidden state vector.
Definition: dnnl_types.h:1885
memory::desc bias_desc() const
Returns the bias memory descriptor.
Definition: dnnl.hpp:6978
bool operator!=(const desc &other) const
An inequality operator.
Definition: dnnl.hpp:2057
Descriptor for a pooling backward propagation primitive.
Definition: dnnl.hpp:5511
Primitive descriptor for a shuffle forward propagation primitive.
Definition: dnnl.hpp:9420
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)
Constructs a descriptor for a convolution weights gradient primitive without bias.
Definition: dnnl.hpp:4278
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)
Constructs a descriptor for a convolution weights gradient primitive with bias.
Definition: dnnl.hpp:4235
batch_normalization_forward()=default
Default constructor. Produces an empty object.
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const inner_product_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an inner product backward propagation primitive.
Definition: dnnl.hpp:7056
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:4732
Descriptor for a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7444
dnnl_status_t DNNL_API dnnl_lrn_forward_desc_init(dnnl_lrn_desc_t *lrn_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *data_desc, dnnl_dim_t local_size, float alpha, float beta, float k)
Initializes a descriptor for LRN forward propagation primitive.
dnnl_binary_desc_t data
Underlying C operation descriptor.
Definition: dnnl.hpp:9557
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a GRU forward propagation primitive.
Definition: dnnl.hpp:8724
@ dnnl_nChw4c
4D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcd4b
Definition: dnnl_types.h:547
@ scratchpad_engine
scratchpad engine
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:8586
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:9324
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:7199
dnnl_status_t DNNL_API dnnl_engine_destroy(dnnl_engine_t engine)
Destroys an engine.
void reset_with_clone(const_dnnl_primitive_desc_t pd)
Resets the value of the handle to a clone of a C API primitive descriptor.
Definition: dnnl.hpp:3211
@ dnnl_bacd
permuted 4D tensor
Definition: dnnl_types.h:195
@ dnnl_format_kind_any
Unspecified format kind.
Definition: dnnl_types.h:85
int DNNL_API dnnl_post_ops_len(const_dnnl_post_ops_t post_ops)
Returns the length of post-ops.
Primitive descriptor for a layer normalization backward propagation primitive.
Definition: dnnl.hpp:6758
memory::desc scratchpad_desc() const
Returns the scratchpad memory descriptor.
Definition: dnnl.hpp:3169
dnnl_status_t DNNL_API dnnl_batch_normalization_forward_desc_init(dnnl_batch_normalization_desc_t *bnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, float epsilon, unsigned flags)
Initializes a descriptor for a batch normalization forward propagation primitive.
@ dnnl_nChw16c
4D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcd16b
Definition: dnnl_types.h:544
Primitive descriptor for a shuffle backward propagation primitive.
Definition: dnnl.hpp:9491
dnnl_status_t DNNL_API dnnl_shuffle_backward_desc_init(dnnl_shuffle_desc_t *shuffle_desc, const dnnl_memory_desc_t *diff_data_desc, int axis, dnnl_dim_t group_size)
Initializes a descriptor for shuffle backward propagation primitive.
Primitive descriptor for a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4840
void get_params_sum(int index, float &scale) const
Returns the parameters of an accumulation (sum) post-op.
Definition: dnnl.hpp:2455
@ dnnl_query_eltwise_d
eltwise descriptor
Definition: dnnl_types.h:2124
handle< T, traits > & operator=(const handle< T, traits > &)=default
Assignment operator.
memory::desc diff_bias_desc() const
Returns the diff bias memory descriptor.
Definition: dnnl.hpp:4458
@ pooling_max
Max pooling.
engine(kind akind, size_t index)
Constructs an engine.
Definition: dnnl.hpp:898
Descriptor for an elementwise binary operator primitive.
Definition: dnnl.hpp:9555
Descriptor for a deconvolution weights gradient primitive.
Definition: dnnl.hpp:4916
@ dnnl_binary_max
Binary max.
Definition: dnnl_types.h:932
memory::desc src_desc(int idx=0) const
Returns a source memory descriptor.
Definition: dnnl.hpp:3562
@ dnnl_cba
permuted 3D tensor
Definition: dnnl_types.h:200
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:7300
dnnl_status_t DNNL_API dnnl_lrn_backward_desc_init(dnnl_lrn_desc_t *lrn_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, dnnl_dim_t local_size, float alpha, float beta, float k)
Initializes a descriptor for LRN backward propagation primitive.
A class that provides the destructor for a oneDNN C API handle.
Definition: dnnl.hpp:132
memory::desc weights_desc(int idx) const
Returns a weights memory descriptor.
Definition: dnnl.hpp:3086
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:9340
@ dnnl_query_num_of_inputs_s32
number of inputs expected
Definition: dnnl_types.h:2099
@ invalid_arguments
The operation failed because of incorrect function arguments.
std::vector< dim > dims
Vector of dimensions.
Definition: dnnl.hpp:1246
Primitive descriptor for a softmax backward propagation primitive.
Definition: dnnl.hpp:5971
Deconvolution backward propagation primitive.
Definition: dnnl.hpp:4748
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:6364
@ dnnl_acbde
permuted 5D tensor
Definition: dnnl_types.h:189
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:8626
dnnl_status_t DNNL_API dnnl_post_ops_get_params_sum(const_dnnl_post_ops_t post_ops, int index, float *scale)
Returns the parameters of an accumulation (sum) post-op.
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a softmax forward propagation primitive.
Definition: dnnl.hpp:5912
dnnl_status_t DNNL_API dnnl_primitive_attr_set_scratchpad_mode(dnnl_primitive_attr_t attr, dnnl_scratchpad_mode_t mode)
Sets primitive attributes scratchpad mode.
const post_ops get_post_ops() const
Returns post-ops previously set via set_post_ops().
Definition: dnnl.hpp:2901
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:7559
@ dnnl_dcab
permuted 4D tensor
Definition: dnnl_types.h:202
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for an inner product forward propagation primitive.
Definition: dnnl.hpp:6936
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:8777
A memory descriptor.
Definition: dnnl.hpp:1823
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:4012
Base class for all computational primitives.
Definition: dnnl.hpp:281
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for an LSTM forward propagation primitive.
Definition: dnnl.hpp:8051
dnnl_alg_kind_t
Kinds of algorithms.
Definition: dnnl_types.h:836
@ dnnl_deconvolution_winograd
Winograd deconvolution.
Definition: dnnl_types.h:847
const void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition: dnnl_types.h:1212
@ dnnl_cpu_isa_avx512_mic
Intel Advanced Vector Extensions 512 (Intel AVX-512) subset for Intel Xeon Phi processors x200 Series...
Definition: dnnl_types.h:2265
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6821
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a pooling forward propagation primitive.
Definition: dnnl.hpp:5458
batch_normalization_backward()=default
Default constructor. Produces an empty object.
dnnl_status_t DNNL_API dnnl_memory_desc_init_by_strides(dnnl_memory_desc_t *memory_desc, int ndims, const dnnl_dims_t dims, dnnl_data_type_t data_type, const dnnl_dims_t strides)
Initializes a memory descriptor using dimensions and strides.
@ dnnl_success
The operation was successful.
Definition: dnnl_types.h:41
engine get_engine() const
Returns the associated engine.
Definition: dnnl.hpp:2147
format_kind
Memory format kind.
Definition: dnnl.hpp:1279
@ dnnl_eltwise_exp
Eltwise: exponent.
Definition: dnnl_types.h:869
@ dnnl_abcdef
plain 6D tensor
Definition: dnnl_types.h:182
convolution_forward(const primitive_desc &pd)
Constructs a convolution forward propagation primitive.
Definition: dnnl.hpp:4030
bool operator==(const desc &other) const
An equality operator.
Definition: dnnl.hpp:2049
Shuffle forward propagation primitive.
Definition: dnnl.hpp:9395
@ logsoftmax_d
logsoftmax descriptor
lbr_gru_forward(const primitive_desc &pd)
Constructs an LBR GRU forward propagation primitive.
Definition: dnnl.hpp:9163
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a resampling forward propagation primitive.
Definition: dnnl.hpp:9876
dnnl_status_t DNNL_API dnnl_primitive_attr_set_zero_points(dnnl_primitive_attr_t attr, int arg, dnnl_dim_t count, int mask, const int32_t *zero_points)
Sets primitive attributes zero points for primitive operations for a given memory argument.
matmul()=default
Default constructor. Produces an empty object.
lbr_gru_forward()=default
Default constructor. Produces an empty object.
@ dnnl_aBCdef2b4c2b
6D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:347
dnnl_status_t DNNL_API dnnl_lstm_forward_desc_init_v3(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 *weights_peephole_desc, const dnnl_memory_desc_t *weights_projection_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, unsigned flags)
Initializes a descriptor for an LSTM (with or without peephole and with or without recurrent projecti...
dnnl_status_t DNNL_API dnnl_primitive_create(dnnl_primitive_t *primitive, const_dnnl_primitive_desc_t primitive_desc)
Creates a primitive.
primitive_desc()=default
Default constructor. Produces an empty object.
Descriptor for a convolution forward propagation primitive.
Definition: dnnl.hpp:3764
desc(const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &dst_desc)
Constructs a descriptor for a matmul primitive.
Definition: dnnl.hpp:9665
bool is_zero() const
Checks whether the memory descriptor is zero (empty).
Definition: dnnl.hpp:2043
@ dnnl_bidirectional_sum
Bidirectional execution of RNN primitive with summation of the results.
Definition: dnnl_types.h:1571
lstm_forward(const primitive_desc &pd)
Constructs an LSTM forward propagation primitive.
Definition: dnnl.hpp:8143
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:8606
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:8116
@ dnnl_eltwise_linear
Eltwise: linear.
Definition: dnnl_types.h:861
@ dnnl_nCw16c
3D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBc16b
Definition: dnnl_types.h:556
oneDNN namespace
Definition: dnnl.hpp:86
@ dnnl_vanilla_gru
GRU cell.
Definition: dnnl_types.h:918
@ logsoftmax
A logsoftmax primitive.
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:9141
@ shuffle_d
shuffle descriptor
@ dnnl_abc
plain 3D tensor
Definition: dnnl_types.h:179
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:9731
Descriptor for a convolution weights gradient primitive.
Definition: dnnl.hpp:4205
@ impl_info_str
implementation name
Descriptor for a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4750
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:9144
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for an elementwise forward propagation primitive.
Definition: dnnl.hpp:5709
A descriptor of a binary operation.
Definition: dnnl_types.h:1659
pooling_forward()=default
Default constructor. Produces an empty object.
@ eltwise_relu_use_dst_for_bwd
Elementwise: rectified linar unit (ReLU) (dst for backward)
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:9319
engine get_dst_engine() const
Returns the engine on which the destination memory is allocated.
Definition: dnnl.hpp:3407
@ batch_normalization
A batch normalization primitive.
dnnl_status_t DNNL_API dnnl_primitive_attr_clone(dnnl_primitive_attr_t *attr, const_dnnl_primitive_attr_t existing_attr)
Clones primitive attributes.
primitive_desc(const desc &adesc, const engine &aengine, const vanilla_rnn_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a vanilla RNN backward propagation primitive.
Definition: dnnl.hpp:7713
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const pooling_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a pooling backward propagation primitive.
Definition: dnnl.hpp:5589
primitive_desc()=default
Default constructor. Produces an empty object.
void * get_data_handle() const
Returns the underlying memory buffer.
Definition: dnnl.hpp:2158
@ dnnl_convolution_direct
Direct convolution.
Definition: dnnl_types.h:839
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a convolution forward propagation primitive.
Definition: dnnl.hpp:3976
dnnl_primitive_kind_t DNNL_API dnnl_post_ops_get_kind(const_dnnl_post_ops_t post_ops, int index)
Returns the kind of a post-op entry.
sum(const primitive_desc &pd)
Constructs a sum primitive.
Definition: dnnl.hpp:3670
concat(const primitive_desc &pd)
Constructs a concatenation primitive.
Definition: dnnl.hpp:3573
@ dnnl_query_diff_src_md
source gradient memory desc
Definition: dnnl_types.h:2141
void get_params_eltwise(int index, float &scale, algorithm &aalgorithm, float &alpha, float &beta) const
Returns parameters of an elementwise post-up.
Definition: dnnl.hpp:2501
@ eltwise_gelu
Elementwise: gelu alias for dnnl::algorithm::eltwise_gelu_tanh.
Vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7442
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:9306
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a LBR GRU forward propagation primitive.
Definition: dnnl.hpp:9106
@ eltwise_square
Elementwise: square.
cl_command_queue get_ocl_command_queue() const
Returns the underlying OpenCL queue object.
Definition: dnnl.hpp:1136
vanilla_rnn_backward(const primitive_desc &pd)
Constructs a vanilla RNN backward propagation primitive.
Definition: dnnl.hpp:7826
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:9530
desc(prop_kind aprop_kind, algorithm aalgorithm, const memory::desc &data_desc, float alpha=0, float beta=0)
Constructs a descriptor for an elementwise forward propagation primitive.
Definition: dnnl.hpp:5666
deconvolution_forward(const primitive_desc &pd)
Constructs a deconvolution forward propagation primitive.
Definition: dnnl.hpp:4744
const version_t * version()
Returns library version information.
Definition: dnnl.hpp:10059
@ dnnl_forward_scoring
Forward data propagation (alias for dnnl_forward_inference).
Definition: dnnl_types.h:773
binary()=default
Default constructor. Produces an empty object.
@ dnnl_aBcde8b
5D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:315
reorder(const primitive_desc &pd)
Constructs a reorder primitive.
Definition: dnnl.hpp:3423
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an inner product forward propagation primitive from a C API pri...
Definition: dnnl.hpp:6963
desc(const dims &adims, data_type adata_type, format_tag aformat_tag, bool allow_empty=false)
Constructs a memory descriptor.
Definition: dnnl.hpp:1847
desc(const memory::desc &diff_src_desc, const memory::desc &weights_desc, const memory::desc &diff_dst_desc)
Constructs a descriptor for an inner product backward propagation primitive.
Definition: dnnl.hpp:7006
dnnl_status_t DNNL_API dnnl_deconvolution_forward_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a deconvolution forward propagation primitive.
primitive::kind kind(int index) const
Returns the primitive kind of post-op at entry with a certain index.
Definition: dnnl.hpp:2403
primitive_desc(const_dnnl_op_desc_t desc, const primitive_attr *attr, const engine &aengine, const_dnnl_primitive_desc_t hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor.
Definition: dnnl.hpp:3707
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:9128
algorithm
Kinds of algorithms.
Definition: dnnl.hpp:496
Primitive descriptor for a convolution backward propagation primitive.
Definition: dnnl.hpp:4129
memory::desc dst_iter_c_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8576
@ dnnl_prop_kind_undef
Undefined propagation type.
Definition: dnnl_types.h:764
dnnl_status_t DNNL_API dnnl_resampling_forward_desc_init(dnnl_resampling_desc_t *resampling_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const float *factors, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *dst_desc)
Initializes a descriptor for a resampling forward propagation primitive.
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)
Constructs a descriptor for layer normalization backward propagation primitive.
Definition: dnnl.hpp:6720
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6495
primitive_desc()=default
Default constructor. Produces an empty object.
kind get_kind() const
Returns the kind of the primitive.
Definition: dnnl.hpp:401
dnnl_status_t DNNL_API dnnl_matmul_desc_init(dnnl_matmul_desc_t *matmul_desc, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc)
Initializes a matrix multiplication descriptor.
memory::desc diff_bias_desc() const
Returns the diff bias memory descriptor.
Definition: dnnl.hpp:5164
@ dnnl_blocked
A tensor in a generic format described by the stride and blocking values in each dimension.
Definition: dnnl_types.h:89
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a softmax forward propagation primitive.
Definition: dnnl.hpp:5896
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 &weights_peephole_desc, const memory::desc &bias_desc, const memory::desc &dst_layer_desc, const memory::desc &dst_iter_desc, const memory::desc &dst_iter_c_desc, rnn_flags flags=rnn_flags::undef)
Constructs a descriptor for an LSTM (with or without peephole) forward propagation primitive.
Definition: dnnl.hpp:7951
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:9345
dnnl_status_t DNNL_API dnnl_memory_desc_init_by_tag(dnnl_memory_desc_t *memory_desc, int ndims, const dnnl_dims_t dims, dnnl_data_type_t data_type, dnnl_format_tag_t tag)
Initializes a memory descriptor using dimensions and memory format tag.
@ dnnl_query_primitive_kind
primitive kind
Definition: dnnl_types.h:2097
@ dnnl_unidirectional_left2right
Unidirectional execution of RNN primitive from left to right.
Definition: dnnl_types.h:1563
@ time_estimate_f64
runtime estimation (seconds), unimplemented
dnnl_primitive_desc_t DNNL_API dnnl_primitive_desc_iterator_fetch(const_dnnl_primitive_desc_iterator_t iterator)
Fetches the current primitive descriptor from a primitive descriptor iterator.
Descriptor for a pooling forward propagation primitive.
Definition: dnnl.hpp:5399
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for reorder primitive from a C API primitive descriptor which must ...
Definition: dnnl.hpp:3396
Primitive descriptor for eltwise backward propagation.
Definition: dnnl.hpp:5771
Descriptor for a logsoftmax forward propagation primitive.
Definition: dnnl.hpp:6057
@ dnnl_eltwise_elu
Eltwise: exponential linear unit (elu)
Definition: dnnl_types.h:853
memory::desc src0_desc() const
Returns the memory descriptor for source #0.
Definition: dnnl.hpp:9624
@ in_order
In-order execution.
T * map_data() const
Maps a memory object and returns a host-side pointer to a memory buffer with a copy of its contents.
Definition: dnnl.hpp:2234
@ avx512_mic_4ops
Intel AVX-512 subset for Intel Xeon Phi processors 7235, 7285, 7295 Series.
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:4190
@ out_of_memory
The operation failed due to an out-of-memory condition.
threadpool_iface * get_threadpool()
Returns the threadpool attribute.
Definition: dnnl.hpp:1076
primitive_desc()=default
Default constructor. Produces an empty object.
@ eltwise_logistic_use_dst_for_bwd
Elementwise: logistic (dst for backward)
batch_normalization_forward(const primitive_desc &pd)
Constructs a batch normalization forward propagation primitive.
Definition: dnnl.hpp:6400
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:8591
primitive_desc()=default
Default constructor. Produces an empty object.
shuffle_forward(const primitive_desc &pd)
Constructs a shuffle forward propagation primitive.
Definition: dnnl.hpp:9465
dnnl_status_t DNNL_API dnnl_dilated_convolution_backward_data_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated convolution backward propagation primitive.
memory::desc src_desc(int idx=0) const
Returns a source memory descriptor.
Definition: dnnl.hpp:3659
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const vanilla_rnn_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a vanilla RNN backward propagation primitive.
Definition: dnnl.hpp:7733
dnnl_status_t DNNL_API dnnl_layer_normalization_forward_desc_init(dnnl_layer_normalization_desc_t *lnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, const dnnl_memory_desc_t *stat_desc, float epsilon, unsigned flags)
Initializes a descriptor for layer normalization forward propagation primitive.
@ dnnl_nCw4c
3D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBc4b
Definition: dnnl_types.h:559
scratchpad_mode get_scratchpad_mode() const
Returns the scratchpad mode.
Definition: dnnl.hpp:2708
dnnl_status_t DNNL_API dnnl_primitive_attr_set_rnn_weights_qparams(dnnl_primitive_attr_t attr, dnnl_dim_t count, int mask, const float *scales)
Sets quantization scaling factors for RNN weights tensors.
@ dnnl_aBcde32b
5D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:298
dnnl_status_t DNNL_API dnnl_primitive_attr_set_post_ops(dnnl_primitive_attr_t attr, const_dnnl_post_ops_t post_ops)
Sets primitive attributes post-ops.
desc()
Constructs a zero (empty) memory descriptor.
Definition: dnnl.hpp:1830
@ out_of_order
Out-of-order execution.
convolution_backward_weights()=default
Default constructor. Produces an empty object.
dnnl_status_t DNNL_API dnnl_primitive_desc_destroy(dnnl_primitive_desc_t primitive_desc)
Destroys a primitive descriptor.
void append_eltwise(float scale, algorithm aalgorithm, float alpha, float beta)
Appends an elementwise post-op.
Definition: dnnl.hpp:2487
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7542
@ dnnl_vanilla_lstm
LSTM cell.
Definition: dnnl_types.h:916
@ dnnl_any_engine
An unspecified engine.
Definition: dnnl_types.h:1739
lrn_backward()=default
Default constructor. Produces an empty object.
Base class for primitive descriptors for RNN primitives.
Definition: dnnl.hpp:7235
primitive_attr()
Constructs default (empty) primitive attributes.
Definition: dnnl.hpp:2692
@ dnnl_nCdhw4c
5D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcde4b
Definition: dnnl_types.h:535
Primitive descriptor for an LRN backward propagation primitive.
Definition: dnnl.hpp:5315
@ dnnl_resampling
A resampling primitive.
Definition: dnnl_types.h:828
LSTM forward propagation primitive.
Definition: dnnl.hpp:7830
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an inner product backward propagation primitive from a C API pr...
Definition: dnnl.hpp:7069
primitive_desc_base(dnnl_primitive_desc_t pd, dnnl::primitive::kind prim_kind)
Constructs a primitive descriptor base object from a clone of a C API primitive descriptor after veri...
Definition: dnnl.hpp:3231
@ matmul_d
matmul descriptor
@ dnnl_cpu_isa_avx
Intel Advanced Vector Extensions (Intel AVX)
Definition: dnnl_types.h:2258
@ dnnl_bca
permuted 3D tensor
Definition: dnnl_types.h:197
engine get_engine() const
Returns the engine of the primitive descriptor.
Definition: dnnl.hpp:3011
@ diff_weights_md
weights gradient (diff) memory desc
@ op_d
operation descriptor
dnnl_prop_kind_t
Kinds of propagation.
Definition: dnnl_types.h:761
@ eltwise_exp_use_dst_for_bwd
Elementwise: exponent (dst for backward)
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:8936
const char * impl_info_str() const
Returns implementation name.
Definition: dnnl.hpp:3015
@ dnnl_query_scratchpad_md
scratchpad memory desc
Definition: dnnl_types.h:2147
@ forward_scoring
Forward data propagation, alias for dnnl::prop_kind::forward_inference.
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)
Constructs a descriptor for a deconvolution forward propagation primitive with bias.
Definition: dnnl.hpp:4517
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:8101
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6361
memory::desc query_md(query what, int idx=0) const
Returns a memory descriptor.
Definition: dnnl.hpp:3048
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for an elementwise forward propagation primitive.
Definition: dnnl.hpp:5693
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:6507
desc(prop_kind aprop_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, float epsilon, normalization_flags flags)
Constructs a batch normalization descriptor for backward propagation.
Definition: dnnl.hpp:6421
dnnl_status_t DNNL_API dnnl_dilated_convolution_forward_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated convolution forward propagation primitive.
@ eltwise_elu_use_dst_for_bwd
Elementwise: exponential linear unit (ELU) (dst for backward)
@ dnnl_eltwise_gelu
Eltwise: tanh-based gelu (alias for dnnl_eltwise_gelu_tanh)
Definition: dnnl_types.h:876
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:4729
dnnl_status_t DNNL_API dnnl_primitive_attr_get_output_scales(const_dnnl_primitive_attr_t attr, dnnl_dim_t *count, int *mask, const float **scales)
Returns primitive attributes output scaling factors correspondence mask and values.
@ dnnl_query_weights_md
weights memory descriptor desc
Definition: dnnl_types.h:2142
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:6843
@ backward_data
Backward data propagation.
primitive_desc(const std::vector< float > &scales, const std::vector< memory::desc > &srcs, const engine &aengine, const primitive_attr &attr=primitive_attr())
Constructs a primitive descriptor for a sum primitive.
Definition: dnnl.hpp:3633
@ default_flags
Default stream configuration.
deconvolution_backward_weights(const primitive_desc &pd)
Constructs a deconvolution weights gradient primitive.
Definition: dnnl.hpp:5175
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a matmul primitive.
Definition: dnnl.hpp:9701
primitive_desc(const desc &adesc, const engine &aengine, const lrn_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an LRN backward propagation primitive.
Definition: dnnl.hpp:5331
Base class for all primitive descriptors.
Definition: dnnl.hpp:3003
Descriptor for a softmax backward propagation primitive.
Definition: dnnl.hpp:5947
reorder()=default
Default constructor. Produces an empty object.
primitive_desc()=default
Default constructor. Produces an empty object.
primitive_desc()=default
Default constructor. Produces an empty object.
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)
Constructs a descriptor for a dilated deconvolution forward propagation primitive without bias.
Definition: dnnl.hpp:4658
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a batch normalization forward propagation primitive.
Definition: dnnl.hpp:6321
const dnnl_memory_desc_t DNNL_API * dnnl_primitive_desc_query_md(const_dnnl_primitive_desc_t primitive_desc, dnnl_query_t what, int index)
Queries primitive descriptor for a memory descriptor.
dnnl_status_t DNNL_API dnnl_gemm_u8s8s32(char transa, char transb, char offsetc, dnnl_dim_t M, dnnl_dim_t N, dnnl_dim_t K, float alpha, const uint8_t *A, dnnl_dim_t lda, uint8_t ao, const int8_t *B, dnnl_dim_t ldb, int8_t bo, float beta, int32_t *C, dnnl_dim_t ldc, const int32_t *co)
Performs integer matrix-matrix multiply on 8-bit unsigned matrix A, 8-bit signed matrix B,...
@ dnnl_query_batch_normalization_d
batch normalization descriptor
Definition: dnnl_types.h:2128
primitive_desc(const desc &adesc, const engine &aengine, const gru_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a GRU backward propagation primitive.
Definition: dnnl.hpp:8899
dnnl_status_t DNNL_API dnnl_post_ops_create(dnnl_post_ops_t *post_ops)
Creates empty post-ops sequence.
@ dnnl_eltwise_tanh_use_dst_for_bwd
Eltwise: hyperbolic tangent non-linearity (tanh) (dst for backward)
Definition: dnnl_types.h:892
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:9893
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a convolution backward propagation primitive from a C API primi...
Definition: dnnl.hpp:4179
Descriptor for an LSTM backward propagation primitive.
Definition: dnnl.hpp:8149
inner_product_backward_weights()=default
Default constructor. Produces an empty object.
status set_jit_dump(int enable)
Configures dumping of JIT-generated code.
Definition: dnnl.hpp:10064
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:8962
memory::desc diff_dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6032
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:7580
Deconvolution forward propagation primitive.
Definition: dnnl.hpp:4483
Local response normalization (LRN) backward propagation primitive.
Definition: dnnl.hpp:5285
@ eltwise
An element-wise primitive.
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)
Constructs an LSTM descriptor for backward propagation using prop_kind, direction,...
Definition: dnnl.hpp:8438
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6133
primitive_desc()=default
Default constructor. Produces an empty object.
gru_forward()=default
Default constructor. Produces an empty object.
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:6029
Descriptor for a softmax forward propagation primitive.
Definition: dnnl.hpp:5857
shuffle_backward()=default
Default constructor. Produces an empty object.
@ dnnl_undefined_primitive
Undefined primitive.
Definition: dnnl_types.h:790
desc(prop_kind aprop_kind, const memory::desc &data_desc, int axis, int group_size)
Constructs a descriptor for a shuffle forward propagation primitive.
Definition: dnnl.hpp:9409
memory::desc diff_src_iter_c_desc() const
Returns diff source recurrent cell state memory descriptor.
Definition: dnnl.hpp:8596
Primitive descriptor for an RNN backward propagation primitive.
Definition: dnnl.hpp:7696
Out-of-place summation (sum) primitive.
Definition: dnnl.hpp:3587
Primitive descriptor for a logsoftmax forward propagation primitive.
Definition: dnnl.hpp:6082
dnnl_status_t DNNL_API dnnl_vanilla_rnn_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, const dnnl_alg_kind_t activation, const dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, unsigned flags, float alpha, float beta)
Initializes a descriptor for vanilla RNN forward propagation primitive.
@ deconvolution
A deconvolution primitive.
memory::desc weights_projection_desc() const
Returns weights projection memory descriptor.
Definition: dnnl.hpp:8560
@ unidirectional
Alias for dnnl::rnn_direction::unidirectional_left2right.
layer_normalization_forward()=default
Default constructor. Produces an empty object.
@ dnnl_eltwise_soft_relu
Eltwise: soft_relu.
Definition: dnnl_types.h:865
handle(const handle< T, traits > &)=default
Copy constructor.
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8941
desc(algorithm aalgorithm, const memory::desc &diff_data_desc, const memory::desc &data_desc, float alpha=0, float beta=0)
Constructs a descriptor for an elementwise backward propagation primitive.
Definition: dnnl.hpp:5758
Primitive descriptor for a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7512
lrn_forward()=default
Default constructor. Produces an empty object.
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a pooling forward propagation primitive from a C API primitive ...
Definition: dnnl.hpp:5484
#define DNNL_ARG_FROM
A special mnemonic for reorder source argument.
Definition: dnnl_types.h:1879
@ dnnl_unidirectional_right2left
Unidirectional execution of RNN primitive from right to left.
Definition: dnnl_types.h:1565
primitive_desc(const desc &adesc, const engine &aengine, bool allow_empty=false)
Constructs a primitive descriptor for a logsoftmax forward propagation primitive.
Definition: dnnl.hpp:6096
@ dnnl_aBcd8b
4D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:267
gru_backward(const primitive_desc &pd)
Constructs a GRU backward propagation primitive.
Definition: dnnl.hpp:9011
@ pooling_avg_include_padding
Average pooling include padding.
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:5161
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6655
@ dnnl_ab
plain 2D tensor
Definition: dnnl_types.h:178
Primitive descriptor for a logsoftmax backward propagation primitive.
Definition: dnnl.hpp:6175
@ dnnl_query_scratchpad_engine
(scratch) memory, additional to all inputs and outputs memory (bytes)
Definition: dnnl_types.h:2108
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)
Constructs a descriptor for a convolution backward propagation primitive.
Definition: dnnl.hpp:4065
void set_rnn_weights_qparams(int mask, const std::vector< float > &scales)
Sets quantization scaling factors for RNN weights tensors.
Definition: dnnl.hpp:2989
@ dnnl_runtime_error
Primitive or engine failed on execution.
Definition: dnnl_types.h:51
@ deconvolution_d
deconvolution descriptor
dnnl_status_t DNNL_API dnnl_post_ops_get_params_eltwise(const_dnnl_post_ops_t post_ops, int index, float *scale, dnnl_alg_kind_t *alg_kind, float *alpha, float *beta)
Returns the parameters of an elementwise post-up.
#define DNNL_ARG_DST_LAYER
A special mnemonic for RNN output vector. An alias for DNNL_ARG_DST_0.
Definition: dnnl_types.h:1902
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)
Constructs a descriptor for a dilated convolution weights gradient primitive without bias.
Definition: dnnl.hpp:4370
Descriptor for a resampling backward propagation primitive.
Definition: dnnl.hpp:9911
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const deconvolution_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for a deconvolution weights update primitive.
Definition: dnnl.hpp:5135
GRU backward propagation primitive.
Definition: dnnl.hpp:8800
primitive_desc(const desc &adesc, const primitive_attr &attr, const engine &aengine, const eltwise_forward::primitive_desc &hint_fwd_pd, bool allow_empty=false)
Constructs a primitive descriptor for an elementwise backward propagation primitive.
Definition: dnnl.hpp:5808
@ dnnl_query_exec_arg_md
memory desc of an execute argument
Definition: dnnl_types.h:2148
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:8565
memory()=default
Default constructor.
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8537
Descriptor for a deconvolution forward propagation primitive.
Definition: dnnl.hpp:4485
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for a batch normalization backward propagation primitive from a C A...
Definition: dnnl.hpp:6485
@ primitive_kind
primitive kind
@ dnnl_pooling_avg_exclude_padding
Average pooling exclude padding.
Definition: dnnl_types.h:906
@ dnnl_binary_add
Binary add.
Definition: dnnl_types.h:928
dnnl_status_t DNNL_API dnnl_set_jit_dump(int enable)
Configures dumping of JIT-generated code.
primitive_desc(dnnl_primitive_desc_t pd)
Constructs a primitive descriptor for an eltwise forward propagation primitive from a C API primitive...
Definition: dnnl.hpp:5720
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:7764
dnnl_status_t DNNL_API dnnl_binary_desc_init(dnnl_binary_desc_t *binary_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src0_desc, const dnnl_memory_desc_t *src1_desc, const dnnl_memory_desc_t *dst_desc)
Initializes a descriptor for a binary primitive.
@ eltwise_gelu_erf
Elementwise: erf-based gelu.