Deep Neural Network Library (DNNL)
1.91.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_GPU_RUNTIME == DNNL_RUNTIME_OCL
41 #include <CL/sycl.hpp>
50 #ifndef DNNL_ENABLE_EXCEPTIONS
51 #if __cpp_exceptions || __EXCEPTIONS \
52 || (defined(_MSC_VER) && !defined(__clang__))
53 #define DNNL_ENABLE_EXCEPTIONS 1
55 #define DNNL_ENABLE_EXCEPTIONS 0
59 #if defined(__GNUC__) || defined(__clang__)
60 #define DNNL_TRAP() __builtin_trap()
61 #elif defined(__INTEL_COMPILER) || defined(_MSC_VER)
62 #define DNNL_TRAP() __debugbreak()
64 #error "unknown compiler"
67 #if DNNL_ENABLE_EXCEPTIONS
68 #define DNNL_THROW_ERROR(status, msg) throw error(status, msg)
71 #define DNNL_THROW_ERROR(status, msg) \
92 struct error :
public std::exception {
104 const char *
what() const noexcept
override {
return message; }
112 if (status !=
dnnl_success) DNNL_THROW_ERROR(status, message);
117 template <
typename T>
133 template <
typename T,
typename traits = handle_traits<T>>
137 std::shared_ptr<typename std::remove_pointer<T>::type> data_ {0};
140 bool operator==(
const T other)
const {
return other == data_.get(); }
141 bool operator!=(
const T other)
const {
return !(*
this == other); }
167 explicit handle(T t,
bool weak =
false) {
reset(t, weak); }
174 void reset(T t,
bool weak =
false) {
175 data_.reset(t, weak ? &dummy_destructor : traits::destructor);
183 T
get(
bool allow_empty =
false)
const {
184 T result = data_.get();
185 if (allow_empty ==
false && result ==
nullptr)
195 explicit operator T()
const {
return get(
true); }
200 explicit operator bool()
const {
return get(
true) !=
nullptr; }
209 return other.data_.get() == data_.get();
218 bool operator!=(
const handle &other)
const {
return !(*
this == other); }
248 struct primitive_desc;
260 struct primitive :
public handle<dnnl_primitive_t> {
262 friend struct stream;
347 stream &stream,
const std::unordered_map<int, memory> &args)
const;
349 #ifdef DNNL_SYCL_DPCPP
350 cl::sycl::event DNNL_API execute_sycl(stream &astream,
365 const std::unordered_map<int, memory> &args,
366 const std::vector<cl::sycl::event> &deps = {})
const;
375 return static_cast<dnnl_primitive_kind_t>(kind);
381 "could not get a primitive descriptor from a primitive");
392 "could not get a primitive kind from a primitive descriptor");
393 return static_cast<dnnl::primitive::kind>(
kind);
440 return static_cast<dnnl_scratchpad_mode_t>(mode);
475 return static_cast<dnnl_prop_kind_t>(kind);
480 undef = dnnl_alg_kind_undef,
563 return static_cast<dnnl_alg_kind_t>(
algorithm);
617 return static_cast<dnnl_normalization_flags_t>(flags);
635 return static_cast<dnnl_rnn_flags_t>(flags);
638 #define DNNL_DEFINE_BITMASK_OPS(enum_name) \
639 inline enum_name operator|(enum_name lhs, enum_name rhs) { \
640 return static_cast<enum_name>( \
641 static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); \
644 inline enum_name operator&(enum_name lhs, enum_name rhs) { \
645 return static_cast<enum_name>( \
646 static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); \
649 inline enum_name operator^(enum_name lhs, enum_name rhs) { \
650 return static_cast<enum_name>( \
651 static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); \
654 inline enum_name &operator|=(enum_name &lhs, enum_name rhs) { \
655 lhs = static_cast<enum_name>( \
656 static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); \
660 inline enum_name &operator&=(enum_name &lhs, enum_name rhs) { \
661 lhs = static_cast<enum_name>( \
662 static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); \
666 inline enum_name &operator^=(enum_name &lhs, enum_name rhs) { \
667 lhs = static_cast<enum_name>( \
668 static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); \
672 inline enum_name operator~(enum_name rhs) { \
673 return static_cast<enum_name>(~static_cast<unsigned>(rhs)); \
699 return static_cast<dnnl_rnn_direction_t>(dir);
809 return static_cast<dnnl_query_t>(
query);
834 struct post_ops :
public handle<dnnl_post_ops_t> {
853 "post-ops index is out of range");
854 return static_cast<primitive::kind>(
882 "could not append a sum post-op");
891 "could not get parameters of a sum post-op");
913 "could not append an elementwise post-op");
924 float &alpha,
float &beta)
const {
927 get(), index, &scale, &c_alg, &alpha, &beta),
928 "could not get parameters of an elementwise post-op");
929 algorithm = static_cast<dnnl::algorithm>(c_alg);
943 struct primitive_attr :
public handle<dnnl_primitive_attr_t> {
950 "could not create primitive attribute");
967 "could not get primitive scratchpad mode attribute");
977 "could not set primitive scratchpad mode attribute");
992 const float *c_scales;
994 get(), &count, &c_mask, &c_scales),
995 "could not get primitive output scales attribute");
996 scales.resize(count);
1000 scales[c] = c_scales[c];
1047 (
dnnl_dim_t)scales.size(), mask, &scales[0]),
1048 "could not set primitive output scales attribute");
1062 void get_scales(
int arg,
int &mask, std::vector<float> &scales)
const {
1065 const float *c_scales;
1067 get(), arg, &count, &c_mask, &c_scales),
1068 "could not get scales");
1069 scales.resize(count);
1073 scales[c] = c_scales[c];
1092 void set_scales(
int arg,
int mask,
const std::vector<float> &scales) {
1094 (
dnnl_dim_t)scales.size(), mask, &scales[0]),
1095 "could not set scales");
1109 int arg,
int &mask, std::vector<int32_t> &zero_points)
const {
1112 const int32_t *c_zero_points;
1114 get(), arg, &count, &c_mask, &c_zero_points),
1115 "could not get primitive zero points attribute");
1116 zero_points.resize(count);
1120 zero_points[c] = c_zero_points[c];
1145 int arg,
int mask,
const std::vector<int32_t> &zero_points) {
1148 (
dnnl_dim_t)zero_points.size(), mask, &zero_points[0]),
1149 "could not set primitive zero points attribute");
1159 "could not get primitive post-ops attribute");
1160 result.reset(const_cast<dnnl_post_ops_t>(c_result),
true);
1174 "could not set primitive post-ops attribute");
1213 "could not get primitive RNN data quantization parameters "
1245 get(), (
int)scales.size(), mask, &scales[0]),
1246 "could not get primitive RNN weights quantization parameters "
1274 struct engine :
public handle<dnnl_engine_t> {
1275 friend struct primitive;
1276 friend struct reorder;
1311 "could not create an engine");
1315 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
1325 &
engine, convert_to_c(
kind), device, context),
1326 "could not create an engine");
1332 DNNL_API
engine(
kind akind,
const cl::sycl::device &dev,
1338 const cl::sycl::context &ctx);
1345 engine(
const handle<dnnl_primitive_desc_t> &pd) {
1350 "could not get an engine from a primitive_desc");
1351 reset(c_engine,
true);
1359 "could not get kind of an engine");
1360 return static_cast<engine::kind>(
kind);
1363 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
1367 cl_context context =
nullptr;
1369 "could not get an OpenCL context fron an engine");
1376 cl_device_id device =
nullptr;
1378 "could not get an OpenCL device fron an engine");
1396 template <
class primitive_desc>
1403 return static_cast<dnnl_engine_kind_t>(
kind);
1406 template <
class primitive_desc>
1411 "could not get an engine from a primitive_desc");
1412 return engine(c_engine,
true);
1434 struct stream :
public handle<dnnl_stream_t> {
1438 enum class flags : unsigned {
1462 static_cast<dnnl_stream_flags_t>(
flags)),
1463 "could not create a stream");
1467 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
1475 "could not create a stream");
1482 cl_command_queue queue =
nullptr;
1484 "could not get an OpenCL command queue from a stream");
1490 DNNL_API
stream(
const engine &eng, cl::sycl::queue &aqueue);
1607 struct memory :
public handle<dnnl_memory_t> {
1612 typedef std::vector<dim>
dims;
1619 template <
typename T>
1860 Abc16a = dnnl_Abc16a,
1861 ABc16a16b = dnnl_ABc16a16b,
1862 ABc4a4b = dnnl_ABc4a4b,
1864 ABc16b16a = dnnl_ABc16b16a,
1867 ABc4b16a4b = dnnl_ABc4b16a4b,
1868 ABc2b8a4b = dnnl_ABc2b8a4b,
1869 ABc4b4a = dnnl_ABc4b4a,
1870 ABc8a16b2a = dnnl_ABc8a16b2a,
1871 ABc8a8b = dnnl_ABc8a8b,
1873 ABc8b16a2b = dnnl_ABc8b16a2b,
1874 ABc8b8a = dnnl_ABc8b8a,
1875 Abcd16a = dnnl_Abcd16a,
1876 ABcd16a16b = dnnl_ABcd16a16b,
1878 ABcd16b16a = dnnl_ABcd16b16a,
1879 aBCd16b16c = dnnl_aBCd16b16c,
1880 aBCd16c16b = dnnl_aBCd16c16b,
1881 Abcd4a = dnnl_Abcd4a,
1883 ABcd4b16a4b = dnnl_ABcd4b16a4b,
1884 ABcd2b8a4b = dnnl_ABcd2b8a4b,
1885 ABcd4b4a = dnnl_ABcd4b4a,
1886 ABcd4a4b = dnnl_ABcd4a4b,
1887 aBCd4c16b4c = dnnl_aBCd4c16b4c,
1888 aBCd2c8b4c = dnnl_aBCd2c8b4c,
1889 aBCd4c4b = dnnl_aBCd4c4b,
1890 aBCd4b4c = dnnl_aBCd4b4c,
1891 ABcd8a16b2a = dnnl_ABcd8a16b2a,
1892 ABcd8a8b = dnnl_ABcd8a8b,
1895 ABcd8b16a2b = dnnl_ABcd8b16a2b,
1896 aBCd8b16c2b = dnnl_aBCd8b16c2b,
1899 aBCd8b8c = dnnl_aBCd8b8c,
1900 aBCd8c16b2c = dnnl_aBCd8c16b2c,
1901 aBCd8c8b = dnnl_aBCd8c8b,
1902 Abcde16a = dnnl_Abcde16a,
1903 ABcde16a16b = dnnl_ABcde16a16b,
1905 ABcde16b16a = dnnl_ABcde16b16a,
1906 aBCde16b16c = dnnl_aBCde16b16c,
1907 aBCde16c16b = dnnl_aBCde16c16b,
1908 aBCde2c8b4c = dnnl_aBCde2c8b4c,
1909 Abcde4a = dnnl_Abcde4a,
1911 ABcde4b4a = dnnl_ABcde4b4a,
1912 ABcde4a4b = dnnl_ABcde4a4b,
1913 aBCde4b4c = dnnl_aBCde4b4c,
1914 aBCde4c16b4c = dnnl_aBCde4c16b4c,
1915 aBCde4c4b = dnnl_aBCde4c4b,
1916 Abcde8a = dnnl_Abcde8a,
1917 ABcde8a8b = dnnl_ABcde8a8b,
1919 ABcde8b16a2b = dnnl_ABcde8b16a2b,
1922 aBCde8b16c2b = dnnl_aBCde8b16c2b,
1923 ABcde8b8a = dnnl_ABcde8b8a,
1924 aBCde8b8c = dnnl_aBCde8b8c,
1925 ABcd4a8b8a4b = dnnl_ABcd4a8b8a4b,
1926 ABcd2a8b8a2b = dnnl_ABcd2a8b8a2b,
1927 aBCde4b8c8b4c = dnnl_aBCde4b8c8b4c,
1928 aBCde2b8c8b2c = dnnl_aBCde2b8c8b2c,
1929 aBCde8c16b2c = dnnl_aBCde8c16b2c,
1930 aBCde8c8b = dnnl_aBCde8c8b,
1932 aBCdef16b16c = dnnl_aBCdef16b16c,
1933 aBCdef16c16b = dnnl_aBCdef16c16b,
1935 aBCdef4c4b = dnnl_aBCdef4c4b,
1936 aBCdef4b4c = dnnl_aBCdef4b4c,
1937 aBCdef8b8c = dnnl_aBCdef8b8c,
1938 aBCdef8c16b2c = dnnl_aBCdef8c16b2c,
1939 aBCdef4c16b4c = dnnl_aBCdef4c16b4c,
1940 aBCdef8c8b = dnnl_aBCdef8c8b,
1941 aBdc16b = dnnl_aBdc16b,
1942 aBdc4b = dnnl_aBdc4b,
1943 aBdc8b = dnnl_aBdc8b,
1944 aBdec16b = dnnl_aBdec16b,
1945 aBdec4b = dnnl_aBdec4b,
1946 aBdec8b = dnnl_aBdec8b,
1947 aBdefc16b = dnnl_aBdefc16b,
1948 aCBdef16c16b = dnnl_aCBdef16c16b,
1949 aBdefc4b = dnnl_aBdefc4b,
1950 aBdefc8b = dnnl_aBdefc8b,
1951 Acb16a = dnnl_Acb16a,
1954 aCBd16b16c = dnnl_aCBd16b16c,
1955 aCBd16c16b = dnnl_aCBd16c16b,
1956 aCBde16b16c = dnnl_aCBde16b16c,
1957 aCBde16c16b = dnnl_aCBde16c16b,
1958 Acdb16a = dnnl_Acdb16a,
1959 Acdb4a = dnnl_Acdb4a,
1960 Acdb8a = dnnl_Acdb8a,
1961 Acdeb16a = dnnl_Acdeb16a,
1962 Acdeb4a = dnnl_Acdeb4a,
1963 Acdeb8a = dnnl_Acdeb8a,
1964 BAc16a16b = dnnl_BAc16a16b,
1965 BAc16b16a = dnnl_BAc16b16a,
1966 BAcd16a16b = dnnl_BAcd16a16b,
1967 BAcd16b16a = dnnl_BAcd16b16a,
1968 ABcd32a32b = dnnl_ABcd32a32b,
1969 BAcde16b16 = dnnl_BAcde16b16a,
1970 aBdec32b = dnnl_aBdec32b,
1971 Abcdef16a = dnnl_Abcdef16a,
1972 Acdb32a = dnnl_Acdb32a,
1984 NCw16n16c = dnnl_NCw16n16c,
1985 NChw16n16c = dnnl_NChw16n16c,
1986 NCdhw16n16c = dnnl_NCdhw16n16c,
1987 NChw32n32c = dnnl_NChw32n32c,
1988 IOhw16i16o = dnnl_IOhw16i16o,
1989 Ohwi32o = dnnl_Ohwi32o,
1990 IOdhw16i16o = dnnl_IOdhw16i16o,
1991 gIOhw16i16o = dnnl_gIOhw16i16o,
1992 gOhwi32o = dnnl_gOhwi32o,
1993 Goidhw16g = dnnl_Goidhw16g,
1994 IOw16o16i = dnnl_IOw16o16i,
1995 OIw16i16o = dnnl_OIw16i16o,
1996 IOw16i16o = dnnl_IOw16i16o,
1997 gIOw16i16o = dnnl_gIOw16i16o,
1998 OIw16o16i = dnnl_OIw16o16i,
1999 Oiw16o = dnnl_Oiw16o,
2000 OIw4i16o4i = dnnl_OIw4i16o4i,
2001 OIw2i8o4i = dnnl_OIw2i8o4i,
2002 OIw4i4o = dnnl_OIw4i4o,
2003 OIw4o4i = dnnl_OIw4o4i,
2005 OIw8i16o2i = dnnl_OIw8i16o2i,
2006 OIw8i8o = dnnl_OIw8i8o,
2007 OIw8o16i2o = dnnl_OIw8o16i2o,
2008 OIw8o8i = dnnl_OIw8o8i,
2009 Owi16o = dnnl_Owi16o,
2010 OwI16o2i = dnnl_OwI16o2i,
2013 IOhw16o16i = dnnl_IOhw16o16i,
2014 Ohwi16o = dnnl_Ohwi16o,
2015 OhwI16o2i = dnnl_OhwI16o2i,
2016 Ohwi4o = dnnl_Ohwi4o,
2017 Ohwi8o = dnnl_Ohwi8o,
2018 OIhw16i16o = dnnl_OIhw16i16o,
2019 OIhw16o16i = dnnl_OIhw16o16i,
2020 Oihw16o = dnnl_Oihw16o,
2021 OIhw4i16o4i = dnnl_OIhw4i16o4i,
2022 OIhw4i4o = dnnl_OIhw4i4o,
2023 OIhw4o4i = dnnl_OIhw4o4i,
2024 Oihw4o = dnnl_Oihw4o,
2025 OIhw8i16o2i = dnnl_OIhw8i16o2i,
2026 OIhw8i8o = dnnl_OIhw8i8o,
2027 OIhw8o16i2o = dnnl_OIhw8o16i2o,
2028 OIhw8o8i = dnnl_OIhw8o8i,
2029 OIhw2i8o4i = dnnl_OIhw2i8o4i,
2030 Odhwi16o = dnnl_Odhwi16o,
2031 OdhwI16o2i = dnnl_OdhwI16o2i,
2032 Odhwi4o = dnnl_Odhwi4o,
2033 Odhwi8o = dnnl_Odhwi8o,
2034 OIdhw16i16o = dnnl_OIdhw16i16o,
2035 OIdhw16o16i = dnnl_OIdhw16o16i,
2036 Oidhw16o = dnnl_Oidhw16o,
2037 OIdhw4i4o = dnnl_OIdhw4i4o,
2038 OIdhw4o4i = dnnl_OIdhw4o4i,
2039 Oidhw4o = dnnl_Oidhw4o,
2040 OIdhw8i16o2i = dnnl_OIdhw8i16o2i,
2041 OIdhw4i16o4i = dnnl_OIdhw4i16o4i,
2042 OIdhw2i8o4i = dnnl_OIdhw2i8o4i,
2043 OIdhw8i8o = dnnl_OIdhw8i8o,
2044 OIdhw8o8i = dnnl_OIdhw8o8i,
2045 gIOw16o16i = dnnl_gIOw16o16i,
2046 gOIw16i16o = dnnl_gOIw16i16o,
2047 gOIw16o16i = dnnl_gOIw16o16i,
2048 gOiw16o = dnnl_gOiw16o,
2049 gOIw4i16o4i = dnnl_gOIw4i16o4i,
2050 gOIw2i8o4i = dnnl_gOIw2i8o4i,
2051 gOIw4i4o = dnnl_gOIw4i4o,
2052 gOIw4o4i = dnnl_gOIw4o4i,
2053 gOiw4o = dnnl_gOiw4o,
2054 gOIw8i16o2i = dnnl_gOIw8i16o2i,
2055 gOIw8i8o = dnnl_gOIw8i8o,
2056 gOIw8o16i2o = dnnl_gOIw8o16i2o,
2057 gOIw8o8i = dnnl_gOIw8o8i,
2058 gOwi16o = dnnl_gOwi16o,
2059 gOwI16o2i = dnnl_gOwI16o2i,
2060 gOwi4o = dnnl_gOwi4o,
2061 gOwi8o = dnnl_gOwi8o,
2062 Goiw8g = dnnl_Goiw8g,
2063 Goiw16g = dnnl_Goiw16g,
2064 gIOhw16o16i = dnnl_gIOhw16o16i,
2065 gOhwi16o = dnnl_gOhwi16o,
2066 gOhwI16o2i = dnnl_gOhwI16o2i,
2067 gOhwi4o = dnnl_gOhwi4o,
2068 gOhwi8o = dnnl_gOhwi8o,
2069 Goihw16g = dnnl_Goihw16g,
2070 gOIhw16i16o = dnnl_gOIhw16i16o,
2071 gOIhw16o16i = dnnl_gOIhw16o16i,
2072 gOihw16o = dnnl_gOihw16o,
2073 gOIhw4i16o4i = dnnl_gOIhw4i16o4i,
2074 gOIhw2i8o4i = dnnl_gOIhw2i8o4i,
2075 gOIhw4i4o = dnnl_gOIhw4i4o,
2076 gOIhw4o4i = dnnl_gOIhw4o4i,
2077 gOihw4o = dnnl_gOihw4o,
2078 Goihw8g = dnnl_Goihw8g,
2079 gOIhw8i16o2i = dnnl_gOIhw8i16o2i,
2080 gOIhw8i8o = dnnl_gOIhw8i8o,
2081 gOIhw8o16i2o = dnnl_gOIhw8o16i2o,
2082 OIhw4o8i8o4i = dnnl_OIhw4o8i8o4i,
2083 OIhw2o8i8o2i = dnnl_OIhw2o8i8o2i,
2084 gOIhw4o8i8o4i = dnnl_gOIhw4o8i8o4i,
2085 gOIhw2o8i8o2i = dnnl_gOIhw2o8i8o2i,
2086 gOIhw8o8i = dnnl_gOIhw8o8i,
2087 gIOdhw16i16o = dnnl_gIOdhw16i16o,
2088 gOdhwi16o = dnnl_gOdhwi16o,
2089 gOdhwI16o2i = dnnl_gOdhwI16o2i,
2090 gOdhwi4o = dnnl_gOdhwi4o,
2091 gOdhwi8o = dnnl_gOdhwi8o,
2092 gOIdhw16i16o = dnnl_gOIdhw16i16o,
2093 gOIdhw16o16i = dnnl_gOIdhw16o16i,
2094 gOidhw16o = dnnl_gOidhw16o,
2095 gOIdhw4i4o = dnnl_gOIdhw4i4o,
2096 gOIdhw4o4i = dnnl_gOIdhw4o4i,
2097 gOidhw4o = dnnl_gOidhw4o,
2098 gOIdhw8i16o2i = dnnl_gOIdhw8i16o2i,
2099 gOIdhw4i16o4i = dnnl_gOIdhw4i16o4i,
2100 gOIdhw2i8o4i = dnnl_gOIdhw2i8o4i,
2101 gOIdhw8i8o = dnnl_gOIdhw8i8o,
2102 gOIdhw8o8i = dnnl_gOIdhw8o8i,
2107 friend struct memory;
2131 dims.size() == 0 ? nullptr : &
dims[0],
2133 "could not construct a memory descriptor using a format "
2153 dims.size() == 0 ? nullptr : &
dims[0],
2155 strides.size() == 0 ? nullptr : &strides[0]),
2156 "could not construct a memory descriptor using strides");
2175 &sub_md, &
data, &
dims[0], &offsets[0]),
2176 "could not construct a sub-memory");
2177 return desc(sub_md);
2189 "could not reshape a memory descriptor");
2190 return desc(out_md);
2240 memory(
const desc &md,
const engine &
engine,
void *ahandle)
2246 #ifdef DNNL_USE_DPCPP_USM
2247 : memory(with_sycl_tag {}, md,
engine, ahandle,
true) {
2250 : memory(with_sycl_tag {}, md,
engine, ahandle,
false) {
2264 "could not create a memory object");
2269 #if DNNL_WITH_SYCL && defined(DNNL_USE_SYCL_BUFFERS)
2270 template <
typename T,
int ndims = 1>
2277 cl::sycl::buffer<T, ndims> &buf)
2278 : memory(md,
engine, DNNL_MEMORY_NONE) {
2290 : memory(md,
engine, DNNL_MEMORY_ALLOCATE) {}
2296 "could not get a memory descriptor from a memory object");
2297 return desc(*cdesc);
2304 "could not get an engine from a memory object");
2305 return engine(c_engine,
true);
2314 "could not get a native handle from a memory object");
2324 "could not set native handle of a memory object");
2346 template <
typename T =
void>
2350 "could not map memory object data");
2351 return static_cast<T *>(mapped_ptr);
2367 "could not unmap memory object data");
2370 #if DNNL_GPU_RUNTIME == DNNL_RUNTIME_OCL
2375 "could not get OpenCL buffer object from a memory object");
2386 "could not set OpenCL buffer object from a memory object");
2390 #if DNNL_WITH_SYCL && defined(DNNL_USE_SYCL_BUFFERS)
2391 template <
typename T,
int ndims = 1>
2396 cl::sycl::buffer<T, ndims>
get_sycl_buffer(
size_t *offset =
nullptr)
const {
2397 static_assert(ndims == 1,
"only 1D buffers supported");
2401 "could not get SYCL buffer object");
2406 return cl::sycl::buffer<T, ndims>(cl::sycl::range<1>(1));
2408 auto &buf_u8 = *
static_cast<cl::sycl::buffer<uint8_t, 1> *
>(handle_ptr);
2409 if (offset) *offset = 0;
2410 auto range = cl::sycl::range<1>(buf_u8.get_size() /
sizeof(T));
2411 return buf_u8.reinterpret<T, 1>(range);
2419 template <
typename T,
int ndims>
2421 auto range = cl::sycl::range<1>(buf.get_size());
2422 auto buf_u8 = buf.template reinterpret<uint8_t, 1>(range);
2424 get(), static_cast<void *>(&buf_u8)),
2425 "could not set SYCL buffer object");
2430 return static_cast<dnnl_data_type_t>(
data_type);
2433 return static_cast<dnnl_format_tag_t>(format);
2438 struct with_sycl_tag {};
2440 DNNL_API memory(with_sycl_tag,
const desc &md,
const engine &
engine,
2441 void *ahandle,
bool is_usm);
2446 return a == memory::convert_to_c(b);
2459 return a == memory::convert_to_c(b);
2480 struct primitive_desc_base :
public handle<dnnl_primitive_desc_t> {
2494 "could not retrieve implementation info string from a "
2495 "primitive descriptor");
2526 if (!std::any_of(valid_q.cbegin(), valid_q.cend(),
2527 [=](
query q) {
return what == q; }))
2529 "memory descriptor query is invalid");
2533 return cdesc ? memory::desc(*cdesc) : memory::desc();
2541 memory::desc
src_desc(
int idx)
const {
2550 memory::desc
dst_desc(
int idx)
const {
2653 "could not retrieve scratchpad engine from a primitive "
2655 return engine(c_engine,
true);
2663 "could not get attributes from a primitive descriptor");
2666 "could not clone primitive attributes");
2667 return primitive_attr(c_attr);
2676 "could not get primitive kind from a primitive descriptor");
2677 return static_cast<dnnl::primitive::kind>(kind);
2687 "could not clone a primitive descriptor");
2740 if (pd ==
nullptr)
return;
2753 rc,
"could not get primitive kind from a primitive descriptor");
2754 if (pd_kind != c_prim_kind)
2756 "primitive descriptor operation kind mismatch");
2766 "could not get propagation kind from the primitive "
2772 && (pd_prop_kind == c_prop_kind1
2773 || pd_prop_kind == c_prop_kind2))) {
2780 "primitive descriptor propagation kind mismatch");
2799 struct reorder :
public primitive {
2801 struct primitive_desc :
public primitive_desc_base {
2824 const primitive_attr &attr = primitive_attr()) {
2828 src_engine.get(), &
dst_md.data, dst_engine.get(),
2830 "could not create a primitive descriptor for a reorder "
2843 const primitive_attr &attr = primitive_attr()) {
2845 auto src_md = src.get_desc();
2846 auto dst_md = dst.get_desc();
2849 src.get_engine().get(), &
dst_md.data,
2850 dst.get_engine().get(), attr.get()),
2851 "could not create a primitive descriptor for a reorder "
2896 reorder(
const memory &src,
const memory &dst,
2897 const primitive_attr &attr = primitive_attr())
2908 void execute(stream stream, memory &src, memory &dst)
const {
2912 #ifdef DNNL_SYCL_DPCPP
2913 using primitive::execute_sycl;
2915 cl::sycl::event execute_sycl(stream &astream, memory &src, memory &dst,
2916 const std::vector<cl::sycl::event> &deps = {})
const {
2917 return primitive::execute_sycl(astream,
2938 const std::vector<memory::desc> &mems) {
2939 std::vector<dnnl_memory_desc_t> c_mems;
2940 c_mems.reserve(mems.size());
2941 for (
const auto &s : mems)
2942 c_mems.push_back(s.data);
2948 struct concat :
public primitive {
2950 struct primitive_desc :
public primitive_desc_base {
2976 const std::vector<memory::desc> &srcs,
const engine &
engine,
2977 const primitive_attr &attr = primitive_attr()) {
2983 (
int)c_srcs.size(), concat_dimension, &c_srcs[0],
2984 attr.get(),
engine.get()),
2985 "could not create a primitive descriptor for a concat "
3003 const std::vector<memory::desc> &srcs,
const engine &
engine,
3004 const primitive_attr &attr = primitive_attr()) {
3010 (
int)c_api_srcs.size(), concat_dimension,
3011 &c_api_srcs[0], attr.get(),
engine.get()),
3012 "could not create a primitive descriptor for a concat "
3050 struct sum :
public primitive {
3052 struct primitive_desc :
public primitive_desc_base {
3076 const std::vector<float> &scales,
3077 const std::vector<memory::desc> &srcs,
const engine &
engine,
3078 const primitive_attr &attr = primitive_attr()) {
3082 "counts of scales and sources are not equal");
3088 (
int)c_api_srcs.size(), &scales[0],
3089 &c_api_srcs[0], attr.get(),
engine.get()),
3090 "could not create a primitive descriptor for a sum "
3106 const std::vector<memory::desc> &srcs,
const engine &
engine,
3107 const primitive_attr &attr = primitive_attr()) {
3111 "counts of scales and sources are not equal");
3116 (
int)c_api_srcs.size(), &scales[0],
3117 &c_api_srcs[0], attr.get(),
engine.get()),
3118 "could not create a primitive descriptor for a sum "
3152 struct primitive_desc :
public primitive_desc_base {
3155 primitive_desc() =
default;
3181 bool allow_empty =
false)
3182 : allow_empty_(allow_empty) {
3185 desc, attr ? attr->get() :
nullptr,
engine.get(), hint_fwd_pd);
3188 status,
"could not create a primitive descriptor iterator");
3189 pd_iterator.reset(iterator);
3202 status,
"could not advance a primitive descriptor iterator");
3208 bool allow_empty_ =
false;
3209 handle<dnnl_primitive_desc_iterator_t> pd_iterator;
3212 pd_iterator.get(allow_empty_));
3215 "could not fetch a primitive descriptor from a primitive "
3216 "descriptor iterator");
3234 struct convolution_forward :
public primitive {
3272 const memory::desc &src_desc,
const memory::desc &weights_desc,
3273 const memory::desc &bias_desc,
const memory::desc &dst_desc,
3283 &weights_desc.data, &bias_desc.data, &dst_desc.data,
3284 &strides[0], &padding_l[0], &padding_r[0]),
3285 "could not create a descriptor for a convolution forward "
3286 "propagation primitive");
3319 const memory::desc &src_desc,
const memory::desc &weights_desc,
3320 const memory::desc &dst_desc,
const memory::dims &strides,
3329 &weights_desc.data,
nullptr, &dst_desc.data,
3330 &strides[0], &padding_l[0], &padding_r[0]),
3331 "could not create a descriptor for a convolution forward "
3332 "propagation primitive");
3370 const memory::desc &src_desc,
const memory::desc &weights_desc,
3371 const memory::desc &bias_desc,
const memory::desc &dst_desc,
3381 &weights_desc.data, &bias_desc.data,
3382 &dst_desc.data, &strides[0], &dilates[0],
3383 &padding_l[0], &padding_r[0]),
3384 "could not create a descriptor for a dilated convolution "
3385 "forward propagation primitive");
3420 const memory::desc &src_desc,
const memory::desc &weights_desc,
3421 const memory::desc &dst_desc,
const memory::dims &strides,
3431 &weights_desc.data,
nullptr,
3432 &dst_desc.data, &strides[0], &dilates[0],
3433 &padding_l[0], &padding_r[0]),
3434 "could not create a descriptor for a dilated convolution "
3435 "forward propagation primitive");
3455 bool allow_empty =
false)
3457 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
3473 &desc.data, &attr,
engine, nullptr, allow_empty) {}
3512 struct convolution_backward_data :
public primitive {
3545 const memory::desc &weights_desc,
3546 const memory::desc &diff_dst_desc,
const memory::dims &strides,
3554 &weights_desc.data, &diff_dst_desc.data,
3555 &strides[0], &padding_l[0], &padding_r[0]),
3556 "could not create a descriptor for a convolution backward "
3557 "propagation primitive");
3589 const memory::desc &weights_desc,
3590 const memory::desc &diff_dst_desc,
const memory::dims &strides,
3600 &weights_desc.data, &diff_dst_desc.data,
3601 &strides[0], &dilates[0], &padding_l[0],
3603 "could not create a descriptor for a dilated convolution "
3604 "backward propagation primitive");
3627 const convolution_forward::primitive_desc &hint_fwd_pd,
3628 bool allow_empty =
false)
3630 hint_fwd_pd.
get(), allow_empty) {}
3648 const convolution_forward::primitive_desc &hint_fwd_pd,
3649 bool allow_empty =
false)
3683 struct convolution_backward_weights :
public primitive {
3718 const memory::desc &diff_weights_desc,
3719 const memory::desc &diff_bias_desc,
3720 const memory::desc &diff_dst_desc,
const memory::dims &strides,
3728 &diff_weights_desc.data, &diff_bias_desc.data,
3729 &diff_dst_desc.data, &strides[0], &padding_l[0],
3731 "could not create a descriptor for a convolution weights "
3732 "update primitive");
3762 const memory::desc &diff_weights_desc,
3763 const memory::desc &diff_dst_desc,
const memory::dims &strides,
3770 &diff_weights_desc.data,
nullptr,
3771 &diff_dst_desc.data, &strides[0],
3772 &padding_l[0], &padding_r[0]),
3773 "could not create a descriptor for a convolution weights "
3774 "update primitive");
3809 const memory::desc &diff_weights_desc,
3810 const memory::desc &diff_bias_desc,
3811 const memory::desc &diff_dst_desc,
const memory::dims &strides,
3821 &diff_weights_desc.data, &diff_bias_desc.data,
3822 &diff_dst_desc.data, &strides[0], &dilates[0],
3823 &padding_l[0], &padding_r[0]),
3824 "could not create a descriptor for a dilated convolution "
3825 "weights gradient primitive");
3857 const memory::desc &diff_weights_desc,
3858 const memory::desc &diff_dst_desc,
const memory::dims &strides,
3868 &diff_weights_desc.data,
nullptr,
3869 &diff_dst_desc.data, &strides[0], &dilates[0],
3870 &padding_l[0], &padding_r[0]),
3871 "could not create a descriptor for a dilated convolution "
3872 "weights gradient primitive");
3894 const convolution_forward::primitive_desc &hint_fwd_pd,
3895 bool allow_empty =
false)
3897 hint_fwd_pd.
get(), allow_empty) {}
3914 const convolution_forward::primitive_desc &hint_fwd_pd,
3915 bool allow_empty =
false)
3969 struct deconvolution_forward :
public primitive {
4005 const memory::desc &src_desc,
const memory::desc &weights_desc,
4006 const memory::desc &bias_desc,
const memory::desc &dst_desc,
4016 &weights_desc.data, &bias_desc.data, &dst_desc.data,
4017 &strides[0], &padding_l[0], &padding_r[0]),
4018 "could not create a descriptor for a deconvolution forward "
4019 "propagation primitive");
4050 const memory::desc &src_desc,
const memory::desc &weights_desc,
4051 const memory::desc &dst_desc,
const memory::dims &strides,
4060 &weights_desc.data,
nullptr, &dst_desc.data,
4061 &strides[0], &padding_l[0], &padding_r[0]),
4062 "could not create a descriptor for a deconvolution forward "
4063 "propagation primitive");
4099 const memory::desc &src_desc,
const memory::desc &weights_desc,
4100 const memory::desc &bias_desc,
const memory::desc &dst_desc,
4110 &weights_desc.data, &bias_desc.data,
4111 &dst_desc.data, &strides[0], &dilates[0],
4112 &padding_l[0], &padding_r[0]),
4113 "could not create a descriptor for a dilated deconvolution "
4114 "forward propagation primitive");
4147 const memory::desc &src_desc,
const memory::desc &weights_desc,
4148 const memory::desc &dst_desc,
const memory::dims &strides,
4158 &weights_desc.data,
nullptr,
4159 &dst_desc.data, &strides[0], &dilates[0],
4160 &padding_l[0], &padding_r[0]),
4161 "could not create a descriptor for a dilated deconvolution "
4162 "forward propagation primitive");
4182 bool allow_empty =
false)
4184 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
4200 &desc.data, &attr,
engine, nullptr, allow_empty) {}
4236 struct deconvolution_backward_data :
public primitive {
4267 const memory::desc &weights_desc,
4268 const memory::desc &diff_dst_desc,
const memory::dims &strides,
4276 &weights_desc.data, &diff_dst_desc.data,
4277 &strides[0], &padding_l[0], &padding_r[0]),
4278 "could not create a descriptor for a deconvolution "
4279 "backward propagation primitive");
4310 const memory::desc &weights_desc,
4311 const memory::desc &diff_dst_desc,
const memory::dims &strides,
4321 &weights_desc.data, &diff_dst_desc.data,
4322 &strides[0], &dilates[0], &padding_l[0],
4324 "could not create a descriptor for a dilated deconvolution "
4325 "backward propagation primitive");
4348 const deconvolution_forward::primitive_desc &hint_fwd_pd,
4349 bool allow_empty =
false)
4351 hint_fwd_pd.
get(), allow_empty) {}
4369 const deconvolution_forward::primitive_desc &hint_fwd_pd,
4370 bool allow_empty =
false)
4404 struct deconvolution_backward_weights :
public primitive {
4438 const memory::desc &diff_weights_desc,
4439 const memory::desc &diff_bias_desc,
4440 const memory::desc &diff_dst_desc,
const memory::dims &strides,
4448 &diff_weights_desc.data, &diff_bias_desc.data,
4449 &diff_dst_desc.data, &strides[0], &padding_l[0],
4451 "could not create a descriptor for a deconvolution weights "
4452 "update primitive");
4481 const memory::desc &diff_weights_desc,
4482 const memory::desc &diff_dst_desc,
const memory::dims &strides,
4489 &src_desc.data, &diff_weights_desc.data,
4490 nullptr, &diff_dst_desc.data, &strides[0],
4491 &padding_l[0], &padding_r[0]),
4492 "could not create a descriptor for a deconvolution weights "
4493 "update primitive");
4527 const memory::desc &diff_weights_desc,
4528 const memory::desc &diff_bias_desc,
4529 const memory::desc &diff_dst_desc,
const memory::dims &strides,
4539 &diff_weights_desc.data, &diff_bias_desc.data,
4540 &diff_dst_desc.data, &strides[0], &dilates[0],
4541 &padding_l[0], &padding_r[0]),
4542 "could not create a descriptor for a dilated deconvolution "
4543 "weights gradient primitive");
4574 const memory::desc &diff_weights_desc,
4575 const memory::desc &diff_dst_desc,
const memory::dims &strides,
4585 &diff_weights_desc.data,
nullptr,
4586 &diff_dst_desc.data, &strides[0], &dilates[0],
4587 &padding_l[0], &padding_r[0]),
4588 "could not create a descriptor for a dilated deconvolution "
4589 "weights gradient primitive");
4611 const deconvolution_forward::primitive_desc &hint_fwd_pd,
4612 bool allow_empty =
false)
4614 hint_fwd_pd.
get(), allow_empty) {}
4631 const deconvolution_forward::primitive_desc &hint_fwd_pd,
4632 bool allow_empty =
false)
4684 struct lrn_forward :
public primitive {
4714 const memory::desc &data_desc,
memory::dim local_size,
4715 float alpha,
float beta,
float k = 1.f) {
4719 local_size, alpha, beta, k),
4720 "could not create a descriptor for a lrn forward "
4721 "propagation primitive");
4740 bool allow_empty =
false)
4742 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
4757 &desc.data, &attr,
engine, nullptr, allow_empty) {}
4790 struct lrn_backward :
public primitive {
4818 const memory::desc &diff_data_desc,
memory::dim local_size,
4819 float alpha,
float beta,
float k = 1.f) {
4822 &diff_data_desc.data, &data_desc.data, local_size,
4824 "could not create a descriptor for a lrn backward "
4825 "propagation primitive");
4847 const lrn_forward::primitive_desc &hint_fwd_pd,
4848 bool allow_empty =
false)
4850 hint_fwd_pd.
get(), allow_empty) {}
4867 const lrn_forward::primitive_desc &hint_fwd_pd,
4868 bool allow_empty =
false)
4912 struct pooling_forward :
public primitive {
4947 const memory::desc &src_desc,
const memory::desc &dst_desc,
4957 &dst_desc.data, &strides[0], &kernel[0],
4958 &padding_l[0], &padding_r[0]),
4959 "could not create a descriptor for a pooling forward "
4960 "propagation primitive");
4979 bool allow_empty =
false)
4981 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
4996 &desc.data, &attr,
engine, nullptr, allow_empty) {}
5029 struct pooling_backward :
public primitive {
5060 const memory::desc &diff_dst_desc,
const memory::dims &strides,
5070 &diff_dst_desc.data, &strides[0], &kernel[0],
5071 &padding_l[0], &padding_r[0]),
5072 "could not create a descriptor for a pooling backward "
5073 "propagation primitive");
5095 const pooling_forward::primitive_desc &hint_fwd_pd,
5096 bool allow_empty =
false)
5098 hint_fwd_pd.
get(), allow_empty) {}
5115 const pooling_forward::primitive_desc &hint_fwd_pd,
5116 bool allow_empty =
false)
5174 struct eltwise_forward :
public primitive {
5198 const memory::desc &data_desc,
float alpha = 0,
5203 &data_desc.data, alpha, beta),
5204 "could not create a descriptor for an eltwise forward "
5205 "propagation primitive");
5225 bool allow_empty =
false)
5227 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
5243 &desc.data, &attr,
engine, nullptr, allow_empty) {}
5273 struct eltwise_backward :
public primitive {
5297 const memory::desc &data_desc,
float alpha = 0,
5302 &data_desc.data, alpha, beta),
5303 "could not create a descriptor for an eltwise backward "
5304 "propagation primitive");
5327 const eltwise_forward::primitive_desc &hint_fwd_pd,
5328 bool allow_empty =
false)
5330 hint_fwd_pd.
get(), allow_empty) {}
5348 const eltwise_forward::primitive_desc &hint_fwd_pd,
5349 bool allow_empty =
false)
5393 struct softmax_forward :
public primitive {
5419 &data_desc.data, softmax_axis),
5420 "could not create a descriptor for a softmax forward "
5421 "propagation primitive");
5441 bool allow_empty =
false)
5443 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
5459 &desc.data, &attr,
engine, nullptr, allow_empty) {}
5489 struct softmax_backward :
public primitive {
5510 desc(
const memory::desc &diff_data_desc,
const memory::desc &data_desc,
5514 &data_desc.data, softmax_axis),
5515 "could not create a descriptor for a softmax backward "
5516 "propagation primitive");
5539 const softmax_forward::primitive_desc &hint_fwd_pd,
5540 bool allow_empty =
false)
5542 hint_fwd_pd.
get(), allow_empty) {}
5560 const softmax_forward::primitive_desc &hint_fwd_pd,
5561 bool allow_empty =
false)
5605 struct logsoftmax_forward :
public primitive {
5628 int logsoftmax_axis) {
5631 &data_desc.data, logsoftmax_axis),
5632 "could not create a descriptor for a logsoftmax forward "
5633 "propagation primitive");
5653 bool allow_empty =
false)
5655 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
5671 &desc.data, &attr,
engine, nullptr, allow_empty) {}
5705 struct logsoftmax_backward :
public primitive {
5727 desc(
const memory::desc &diff_data_desc,
const memory::desc &data_desc,
5728 int logsoftmax_axis) {
5730 &diff_data_desc.data, &data_desc.data,
5732 "could not create a descriptor for a logsoftmax backward "
5733 "propagation primitive");
5756 const logsoftmax_forward::primitive_desc &hint_fwd_pd,
5757 bool allow_empty =
false)
5759 hint_fwd_pd.
get(), allow_empty) {}
5777 const logsoftmax_forward::primitive_desc &hint_fwd_pd,
5778 bool allow_empty =
false)
5838 struct batch_normalization_forward :
public primitive {
5885 "could not create a descriptor for a batch normalization "
5886 "forward propagation primitive");
5907 bool allow_empty =
false)
5909 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
5925 &desc.data, &attr,
engine, nullptr, allow_empty) {}
5953 memory::desc
mean_desc()
const {
return stat_desc(mean); }
5957 memory::desc
variance_desc()
const {
return stat_desc(var); }
5964 memory::desc stat_desc(
int kind)
const {
5970 "could not retrieve a descriptor from a primitive "
5971 "descriptor for batch normalization forward propagation "
5989 struct batch_normalization_backward :
public primitive {
6024 const memory::desc &data_desc,
float epsilon,
6030 "could not create a descriptor for a batch normalization "
6031 "backward propagation primitive");
6055 const batch_normalization_forward::primitive_desc &hint_fwd_pd,
6056 bool allow_empty =
false)
6058 hint_fwd_pd.
get(), allow_empty) {}
6076 const batch_normalization_forward::primitive_desc &hint_fwd_pd,
6077 bool allow_empty =
false)
6159 struct layer_normalization_forward :
public primitive {
6194 const memory::desc &stat_desc,
float epsilon,
6200 "could not create a descriptor for a layer normalization "
6201 "forward propagation primitive");
6238 "could not create a descriptor for a layer normalization "
6239 "forward propagation primitive");
6260 bool allow_empty =
false)
6262 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
6278 &desc.data, &attr,
engine, nullptr, allow_empty) {}
6305 memory::desc
mean_desc()
const {
return stat_desc(mean); }
6308 memory::desc
variance_desc()
const {
return stat_desc(var); }
6315 memory::desc stat_desc(
int kind)
const {
6321 "could not retrieve a descriptor from a primitive "
6322 "descriptor for layer normalization forward propagation "
6340 struct layer_normalization_backward :
public primitive {
6374 const memory::desc &data_desc,
const memory::desc &stat_desc,
6379 &data_desc.data, &stat_desc.data, epsilon,
6381 "could not create a descriptor for a batch normalization "
6382 "backward propagation primitive");
6413 const memory::desc &data_desc,
float epsilon,
6417 &diff_data_desc.data, &data_desc.data,
6419 "could not create a descriptor for a batch normalization "
6420 "backward propagation primitive");
6444 const layer_normalization_forward::primitive_desc &hint_fwd_pd,
6445 bool allow_empty =
false)
6447 hint_fwd_pd.
get(), allow_empty) {}
6465 const layer_normalization_forward::primitive_desc &hint_fwd_pd,
6466 bool allow_empty =
false)
6534 struct inner_product_forward :
public primitive {
6562 const memory::desc &weights_desc,
const memory::desc &bias_desc,
6563 const memory::desc &dst_desc) {
6566 &src_desc.data, &weights_desc.data,
6567 &bias_desc.data, &dst_desc.data),
6568 "could not create a descriptor for an inner product "
6569 "forward propagation primitive");
6593 const memory::desc &weights_desc,
6594 const memory::desc &dst_desc) {
6598 &weights_desc.data,
nullptr, &dst_desc.data),
6599 "could not create a descriptor for an inner product "
6600 "forward propagation primitive");
6620 bool allow_empty =
false)
6622 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
6638 &desc.data, &attr,
engine, nullptr, allow_empty) {}
6674 struct inner_product_backward_data :
public primitive {
6696 desc(
const memory::desc &diff_src_desc,
6697 const memory::desc &weights_desc,
6698 const memory::desc &diff_dst_desc) {
6700 &diff_src_desc.data, &weights_desc.data,
6701 &diff_dst_desc.data),
6702 "could not create a descriptor for an inner product "
6703 "backward propagation primitive");
6727 const inner_product_forward::primitive_desc &hint_fwd_pd,
6728 bool allow_empty =
false)
6730 hint_fwd_pd.
get(), allow_empty) {}
6748 const inner_product_forward::primitive_desc &hint_fwd_pd,
6749 bool allow_empty =
false)
6783 struct inner_product_backward_weights :
public primitive {
6807 desc(
const memory::desc &src_desc,
6808 const memory::desc &diff_weights_desc,
6809 const memory::desc &diff_bias_desc,
6810 const memory::desc &diff_dst_desc) {
6813 &src_desc.data, &diff_weights_desc.data,
6814 &diff_bias_desc.data, &diff_dst_desc.data),
6815 "could not create a descriptor for an inner product "
6816 "weights gradient primitive");
6836 desc(
const memory::desc &src_desc,
6837 const memory::desc &diff_weights_desc,
6838 const memory::desc &diff_dst_desc) {
6841 &src_desc.data, &diff_weights_desc.data,
nullptr,
6842 &diff_dst_desc.data),
6843 "could not create a descriptor for an inner product "
6844 "weights gradient primitive");
6867 const inner_product_forward::primitive_desc &hint_fwd_pd,
6868 bool allow_empty =
false)
6870 hint_fwd_pd.
get(), allow_empty) {}
6888 const inner_product_forward::primitive_desc &hint_fwd_pd,
6889 bool allow_empty =
false)
6940 struct rnn_primitive_desc_base :
public primitive_desc {
6941 using primitive_desc::primitive_desc;
7067 "could not retrieve a descriptor from a primitive descriptor "
7068 "for an RNN primitive");
7075 && (
rnn_d->prop_kind == c_prop_kind1
7076 ||
rnn_d->prop_kind == c_prop_kind2)
7077 &&
rnn_d->cell_kind == c_cell_kind;
7081 "mismatch between expected and provided descriptors for an "
7089 struct vanilla_rnn_forward :
public primitive {
7147 const memory::desc &src_layer_desc,
7148 const memory::desc &src_iter_desc,
7149 const memory::desc &weights_layer_desc,
7150 const memory::desc &weights_iter_desc,
7151 const memory::desc &bias_desc,
7152 const memory::desc &dst_layer_desc,
7153 const memory::desc &dst_iter_desc,
7155 float beta = 0.0f) {
7161 &src_iter_desc.data, &weights_layer_desc.data,
7162 &weights_iter_desc.data, &bias_desc.data,
7163 &dst_layer_desc.data, &dst_iter_desc.data,
7165 "could not create a descriptor for a vanilla RNN forward "
7166 "propagation primitive");
7171 struct primitive_desc :
public rnn_primitive_desc_base {
7186 bool allow_empty =
false)
7188 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
7204 &desc.data, &attr,
engine, nullptr, allow_empty) {}
7262 struct vanilla_rnn_backward :
public primitive {
7343 const memory::desc &src_layer_desc,
7344 const memory::desc &src_iter_desc,
7345 const memory::desc &weights_layer_desc,
7346 const memory::desc &weights_iter_desc,
7347 const memory::desc &bias_desc,
7348 const memory::desc &dst_layer_desc,
7349 const memory::desc &dst_iter_desc,
7350 const memory::desc &diff_src_layer_desc,
7351 const memory::desc &diff_src_iter_desc,
7352 const memory::desc &diff_weights_layer_desc,
7353 const memory::desc &diff_weights_iter_desc,
7354 const memory::desc &diff_bias_desc,
7355 const memory::desc &diff_dst_layer_desc,
7356 const memory::desc &diff_dst_iter_desc,
7358 float beta = 0.0f) {
7364 &src_iter_desc.data, &weights_layer_desc.data,
7365 &weights_iter_desc.data, &bias_desc.data,
7366 &dst_layer_desc.data, &dst_iter_desc.data,
7367 &diff_src_layer_desc.data, &diff_src_iter_desc.data,
7368 &diff_weights_layer_desc.data,
7369 &diff_weights_iter_desc.data, &diff_bias_desc.data,
7370 &diff_dst_layer_desc.data, &diff_dst_iter_desc.data,
7372 "could not create a descriptor for a vanilla RNN backward "
7373 "propagation primitive");
7378 struct primitive_desc :
public rnn_primitive_desc_base {
7396 const vanilla_rnn_forward::primitive_desc &hint_fwd_pd,
7397 bool allow_empty =
false)
7399 hint_fwd_pd.
get(), allow_empty) {}
7417 const vanilla_rnn_forward::primitive_desc &hint_fwd_pd,
7418 bool allow_empty =
false)
7420 hint_fwd_pd.
get(), allow_empty) {}
7512 struct lstm_forward :
public primitive {
7569 const memory::desc &src_layer_desc,
7570 const memory::desc &src_iter_desc,
7571 const memory::desc &src_iter_c_desc,
7572 const memory::desc &weights_layer_desc,
7573 const memory::desc &weights_iter_desc,
7574 const memory::desc &bias_desc,
7575 const memory::desc &dst_layer_desc,
7576 const memory::desc &dst_iter_desc,
7577 const memory::desc &dst_iter_c_desc,
7583 &src_iter_desc.data, &src_iter_c_desc.data,
7584 &weights_layer_desc.data, &weights_iter_desc.data,
7585 &bias_desc.data, &dst_layer_desc.data,
7586 &dst_iter_desc.data, &dst_iter_c_desc.data,
7588 "could not create a descriptor for an LSTM forward "
7589 "propagation primitive");
7594 struct primitive_desc :
public rnn_primitive_desc_base {
7608 bool allow_empty =
false)
7610 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
7625 &desc.data, &attr,
engine, nullptr, allow_empty) {}
7693 struct lstm_backward :
public primitive {
7781 const memory::desc &src_layer_desc,
7782 const memory::desc &src_iter_desc,
7783 const memory::desc &src_iter_c_desc,
7784 const memory::desc &weights_layer_desc,
7785 const memory::desc &weights_iter_desc,
7786 const memory::desc &bias_desc,
7787 const memory::desc &dst_layer_desc,
7788 const memory::desc &dst_iter_desc,
7789 const memory::desc &dst_iter_c_desc,
7790 const memory::desc &diff_src_layer_desc,
7791 const memory::desc &diff_src_iter_desc,
7792 const memory::desc &diff_src_iter_c_desc,
7793 const memory::desc &diff_weights_layer_desc,
7794 const memory::desc &diff_weights_iter_desc,
7795 const memory::desc &diff_bias_desc,
7796 const memory::desc &diff_dst_layer_desc,
7797 const memory::desc &diff_dst_iter_desc,
7798 const memory::desc &diff_dst_iter_c_desc,
7804 &src_iter_desc.data, &src_iter_c_desc.data,
7805 &weights_layer_desc.data, &weights_iter_desc.data,
7806 &bias_desc.data, &dst_layer_desc.data,
7807 &dst_iter_desc.data, &dst_iter_c_desc.data,
7808 &diff_src_layer_desc.data, &diff_src_iter_desc.data,
7809 &diff_src_iter_c_desc.data,
7810 &diff_weights_layer_desc.data,
7811 &diff_weights_iter_desc.data, &diff_bias_desc.data,
7812 &diff_dst_layer_desc.data, &diff_dst_iter_desc.data,
7813 &diff_dst_iter_c_desc.data,
7815 "could not create a descriptor for an LSTM backward "
7816 "propagation primitive");
7821 struct primitive_desc :
public rnn_primitive_desc_base {
7838 const lstm_forward::primitive_desc &hint_fwd_pd,
7839 bool allow_empty =
false)
7841 hint_fwd_pd.
get(), allow_empty) {}
7858 const lstm_forward::primitive_desc &hint_fwd_pd,
7859 bool allow_empty =
false)
7861 hint_fwd_pd.
get(), allow_empty) {}
7973 struct gru_forward :
public primitive {
8023 const memory::desc &src_layer_desc,
8024 const memory::desc &src_iter_desc,
8025 const memory::desc &weights_layer_desc,
8026 const memory::desc &weights_iter_desc,
8027 const memory::desc &bias_desc,
8028 const memory::desc &dst_layer_desc,
8029 const memory::desc &dst_iter_desc,
8035 &src_iter_desc.data, &weights_layer_desc.data,
8036 &weights_iter_desc.data, &bias_desc.data,
8037 &dst_layer_desc.data, &dst_iter_desc.data,
8039 "could not create a descriptor for a GRU forward "
8040 "propagation primitive");
8045 struct primitive_desc :
public rnn_primitive_desc_base {
8059 bool allow_empty =
false)
8061 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
8076 &desc.data, &attr,
engine, nullptr, allow_empty) {}
8134 struct gru_backward :
public primitive {
8206 const memory::desc &src_layer_desc,
8207 const memory::desc &src_iter_desc,
8208 const memory::desc &weights_layer_desc,
8209 const memory::desc &weights_iter_desc,
8210 const memory::desc &bias_desc,
8211 const memory::desc &dst_layer_desc,
8212 const memory::desc &dst_iter_desc,
8213 const memory::desc &diff_src_layer_desc,
8214 const memory::desc &diff_src_iter_desc,
8215 const memory::desc &diff_weights_layer_desc,
8216 const memory::desc &diff_weights_iter_desc,
8217 const memory::desc &diff_bias_desc,
8218 const memory::desc &diff_dst_layer_desc,
8219 const memory::desc &diff_dst_iter_desc,
8225 &src_iter_desc.data, &weights_layer_desc.data,
8226 &weights_iter_desc.data, &bias_desc.data,
8227 &dst_layer_desc.data, &dst_iter_desc.data,
8228 &diff_src_layer_desc.data, &diff_src_iter_desc.data,
8229 &diff_weights_layer_desc.data,
8230 &diff_weights_iter_desc.data, &diff_bias_desc.data,
8231 &diff_dst_layer_desc.data, &diff_dst_iter_desc.data,
8233 "could not create a descriptor for a GRU backward "
8234 "propagation primitive");
8239 struct primitive_desc :
public rnn_primitive_desc_base {
8256 const gru_forward::primitive_desc &hint_fwd_pd,
8257 bool allow_empty =
false)
8259 hint_fwd_pd.
get(), allow_empty) {}
8276 const gru_forward::primitive_desc &hint_fwd_pd,
8277 bool allow_empty =
false)
8279 hint_fwd_pd.
get(), allow_empty) {}
8371 struct lbr_gru_forward :
public primitive {
8421 const memory::desc &src_layer_desc,
8422 const memory::desc &src_iter_desc,
8423 const memory::desc &weights_layer_desc,
8424 const memory::desc &weights_iter_desc,
8425 const memory::desc &bias_desc,
8426 const memory::desc &dst_layer_desc,
8427 const memory::desc &dst_iter_desc,
8433 &src_iter_desc.data, &weights_layer_desc.data,
8434 &weights_iter_desc.data, &bias_desc.data,
8435 &dst_layer_desc.data, &dst_iter_desc.data,
8437 "could not create a descriptor for an LBR GRU forward "
8438 "propagation primitive");
8443 struct primitive_desc :
public rnn_primitive_desc_base {
8458 bool allow_empty =
false)
8460 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
8476 &desc.data, &attr,
engine, nullptr, allow_empty) {}
8534 struct lbr_gru_backward :
public primitive {
8607 const memory::desc &src_layer_desc,
8608 const memory::desc &src_iter_desc,
8609 const memory::desc &weights_layer_desc,
8610 const memory::desc &weights_iter_desc,
8611 const memory::desc &bias_desc,
8612 const memory::desc &dst_layer_desc,
8613 const memory::desc &dst_iter_desc,
8614 const memory::desc &diff_src_layer_desc,
8615 const memory::desc &diff_src_iter_desc,
8616 const memory::desc &diff_weights_layer_desc,
8617 const memory::desc &diff_weights_iter_desc,
8618 const memory::desc &diff_bias_desc,
8619 const memory::desc &diff_dst_layer_desc,
8620 const memory::desc &diff_dst_iter_desc,
8626 &src_iter_desc.data, &weights_layer_desc.data,
8627 &weights_iter_desc.data, &bias_desc.data,
8628 &dst_layer_desc.data, &dst_iter_desc.data,
8629 &diff_src_layer_desc.data, &diff_src_iter_desc.data,
8630 &diff_weights_layer_desc.data,
8631 &diff_weights_iter_desc.data, &diff_bias_desc.data,
8632 &diff_dst_layer_desc.data, &diff_dst_iter_desc.data,
8634 "could not create a descriptor for an LBR GRU backward "
8635 "propagation primitive");
8640 struct primitive_desc :
public rnn_primitive_desc_base {
8658 const lbr_gru_forward::primitive_desc &hint_fwd_pd,
8659 bool allow_empty =
false)
8661 hint_fwd_pd.
get(), allow_empty) {}
8679 const lbr_gru_forward::primitive_desc &hint_fwd_pd,
8680 bool allow_empty =
false)
8682 hint_fwd_pd.
get(), allow_empty) {}
8784 struct shuffle_forward :
public primitive {
8808 &data_desc.data, axis, group_size),
8809 "could not create a descriptor for a shuffle forward "
8810 "propagation primitive");
8831 const primitive_attr &attr = primitive_attr(),
8832 bool allow_empty =
false)
8834 &desc.data, &attr,
engine, nullptr, allow_empty) {}
8864 struct shuffle_backward :
public primitive {
8883 desc(
const memory::desc &diff_data_desc,
int axis,
int group_size) {
8885 &diff_data_desc.data, axis, group_size),
8886 "could not create a descriptor for a shuffle backward "
8887 "propagation primitive");
8911 const shuffle_forward::primitive_desc &hint_fwd_pd,
8912 const primitive_attr &attr = primitive_attr(),
8913 bool allow_empty =
false)
8954 struct binary :
public primitive {
8975 const memory::desc &src1,
const memory::desc &dst) {
8978 &src0.data, &src1.data, &dst.data),
8979 "could not create a descriptor for a binary operation "
8999 bool allow_empty =
false)
9001 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
9016 &desc.data, &attr,
engine, nullptr, allow_empty) {}
9060 struct matmul :
public primitive {
9077 desc(
const memory::desc &src_desc,
const memory::desc &weights_desc,
9078 const memory::desc &dst_desc) {
9081 &weights_desc.data,
nullptr, &dst_desc.data),
9082 "could not create a descriptor for a matmul primitive");
9099 desc(
const memory::desc &src_desc,
const memory::desc &weights_desc,
9100 const memory::desc &bias_desc,
const memory::desc &dst_desc) {
9102 &weights_desc.data, &bias_desc.data,
9104 "could not create a descriptor for a matmul primitive");
9122 bool allow_empty =
false)
9124 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
9138 &desc.data, &attr,
engine, nullptr, allow_empty) {}
9185 struct resampling_forward :
public primitive {
9212 const memory::desc &src_desc,
const memory::desc &dst_desc) {
9216 &src_desc.data, &dst_desc.data),
9217 "could not create a resampling forward descriptor");
9235 const std::vector<float> &factors,
9236 const memory::desc &src_desc) {
9240 &src_desc.data,
nullptr),
9241 "could not create a resampling forward descriptor");
9267 const std::vector<float> &factors,
const memory::desc &src_desc,
9268 const memory::desc &dst_desc) {
9272 &src_desc.data, &dst_desc.data),
9273 "could not create a resampling forward descriptor");
9293 bool allow_empty =
false)
9295 &desc.data, nullptr,
engine, nullptr, allow_empty) {}
9310 &desc.data, &attr,
engine, nullptr, allow_empty) {}
9340 struct resampling_backward :
public primitive {
9360 const memory::desc &diff_dst_desc) {
9363 &diff_src_desc.data, &diff_dst_desc.data),
9364 "could not create a resampling backward data descriptor");
9383 const memory::desc &diff_src_desc,
9384 const memory::desc &diff_dst_desc) {
9387 &diff_src_desc.data, &diff_dst_desc.data),
9388 "could not create a resampling backward data descriptor");
9410 const resampling_forward::primitive_desc &hint_fwd_pd,
9411 bool allow_empty =
false)
9413 hint_fwd_pd.
get(), allow_empty) {}
9430 const resampling_forward::primitive_desc &hint_fwd_pd,
9431 bool allow_empty =
false)
9541 return static_cast<status>(
9559 transa, transb, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc));
9566 float beta, int32_t *C,
dnnl_dim_t ldc,
const int32_t *co) {
9568 K, alpha, A, lda, ao, B, ldb, bo, beta, C, ldc, co));
9575 float beta, int32_t *C,
dnnl_dim_t ldc,
const int32_t *co) {
9577 K, alpha, A, lda, ao, B, ldb, bo, beta, C, ldc, co));
9588 "could not create a primitive");
9595 stream &stream,
const std::unordered_map<int, memory> &args)
const {
9596 std::vector<dnnl_exec_arg_t> c_args;
9597 c_args.reserve(args.size());
9598 for (
const auto &a : args)
9599 c_args.push_back({a.first, a.second.get(
true)});
9602 (int)c_args.size(), c_args.data()),
9603 "could not execute a primitive");
9607 #undef DNNL_DEFINE_BITMASK_OPS
runtime estimation (seconds)
Definition: dnnl_types.h:1890
destination engine
Definition: dnnl_types.h:1902
void set_data_handle(void *handle) const
Sets memory buffer.
Definition: dnnl.hpp:2321
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.
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:7466
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:9571
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.
3D RNN data tensor in the format (batch, seq_length, input channels).
primitive_desc()=default
Default constructor. Produces an empty object.
6D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:303
The library manages scratchpad (default) The allocation policy is controlled by the DNNL_ENABLE_CONCU...
Definition: dnnl_types.h:1625
destination grad. memory desc
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:3492
void set_rnn_data_qparams(float scale, float shift)
Sets quantization scale and shift parameters for RNN data tensors.
Definition: dnnl.hpp:1209
logsoftmax_backward()=default
Default constructor. Produces an empty object.
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:7042
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:6972
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.
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5575
vanilla_rnn_backward()=default
Default constructor. Produces an empty object.
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:8107
32-bit signed integer.
Definition: dnnl_types.h:71
desc(prop_kind prop_kind, rnn_direction direction, const memory::desc &src_layer_desc, const memory::desc &src_iter_desc, const memory::desc &src_iter_c_desc, const memory::desc &weights_layer_desc, const memory::desc &weights_iter_desc, const memory::desc &bias_desc, const memory::desc &dst_layer_desc, const memory::desc &dst_iter_desc, const memory::desc &dst_iter_c_desc, rnn_flags flags=rnn_flags::undef)
Constructs a descriptor for an LSTM forward propagation primitive.
Definition: dnnl.hpp:7567
The operation was successful.
void execute(stream stream, memory &src, memory &dst) const
Executes the reorder primitive.
Definition: dnnl.hpp:2907
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:4773
rnn_direction
A direction of RNN primitive execution.
Definition: dnnl.hpp:679
primitive_desc()=default
Default constructor. Produces an empty object.
convolution_backward_data()=default
Default constructor. Produces an empty object.
desc reshape(const memory::dims &dims) const
Constructs a memory descriptor by reshaping existing one.
Definition: dnnl.hpp:2184
desc(prop_kind prop_kind, algorithm algorithm, const memory::desc &data_desc, memory::dim local_size, float alpha, float beta, float k=1.f)
Constructs a descriptor for a LRN forward propagation primitive.
Definition: dnnl.hpp:4712
Any ISA (no restrictions)
size_t get_size() const
Returns size of the memory descriptor in bytes.
Definition: dnnl.hpp:2210
pooling descriptor
Definition: dnnl_types.h:1914
number of inputs expected
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:7450
Backward propagation (with respect to all parameters).
5D tensor blocked by 1st dimension with block size 8
Definition: dnnl_types.h:264
cl::sycl::buffer< T, ndims > get_sycl_buffer(size_t *offset=nullptr) const
Returns the underlying SYCL buffer object.
Definition: dnnl.hpp:2395
memory::desc diff_dst_iter_c_desc() const
Returns diff destination recurrent cell state memory descriptor.
Definition: dnnl.hpp:7957
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc variance_desc() const
Returns memory descriptor for variance.
Definition: dnnl.hpp:6505
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:7458
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:8355
const char * what() const noexcept override
Returns the explanatory string.
Definition: dnnl.hpp:103
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:8340
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.
const_dnnl_primitive_desc_t get_primitive_desc() const
Returns the C API primitive descriptor of the underlying C API primitive.
Definition: dnnl.hpp:377
Bidirectional execution of RNN primitive with concatenation of the results.
source gradient memory desc
memory consumption – extra
Definition: dnnl_types.h:1891
8-bit signed integer.
Definition: dnnl_types.h:73
prop_kind
Propagation kind.
Definition: dnnl.hpp:443
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5012
int len() const
Returns the number of post-ops entries.
Definition: dnnl.hpp:845
dnnl_status_t DNNL_API dnnl_dilated_deconvolution_forward_desc_init(dnnl_deconvolution_desc_t *deconv_desc, dnnl_prop_kind_t prop_kind, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated deconvolution forward propagation primitive.
dnnl_format_tag_t
Memory format tag specification.
Definition: dnnl_types.h:163
16-bit/half-precision floating point.
Definition: dnnl_types.h:65
An inner product primitive.
Definition: dnnl_types.h:690
primitive_desc()=default
Default constructor. Produces an empty object.
The operation failed because requested functionality is not implemented.
Definition: dnnl_types.h:46
memory desc of an execute argument
desc(prop_kind prop_kind, rnn_direction direction, const memory::desc &src_layer_desc, const memory::desc &src_iter_desc, const memory::desc &weights_layer_desc, const memory::desc &weights_iter_desc, const memory::desc &bias_desc, const memory::desc &dst_layer_desc, const memory::desc &dst_iter_desc, const memory::desc &diff_src_layer_desc, const memory::desc &diff_src_iter_desc, const memory::desc &diff_weights_layer_desc, const memory::desc &diff_weights_iter_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_layer_desc, const memory::desc &diff_dst_iter_desc, rnn_flags flags=rnn_flags::undef)
Constructs a descriptor for a GRU backward propagation primitive.
Definition: dnnl.hpp:8204
permuted 5D tensor
Definition: dnnl_types.h:200
primitive_desc()=default
Default constructor. Produces an empty object.
An opaque structure to describe a primitive descriptor iterator.
3D RNN data tensor in the format (seq_length, batch, input channels).
A batch normalization primitive.
Definition: dnnl_types.h:686
logsoftmax descriptor
Definition: dnnl_types.h:1922
desc(algorithm algorithm, const memory::desc &data_desc, const memory::desc &diff_data_desc, memory::dim local_size, float alpha, float beta, float k=1.f)
Constructs a descriptor for an LRN backward propagation primitive.
Definition: dnnl.hpp:4816
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:9562
memory::desc diff_src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:4882
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:9147
dnnl_status_t DNNL_API dnnl_lstm_forward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *src_iter_c_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, unsigned flags)
Initializes a descriptor for LSTM forward propagation primitive.
dnnl_status_t
Status values returned by the library functions.
Definition: dnnl_types.h:38
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:7006
source engine
Definition: dnnl_types.h:1901
engine get_src_engine() const
Returns the engine on which the source memory is allocated.
Definition: dnnl.hpp:2864
5D CNN weights tensor; an alias for dnnl::memory::format_tag::abcde
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:8097
An execution engine.
Definition: dnnl.hpp:1273
Intel(R) Advanced Vector Extensions.
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:5133
desc(prop_kind prop_kind, algorithm activation, rnn_direction direction, const memory::desc &src_layer_desc, const memory::desc &src_iter_desc, const memory::desc &weights_layer_desc, const memory::desc &weights_iter_desc, const memory::desc &bias_desc, const memory::desc &dst_layer_desc, const memory::desc &dst_iter_desc, const memory::desc &diff_src_layer_desc, const memory::desc &diff_src_iter_desc, const memory::desc &diff_weights_layer_desc, const memory::desc &diff_weights_iter_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_layer_desc, const memory::desc &diff_dst_iter_desc, rnn_flags flags=rnn_flags::undef, float alpha=0.0f, float beta=0.0f)
Constructs a descriptor for a vanilla RNN backward propagation primitive.
Definition: dnnl.hpp:7341
desc()=default
Default constructor. Produces an empty object.
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.
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:1107
A softmax primitive.
Definition: dnnl_types.h:680
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:6906
static void validate_dims(const std::vector< T > &v)
Helper function that validates that an std::vector of dimensions can be safely converted to the C API...
Definition: dnnl.hpp:1619
rnn descriptor
Definition: dnnl_types.h:1919
#define DNNL_ARG_TO
A special mnemonic for reorder destination argument.
Definition: dnnl_types.h:1716
Primitive or engine failed on execution.
#define DNNL_MAX_NDIMS
Maximum number of dimensions a tensor can have.
Definition: dnnl_types.h:838
A user shall query and provide the scratchpad memory to primitives This mode is thread-safe as long a...
Definition: dnnl_types.h:1629
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:7932
reorder destination engine
kind
Kinds of primitives.
Definition: dnnl.hpp:266
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:8089
post_ops()
Constructs an empty sequence of post-ops.
Definition: dnnl.hpp:837
status set_jit_profiling_jitdumpdir(const std::string &dir)
Sets JIT dump output path.
Definition: dnnl.hpp:9512
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:8299
permuted 6D tensor
Definition: dnnl_types.h:201
5D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:266
dnnl_memory_desc_t data
The underlying C API data structure.
Definition: dnnl.hpp:2108
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:7669
An opaque structure to describe an engine.
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:6491
logsoftmax_forward()=default
Default constructor. Produces an empty object.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:7246
const dnnl_version_t DNNL_API * dnnl_version()
Returns library version information.
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:5369
stream & wait()
Waits for all primitives executing in the stream to finish.
Definition: dnnl.hpp:1501
Eltwise: ReLU.
Definition: dnnl_types.h:719
permuted 3D tensor
Definition: dnnl_types.h:186
A descriptor of a matrix multiplication operation.
Definition: dnnl_types.h:1501
Elementwise: parametric exponential linear unit (elu)
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:8102
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.
Eltwise: abs.
Definition: dnnl_types.h:727
cl::sycl::device DNNL_API get_sycl_device() const
Returns the underlying SYCL device object.
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:3663
6D CNN weights tensor with groups; an alias for dnnl::memory::format_tag::abcdef
dnnl_normalization_flags_t
Flags for batch normalization primitive.
Definition: dnnl_types.h:788
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:7952
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:8715
The operation failed because requested functionality is not implemented.
A shuffle primitive.
Definition: dnnl_types.h:668
shuffle descriptor
Definition: dnnl_types.h:1911
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:9445
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:7891
A descriptor of a convolution operation.
Definition: dnnl_types.h:1060
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:3666
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:3486
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:7014
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6093
dnnl_primitive_kind_t
Kinds of primitives.
Definition: dnnl_types.h:662
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:5136
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:4649
dnnl_rnn_flags_t
Flags for RNN cell.
Definition: dnnl_types.h:1382
Max pooling.
Definition: dnnl_types.h:752
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.
32-bit/single-precision floating point.
dnnl_query_t
Primitive descriptor query specification.
Definition: dnnl_types.h:1881
desc(prop_kind prop_kind, const memory::desc &data_desc, const memory::desc &stat_desc, float epsilon, normalization_flags flags)
Constructs a descriptor for layer normalization forward propagation primitive.
Definition: dnnl.hpp:6192
Elementwise: bounded_relu.
1D tensor; an alias for dnnl::memory::format_tag::a
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.
non-standard 16-bit (bfloat16 w/ 7 bit mantissa) floating point.
Definition: dnnl_types.h:67
rnn_flags
RNN cell flags.
Definition: dnnl.hpp:625
A descriptor for an RNN operation.
Definition: dnnl_types.h:1404
permuted 5D tensor
Definition: dnnl_types.h:196
dnnl_rnn_direction_t
A direction of RNN primitive execution.
Definition: dnnl_types.h:1388
desc()=default
Default constructor. Produces an empty object.
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7643
cpu_isa
CPU instruction set flags.
Definition: dnnl.hpp:9517
A sum primitive.
Definition: dnnl_types.h:672
Forward data propagation (training mode).
Packed weights format used in RNN.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:8118
Backward weights propagation.
Definition: dnnl_types.h:655
layer normalization descriptor
primitive_desc()=default
Default constructor. Produces an empty object.
plain 1D tensor
Definition: dnnl_types.h:176
bool next_impl()
Advances the primitive iterator to the next implementation.
Definition: dnnl.hpp:3196
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:8758
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6295
desc(prop_kind prop_kind, rnn_direction direction, const memory::desc &src_layer_desc, const memory::desc &src_iter_desc, const memory::desc &weights_layer_desc, const memory::desc &weights_iter_desc, const memory::desc &bias_desc, const memory::desc &dst_layer_desc, const memory::desc &dst_iter_desc, const memory::desc &diff_src_layer_desc, const memory::desc &diff_src_iter_desc, const memory::desc &diff_weights_layer_desc, const memory::desc &diff_weights_iter_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_layer_desc, const memory::desc &diff_dst_iter_desc, rnn_flags flags=rnn_flags::undef)
Constructs a descriptor for LBR GRU backward propagation primitive.
Definition: dnnl.hpp:8605
A descriptor of an inner product operation.
Definition: dnnl_types.h:1348
void set_ocl_mem_object(cl_mem mem_object)
Sets the OpenCL memory object mem_object associated with the memory.
Definition: dnnl.hpp:2383
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:7664
GPU engine.
Definition: dnnl_types.h:1559
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 objects and writes any changes to the previously mapped buffer back.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:5015
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:8325
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:3133
Local response normalization (LRN) across multiple channels.
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:7028
4D CNN activations tensor; an alias for dnnl::memory::format_tag::acdb
memory::dims dims() const
Returns dimensions of the memory descriptor.
Definition: dnnl.hpp:2196
deconvolution_backward_weights()=default
Default constructor. Produces an empty object.
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5259
weights grad. memory desc
Definition: dnnl_types.h:1931
dnnl_query_t convert_to_c(query query)
Converts query enum value from C++ API to C API type.
Definition: dnnl.hpp:807
propagation kind
Definition: dnnl_types.h:1904
2D CNN weights tensor; an alias for dnnl::memory::format_tag::ba
Eltwise: logistic.
Definition: dnnl_types.h:737
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:8502
desc(prop_kind prop_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, const memory::desc &stat_desc, float epsilon, normalization_flags flags)
Constructs a descriptor for layer normalization backward propagation primitive.
Definition: dnnl.hpp:6372
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:7886
An element-wise primitive.
Definition: dnnl_types.h:678
kind
Kinds of engines.
Definition: dnnl.hpp:1278
3D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:209
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:8748
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:6105
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:7225
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:7873
memory::desc variance_desc() const
Returns memory descriptor for variance.
Definition: dnnl.hpp:5956
4D CNN weights tensor; an alias for dnnl::memory::format_tag::acdb
Convolution algorithm(either direct or Winograd) is chosen just in time.
Definition: dnnl_types.h:713
permuted 4D tensor
Definition: dnnl_types.h:198
Eltwise: square root.
Definition: dnnl_types.h:729
Undefined memory format tag.
Intel(R) Advanced Vector Extensions 512 for Intel(R) Xeon(R) Processor Scalable Family and Intel(R) C...
Definition: dnnl_types.h:2048
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:8489
lstm_backward()=default
Default constructor. Produces an empty object.
stream()=default
Constructs an empty stream.
Eltwise: bounded_relu.
Definition: dnnl_types.h:733
status set_max_cpu_isa(cpu_isa isa)
Sets the maximal ISA DNNL can dispatch to on the CPU.
Definition: dnnl.hpp:9539
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5796
desc()=default
Default constructor. Produces an empty object.
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:6769
dnnl_status_t DNNL_API dnnl_lstm_backward_desc_init(dnnl_rnn_desc_t *rnn_desc, dnnl_prop_kind_t prop_kind, dnnl_rnn_direction_t direction, const dnnl_memory_desc_t *src_layer_desc, const dnnl_memory_desc_t *src_iter_desc, const dnnl_memory_desc_t *src_iter_c_desc, const dnnl_memory_desc_t *weights_layer_desc, const dnnl_memory_desc_t *weights_iter_desc, const dnnl_memory_desc_t *bias_desc, const dnnl_memory_desc_t *dst_layer_desc, const dnnl_memory_desc_t *dst_iter_desc, const dnnl_memory_desc_t *dst_iter_c_desc, const dnnl_memory_desc_t *diff_src_layer_desc, const dnnl_memory_desc_t *diff_src_iter_desc, const dnnl_memory_desc_t *diff_src_iter_c_desc, const dnnl_memory_desc_t *diff_weights_layer_desc, const dnnl_memory_desc_t *diff_weights_iter_desc, const dnnl_memory_desc_t *diff_bias_desc, const dnnl_memory_desc_t *diff_dst_layer_desc, const dnnl_memory_desc_t *diff_dst_iter_desc, const dnnl_memory_desc_t *diff_dst_iter_c_desc, unsigned flags)
Initializes a descriptor for LSTM backward propagation primitive.
primitive_desc()=default
Default constructor. Produces an empty object.
primitive_attr get_primitive_attr() const
Returns the primitive attributes.
Definition: dnnl.hpp:2659
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:8309
desc()=default
Default constructor. Produces an empty object.
2D CNN activations tensor; an alias for dnnl::memory::format_tag::ba
Forward data propagation (inference mode).
Definition: dnnl_types.h:645
for creating scratchpad memory
Definition: dnnl_types.h:1899
destination memory desc
Definition: dnnl_types.h:1932
resampling descriptor
Definition: dnnl_types.h:1924
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:7000
void set_scratchpad_mode(scratchpad_mode mode)
Sets scratchpad mode.
Definition: dnnl.hpp:973
scratchpad_mode
Scratchpad mode.
Definition: dnnl.hpp:410
memory::desc diff_src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5130
inner product descriptor
Definition: dnnl_types.h:1918
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7222
Average pooling exclude padding.
Undefined RNN flags.
Definition: dnnl_types.h:1384
5D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcde16b
Definition: dnnl_types.h:460
dnnl_primitive_kind_t convert_to_c(primitive::kind kind)
Converts primitive kind enum value from C++ API to C API type.
Definition: dnnl.hpp:373
convolution descriptor
Definition: dnnl_types.h:1909
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:8350
memory::desc mean_desc() const
Returns memory descriptor for mean.
Definition: dnnl.hpp:5952
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:4770
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:2647
sum()=default
Default constructor. Produces an empty object.
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:7471
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:7461
Elementwise: natural logarithm.
primitive_desc()=default
Default constructor. Produces an empty object.
permuted 4D tensor
Definition: dnnl_types.h:195
4D CNN weights tensor; an alias for dnnl::memory::format_tag::abcd
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:7235
deconvolution_forward()=default
Default constructor. Produces an empty object.
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.
Bidirectional execution of RNN primitive with concatenation of the results.
Definition: dnnl_types.h:1395
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:2602
A descriptor of a pooling operation.
Definition: dnnl_types.h:1209
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:3929
GRU cell with linear before reset.
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:4646
primitive_desc_base()=default
Default constructor. Produces an empty object.
3D CNN activations tensor; an alias for dnnl::memory::format_tag::abc
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:1143
kind get_kind() const
Returns the kind of the engine.
Definition: dnnl.hpp:1355
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:7453
dnnl_data_type_t
Data type specification.
Definition: dnnl_types.h:61
permuted 2D tensor
Definition: dnnl_types.h:191
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:6806
LRN within a single channel.
Definition: dnnl_types.h:762
dnnl_status_t DNNL_API dnnl_memory_destroy(dnnl_memory_t memory)
Destroys a memory object.
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:2626
void set_post_ops(const post_ops ops)
Sets post-ops.
Definition: dnnl.hpp:1171
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.
Binary mul.
Definition: dnnl_types.h:780
dnnl::primitive::kind get_kind() const
Returns the kind of the primitive descriptor.
Definition: dnnl.hpp:2671
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...
Undefined memory format tag.
Definition: dnnl_types.h:165
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.
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.
Packed weights format used in RNN.
Definition: dnnl_types.h:92
Use scale and shift parameters.
Definition: dnnl_types.h:813
Eltwise: natural logarithm.
Definition: dnnl_types.h:748
layer normalization descriptor
Definition: dnnl_types.h:1917
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:4885
dnnl_status_t DNNL_API dnnl_memory_set_data_handle(dnnl_memory_t memory, void *handle)
Sets memory object's data handle.
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:2878
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:2875
4D tensor blocked by 1st and 2nd dimension with block size 8
Definition: dnnl_types.h:252
cl_device_id get_ocl_device() const
Returns the OpenCL device associated with the engine.
Definition: dnnl.hpp:1374
Linear Resampling Method.
Definition: dnnl_types.h:784
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:6763
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:2608
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:8345
3D CNN activations tensor; an alias for dnnl::memory::format_tag::acb
lstm_forward()=default
Default constructor. Produces an empty object.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:2632
desc(prop_kind prop_kind, const memory::desc &data_desc, float epsilon, normalization_flags flags)
Constructs a batch normalization descriptor for forward propagation.
Definition: dnnl.hpp:5878
16-bit/half-precision floating point.
Forward data propagation (training mode).
Definition: dnnl_types.h:641
query
Primitive descriptor query specification.
Definition: dnnl.hpp:712
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:8115
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:2419
permuted 3D tensor
Definition: dnnl_types.h:192
Eltwise: square.
Definition: dnnl_types.h:725
Undefined memory format kind, used for empty memory descriptors.
Fuse with ReLU.
Definition: dnnl_types.h:826
4D CNN weights tensor; an alias for dnnl::memory::format_tag::bcda
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.
Intel(R) Advanced Vector Extensions 512 subset for Intel(R) Xeon Phi(TM) Processors 7235,...
Definition: dnnl_types.h:2044
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:8497
non-standard 16-bit floating point with 7-bit mantissa.
4D CNN weights tensor; an alias for dnnl::memory::format_tag::cdba
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:8515
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6651
dnnl_status_t DNNL_API dnnl_stream_destroy(dnnl_stream_t stream)
Destroys an execution stream.
dnnl_status_t DNNL_API dnnl_primitive_attr_destroy(dnnl_primitive_attr_t attr)
Destroys primitive attributes.
Weights format used in 8bit Winograd convolution.
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.
number of outputs expected
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:6964
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,...
Weights format used in 8bit Winograd convolution.
Definition: dnnl_types.h:90
Winograd convolution.
Definition: dnnl_types.h:711
desc(prop_kind prop_kind, algorithm algorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Constructs a descriptor for a deconvolution forward propagation primitive with bias.
Definition: dnnl.hpp:4003
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:5799
5D tensor blocked by 1st dimension with block size 16
Definition: dnnl_types.h:262
4D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcd8b
Definition: dnnl_types.h:475
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:1553
A binary primitive.
Definition: dnnl_types.h:696
permuted 5D tensor
Definition: dnnl_types.h:199
Forward data propagation (inference mode).
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:7481
memory::desc mean_desc() const
Returns memory descriptor for mean.
Definition: dnnl.hpp:6502
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: dnnl_types.h:721
error(dnnl_status_t status, const char *message)
Constructs an instance of an exception class.
Definition: dnnl.hpp:99
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:8312
3D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:213
dnnl_version_t version_t
Structure containing version information as per Semantic Versioning
Definition: dnnl.hpp:9471
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5009
primitive_desc()=default
Default constructor. Produces an empty object.
plain 5D tensor
Definition: dnnl_types.h:180
desc(prop_kind prop_kind, algorithm algorithm, const memory::desc &src_desc, const memory::desc &dst_desc, const memory::dims &strides, const memory::dims &kernel, const memory::dims &padding_l, const memory::dims &padding_r)
Constructs a descriptor for pooling forward propagation primitive.
Definition: dnnl.hpp:4945
3D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBc8b
Definition: dnnl_types.h:484
dnnl_status_t DNNL_API dnnl_post_ops_append_eltwise(dnnl_post_ops_t post_ops, float scale, dnnl_alg_kind_t alg_kind, float alpha, float beta)
Appends an elementwise post-op.
dnnl_dims_t dims
Dimensions in the following order:
Definition: dnnl_types.h:993
Default order execution.
Definition: dnnl_types.h:1950
Intel(R) Advanced Vector Extensions 512 with Intel(R) DL Boost Support for Intel(R) Xeon(R) Processor...
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.
Nearest Neighbor resampling method.
A pooling primitive.
Definition: dnnl_types.h:682
permuted 4D tensor
Definition: dnnl_types.h:189
lrn descriptor
Definition: dnnl_types.h:1915
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.
Backward propagation (with respect to all parameters).
Definition: dnnl_types.h:651
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5939
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6766
A descriptor of a Softmax operation.
Definition: dnnl_types.h:1179
Intel(R) Advanced Vector Extensions 512 with Intel(R) DL Boost and Bfloat16 Support for Intel(R) Xeon...
Definition: dnnl_types.h:2058
dnnl_status_t DNNL_API dnnl_memory_get_data_handle(const_dnnl_memory_t memory, void **handle)
Returns memory object's data handle.
Primitive iterator passed over last primitive descriptor.
Definition: dnnl_types.h:48
data_type
Data type specification.
Definition: dnnl.hpp:1625
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:1365
dnnl_status_t DNNL_API dnnl_stream_create(dnnl_stream_t *stream, dnnl_engine_t engine, unsigned flags)
Creates an execution stream for engine and with flags.
dnnl_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.
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6099
dnnl_status_t DNNL_API dnnl_stream_wait(dnnl_stream_t stream)
Waits for all primitives in the execution stream to finish computations.
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:7020
An opaque structure to describe a primitive descriptor.
4D CNN activations tensor; an alias for dnnl::memory::format_tag::bcda
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:1396
5D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcde8b
Definition: dnnl_types.h:466
Average pooling (alias for dnnl_pooling_avg_exclude_padding)
Definition: dnnl_types.h:758
RNN cell.
Definition: dnnl_types.h:764
weights memory descriptor desc
Intel(R) Advanced Vector Extensions 2.
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.
Alias for dnnl_unidirectional_left2right.
Definition: dnnl_types.h:1400
An inner product primitive.
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:7677
memory::desc dst_iter_c_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7672
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:7912
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:6494
desc get_desc() const
Returns the associated memory descriptor.
Definition: dnnl.hpp:2292
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:8850
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:7032
4D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:235
void execute(stream &stream, const std::unordered_map< int, memory > &args) const
Executes computations specified by the primitive in a specified stream.
memory::desc mean_desc() const
Returns memory descriptor for mean.
Definition: dnnl.hpp:6304
A layer normalization 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:6968
format_tag
Memory format tag specification.
Definition: dnnl.hpp:1699
matrix multiplication (matmul) descriptor
Definition: dnnl_types.h:1923
void unmap_data(void *mapped_ptr) const
Unmaps the previously mapped data for the memory.
Definition: dnnl.hpp:2364
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8094
binary descriptor
Definition: dnnl_types.h:1921
GRU cell with linear before reset.
Definition: dnnl_types.h:776
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 propagation.
Forward data propagation (alias for dnnl_forward_training).
Definition: dnnl_types.h:649
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:9326
32-bit/single-precision floating point.
Definition: dnnl_types.h:69
batch normalization descriptor
permuted 6D tensor
Definition: dnnl_types.h:188
normalization_flags
Flags for normalization primitives.
Definition: dnnl.hpp:571
Use global statistics.
Definition: dnnl_types.h:800
Local response normalization (LRN) across multiple channels.
Definition: dnnl_types.h:760
memory::desc mean_desc() const
Returns memory descriptor for mean.
Definition: dnnl.hpp:6113
A (out-of-place) concat primitive.
Definition: dnnl_types.h:670
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:4387
destination grad. memory desc
Definition: dnnl_types.h:1933
Undefined memory format kind, used for empty memory descriptors.
Definition: dnnl_types.h:81
6D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:296
A layer normalization primitive.
Definition: dnnl_types.h:688
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:4213
dnnl_status_t DNNL_API dnnl_set_max_cpu_isa(dnnl_cpu_isa_t isa)
Sets the maximal ISA DNNL can dispatch to on the CPU.
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:8753
dnnl_data_type_t data_type
Data type of the tensor elements.
Definition: dnnl_types.h:996
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.
Primitive iterator passed over last primitive descriptor.
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:7476
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:4390
convolution_forward()=default
Default constructor. Produces an empty object.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:4776
Any ISA (no restrictions)
Definition: dnnl_types.h:2027
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.
deconvolution_backward_data()=default
Default constructor. Produces an empty object.
op descriptor
Definition: dnnl_types.h:1908
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:7432
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:1091
4D CNN weights tensor; an alias for dnnl::memory::format_tag::bacd
The operation failed due to an out-of-memory condition.
Definition: dnnl_types.h:42
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:6976
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition: dnnl_types.h:870
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.
5D RNN weights tensor in the format (num_layers, num_directions, input_channels, num_gates,...
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.
4D tensor blocked by 2nd dimension with block size 8
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:8320
vanilla_rnn_forward()=default
Default constructor. Produces an empty object.
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5256
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.
plain 4D tensor
Definition: dnnl_types.h:179
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:7437
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:8304
8-bit unsigned integer.
Definition: dnnl_types.h:75
workspace memory desc
Definition: dnnl_types.h:1934
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:7638
5D CNN weights tensor with groups; an alias for dnnl::memory::format_tag::decab
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:9160
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5363
Just a sentinel, not real memory format tag.
Definition: dnnl_types.h:350
handle()=default
Constructs an empty handle object.
primitive_desc()=default
Default constructor. Produces an empty object.
desc(prop_kind prop_kind, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc)
Constructs a descriptor for an inner product forward propagation primitive with bias.
Definition: dnnl.hpp:6560
deconvolution descriptor
Definition: dnnl_types.h:1910
A logsoftmax primitive.
Definition: dnnl_types.h:698
Undefined memory format tag.
Definition: dnnl_types.h:168
Direct deconvolution.
Definition: dnnl_types.h:715
desc(prop_kind prop_kind, rnn_direction direction, const memory::desc &src_layer_desc, const memory::desc &src_iter_desc, const memory::desc &weights_layer_desc, const memory::desc &weights_iter_desc, const memory::desc &bias_desc, const memory::desc &dst_layer_desc, const memory::desc &dst_iter_desc, rnn_flags flags=rnn_flags::undef)
Constructs a descriptor for a GRU forward propagation primitive.
Definition: dnnl.hpp:8021
memory::desc dst_iter_c_desc() const
Returns destination recurrent cell state memory descriptor.
Definition: dnnl.hpp:6996
desc(prop_kind prop_kind, rnn_direction direction, const memory::desc &src_layer_desc, const memory::desc &src_iter_desc, const memory::desc &weights_layer_desc, const memory::desc &weights_iter_desc, const memory::desc &bias_desc, const memory::desc &dst_layer_desc, const memory::desc &dst_iter_desc, rnn_flags flags=rnn_flags::undef)
Constructs a descriptor for LBR GRU forward propagation primitive.
Definition: dnnl.hpp:8419
int DNNL_API dnnl_memory_desc_equal(const dnnl_memory_desc_t *lhs, const dnnl_memory_desc_t *rhs)
Compares two memory descriptors.
A reorder primitive.
Definition: dnnl_types.h:666
memory::desc bias_desc() const
Returns the bias memory descriptor.
Definition: dnnl.hpp:9155
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.
5D RNN weights tensor in the format (num_layers, num_directions, num_gates, output_channels,...
A descriptor of a Local Response Normalization (LRN) operation.
Definition: dnnl_types.h:1247
desc(algorithm algorithm, const memory::desc &diff_data_desc, const memory::desc &data_desc, float alpha=0, float beta=0)
Constructs a descriptor for an elementwise backward propagation primitive.
Definition: dnnl.hpp:5295
desc(prop_kind prop_kind, algorithm algorithm, const memory::desc &data_desc, float alpha=0, float beta=0)
Constructs a descriptor for an elementwise forward propagation primitive.
Definition: dnnl.hpp:5196
Default stream configuration.
Definition: dnnl_types.h:1956
Intel(R) Advanced Vector Extensions 512 subset for Intel(R) Xeon Phi(TM) Processors x200 Series.
A descriptor of a shuffle operation.
Definition: dnnl_types.h:1113
desc(prop_kind prop_kind, algorithm algorithm, const memory::desc &src_desc, const memory::desc &weights_desc, const memory::desc &bias_desc, const memory::desc &dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Constructs a descriptor for a convolution forward propagation primitive with bias.
Definition: dnnl.hpp:3270
memory::desc src_iter_c_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7881
5D CNN weights tensor; an alias for dnnl::memory::format_tag::bcdea
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5691
gru_backward()=default
Default constructor. Produces an empty object.
Backward data propagation.
Definition: dnnl_types.h:653
Use scale and shift parameters.
softmax_backward()=default
Default constructor. Produces an empty object.
permuted 5D tensor
Definition: dnnl_types.h:190
Structure containing version information as per Semantic Versioning
Definition: dnnl_types.h:1995
desc(prop_kind prop_kind, algorithm activation, rnn_direction direction, const memory::desc &src_layer_desc, const memory::desc &src_iter_desc, const memory::desc &weights_layer_desc, const memory::desc &weights_iter_desc, const memory::desc &bias_desc, const memory::desc &dst_layer_desc, const memory::desc &dst_iter_desc, rnn_flags flags=rnn_flags::undef, float alpha=0.0f, float beta=0.0f)
Constructs a descriptor for a vanilla RNN forward propagation primitive.
Definition: dnnl.hpp:7145
A descriptor of a Batch Normalization operation.
Definition: dnnl_types.h:1278
memory consumption (bytes)
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:2620
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:2614
desc(prop_kind prop_kind, const memory::desc &diff_data_desc, const memory::desc &data_desc, float epsilon, normalization_flags flags)
Constructs a batch normalization descriptor for backward propagation.
Definition: dnnl.hpp:6022
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.
Backward bias propagation.
dnnl_status_t DNNL_API dnnl_set_verbose(int level)
Configures verbose output to stdout.
Intel(R) Advanced Vector Extensions 512 for Intel(R) Xeon(R) Processor Scalable Family and Intel(R) C...
memory::desc diff_dst_iter_desc() const
Returns diff destination iteration memory descriptor.
Definition: dnnl.hpp:7496
Elementwise: x*sigmoid(a*x)
softmax_forward()=default
Default constructor. Produces an empty object.
A descriptor of a element-wise operation.
Definition: dnnl_types.h:1135
desc(algorithm algorithm, const memory::desc &diff_src_desc, const memory::desc &weights_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Constructs a descriptor for a convolution backward propagation primitive.
Definition: dnnl.hpp:3543
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.
4D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:229
LRN within a single channel.
Nearest Neighbor Resampling Method.
Definition: dnnl_types.h:782
layer_normalization_backward()=default
Default constructor. Produces an empty object.
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:6992
A user shall query and provide the scratchpad memory to primitives This mode is thread-safe as long a...
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6298
A rnn primitive.
Definition: dnnl_types.h:692
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:7243
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:3932
Undefined data type (used for empty memory descriptors).
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:3937
status set_jit_profiling_flags(unsigned flags)
Sets library profiling flags.
Definition: dnnl.hpp:9507
number of outputs expected
Definition: dnnl_types.h:1888
memory::desc src1_desc() const
Returns the memory descriptor for source #1.
Definition: dnnl.hpp:9031
Intel(R) SSE4.1.
Definition: dnnl_types.h:2030
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:9554
memory::dim query_s64(query what) const
Returns a memory::dim value (same as int64_t).
Definition: dnnl.hpp:2499
status
Status values returned by the library functions.
Definition: dnnl.hpp:9474
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:6485
permuted 5D tensor
Definition: dnnl_types.h:185
Intel(R) Advanced Vector Extensions 2.
Definition: dnnl_types.h:2036
Intel(R) Advanced Vector Extensions 512 with Intel(R) DL Boost Support for Intel(R) Xeon(R) Processor...
Definition: dnnl_types.h:2053
int ndims
Number of dimensions.
Definition: dnnl_types.h:978
3D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:220
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:6986
T get(bool allow_empty=false) const
Returns the underlying C API handle.
Definition: dnnl.hpp:182
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:2596
primitive_desc()=default
Default constructor. Produces an empty object.
A descriptor of a Layer Normalization operation.
Definition: dnnl_types.h:1311
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:8927
2D RNN statistics tensor; an alias for dnnl::memory::format_tag::ab
memory::desc bias_desc() const
Returns the bias memory descriptor.
Definition: dnnl.hpp:4222
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.
desc(algorithm algorithm, const memory::desc &src0, const memory::desc &src1, const memory::desc &dst)
Constructs a descriptor for an elementwise binary operator primitive.
Definition: dnnl.hpp:8973
Queried element is not required for given primitive.
Definition: dnnl_types.h:52
Eltwise: clip.
Definition: dnnl_types.h:750
primitive_desc()=default
Default constructor. Produces an empty object.
primitive_desc()=default
Default constructor. Produces an empty object.
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:8720
dnnl_status_t DNNL_API dnnl_engine_create(dnnl_engine_t *engine, dnnl_engine_kind_t kind, size_t index)
Creates an engine.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:6301
5D CNN activations tensor; an alias for dnnl::memory::format_tag::abcde
primitive_desc()=default
Default constructor. Produces an empty object.
primitive_desc()=default
Default constructor. Produces an empty object.
Average pooling include padding.
Definition: dnnl_types.h:754
Intel(R) Advanced Vector Extensions 512 with Intel(R) DL Boost and Bfloat16 Support for Intel(R) Xeon...
memory::desc variance_desc() const
Returns memory descriptor for variance.
Definition: dnnl.hpp:6307
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:8335
memory::data_type data_type() const
Returns the data type of the memory descriptor.
Definition: dnnl.hpp:2202
dnnl_status_t DNNL_API dnnl_set_jit_profiling_jitdumpdir(const char *dir)
Sets JIT dump output path.
void append_eltwise(float scale, algorithm algorithm, float alpha, float beta)
Appends an elementwise post-op.
Definition: dnnl.hpp:908
dnnl_dim_t dim
Integer type for representing dimension sizes and indices.
Definition: dnnl.hpp:1608
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:6911
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:7904
dnnl_status_t DNNL_API dnnl_primitive_desc_iterator_destroy(dnnl_primitive_desc_iterator_t iterator)
Destroys a primitive descriptor iterator.
A deconvolution primitive.
Definition: dnnl_types.h:676
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:988
5D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:273
dnnl_status_t DNNL_API dnnl_memory_map_data(const_dnnl_memory_t memory, void **mapped_ptr)
Maps a memory object and returns a pointer to host-side buffer with a copy of its contents.
Forward data propagation, alias for dnnl::prop_kind::forward_training.
desc(prop_kind prop_kind, const memory::desc &data_desc, int axis, int group_size)
Constructs a descriptor for a shuffle forward propagation primitive.
Definition: dnnl.hpp:8803
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6482
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:7942
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:4384
Out-of-order execution.
Definition: dnnl_types.h:1954
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6654
Linear (Bilinear, Trilinear) resampling method.
A matmul (matrix multiplication) primitive.
A base class for descriptors of all primitives that have an operation descriptor and that support ite...
Definition: dnnl.hpp:3151
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:9034
void reset(T t, bool weak=false)
Resets the handle wrapper objects to wrap a new C API handle.
Definition: dnnl.hpp:173
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5475
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:8743
A convolution primitive.
Definition: dnnl_types.h:674
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:7491
flags
Stream flags. Can be combined using the bitwise OR operator.
Definition: dnnl.hpp:1437
desc(prop_kind prop_kind, rnn_direction direction, const memory::desc &src_layer_desc, const memory::desc &src_iter_desc, const memory::desc &src_iter_c_desc, const memory::desc &weights_layer_desc, const memory::desc &weights_iter_desc, const memory::desc &bias_desc, const memory::desc &dst_layer_desc, const memory::desc &dst_iter_desc, const memory::desc &dst_iter_c_desc, const memory::desc &diff_src_layer_desc, const memory::desc &diff_src_iter_desc, const memory::desc &diff_src_iter_c_desc, const memory::desc &diff_weights_layer_desc, const memory::desc &diff_weights_iter_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_layer_desc, const memory::desc &diff_dst_iter_desc, const memory::desc &diff_dst_iter_c_desc, rnn_flags flags=rnn_flags::undef)
Constructs an LSTM descriptor for backward propagation using prop_kind, direction,...
Definition: dnnl.hpp:7779
static size_t get_count(kind kind)
Returns the number of engines of a certain kind.
Definition: dnnl.hpp:1297
memory::desc diff_src_iter_c_desc() const
Returns diff source recurrent cell state memory descriptor.
Definition: dnnl.hpp:7010
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:6121
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.
void append_sum(float scale=1.)
Appends an accumulation (sum) post-op.
Definition: dnnl.hpp:879
desc(const memory::desc &diff_data_desc, int axis, int group_size)
Constructs a descriptor for a shuffle backward propagation primitive.
Definition: dnnl.hpp:8882
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:4888
resampling_backward()=default
Default constructor. Produces an empty object.
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:5366
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:6497
Bidirectional execution of RNN primitive with summation of the results.
An opaque structure for primitive descriptor attributes.
memory::desc diff_bias_desc() const
Returns the diff bias memory descriptor.
Definition: dnnl.hpp:6914
Unidirectional execution of RNN primitive from right to left.
5D CNN weights tensor; an alias for dnnl::memory::format_tag::cdeba
An LRN primitive.
Definition: dnnl_types.h:684
memory::desc diff_bias_desc() const
Returns diff bias memory descriptor.
Definition: dnnl.hpp:7486
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...
source memory desc
Definition: dnnl_types.h:1928
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.
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.
memory::desc diff_weights_layer_desc() const
Returns diff weights layer memory descriptor.
Definition: dnnl.hpp:8738
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:8330
memory::desc diff_dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5802
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:8847
desc(algorithm algorithm, const memory::desc &diff_src_desc, const memory::desc &weights_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Constructs a descriptor for a deconvolution backward propagation primitive.
Definition: dnnl.hpp:4265
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:3027
dnnl_scratchpad_mode_t
Scratchpad mode.
Definition: dnnl_types.h:1607
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:8723
primitive_desc()=default
Default constructor. Produces an empty object.
5D CNN weights tensor with groups; an alias for dnnl::memory::format_tag::acbde
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6657
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8699
Undefined data type, used for empty memory descriptors.
Definition: dnnl_types.h:63
execution engine
Definition: dnnl_types.h:1884
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.
softmax descriptor
Definition: dnnl_types.h:1913
A descriptor of resampling operation.
Definition: dnnl_types.h:1523
The operation failed because of incorrect function arguments.
Definition: dnnl_types.h:44
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:8518
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5472
3D CNN weights tensor; an alias for dnnl::memory::format_tag::cba
CPU engine.
Definition: dnnl_types.h:1557
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:7038
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:1061
no query
Definition: dnnl_types.h:1882
eltwise_forward()=default
Default constructor. Produces an empty object.
Eltwise: swish.
Definition: dnnl_types.h:746
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:110
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:7899
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:6116
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.
status set_verbose(int level)
Configures verbose output to stdout.
Definition: dnnl.hpp:9492
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5942
DNNL C API handle wrapper class.
Definition: dnnl.hpp:133
pooling_backward()=default
Default constructor. Produces an empty object.
Convolution algorithm (either direct or Winograd) is chosen just in time.
dnnl_status_t DNNL_API dnnl_primitive_destroy(dnnl_primitive_t primitive)
Destroys a primitive.
4D CNN weights tensor with groups; an alias for dnnl::memory::format_tag::abcd
memory::desc weights_layer_desc() const
Returns weights layer memory descriptor.
Definition: dnnl.hpp:7651
cl::sycl::context DNNL_API get_sycl_context() const
Returns the underlying SYCL context object.
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_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:7440
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:8702
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:6958
memory::desc diff_src_desc() const
Returns a diff source memory descriptor.
Definition: dnnl.hpp:6102
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.
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:9448
desc(algorithm algorithm, const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Constructs a descriptor for a convolution weights gradient primitive with bias.
Definition: dnnl.hpp:3716
Memory descriptor.
Definition: dnnl_types.h:976
Backward bias propagation.
Definition: dnnl_types.h:657
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:7230
memory::desc src_iter_c_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7646
A matrix multiplication primitive.
Definition: dnnl_types.h:700
void set_output_scales(int mask, const std::vector< float > &scales)
Sets output scaling factors correspondence mask and values.
Definition: dnnl.hpp:1044
memory::desc bias_desc() const
Returns the bias memory descriptor.
Definition: dnnl.hpp:3498
memory::desc bias_desc() const
Returns the bias memory descriptor.
Definition: dnnl.hpp:6660
bool operator!=(const desc &other) const
An inequality operator.
Definition: dnnl.hpp:2229
batch_normalization_forward()=default
Default constructor. Produces an empty object.
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:4219
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:8957
4D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcd4b
Definition: dnnl_types.h:472
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:7917
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:8712
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6903
void get_params_eltwise(int index, float &scale, algorithm &algorithm, float &alpha, float &beta) const
Returns parameters of an elementwise post-up.
Definition: dnnl.hpp:922
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:2683
permuted 4D tensor
Definition: dnnl_types.h:193
Unspecified format kind.
Definition: dnnl_types.h:84
int DNNL_API dnnl_post_ops_len(const_dnnl_post_ops_t post_ops)
Returns the length of post-ops.
memory::desc scratchpad_desc() const
Returns the scratchpad memory descriptor.
Definition: dnnl.hpp:2641
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.
4D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcd16b
Definition: dnnl_types.h:469
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.
void get_params_sum(int index, float &scale) const
Returns the parameters of an accumulation (sum) post-op.
Definition: dnnl.hpp:888
eltwise descriptor
Definition: dnnl_types.h:1912
6D CNN weights tensor with groups; an alias for dnnl::memory::format_tag::defcab
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:3943
permuted 3D tensor
Definition: dnnl_types.h:197
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:6982
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 DNNL C API handle.
Definition: dnnl.hpp:117
memory::desc diff_src_layer_desc() const
Returns diff source layer memory descriptor.
Definition: dnnl.hpp:8728
number of inputs expected
Definition: dnnl_types.h:1887
The operation failed because of incorrect function arguments.
std::vector< dim > dims
Vector of dimensions.
Definition: dnnl.hpp:1611
5D CNN activations tensor; an alias for dnnl::memory::format_tag::acdeb
Placeholder memory format tag.
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:5948
permuted 5D tensor
Definition: dnnl_types.h:187
memory::desc diff_dst_layer_desc() const
Returns diff destination layer memory descriptor.
Definition: dnnl.hpp:7947
dnnl_status_t DNNL_API dnnl_post_ops_get_params_sum(const_dnnl_post_ops_t post_ops, int index, float *scale)
Returns the parameters of an accumulation (sum) post-op.
dnnl_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:1154
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:7217
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:8110
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:3489
3D CNN weights tensor; an alias for dnnl::memory::format_tag::abc
dnnl_alg_kind_t
Kinds of algorithms.
Definition: dnnl_types.h:706
Winograd deconvolution.
Definition: dnnl_types.h:717
Intel(R) Advanced Vector Extensions 512 subset for Intel(R) Xeon Phi(TM) Processors x200 Series.
Definition: dnnl_types.h:2040
3D CNN weights tensor; an alias for dnnl::memory::format_tag::bca
memory::desc dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:6488
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.
The operation was successful.
Definition: dnnl_types.h:40
engine get_engine() const
Returns the associated engine.
Definition: dnnl.hpp:2300
format_kind
Memory format kind.
Definition: dnnl.hpp:1643
Eltwise: exponent.
Definition: dnnl_types.h:739
plain 6D tensor
Definition: dnnl_types.h:181
bool operator==(const desc &other) const
An equality operator.
Definition: dnnl.hpp:2221
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_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.
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:9076
bool is_zero() const
Checks whether the memory descriptor is zero (empty).
Definition: dnnl.hpp:2215
5D CNN weights tensor; an alias for dnnl::memory::format_tag::acdeb
Bidirectional execution of RNN primitive with summation of the results.
Definition: dnnl_types.h:1398
memory::desc diff_weights_iter_desc() const
Returns diff weights iteration memory descriptor.
Definition: dnnl.hpp:7937
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:7661
Eltwise: linear.
Definition: dnnl_types.h:731
3D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBc16b
Definition: dnnl_types.h:478
DNNL namespace.
Definition: dnnl.hpp:81
GRU cell.
Definition: dnnl_types.h:768
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:8507
plain 3D tensor
Definition: dnnl_types.h:178
4D CNN activations tensor; an alias for dnnl::memory::format_tag::abcd
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:9150
A tensor in a generic format described by the stride and blocking values in each dimension.
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:8510
A descriptor of a binary operation.
Definition: dnnl_types.h:1476
desc submemory_desc(const memory::dims &dims, const memory::dims &offsets) const
Constructs a memory descriptor for a region inside an area described by this memory descriptor.
Definition: dnnl.hpp:2170
pooling_forward()=default
Default constructor. Produces an empty object.
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:8707
engine get_dst_engine() const
Returns the engine on which the destination memory is allocated.
Definition: dnnl.hpp:2870
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()=default
Default constructor. Produces an empty object.
void * get_data_handle() const
Returns the underlying memory buffer.
Definition: dnnl.hpp:2310
Direct convolution.
Definition: dnnl_types.h:709
4D RNN bias tensor in the format (num_layers, num_directions, num_gates, output_channels).
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.
6D CNN weights tensor with groups; an alias for dnnl::memory::format_tag::abcdef
source gradient memory desc
Definition: dnnl_types.h:1929
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:8694
3D CNN weights tensor; an alias for dnnl::memory::format_tag::acb
cl_command_queue get_ocl_command_queue() const
Returns the underlying OpenCL queue object.
Definition: dnnl.hpp:1480
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:8930
const version_t * version()
Returns library version information.
Definition: dnnl.hpp:9497
Forward data propagation (alias for dnnl_forward_inference).
Definition: dnnl_types.h:647
binary()=default
Default constructor. Produces an empty object.
5D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:283
cl_mem get_ocl_mem_object() const
Returns the OpenCL memory object associated with the memory.
Definition: dnnl.hpp:2371
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:6695
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:850
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8494
algorithm
Kinds of algorithms.
Definition: dnnl.hpp:478
memory::desc dst_iter_c_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7907
Undefined propagation type.
Definition: dnnl_types.h:638
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.
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:6096
primitive_desc()=default
Default constructor. Produces an empty object.
kind get_kind() const
Returns the kind of the primitive.
Definition: dnnl.hpp:384
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:4657
A tensor in a generic format described by the stride and blocking values in each dimension.
Definition: dnnl_types.h:88
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:8733
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.
primitive kind
Definition: dnnl_types.h:1885
Unidirectional execution of RNN primitive from left to right.
Definition: dnnl_types.h:1390
runtime estimation (seconds), unimplemented
A (out-of-place) tensor concatenation primitive.
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.
desc(prop_kind prop_kind, algorithm algorithm, const memory::desc &src_desc, const memory::desc &dst_desc)
Constructs a descriptor for a resampling forward propagation primitive using source and destination m...
Definition: dnnl.hpp:9210
Eltwise: parametric exponential linear unit (elu)
Definition: dnnl_types.h:723
memory::desc src0_desc() const
Returns the memory descriptor for source #0.
Definition: dnnl.hpp:9028
T * map_data() const
Maps the data of the memory.
Definition: dnnl.hpp:2346
Intel(R) Advanced Vector Extensions 512 subset for Intel(R) Xeon Phi(TM) Processors 7235,...
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:3669
The operation failed due to an out-of-memory condition.
primitive_desc()=default
Default constructor. Produces an empty object.
memory::desc diff_src_iter_desc() const
Returns diff source iteration memory descriptor.
Definition: dnnl.hpp:7922
primitive_desc()=default
Default constructor. Produces an empty object.
dnnl_status_t DNNL_API dnnl_dilated_convolution_backward_data_desc_init(dnnl_convolution_desc_t *conv_desc, dnnl_alg_kind_t alg_kind, const dnnl_memory_desc_t *diff_src_desc, const dnnl_memory_desc_t *weights_desc, const dnnl_memory_desc_t *diff_dst_desc, const dnnl_dims_t strides, const dnnl_dims_t dilates, const dnnl_dims_t padding_l, const dnnl_dims_t padding_r)
Initializes a descriptor for a dilated convolution backward propagation primitive.
dnnl_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.
3D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBc4b
Definition: dnnl_types.h:481
scratchpad_mode get_scratchpad_mode() const
Returns the scratchpad mode.
Definition: dnnl.hpp:962
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.
2D RNN statistics tensor; an alias for dnnl::memory::format_tag::ba
desc(algorithm algorithm, const memory::desc &src_desc, const memory::desc &diff_weights_desc, const memory::desc &diff_bias_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &padding_l, const memory::dims &padding_r)
Constructs a descriptor for a deconvolution weights gradient primitive with bias.
Definition: dnnl.hpp:4436
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:2112
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.
LSTM cell.
Definition: dnnl_types.h:766
An unspecified engine.
Definition: dnnl_types.h:1555
lrn_backward()=default
Default constructor. Produces an empty object.
primitive_attr()
Constructs default (empty) primitive attributes.
Definition: dnnl.hpp:946
desc(algorithm algorithm, const memory::desc &diff_src_desc, const memory::desc &diff_dst_desc, const memory::dims &strides, const memory::dims &kernel, const memory::dims &padding_l, const memory::dims &padding_r)
Constructs a descriptor for pooling backward propagation primitive.
Definition: dnnl.hpp:5058
5D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcde4b
Definition: dnnl_types.h:463
A resampling primitive.
Definition: dnnl_types.h:702
Intel(R) Advanced Vector Extensions.
Definition: dnnl_types.h:2033
permuted 3D tensor
Definition: dnnl_types.h:194
engine get_engine() const
Returns the engine of the primitive descriptor.
Definition: dnnl.hpp:2486
2D CNN weights tensor; an alias for dnnl::memory::format_tag::ab
weights grad. memory desc
dnnl_prop_kind_t
Kinds of propagation.
Definition: dnnl_types.h:635
4D RNN states tensor in the format (num_layers, num_directions, batch, state channels).
memory::desc src_layer_desc() const
Returns source layer memory descriptor.
Definition: dnnl.hpp:8291
const char * impl_info_str() const
Returns implementation name.
Definition: dnnl.hpp:2489
scratchpad memory desc
Definition: dnnl_types.h:1935
Forward data propagation, alias for dnnl::prop_kind::forward_inference.
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:7656
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:5945
memory::desc query_md(query what, int idx=0) const
Returns a memory descriptor.
Definition: dnnl.hpp:2520
memory::desc diff_weights_desc() const
Returns a diff weights memory descriptor.
Definition: dnnl.hpp:6108
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.
desc(algorithm algorithm, const memory::desc &diff_src_desc, const memory::desc &diff_dst_desc)
Constructs a descriptor for a resampling backward propagation primitive using source and destination ...
Definition: dnnl.hpp:9358
Eltwise: gelu.
Definition: dnnl_types.h:744
memory::desc weights_desc() const
Returns a weights memory descriptor.
Definition: dnnl.hpp:4216
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.
weights memory descriptor desc
Definition: dnnl_types.h:1930
memory::desc workspace_desc() const
Returns the workspace memory descriptor.
Definition: dnnl.hpp:6510
Backward data propagation.
2D CNN activations tensor; an alias for dnnl::memory::format_tag::ab
Default stream configuration.
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.
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,...
batch normalization descriptor
Definition: dnnl_types.h:1916
dnnl_status_t DNNL_API dnnl_post_ops_create(dnnl_post_ops_t *post_ops)
Creates empty post-ops sequence.
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:9323
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:9502
memory::desc dst_iter_desc() const
Returns destination iteration memory descriptor.
Definition: dnnl.hpp:8317
memory::desc diff_dst_desc() const
Returns a destination memory descriptor.
Definition: dnnl.hpp:5581
memory::desc dst_layer_desc() const
Returns destination layer memory descriptor.
Definition: dnnl.hpp:7238
An element-wise primitive.
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:5688
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:5578
const typedef void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition: dnnl_types.h:1048
shuffle_backward()=default
Default constructor. Produces an empty object.
Undefined primitive.
Definition: dnnl_types.h:664
memory::desc diff_src_iter_c_desc() const
Returns diff source recurrent cell state memory descriptor.
Definition: dnnl.hpp:7927
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.
A deconvolution primitive.
Alias for dnnl::rnn_direction::unidirectional_left2right.
layer_normalization_forward()=default
Default constructor. Produces an empty object.
Eltwise: soft_relu.
Definition: dnnl_types.h:735
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:8296
lrn_forward()=default
Default constructor. Produces an empty object.
#define DNNL_ARG_FROM
A special mnemonic for reorder source argument.
Definition: dnnl_types.h:1695
Unidirectional execution of RNN primitive from right to left.
Definition: dnnl_types.h:1392
4D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:247
Average pooling include padding.
memory::desc diff_dst_desc() const
Returns a diff destination memory descriptor.
Definition: dnnl.hpp:4654
memory::desc src_desc() const
Returns a source memory descriptor.
Definition: dnnl.hpp:6292
plain 2D tensor
Definition: dnnl_types.h:177
(scratch) memory, additional to all inputs and outputs memory (bytes)
Definition: dnnl_types.h:1896
void set_rnn_weights_qparams(int mask, const std::vector< float > &scales)
Sets quantization scaling factors for RNN weights tensors.
Definition: dnnl.hpp:1242
Primitive or engine failed on execution.
Definition: dnnl_types.h:50
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.
memory desc of an execute argument
Definition: dnnl_types.h:1936
memory::desc bias_desc() const
Returns bias memory descriptor.
Definition: dnnl.hpp:7896
4D tensor blocked by 1st and 2nd dimension with block size 8
5D CNN weights tensor with groups; an alias for dnnl::memory::format_tag::abcde
memory::desc src_iter_desc() const
Returns source iteration memory descriptor.
Definition: dnnl.hpp:7878
Average pooling exclude padding.
Definition: dnnl_types.h:756
Binary add.
Definition: dnnl_types.h:778
dnnl_status_t DNNL_API dnnl_set_jit_dump(int enable)
Configures dumping of JIT-generated code.
memory::desc weights_iter_desc() const
Returns weights iteration memory descriptor.
Definition: dnnl.hpp:7445
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.