/build/reproducible-path/miopen-6.4.3+dfsg/include/miopen/miopen.h Source File

/build/reproducible-path/miopen-6.4.3+dfsg/include/miopen/miopen.h Source File#

MIOpen: /build/reproducible-path/miopen-6.4.3+dfsg/include/miopen/miopen.h Source File
miopen.h
Go to the documentation of this file.
1/*******************************************************************************
2 *
3 * MIT License
4 *
5 * Copyright (c) 2023 Advanced Micro Devices, Inc.
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal
9 * in the Software without restriction, including without limitation the rights
10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 * copies of the Software, and to permit persons to whom the Software is
12 * furnished to do so, subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be included in all
15 * copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 * SOFTWARE.
24 *
25 *******************************************************************************/
26#ifndef MIOPEN_GUARD_MIOPEN_H_
27#define MIOPEN_GUARD_MIOPEN_H_
28
29#ifdef __clang__
30#pragma clang diagnostic push
31#pragma clang diagnostic ignored "-Wextern-c-compat"
32#endif
33
34#include <stddef.h>
35#include <stdbool.h>
36#include <miopen/config.h>
37#include <miopen/export.h>
38
39#if MIOPEN_BACKEND_OPENCL
40#define CL_TARGET_OPENCL_VERSION 120
41#if defined(__APPLE__) || defined(__MACOSX)
42#include <OpenCL/cl.h>
43#else
44#define CL_USE_DEPRECATED_OPENCL_1_2_APIS
45#include <CL/cl.h>
46#endif
47
48#elif MIOPEN_BACKEND_HIP
49#include <hip/hip_runtime_api.h>
50#endif
51
52/*
53 * @defgroup convolutions
54 * @defgroup pooling
55 * @defgroup handle
56 * @defgroup layernorm
57 * @defgroup LRN
58 * @defgroup batchnorm
59 * @defgroup activation
60 * @defgroup tensor
61 * @defgroup softmax
62 * @defgroup RNN
63 * @defgroup fusion
64 * @defgroup LossFunction
65 * @defgroup TensorReduce
66 * @defgroup find2
67 * @defgroup ReduceExtreme
68 * @defgroup groupnorm
69 * @defgroup cat
70 * @defgroup SGD
71 * @defgroup getitem
72 * @defgroup ReduceCalculation
73 * @defgroup RotaryPositionalEmbeddings
74 * @defgroup ReLU
75 *
76 */
77
79#define MIOPEN_DECLARE_OBJECT(name) \
80 struct name \
81 { \
82 }; \
83 typedef struct name* name##_t;
84
85#ifdef __cplusplus
86extern "C" {
87#endif
88
89#if MIOPEN_BACKEND_OPENCL
90typedef cl_command_queue miopenAcceleratorQueue_t;
91#elif MIOPEN_BACKEND_HIP
92typedef hipStream_t miopenAcceleratorQueue_t;
93#endif
94
99
122
123#ifdef MIOPEN_BETA_API
129#endif
130
138MIOPEN_EXPORT const char* miopenGetErrorString(miopenStatus_t error);
139
148typedef void* (*miopenAllocatorFunction)(void* context, size_t sizeBytes);
149
158typedef void (*miopenDeallocatorFunction)(void* context, void* memory);
159
173MIOPEN_EXPORT miopenStatus_t miopenGetVersion(size_t* major, size_t* minor, size_t* patch);
174
183MIOPEN_EXPORT miopenStatus_t miopenCreate(miopenHandle_t* handle);
184
196MIOPEN_EXPORT miopenStatus_t miopenCreateWithStream(miopenHandle_t* handle,
197 miopenAcceleratorQueue_t stream);
198
205MIOPEN_EXPORT miopenStatus_t miopenDestroy(miopenHandle_t handle);
206
214MIOPEN_EXPORT miopenStatus_t miopenSetStream(miopenHandle_t handle,
215 miopenAcceleratorQueue_t streamID);
216
224MIOPEN_EXPORT miopenStatus_t miopenGetStream(miopenHandle_t handle,
225 miopenAcceleratorQueue_t* streamID);
226
243MIOPEN_EXPORT miopenStatus_t miopenSetAllocator(miopenHandle_t handle,
244 miopenAllocatorFunction allocator,
245 miopenDeallocatorFunction deallocator,
246 void* allocatorContext);
247
259MIOPEN_EXPORT miopenStatus_t miopenGetKernelTime(miopenHandle_t handle, float* time);
260
268MIOPEN_EXPORT miopenStatus_t miopenEnableProfiling(miopenHandle_t handle, bool enable);
270// CLOSEOUT HANDLE DOXYGEN GROUP
271
279MIOPEN_DECLARE_OBJECT(miopenFusionOpDescriptor);
280
288MIOPEN_DECLARE_OBJECT(miopenTensorDescriptor);
289
296MIOPEN_DECLARE_OBJECT(miopenSeqTensorDescriptor);
297
305MIOPEN_DECLARE_OBJECT(miopenConvolutionDescriptor);
306
314MIOPEN_DECLARE_OBJECT(miopenPoolingDescriptor);
315
323MIOPEN_DECLARE_OBJECT(miopenLRNDescriptor);
324
331MIOPEN_DECLARE_OBJECT(miopenActivationDescriptor);
332
336MIOPEN_DECLARE_OBJECT(miopenRNNDescriptor);
337
341MIOPEN_DECLARE_OBJECT(miopenCTCLossDescriptor);
342
346MIOPEN_DECLARE_OBJECT(miopenDropoutDescriptor);
347
351MIOPEN_DECLARE_OBJECT(miopenReduceTensorDescriptor);
352
356MIOPEN_DECLARE_OBJECT(miopenMhaDescriptor);
357
361MIOPEN_DECLARE_OBJECT(miopenSoftmaxDescriptor);
362
367typedef enum
368{
373 // miopenInt8x4 = 4, /*!< Pack of 4x Int8 in NCHW_VECT_C format (Support discontinued) */
374 miopenBFloat16 = 5,
377#ifdef MIOPEN_BETA_API
380#else
381// miopenReserved1 = 7,
382// miopenReserved2 = 8,
383#endif
386
404
416
428
440
451
462
474
484#ifdef MIOPEN_BETA_API
503#endif
513
535
546
557
565#define MIOPEN_API_VERSION_REDUCE_TENSOR 1
566
571typedef enum
572{
575 1,
577 2,
579 3,
581 4,
583 5,
585 6,
588 // MIOPEN_REDUCE_TENSOR_MUL_NO_ZEROS =
589 // 8, /*!< the operation is same as MUL, but does not have the zero values considered */
591
601
611
623
628typedef enum
629{
631 0,
635 1,
637#ifdef MIOPEN_BETA_API
639 2,
643#else
644// miopenReserved1 = 2,
645#endif
647
654typedef enum
655{
657 1,
659 2,
663 3,
666 // miopenConvolutionFindModeReserved_4 = 4, /*!< Reserved - do not use */
668 5,
675
687MIOPEN_EXPORT miopenStatus_t miopenCreateTensorDescriptor(miopenTensorDescriptor_t* tensorDesc);
688
702 miopenTensorDescriptor_t tensorDesc, miopenDataType_t dataType, int n, int c, int h, int w);
703
714MIOPEN_EXPORT miopenStatus_t
715miopenSetNdTensorDescriptorWithLayout(miopenTensorDescriptor_t tensorDesc,
716 miopenDataType_t dataType,
717 miopenTensorLayout_t tensorLayout,
718 const int* lens,
719 int num_lens);
739MIOPEN_EXPORT miopenStatus_t miopenSet4dTensorDescriptorEx(miopenTensorDescriptor_t tensorDesc,
740 miopenDataType_t dataType,
741 int n,
742 int c,
743 int h,
744 int w,
745 int nStride,
746 int cStride,
747 int hStride,
748 int wStride);
749
766MIOPEN_EXPORT miopenStatus_t miopenGet4dTensorDescriptor(miopenTensorDescriptor_t tensorDesc,
767 miopenDataType_t* dataType,
768 int* n,
769 int* c,
770 int* h,
771 int* w,
772 int* nStride,
773 int* cStride,
774 int* hStride,
775 int* wStride);
776
787MIOPEN_EXPORT miopenStatus_t miopenSetTensorDescriptor(miopenTensorDescriptor_t tensorDesc,
788 miopenDataType_t dataType,
789 int nbDims,
790 const int* dimsA,
791 const int* stridesA);
792
793#ifdef MIOPEN_BETA_API
796MIOPEN_EXPORT miopenStatus_t miopenSetTensorDescriptorV2(miopenTensorDescriptor_t tensorDesc,
797 miopenDataType_t dataType,
798 int nbDims,
799 const size_t* dimsA,
800 const size_t* stridesA);
801#endif
802
803#ifdef MIOPEN_BETA_API
813MIOPEN_EXPORT miopenStatus_t miopenSetTensorCastType(miopenTensorDescriptor_t tensorDesc,
814 miopenDataType_t cast_type);
815#endif
816
825MIOPEN_EXPORT miopenStatus_t miopenGetTensorDescriptorSize(miopenTensorDescriptor_t tensorDesc,
826 int* size);
827
836MIOPEN_EXPORT miopenStatus_t miopenGetTensorDescriptor(miopenTensorDescriptor_t tensorDesc,
837 miopenDataType_t* dataType,
838 int* dimsA,
839 int* stridesA);
840
846MIOPEN_EXPORT miopenStatus_t miopenDestroyTensorDescriptor(miopenTensorDescriptor_t tensorDesc);
847
854MIOPEN_EXPORT miopenStatus_t
855miopenCreateSeqTensorDescriptor(miopenSeqTensorDescriptor_t* tensorDesc);
856
862MIOPEN_EXPORT miopenStatus_t
863miopenDestroySeqTensorDescriptor(miopenSeqTensorDescriptor_t tensorDesc);
864
884MIOPEN_EXPORT miopenStatus_t miopenOpTensor(miopenHandle_t handle,
885 miopenTensorOp_t tensorOp,
886 const void* alpha1,
887 const miopenTensorDescriptor_t aDesc,
888 const void* A,
889 const void* alpha2,
890 const miopenTensorDescriptor_t bDesc,
891 const void* B,
892 const void* beta,
893 const miopenTensorDescriptor_t cDesc,
894 void* C);
895
906MIOPEN_EXPORT miopenStatus_t miopenSetTensor(miopenHandle_t handle,
907 const miopenTensorDescriptor_t yDesc,
908 void* y,
909 const void* alpha);
910
921MIOPEN_EXPORT miopenStatus_t miopenScaleTensor(miopenHandle_t handle,
922 const miopenTensorDescriptor_t yDesc,
923 void* y,
924 const void* alpha);
925
932MIOPEN_EXPORT miopenStatus_t miopenGetTensorNumBytes(miopenTensorDescriptor_t tensorDesc,
933 size_t* numBytes);
934
952MIOPEN_EXPORT miopenStatus_t miopenTransformTensor(miopenHandle_t handle,
953 const void* alpha,
954 const miopenTensorDescriptor_t xDesc,
955 const void* x,
956 const void* beta,
957 const miopenTensorDescriptor_t yDesc,
958 void* y);
959
961// CLOSEOUT TENSOR DOXYGEN GROUP
962
973MIOPEN_EXPORT miopenStatus_t
974miopenCreateConvolutionDescriptor(miopenConvolutionDescriptor_t* convDesc);
975
991MIOPEN_EXPORT miopenStatus_t miopenInitConvolutionDescriptor(miopenConvolutionDescriptor_t convDesc,
993 int pad_h,
994 int pad_w,
995 int stride_h,
996 int stride_w,
997 int dilation_h,
998 int dilation_w);
999
1010MIOPEN_EXPORT miopenStatus_t
1011miopenInitConvolutionNdDescriptor(miopenConvolutionDescriptor_t convDesc,
1012 int spatialDim,
1013 const int* padA,
1014 const int* strideA,
1015 const int* dilationA,
1017
1024MIOPEN_EXPORT miopenStatus_t miopenGetConvolutionSpatialDim(miopenConvolutionDescriptor_t convDesc,
1025 int* spatialDim);
1026
1042MIOPEN_EXPORT miopenStatus_t miopenGetConvolutionDescriptor(miopenConvolutionDescriptor_t convDesc,
1044 int* pad_h,
1045 int* pad_w,
1046 int* stride_h,
1047 int* stride_w,
1048 int* dilation_h,
1049 int* dilation_w);
1050
1062MIOPEN_EXPORT miopenStatus_t
1063miopenGetConvolutionNdDescriptor(miopenConvolutionDescriptor_t convDesc,
1064 int requestedSpatialDim,
1065 int* spatialDim,
1066 int* padA,
1067 int* strideA,
1068 int* dilationA,
1069 miopenConvolutionMode_t* c_mode);
1070
1077MIOPEN_EXPORT miopenStatus_t miopenGetConvolutionGroupCount(miopenConvolutionDescriptor_t convDesc,
1078 int* groupCount);
1079
1093MIOPEN_EXPORT miopenStatus_t miopenSetConvolutionGroupCount(miopenConvolutionDescriptor_t convDesc,
1094 int groupCount);
1095
1108MIOPEN_EXPORT miopenStatus_t
1109miopenSetTransposeConvOutputPadding(miopenConvolutionDescriptor_t convDesc, int adj_h, int adj_w);
1110
1124 miopenConvolutionDescriptor_t convDesc, int spatialDim, const int* adjA);
1125
1143MIOPEN_EXPORT miopenStatus_t
1144miopenGetConvolutionForwardOutputDim(miopenConvolutionDescriptor_t convDesc,
1145 const miopenTensorDescriptor_t inputTensorDesc,
1146 const miopenTensorDescriptor_t filterDesc,
1147 int* n,
1148 int* c,
1149 int* h,
1150 int* w);
1151
1165MIOPEN_EXPORT miopenStatus_t
1166miopenGetConvolutionNdForwardOutputDim(miopenConvolutionDescriptor_t convDesc,
1167 const miopenTensorDescriptor_t inputTensorDesc,
1168 const miopenTensorDescriptor_t filterDesc,
1169 int* nDim,
1170 int* outputTensorDimA);
1171
1177MIOPEN_EXPORT miopenStatus_t
1178miopenDestroyConvolutionDescriptor(miopenConvolutionDescriptor_t convDesc);
1179
1186MIOPEN_EXPORT miopenStatus_t miopenSetConvolutionAttribute(miopenConvolutionDescriptor_t convDesc,
1187 const miopenConvolutionAttrib_t attr,
1188 int value);
1189
1196MIOPEN_EXPORT miopenStatus_t miopenGetConvolutionAttribute(miopenConvolutionDescriptor_t convDesc,
1197 const miopenConvolutionAttrib_t attr,
1198 int* value);
1199
1213MIOPEN_EXPORT miopenStatus_t miopenSetConvolutionFindMode(miopenConvolutionDescriptor_t convDesc,
1215
1223 const miopenConvolutionDescriptor_t convDesc, miopenConvolutionFindMode_t* findMode);
1224
1237
1248
1262
1274
1296
1316
1332MIOPEN_EXPORT miopenStatus_t
1334 const miopenTensorDescriptor_t wDesc,
1335 const miopenTensorDescriptor_t xDesc,
1336 const miopenConvolutionDescriptor_t convDesc,
1337 const miopenTensorDescriptor_t yDesc,
1338 size_t* solutionCount);
1339
1363MIOPEN_EXPORT miopenStatus_t
1365 const miopenTensorDescriptor_t wDesc,
1366 const miopenTensorDescriptor_t xDesc,
1367 const miopenConvolutionDescriptor_t convDesc,
1368 const miopenTensorDescriptor_t yDesc,
1369 const size_t maxSolutionCount,
1370 size_t* solutionCount,
1371 miopenConvSolution_t* solutions);
1372
1390MIOPEN_EXPORT miopenStatus_t
1392 const miopenTensorDescriptor_t wDesc,
1393 const miopenTensorDescriptor_t xDesc,
1394 const miopenConvolutionDescriptor_t convDesc,
1395 const miopenTensorDescriptor_t yDesc,
1396 const uint64_t solution_id,
1397 size_t* workSpaceSize);
1398
1416MIOPEN_EXPORT miopenStatus_t
1418 const miopenTensorDescriptor_t wDesc,
1419 const miopenTensorDescriptor_t xDesc,
1420 const miopenConvolutionDescriptor_t convDesc,
1421 const miopenTensorDescriptor_t yDesc,
1422 const uint64_t solution_id);
1423
1441MIOPEN_EXPORT miopenStatus_t
1443 const miopenTensorDescriptor_t wDesc,
1444 const void* w,
1445 const miopenTensorDescriptor_t xDesc,
1446 const void* x,
1447 const miopenConvolutionDescriptor_t convDesc,
1448 const miopenTensorDescriptor_t yDesc,
1449 void* y,
1450 void* workSpace,
1451 size_t workSpaceSize,
1452 const uint64_t solution_id);
1453
1471MIOPEN_EXPORT miopenStatus_t
1473 const miopenTensorDescriptor_t dyDesc,
1474 const miopenTensorDescriptor_t wDesc,
1475 const miopenConvolutionDescriptor_t convDesc,
1476 const miopenTensorDescriptor_t dxDesc,
1477 size_t* solutionCount);
1478
1503MIOPEN_EXPORT miopenStatus_t
1505 const miopenTensorDescriptor_t dyDesc,
1506 const miopenTensorDescriptor_t wDesc,
1507 const miopenConvolutionDescriptor_t convDesc,
1508 const miopenTensorDescriptor_t dxDesc,
1509 const size_t maxSolutionCount,
1510 size_t* solutionCount,
1511 miopenConvSolution_t* solutions);
1512
1530MIOPEN_EXPORT miopenStatus_t
1532 const miopenTensorDescriptor_t dyDesc,
1533 const miopenTensorDescriptor_t wDesc,
1534 const miopenConvolutionDescriptor_t convDesc,
1535 const miopenTensorDescriptor_t dxDesc,
1536 const uint64_t solution_id,
1537 size_t* workSpaceSize);
1538
1557MIOPEN_EXPORT miopenStatus_t
1559 const miopenTensorDescriptor_t dyDesc,
1560 const miopenTensorDescriptor_t wDesc,
1561 const miopenConvolutionDescriptor_t convDesc,
1562 const miopenTensorDescriptor_t dxDesc,
1563 const uint64_t solution_id);
1564
1582MIOPEN_EXPORT miopenStatus_t
1584 const miopenTensorDescriptor_t dyDesc,
1585 const void* dy,
1586 const miopenTensorDescriptor_t wDesc,
1587 const void* w,
1588 const miopenConvolutionDescriptor_t convDesc,
1589 const miopenTensorDescriptor_t dxDesc,
1590 void* dx,
1591 void* workSpace,
1592 size_t workSpaceSize,
1593 const uint64_t solution_id);
1594
1612MIOPEN_EXPORT miopenStatus_t
1614 const miopenTensorDescriptor_t dyDesc,
1615 const miopenTensorDescriptor_t xDesc,
1616 const miopenConvolutionDescriptor_t convDesc,
1617 const miopenTensorDescriptor_t dwDesc,
1618 size_t* solutionCount);
1619
1643MIOPEN_EXPORT miopenStatus_t
1645 const miopenTensorDescriptor_t dyDesc,
1646 const miopenTensorDescriptor_t xDesc,
1647 const miopenConvolutionDescriptor_t convDesc,
1648 const miopenTensorDescriptor_t dwDesc,
1649 const size_t maxSolutionCount,
1650 size_t* solutionCount,
1651 miopenConvSolution_t* solutions);
1652
1671 miopenHandle_t handle,
1672 const miopenTensorDescriptor_t dyDesc,
1673 const miopenTensorDescriptor_t xDesc,
1674 const miopenConvolutionDescriptor_t convDesc,
1675 const miopenTensorDescriptor_t dwDesc,
1676 const uint64_t solution_id,
1677 size_t* workSpaceSize);
1678
1696MIOPEN_EXPORT miopenStatus_t
1698 const miopenTensorDescriptor_t dyDesc,
1699 const miopenTensorDescriptor_t xDesc,
1700 const miopenConvolutionDescriptor_t convDesc,
1701 const miopenTensorDescriptor_t dwDesc,
1702 const uint64_t solution_id);
1703
1722MIOPEN_EXPORT miopenStatus_t
1724 const miopenTensorDescriptor_t dyDesc,
1725 const void* dy,
1726 const miopenTensorDescriptor_t xDesc,
1727 const void* x,
1728 const miopenConvolutionDescriptor_t convDesc,
1729 const miopenTensorDescriptor_t dwDesc,
1730 void* dw,
1731 void* workSpace,
1732 size_t workSpaceSize,
1733 const uint64_t solution_id);
1734
1761MIOPEN_EXPORT miopenStatus_t
1763 const miopenTensorDescriptor_t wDesc,
1764 const miopenTensorDescriptor_t xDesc,
1765 const miopenConvolutionDescriptor_t convDesc,
1766 const miopenTensorDescriptor_t yDesc,
1767 size_t* workSpaceSize);
1768
1812MIOPEN_EXPORT miopenStatus_t
1814 const miopenTensorDescriptor_t xDesc,
1815 const void* x,
1816 const miopenTensorDescriptor_t wDesc,
1817 const void* w,
1818 const miopenConvolutionDescriptor_t convDesc,
1819 const miopenTensorDescriptor_t yDesc,
1820 void* y,
1821 const int requestAlgoCount,
1822 int* returnedAlgoCount,
1823 miopenConvAlgoPerf_t* perfResults,
1824 void* workSpace,
1825 size_t workSpaceSize,
1826 bool exhaustiveSearch);
1827
1862MIOPEN_EXPORT miopenStatus_t miopenConvolutionForward(miopenHandle_t handle,
1863 const void* alpha,
1864 const miopenTensorDescriptor_t xDesc,
1865 const void* x,
1866 const miopenTensorDescriptor_t wDesc,
1867 const void* w,
1868 const miopenConvolutionDescriptor_t convDesc,
1870 const void* beta,
1871 const miopenTensorDescriptor_t yDesc,
1872 void* y,
1873 void* workSpace,
1874 size_t workSpaceSize);
1875
1891MIOPEN_EXPORT miopenStatus_t miopenConvolutionForwardBias(miopenHandle_t handle,
1892 const void* alpha,
1893 const miopenTensorDescriptor_t bDesc,
1894 const void* b,
1895 const void* beta,
1896 const miopenTensorDescriptor_t yDesc,
1897 void* y);
1898
1926MIOPEN_EXPORT miopenStatus_t
1928 const miopenTensorDescriptor_t dyDesc,
1929 const miopenTensorDescriptor_t wDesc,
1930 const miopenConvolutionDescriptor_t convDesc,
1931 const miopenTensorDescriptor_t dxDesc,
1932 size_t* workSpaceSize);
1933
1977MIOPEN_EXPORT miopenStatus_t
1979 const miopenTensorDescriptor_t dyDesc,
1980 const void* dy,
1981 const miopenTensorDescriptor_t wDesc,
1982 const void* w,
1983 const miopenConvolutionDescriptor_t convDesc,
1984 const miopenTensorDescriptor_t dxDesc,
1985 void* dx,
1986 const int requestAlgoCount,
1987 int* returnedAlgoCount,
1988 miopenConvAlgoPerf_t* perfResults,
1989 void* workSpace,
1990 size_t workSpaceSize,
1991 bool exhaustiveSearch);
1992
2026MIOPEN_EXPORT miopenStatus_t
2027miopenConvolutionBackwardData(miopenHandle_t handle,
2028 const void* alpha,
2029 const miopenTensorDescriptor_t dyDesc,
2030 const void* dy,
2031 const miopenTensorDescriptor_t wDesc,
2032 const void* w,
2033 const miopenConvolutionDescriptor_t convDesc,
2035 const void* beta,
2036 const miopenTensorDescriptor_t dxDesc,
2037 void* dx,
2038 void* workSpace,
2039 size_t workSpaceSize);
2040
2068MIOPEN_EXPORT miopenStatus_t
2070 const miopenTensorDescriptor_t dyDesc,
2071 const miopenTensorDescriptor_t xDesc,
2072 const miopenConvolutionDescriptor_t convDesc,
2073 const miopenTensorDescriptor_t dwDesc,
2074 size_t* workSpaceSize);
2075
2119MIOPEN_EXPORT miopenStatus_t
2121 const miopenTensorDescriptor_t dyDesc,
2122 const void* dy,
2123 const miopenTensorDescriptor_t xDesc,
2124 const void* x,
2125 const miopenConvolutionDescriptor_t convDesc,
2126 const miopenTensorDescriptor_t dwDesc,
2127 void* dw,
2128 const int requestAlgoCount,
2129 int* returnedAlgoCount,
2130 miopenConvAlgoPerf_t* perfResults,
2131 void* workSpace,
2132 size_t workSpaceSize,
2133 bool exhaustiveSearch);
2134
2168MIOPEN_EXPORT miopenStatus_t
2170 const void* alpha,
2171 const miopenTensorDescriptor_t dyDesc,
2172 const void* dy,
2173 const miopenTensorDescriptor_t xDesc,
2174 const void* x,
2175 const miopenConvolutionDescriptor_t convDesc,
2177 const void* beta,
2178 const miopenTensorDescriptor_t dwDesc,
2179 void* dw,
2180 void* workSpace,
2181 size_t workSpaceSize);
2182
2198MIOPEN_EXPORT miopenStatus_t miopenConvolutionBackwardBias(miopenHandle_t handle,
2199 const void* alpha,
2200 const miopenTensorDescriptor_t dyDesc,
2201 const void* dy,
2202 const void* beta,
2203 const miopenTensorDescriptor_t dbDesc,
2204 void* db);
2205
2207// CLOSEOUT CONVOLUTIONS DOXYGEN GROUP
2208
2209// Pooling APIs
2220MIOPEN_EXPORT miopenStatus_t miopenCreatePoolingDescriptor(miopenPoolingDescriptor_t* poolDesc);
2221
2230MIOPEN_EXPORT miopenStatus_t miopenSetPoolingIndexType(miopenPoolingDescriptor_t poolDesc,
2231 miopenIndexType_t index_type);
2232
2240MIOPEN_EXPORT miopenStatus_t miopenGetPoolingIndexType(miopenPoolingDescriptor_t poolDesc,
2241 miopenIndexType_t* index_type);
2242
2251 miopenPoolingDescriptor_t poolDesc, miopenPoolingWorkspaceIndexMode_t workspace_index);
2252
2260 miopenPoolingDescriptor_t poolDesc, miopenPoolingWorkspaceIndexMode_t* workspace_index);
2261
2276MIOPEN_EXPORT miopenStatus_t miopenSet2dPoolingDescriptor(miopenPoolingDescriptor_t poolDesc,
2278 int windowHeight,
2279 int windowWidth,
2280 int pad_h,
2281 int pad_w,
2282 int stride_h,
2283 int stride_w);
2284
2299MIOPEN_EXPORT miopenStatus_t miopenGet2dPoolingDescriptor(const miopenPoolingDescriptor_t poolDesc,
2300 miopenPoolingMode_t* mode,
2301 int* windowHeight,
2302 int* windowWidth,
2303 int* pad_h,
2304 int* pad_w,
2305 int* stride_h,
2306 int* stride_w);
2307
2322MIOPEN_EXPORT miopenStatus_t
2323miopenGetPoolingForwardOutputDim(const miopenPoolingDescriptor_t poolDesc,
2324 const miopenTensorDescriptor_t tensorDesc,
2325 int* n,
2326 int* c,
2327 int* h,
2328 int* w);
2329
2345MIOPEN_EXPORT miopenStatus_t miopenSetNdPoolingDescriptor(miopenPoolingDescriptor_t poolDesc,
2346 const miopenPoolingMode_t mode,
2347 int nbDims,
2348 const int* windowDimA,
2349 const int* padA,
2350 const int* stridesA);
2351
2368MIOPEN_EXPORT miopenStatus_t miopenGetNdPoolingDescriptor(const miopenPoolingDescriptor_t poolDesc,
2369 int nbDimsRequested,
2370 miopenPoolingMode_t* mode,
2371 int* nbDims,
2372 int* windowDimA,
2373 int* padA,
2374 int* stridesA);
2375
2388MIOPEN_EXPORT miopenStatus_t
2389miopenGetPoolingNdForwardOutputDim(const miopenPoolingDescriptor_t poolDesc,
2390 const miopenTensorDescriptor_t tensorDesc,
2391 int dims,
2392 int* tensorDimArr);
2393
2406MIOPEN_EXPORT miopenStatus_t miopenPoolingGetWorkSpaceSize(const miopenTensorDescriptor_t yDesc,
2407 size_t* workSpaceSize);
2408
2421MIOPEN_EXPORT miopenStatus_t
2422miopenPoolingGetWorkSpaceSizeV2(const miopenPoolingDescriptor_t poolDesc,
2423 const miopenTensorDescriptor_t yDesc,
2424 size_t* workSpaceSize);
2425
2446MIOPEN_EXPORT miopenStatus_t miopenPoolingForward(miopenHandle_t handle,
2447 const miopenPoolingDescriptor_t poolDesc,
2448 const void* alpha,
2449 const miopenTensorDescriptor_t xDesc,
2450 const void* x,
2451 const void* beta,
2452 const miopenTensorDescriptor_t yDesc,
2453 void* y,
2454 bool do_backward,
2455 void* workSpace,
2456 size_t workSpaceSize);
2457
2478MIOPEN_EXPORT miopenStatus_t miopenPoolingBackward(miopenHandle_t handle,
2479 const miopenPoolingDescriptor_t poolDesc,
2480 const void* alpha,
2481 const miopenTensorDescriptor_t yDesc,
2482 const void* y,
2483 const miopenTensorDescriptor_t dyDesc,
2484 const void* dy,
2485 const miopenTensorDescriptor_t xDesc,
2486 const void* x,
2487 const void* beta,
2488 const miopenTensorDescriptor_t dxDesc,
2489 void* dx,
2490 void* workSpace);
2491
2497MIOPEN_EXPORT miopenStatus_t miopenDestroyPoolingDescriptor(miopenPoolingDescriptor_t poolDesc);
2498
2500// CLOSEOUT POOLING DOXYGEN GROUP
2501
2502// LRN APIs
2512MIOPEN_EXPORT miopenStatus_t miopenCreateLRNDescriptor(miopenLRNDescriptor_t* lrnDesc);
2513
2527MIOPEN_EXPORT miopenStatus_t miopenSetLRNDescriptor(const miopenLRNDescriptor_t lrnDesc,
2528 miopenLRNMode_t mode,
2529 unsigned int lrnN,
2530 double lrnAlpha,
2531 double lrnBeta,
2532 double lrnK);
2533
2546MIOPEN_EXPORT miopenStatus_t miopenGetLRNDescriptor(const miopenLRNDescriptor_t lrnDesc,
2547 miopenLRNMode_t* mode,
2548 unsigned int* lrnN,
2549 double* lrnAlpha,
2550 double* lrnBeta,
2551 double* lrnK);
2552
2562MIOPEN_EXPORT miopenStatus_t miopenLRNGetWorkSpaceSize(const miopenTensorDescriptor_t yDesc,
2563 size_t* workSpaceSize);
2564
2583MIOPEN_EXPORT miopenStatus_t miopenLRNForward(miopenHandle_t handle,
2584 const miopenLRNDescriptor_t lrnDesc,
2585 const void* alpha,
2586 const miopenTensorDescriptor_t xDesc,
2587 const void* x,
2588 const void* beta,
2589 const miopenTensorDescriptor_t yDesc,
2590 void* y,
2591 bool do_backward,
2592 void* workSpace);
2593
2611MIOPEN_EXPORT miopenStatus_t miopenLRNBackward(miopenHandle_t handle,
2612 const miopenLRNDescriptor_t lrnDesc,
2613 const void* alpha,
2614 const miopenTensorDescriptor_t yDesc,
2615 const void* y,
2616 const miopenTensorDescriptor_t dyDesc,
2617 const void* dy,
2618 const miopenTensorDescriptor_t xDesc,
2619 const void* x,
2620 const void* beta,
2621 const miopenTensorDescriptor_t dxDesc,
2622 void* dx,
2623 const void* workSpace);
2624
2630MIOPEN_EXPORT miopenStatus_t miopenDestroyLRNDescriptor(miopenLRNDescriptor_t lrnDesc);
2631
2633// CLOSEOUT LRN DOXYGEN GROUP
2634
2635#ifdef MIOPEN_BETA_API
2636// LayerNorm APIs
2661MIOPEN_EXPORT miopenStatus_t miopenLayerNormForward(miopenHandle_t handle,
2662 miopenNormMode_t mode,
2663 const miopenTensorDescriptor_t xDesc,
2664 const void* x,
2665 const miopenTensorDescriptor_t weightDesc,
2666 const void* weight,
2667 const miopenTensorDescriptor_t biasDesc,
2668 const void* bias,
2669 const float epsilon,
2670 const int32_t normalized_dim,
2671 const miopenTensorDescriptor_t yDesc,
2672 void* y,
2673 const miopenTensorDescriptor_t meanDesc,
2674 void* mean,
2675 const miopenTensorDescriptor_t rstdDesc,
2676 void* rstd);
2677
2679// CLOSEOUT LAYERNORM DOXYGEN GROUP
2680#endif
2681
2682#ifdef MIOPEN_BETA_API
2683// Cat APIs
2699MIOPEN_EXPORT miopenStatus_t miopenCatForward(miopenHandle_t handle,
2700 const int32_t xCount,
2701 const miopenTensorDescriptor_t* xDescs,
2702 const void* const* xs,
2703 const miopenTensorDescriptor_t yDesc,
2704 void* y,
2705 const int32_t dim);
2706
2708// CLOSEOUT CAT DOXYGEN GROUP
2709#endif
2710
2711// Batch-Normalization APIs
2733MIOPEN_EXPORT miopenStatus_t miopenDeriveBNTensorDescriptor(miopenTensorDescriptor_t derivedBnDesc,
2734 const miopenTensorDescriptor_t xDesc,
2735 miopenBatchNormMode_t bn_mode);
2736
2775MIOPEN_EXPORT miopenStatus_t
2777 miopenBatchNormMode_t bn_mode,
2778 void* alpha,
2779 void* beta,
2780 const miopenTensorDescriptor_t xDesc,
2781 const void* x,
2782 const miopenTensorDescriptor_t yDesc,
2783 void* y,
2784 const miopenTensorDescriptor_t bnScaleBiasMeanVarDesc,
2785 void* bnScale,
2786 void* bnBias,
2787 double expAvgFactor,
2788 void* resultRunningMean,
2789 void* resultRunningVariance,
2790 double epsilon,
2791 void* resultSaveMean,
2792 void* resultSaveInvVariance);
2833MIOPEN_EXPORT miopenStatus_t
2835 miopenBatchNormMode_t bn_mode,
2836 void* alpha,
2837 void* beta,
2838 const miopenTensorDescriptor_t xDesc,
2839 const void* x,
2840 const miopenTensorDescriptor_t yDesc,
2841 void* y,
2842 const miopenTensorDescriptor_t scaleDesc,
2843 const miopenTensorDescriptor_t biasVarDesc,
2844 const miopenTensorDescriptor_t savedMeanDesc,
2845 const miopenTensorDescriptor_t savedVarDesc,
2846 void* bnScale,
2847 void* bnBias,
2848 double expAvgFactor,
2849 void* resultRunningMean,
2850 void* resultRunningVariance,
2851 double epsilon,
2852 void* resultSaveMean,
2853 void* resultSaveInvVariance);
2854
2884MIOPEN_EXPORT miopenStatus_t
2886 miopenBatchNormMode_t bn_mode,
2887 void* alpha,
2888 void* beta,
2889 const miopenTensorDescriptor_t xDesc,
2890 const void* x,
2891 const miopenTensorDescriptor_t yDesc,
2892 void* y,
2893 const miopenTensorDescriptor_t bnScaleBiasMeanVarDesc,
2894 void* bnScale,
2895 void* bnBias,
2896 void* estimatedMean,
2897 void* estimatedVariance,
2898 double epsilon);
2899
2931MIOPEN_EXPORT miopenStatus_t
2933 miopenBatchNormMode_t bn_mode,
2934 void* alpha,
2935 void* beta,
2936 const miopenTensorDescriptor_t xDesc,
2937 const void* x,
2938 const miopenTensorDescriptor_t yDesc,
2939 void* y,
2940 const miopenTensorDescriptor_t scaleDesc,
2941 const miopenTensorDescriptor_t biasDesc,
2942 const miopenTensorDescriptor_t estMeanDesc,
2943 const miopenTensorDescriptor_t estVarianceDesc,
2944 void* bnScale,
2945 void* bnBias,
2946 void* estimatedMean,
2947 void* estimatedVariance,
2948 double epsilon);
2949
2984MIOPEN_EXPORT miopenStatus_t
2986 miopenBatchNormMode_t bn_mode,
2987 const void* alphaDataDiff,
2988 const void* betaDataDiff,
2989 const void* alphaParamDiff,
2990 const void* betaParamDiff,
2991 const miopenTensorDescriptor_t xDesc,
2992 const void* x,
2993 const miopenTensorDescriptor_t dyDesc,
2994 const void* dy,
2995 const miopenTensorDescriptor_t dxDesc,
2996 void* dx,
2997 const miopenTensorDescriptor_t bnScaleBiasDiffDesc,
2998 const void* bnScale,
2999 void* resultBnScaleDiff,
3000 void* resultBnBiasDiff,
3001 double epsilon,
3002 const void* savedMean,
3003 const void* savedInvVariance);
3004
3043MIOPEN_EXPORT miopenStatus_t
3045 miopenBatchNormMode_t bn_mode,
3046 const void* alphaDataDiff,
3047 const void* betaDataDiff,
3048 const void* alphaParamDiff,
3049 const void* betaParamDiff,
3050 const miopenTensorDescriptor_t xDesc,
3051 const void* x,
3052 const miopenTensorDescriptor_t dyDesc,
3053 const void* dy,
3054 const miopenTensorDescriptor_t dxDesc,
3055 void* dx,
3056 const miopenTensorDescriptor_t scaleDesc,
3057 const miopenTensorDescriptor_t biasDesc,
3058 const miopenTensorDescriptor_t savedMeanDesc,
3059 const miopenTensorDescriptor_t savedVarDesc,
3060 const void* bnScale,
3061 void* resultBnScaleDiff,
3062 void* resultBnBiasDiff,
3063 double epsilon,
3064 const void* savedMean,
3065 const void* savedInvVariance);
3066
3068// CLOSEOUT BATCHNORM DOXYGEN GROUP
3069
3070// Activation APIs
3080MIOPEN_EXPORT miopenStatus_t
3081miopenCreateActivationDescriptor(miopenActivationDescriptor_t* activDesc);
3082
3094MIOPEN_EXPORT miopenStatus_t
3095miopenSetActivationDescriptor(const miopenActivationDescriptor_t activDesc,
3097 double activAlpha,
3098 double activBeta,
3099 double activGamma);
3100
3112MIOPEN_EXPORT miopenStatus_t
3113miopenGetActivationDescriptor(const miopenActivationDescriptor_t activDesc,
3115 double* activAlpha,
3116 double* activBeta,
3117 double* activGamma);
3118
3131MIOPEN_EXPORT miopenStatus_t miopenActivationForward(miopenHandle_t handle,
3132 const miopenActivationDescriptor_t activDesc,
3133 const void* alpha,
3134 const miopenTensorDescriptor_t xDesc,
3135 const void* x,
3136 const void* beta,
3137 const miopenTensorDescriptor_t yDesc,
3138 void* y);
3139
3156MIOPEN_EXPORT miopenStatus_t miopenActivationBackward(miopenHandle_t handle,
3157 const miopenActivationDescriptor_t activDesc,
3158 const void* alpha,
3159 const miopenTensorDescriptor_t yDesc,
3160 const void* y,
3161 const miopenTensorDescriptor_t dyDesc,
3162 const void* dy,
3163 const miopenTensorDescriptor_t xDesc,
3164 const void* x,
3165 const void* beta,
3166 const miopenTensorDescriptor_t dxDesc,
3167 void* dx);
3168
3174MIOPEN_EXPORT miopenStatus_t
3175miopenDestroyActivationDescriptor(miopenActivationDescriptor_t activDesc);
3176
3178// CLOSEOUT ACTIVATION DOXYGEN GROUP
3179
3180#ifdef MIOPEN_BETA_API
3196MIOPEN_EXPORT miopenStatus_t miopenGLUForward(miopenHandle_t handle,
3197 const miopenTensorDescriptor_t inputDesc,
3198 const void* input,
3199 const miopenTensorDescriptor_t outputDesc,
3200 void* output,
3201 const uint32_t dim);
3202
3215MIOPEN_EXPORT miopenStatus_t miopenGLUBackward(miopenHandle_t handle,
3216 const miopenTensorDescriptor_t inputDesc,
3217 const void* input,
3218 const miopenTensorDescriptor_t outputGradDesc,
3219 const void* outputGrad,
3220 const miopenTensorDescriptor_t inputGradDesc,
3221 void* inputGrad,
3222 const uint32_t dim);
3223
3225// CLOSEOUT ACTIVATION DOXYGEN GROUP
3226#endif // MIOPEN_BETA_API
3227
3228// Softmax APIs
3246MIOPEN_EXPORT miopenStatus_t miopenSoftmaxForward(miopenHandle_t handle,
3247 const void* alpha,
3248 const miopenTensorDescriptor_t xDesc,
3249 const void* x,
3250 const void* beta,
3251 const miopenTensorDescriptor_t yDesc,
3252 void* y);
3253
3269MIOPEN_EXPORT miopenStatus_t miopenSoftmaxBackward(miopenHandle_t handle,
3270 const void* alpha,
3271 const miopenTensorDescriptor_t yDesc,
3272 const void* y,
3273 const miopenTensorDescriptor_t dyDesc,
3274 const void* dy,
3275 const void* beta,
3276 const miopenTensorDescriptor_t dxDesc,
3277 void* dx);
3278
3292MIOPEN_EXPORT miopenStatus_t miopenSoftmaxForward_V2(miopenHandle_t handle,
3293 const void* alpha,
3294 const miopenTensorDescriptor_t xDesc,
3295 const void* x,
3296 const void* beta,
3297 const miopenTensorDescriptor_t yDesc,
3298 void* y,
3299 miopenSoftmaxAlgorithm_t algorithm,
3300 miopenSoftmaxMode_t mode);
3301
3317MIOPEN_EXPORT miopenStatus_t miopenSoftmaxBackward_V2(miopenHandle_t handle,
3318 const void* alpha,
3319 const miopenTensorDescriptor_t yDesc,
3320 const void* y,
3321 const miopenTensorDescriptor_t dyDesc,
3322 const void* dy,
3323 const void* beta,
3324 const miopenTensorDescriptor_t dxDesc,
3325 void* dx,
3326 miopenSoftmaxAlgorithm_t algorithm,
3327 miopenSoftmaxMode_t mode);
3328
3330// CLOSEOUT SOFTMAX DOXYGEN GROUP
3331
3335MIOPEN_DECLARE_OBJECT(miopenFusionPlanDescriptor);
3336MIOPEN_DECLARE_OBJECT(miopenOperatorDescriptor);
3337MIOPEN_DECLARE_OBJECT(miopenOperatorArgs);
3338
3352
3360MIOPEN_EXPORT miopenStatus_t miopenCreateFusionPlan(miopenFusionPlanDescriptor_t* fusePlanDesc,
3361 const miopenFusionDirection_t fuseDirection,
3362 const miopenTensorDescriptor_t inputDesc);
3363
3369MIOPEN_EXPORT miopenStatus_t miopenDestroyFusionPlan(miopenFusionPlanDescriptor_t fusePlanDesc);
3370
3377MIOPEN_EXPORT miopenStatus_t miopenCompileFusionPlan(miopenHandle_t handle,
3378 miopenFusionPlanDescriptor_t fusePlanDesc);
3379
3390MIOPEN_EXPORT miopenStatus_t miopenFusionPlanGetOp(miopenFusionPlanDescriptor_t fusePlanDesc,
3391 const int op_idx,
3392 miopenFusionOpDescriptor_t* op);
3393
3401MIOPEN_EXPORT miopenStatus_t
3403 miopenFusionPlanDescriptor_t fusePlanDesc,
3404 size_t* workSpaceSize,
3406
3424MIOPEN_EXPORT miopenStatus_t
3425miopenFusionPlanConvolutionGetAlgo(miopenFusionPlanDescriptor_t fusePlanDesc,
3426 const int requestAlgoCount,
3427 int* returnedAlgoCount,
3428 miopenConvFwdAlgorithm_t* returnedAlgos);
3429
3440 miopenFusionPlanDescriptor_t fusePlanDesc, miopenConvFwdAlgorithm_t algo);
3441
3450MIOPEN_EXPORT miopenStatus_t miopenCreateOpConvForward(miopenFusionPlanDescriptor_t fusePlanDesc,
3451 miopenFusionOpDescriptor_t* convOp,
3452 miopenConvolutionDescriptor_t convDesc,
3453 const miopenTensorDescriptor_t wDesc);
3454
3455//---
3456
3457// Activation forward create ops ---
3465MIOPEN_EXPORT miopenStatus_t
3466miopenCreateOpActivationForward(miopenFusionPlanDescriptor_t fusePlanDesc,
3467 miopenFusionOpDescriptor_t* activFwdOp,
3469
3470// Activation backward create ops ---
3478MIOPEN_EXPORT miopenStatus_t
3479miopenCreateOpActivationBackward(miopenFusionPlanDescriptor_t fusePlanDesc,
3480 miopenFusionOpDescriptor_t* activBwdOp,
3482
3483// Bias create ops ---
3491MIOPEN_EXPORT miopenStatus_t miopenCreateOpBiasForward(miopenFusionPlanDescriptor_t fusePlanDesc,
3492 miopenFusionOpDescriptor_t* biasOp,
3493 const miopenTensorDescriptor_t bDesc);
3494
3495// Batch normalization create ops ---
3504MIOPEN_EXPORT miopenStatus_t
3505miopenCreateOpBatchNormInference(miopenFusionPlanDescriptor_t fusePlanDesc,
3506 miopenFusionOpDescriptor_t* bnOp,
3507 const miopenBatchNormMode_t bn_mode,
3508 const miopenTensorDescriptor_t bnScaleBiasMeanVarDesc);
3509
3519MIOPEN_EXPORT miopenStatus_t
3520miopenCreateOpBatchNormForward(miopenFusionPlanDescriptor_t fusePlanDesc,
3521 miopenFusionOpDescriptor_t* bnFwdOp,
3522 const miopenBatchNormMode_t bn_mode,
3523 bool runningMeanVariance);
3524
3532MIOPEN_EXPORT miopenStatus_t
3533miopenCreateOpBatchNormBackward(miopenFusionPlanDescriptor_t fusePlanDesc,
3534 miopenFusionOpDescriptor_t* bnBwdOp,
3535 const miopenBatchNormMode_t bn_mode);
3536
3537//---
3543MIOPEN_EXPORT miopenStatus_t miopenCreateOperatorArgs(miopenOperatorArgs_t* args);
3544
3550MIOPEN_EXPORT miopenStatus_t miopenDestroyOperatorArgs(miopenOperatorArgs_t args);
3551
3552// Convolution set arguments ---
3562MIOPEN_EXPORT miopenStatus_t miopenSetOpArgsConvForward(miopenOperatorArgs_t args,
3563 const miopenFusionOpDescriptor_t convOp,
3564 const void* alpha,
3565 const void* beta,
3566 const void* w);
3567// Activation set arguments ---
3579MIOPEN_EXPORT miopenStatus_t
3580miopenSetOpArgsActivForward(miopenOperatorArgs_t args,
3581 const miopenFusionOpDescriptor_t activFwdOp,
3582 const void* alpha,
3583 const void* beta,
3584 double activAlpha,
3585 double activBeta,
3586 double activGamma);
3587
3601MIOPEN_EXPORT miopenStatus_t
3602miopenSetOpArgsActivBackward(miopenOperatorArgs_t args,
3603 const miopenFusionOpDescriptor_t activBwdOp,
3604 const void* alpha,
3605 const void* beta,
3606 const void* y,
3607 const void* reserved,
3608 double activAlpha,
3609 double activBeta,
3610 double activGamma);
3611
3612// Batch Normalization set arguments ---
3626MIOPEN_EXPORT miopenStatus_t
3627miopenSetOpArgsBatchNormInference(miopenOperatorArgs_t args,
3628 const miopenFusionOpDescriptor_t bnOp,
3629 const void* alpha,
3630 const void* beta,
3631 const void* bnScale,
3632 const void* bnBias,
3633 const void* estimatedMean,
3634 const void* estimatedVariance,
3635 double epsilon);
3636
3653MIOPEN_EXPORT miopenStatus_t miopenSetOpArgsBatchNormForward(miopenOperatorArgs_t args,
3654 const miopenFusionOpDescriptor_t bnOp,
3655 const void* alpha,
3656 const void* beta,
3657 const void* bnScale,
3658 const void* bnBias,
3659 void* savedMean,
3660 void* savedInvVariance,
3661 void* runningMean,
3662 void* runningVariance,
3663 double expAvgFactor,
3664 double epsilon);
3665
3681MIOPEN_EXPORT miopenStatus_t miopenSetOpArgsBatchNormBackward(miopenOperatorArgs_t args,
3682 const miopenFusionOpDescriptor_t bnOp,
3683 const void* alpha,
3684 const void* beta,
3685 const void* x,
3686 const void* bnScale,
3687 const void* bnBias,
3688 void* resultBnScaleDiff,
3689 void* resultBnBiasDiff,
3690 const void* savedMean,
3691 const void* savedInvVariance);
3692
3693// Bias forward set arguments ---
3703MIOPEN_EXPORT miopenStatus_t miopenSetOpArgsBiasForward(miopenOperatorArgs_t args,
3704 const miopenFusionOpDescriptor_t biasOp,
3705 const void* alpha,
3706 const void* beta,
3707 const void* bias);
3720MIOPEN_EXPORT miopenStatus_t
3721miopenExecuteFusionPlan(const miopenHandle_t handle,
3722 const miopenFusionPlanDescriptor_t fusePlanDesc,
3723 const miopenTensorDescriptor_t inputDesc,
3724 const void* input,
3725 const miopenTensorDescriptor_t outputDesc,
3726 void* output,
3727 miopenOperatorArgs_t args);
3728
3752MIOPEN_EXPORT miopenStatus_t
3754 const void* alpha1,
3755 const miopenTensorDescriptor_t xDesc,
3756 const void* x,
3757 const miopenTensorDescriptor_t wDesc,
3758 const void* w,
3759 const miopenConvolutionDescriptor_t convDesc,
3761 void* workspace,
3762 size_t workspaceSizeInBytes,
3763 const void* alpha2,
3764 const miopenTensorDescriptor_t zDesc,
3765 const void* z,
3766 const miopenTensorDescriptor_t biasDesc,
3767 const void* bias,
3768 const miopenActivationDescriptor_t activationDesc,
3769 const miopenTensorDescriptor_t yDesc,
3770 void* y);
3772// CLOSEOUT FUSION DOXYGEN GROUP
3773
3789
3798
3802typedef enum
3803{
3804 miopenRNNdefault = 0,
3811
3820
3829
3837
3846
3855
3866
3873MIOPEN_EXPORT miopenStatus_t miopenCreateRNNDescriptor(miopenRNNDescriptor_t* rnnDesc);
3874
3887MIOPEN_EXPORT miopenStatus_t miopenGetRNNDescriptor(miopenRNNDescriptor_t rnnDesc,
3888 miopenRNNMode_t* rnnMode,
3889 miopenRNNAlgo_t* algoMode,
3890 miopenRNNInputMode_t* inputMode,
3891 miopenRNNDirectionMode_t* dirMode,
3892 miopenRNNBiasMode_t* biasMode,
3893 int* hiddenSize,
3894 int* layer);
3895
3912MIOPEN_EXPORT miopenStatus_t miopenGetRNNDescriptor_V2(miopenRNNDescriptor_t rnnDesc,
3913 int* hiddenSize,
3914 int* layer,
3915 miopenDropoutDescriptor_t* dropoutDesc,
3916 miopenRNNInputMode_t* inputMode,
3917 miopenRNNDirectionMode_t* dirMode,
3918 miopenRNNMode_t* rnnMode,
3919 miopenRNNBiasMode_t* biasMode,
3920 miopenRNNAlgo_t* algoMode,
3921 miopenDataType_t* dataType);
3922
3928MIOPEN_EXPORT miopenStatus_t miopenDestroyRNNDescriptor(miopenRNNDescriptor_t rnnDesc);
3929
3945MIOPEN_EXPORT miopenStatus_t miopenSetRNNDescriptor(miopenRNNDescriptor_t rnnDesc,
3946 const int hsize,
3947 const int nlayers,
3948 miopenRNNInputMode_t inMode,
3949 miopenRNNDirectionMode_t direction,
3950 miopenRNNMode_t rnnMode,
3951 miopenRNNBiasMode_t biasMode,
3952 miopenRNNAlgo_t algo,
3953 miopenDataType_t dataType);
3954
3973MIOPEN_EXPORT miopenStatus_t miopenSetRNNDescriptor_V2(miopenRNNDescriptor_t rnnDesc,
3974 const int hsize,
3975 const int nlayers,
3976 miopenDropoutDescriptor_t dropoutDesc,
3977 miopenRNNInputMode_t inMode,
3978 miopenRNNDirectionMode_t direction,
3979 miopenRNNMode_t rnnMode,
3980 miopenRNNBiasMode_t biasMode,
3981 miopenRNNAlgo_t algo,
3982 miopenDataType_t dataType);
3983
3998MIOPEN_EXPORT miopenStatus_t
3999miopenSetRNNDataSeqTensorDescriptor(miopenSeqTensorDescriptor_t seqTensorDesc,
4000 miopenDataType_t dataType,
4001 miopenRNNBaseLayout_t layout,
4002 int maxSequenceLen,
4003 int batchSize,
4004 int vectorSize,
4005 const int* sequenceLenArray,
4006 void* paddingMarker);
4007
4026MIOPEN_EXPORT miopenStatus_t
4027miopenGetRNNDataSeqTensorDescriptor(miopenSeqTensorDescriptor_t seqTensorDesc,
4028 miopenDataType_t* dataType,
4029 miopenRNNBaseLayout_t* layout,
4030 int* maxSequenceLen,
4031 int* batchSize,
4032 int* vectorSize,
4033 int sequenceLenArrayLimit,
4034 int* sequenceLenArray,
4035 void* paddingMarker);
4036
4053MIOPEN_EXPORT miopenStatus_t miopenGetRNNWorkspaceSize(miopenHandle_t handle,
4054 const miopenRNNDescriptor_t rnnDesc,
4055 const int sequenceLen,
4056 const miopenTensorDescriptor_t* xDesc,
4057 size_t* numBytes);
4058
4075MIOPEN_EXPORT miopenStatus_t miopenGetRNNTrainingReserveSize(miopenHandle_t handle,
4076 miopenRNNDescriptor_t rnnDesc,
4077 const int sequenceLen,
4078 const miopenTensorDescriptor_t* xDesc,
4079 size_t* numBytes);
4080
4097MIOPEN_EXPORT miopenStatus_t miopenGetRNNTempSpaceSizes(miopenHandle_t handle,
4098 miopenRNNDescriptor_t rnnDesc,
4099 miopenSeqTensorDescriptor_t xDesc,
4100 miopenRNNFWDMode_t fwdMode,
4101 size_t* workSpaceSize,
4102 size_t* reserveSpaceSize);
4103
4116MIOPEN_EXPORT miopenStatus_t miopenGetRNNParamsSize(miopenHandle_t handle,
4117 miopenRNNDescriptor_t rnnDesc,
4118 miopenTensorDescriptor_t xDesc,
4119 size_t* numBytes,
4120 miopenDataType_t dtype);
4121
4134MIOPEN_EXPORT miopenStatus_t miopenGetRNNParamsDescriptor(miopenHandle_t handle,
4135 miopenRNNDescriptor_t rnnDesc,
4136 miopenTensorDescriptor_t xDesc,
4137 miopenTensorDescriptor_t wDesc,
4138 miopenDataType_t dtype);
4139
4157MIOPEN_EXPORT miopenStatus_t miopenGetRNNInputTensorSize(miopenHandle_t handle,
4158 miopenRNNDescriptor_t rnnDesc,
4159 const int seqLen,
4160 miopenTensorDescriptor_t* xDesc,
4161 size_t* numBytes);
4162
4175MIOPEN_EXPORT miopenStatus_t miopenGetRNNHiddenTensorSize(miopenHandle_t handle,
4176 miopenRNNDescriptor_t rnnDesc,
4177 const int seqLen,
4178 miopenTensorDescriptor_t* xDesc,
4179 size_t* numBytes);
4180
4221MIOPEN_EXPORT miopenStatus_t miopenGetRNNLayerParamSize(miopenHandle_t handle,
4222 miopenRNNDescriptor_t rnnDesc,
4223 const int layer,
4224 miopenTensorDescriptor_t xDesc,
4225 const int paramID,
4226 size_t* numBytes);
4227
4265MIOPEN_EXPORT miopenStatus_t miopenGetRNNLayerBiasSize(miopenHandle_t handle,
4266 miopenRNNDescriptor_t rnnDesc,
4267 const int layer,
4268 const int biasID,
4269 size_t* numBytes);
4270
4329MIOPEN_EXPORT miopenStatus_t miopenGetRNNLayerParam(miopenHandle_t handle,
4330 miopenRNNDescriptor_t rnnDesc,
4331 const int layer,
4332 miopenTensorDescriptor_t xDesc,
4333 miopenTensorDescriptor_t wDesc,
4334 const void* w,
4335 const int paramID,
4336 miopenTensorDescriptor_t paramDesc,
4337 void* layerParam);
4338
4396MIOPEN_EXPORT miopenStatus_t miopenGetRNNLayerBias(miopenHandle_t handle,
4397 miopenRNNDescriptor_t rnnDesc,
4398 const int layer,
4399 miopenTensorDescriptor_t xDesc,
4400 miopenTensorDescriptor_t wDesc,
4401 const void* w,
4402 const int biasID,
4403 miopenTensorDescriptor_t biasDesc,
4404 void* layerBias);
4405
4460MIOPEN_EXPORT miopenStatus_t miopenGetRNNLayerParamOffset(miopenRNNDescriptor_t rnnDesc,
4461 const int layer,
4462 miopenTensorDescriptor_t xDesc,
4463 const int paramID,
4464 miopenTensorDescriptor_t paramDesc,
4465 size_t* layerParamOffset);
4466
4517MIOPEN_EXPORT miopenStatus_t miopenGetRNNLayerBiasOffset(miopenRNNDescriptor_t rnnDesc,
4518 const int layer,
4519 miopenTensorDescriptor_t xDesc,
4520 const int biasID,
4521 miopenTensorDescriptor_t biasDesc,
4522 size_t* layerBiasOffset);
4523
4576MIOPEN_EXPORT miopenStatus_t miopenSetRNNLayerParam(miopenHandle_t handle,
4577 miopenRNNDescriptor_t rnnDesc,
4578 const int layer,
4579 miopenTensorDescriptor_t xDesc,
4580 miopenTensorDescriptor_t wDesc,
4581 void* w,
4582 const int paramID,
4583 miopenTensorDescriptor_t paramDesc,
4584 const void* layerParam);
4585
4636MIOPEN_EXPORT miopenStatus_t miopenSetRNNLayerBias(miopenHandle_t handle,
4637 miopenRNNDescriptor_t rnnDesc,
4638 const int layer,
4639 miopenTensorDescriptor_t xDesc,
4640 miopenTensorDescriptor_t wDesc,
4641 void* w,
4642 const int biasID,
4643 miopenTensorDescriptor_t biasDesc,
4644 const void* layerBias);
4645
4657MIOPEN_EXPORT miopenStatus_t miopenSetRNNPaddingMode(miopenRNNDescriptor_t rnnDesc,
4658 miopenRNNPaddingMode_t paddingMode);
4659
4667MIOPEN_EXPORT miopenStatus_t miopenGetRNNPaddingMode(miopenRNNDescriptor_t rnnDesc,
4668 miopenRNNPaddingMode_t* paddingMode);
4669
4720MIOPEN_EXPORT miopenStatus_t miopenRNNForward(miopenHandle_t handle,
4721 const miopenRNNDescriptor_t rnnDesc,
4722 miopenRNNFWDMode_t fwdMode,
4723 const miopenSeqTensorDescriptor_t xDesc,
4724 const void* x,
4725 const miopenTensorDescriptor_t hDesc,
4726 const void* hx,
4727 void* hy,
4728 const miopenTensorDescriptor_t cDesc,
4729 const void* cx,
4730 void* cy,
4731 const miopenSeqTensorDescriptor_t yDesc,
4732 void* y,
4733 const void* w,
4734 size_t weightSpaceSize,
4735 void* workSpace,
4736 size_t workSpaceNumBytes,
4737 void* reserveSpace,
4738 size_t reserveSpaceNumBytes);
4739
4789MIOPEN_EXPORT miopenStatus_t miopenRNNBackwardSeqData(miopenHandle_t handle,
4790 const miopenRNNDescriptor_t rnnDesc,
4791 const miopenSeqTensorDescriptor_t yDesc,
4792 const void* y,
4793 const void* dy,
4794 const miopenTensorDescriptor_t hDesc,
4795 const void* hx,
4796 const void* dhy,
4797 void* dhx,
4798 const miopenTensorDescriptor_t cDesc,
4799 const void* cx,
4800 const void* dcy,
4801 void* dcx,
4802 const miopenSeqTensorDescriptor_t xDesc,
4803 void* dx,
4804 const void* w,
4805 size_t weightSpaceSize,
4806 void* workSpace,
4807 size_t workSpaceNumBytes,
4808 void* reserveSpace,
4809 size_t reserveSpaceNumBytes);
4810
4844MIOPEN_EXPORT miopenStatus_t
4846 const miopenRNNDescriptor_t rnnDesc,
4847 const miopenSeqTensorDescriptor_t xDesc,
4848 const void* x,
4849 const miopenTensorDescriptor_t hDesc,
4850 const void* hx,
4851 const miopenSeqTensorDescriptor_t yDesc,
4852 const void* y,
4853 void* dw,
4854 size_t weightSpaceSize,
4855 void* workSpace,
4856 size_t workSpaceNumBytes,
4857 const void* reserveSpace,
4858 size_t reserveSpaceNumBytes);
4859
4917MIOPEN_EXPORT miopenStatus_t miopenRNNForwardTraining(miopenHandle_t handle,
4918 const miopenRNNDescriptor_t rnnDesc,
4919 const int sequenceLen,
4920 const miopenTensorDescriptor_t* xDesc,
4921 const void* x,
4922 const miopenTensorDescriptor_t hxDesc,
4923 const void* hx,
4924 const miopenTensorDescriptor_t cxDesc,
4925 const void* cx,
4926 const miopenTensorDescriptor_t wDesc,
4927 const void* w,
4928 const miopenTensorDescriptor_t* yDesc,
4929 void* y,
4930 const miopenTensorDescriptor_t hyDesc,
4931 void* hy,
4932 const miopenTensorDescriptor_t cyDesc,
4933 void* cy,
4934 void* workSpace,
4935 size_t workSpaceNumBytes,
4936 void* reserveSpace,
4937 size_t reserveSpaceNumBytes);
4938
5011MIOPEN_EXPORT miopenStatus_t miopenRNNBackwardData(miopenHandle_t handle,
5012 const miopenRNNDescriptor_t rnnDesc,
5013 const int sequenceLen,
5014 const miopenTensorDescriptor_t* yDesc,
5015 const void* y,
5016 const miopenTensorDescriptor_t* dyDesc,
5017 const void* dy,
5018 const miopenTensorDescriptor_t dhyDesc,
5019 const void* dhy,
5020 const miopenTensorDescriptor_t dcyDesc,
5021 const void* dcy,
5022 const miopenTensorDescriptor_t wDesc,
5023 const void* w,
5024 const miopenTensorDescriptor_t hxDesc,
5025 const void* hx,
5026 const miopenTensorDescriptor_t cxDesc,
5027 const void* cx,
5028 const miopenTensorDescriptor_t* dxDesc,
5029 void* dx,
5030 const miopenTensorDescriptor_t dhxDesc,
5031 void* dhx,
5032 const miopenTensorDescriptor_t dcxDesc,
5033 void* dcx,
5034 void* workSpace,
5035 size_t workSpaceNumBytes,
5036 void* reserveSpace,
5037 size_t reserveSpaceNumBytes);
5038
5075MIOPEN_EXPORT miopenStatus_t miopenRNNBackwardWeights(miopenHandle_t handle,
5076 const miopenRNNDescriptor_t rnnDesc,
5077 const int sequenceLen,
5078 const miopenTensorDescriptor_t* xDesc,
5079 const void* x,
5080 const miopenTensorDescriptor_t hxDesc,
5081 const void* hx,
5082 const miopenTensorDescriptor_t* yDesc,
5083 const void* y,
5084 const miopenTensorDescriptor_t dwDesc,
5085 void* dw,
5086 void* workSpace,
5087 size_t workSpaceNumBytes,
5088 const void* reserveSpace,
5089 size_t reserveSpaceNumBytes);
5090
5146MIOPEN_EXPORT miopenStatus_t miopenRNNForwardInference(miopenHandle_t handle,
5147 miopenRNNDescriptor_t rnnDesc,
5148 const int sequenceLen,
5149 const miopenTensorDescriptor_t* xDesc,
5150 const void* x,
5151 const miopenTensorDescriptor_t hxDesc,
5152 const void* hx,
5153 const miopenTensorDescriptor_t cxDesc,
5154 const void* cx,
5155 const miopenTensorDescriptor_t wDesc,
5156 const void* w,
5157 const miopenTensorDescriptor_t* yDesc,
5158 void* y,
5159 const miopenTensorDescriptor_t hyDesc,
5160 void* hy,
5161 const miopenTensorDescriptor_t cyDesc,
5162 void* cy,
5163 void* workSpace,
5164 size_t workSpaceNumBytes);
5165
5167// CLOSEOUT RNN DOXYGEN GROUP
5168
5181
5188MIOPEN_EXPORT miopenStatus_t miopenCreateCTCLossDescriptor(miopenCTCLossDescriptor_t* ctcLossDesc);
5189
5199MIOPEN_EXPORT miopenStatus_t miopenGetCTCLossDescriptor(miopenCTCLossDescriptor_t ctcLossDesc,
5200 miopenDataType_t* dataType,
5201 int* blank_label_id,
5202 bool* apply_softmax_layer);
5203
5209MIOPEN_EXPORT miopenStatus_t miopenDestroyCTCLossDescriptor(miopenCTCLossDescriptor_t ctcLossDesc);
5210
5220MIOPEN_EXPORT miopenStatus_t miopenSetCTCLossDescriptor(miopenCTCLossDescriptor_t ctcLossDesc,
5221 miopenDataType_t dataType,
5222 const int blank_label_id,
5223 bool apply_softmax_layer);
5224
5241MIOPEN_EXPORT miopenStatus_t
5242miopenGetCTCLossWorkspaceSize(miopenHandle_t handle,
5243 const miopenTensorDescriptor_t probsDesc,
5244 const miopenTensorDescriptor_t gradientsDesc,
5245 const int* labels,
5246 const int* labelLengths,
5247 const int* inputLengths,
5249 const miopenCTCLossDescriptor_t ctcLossDesc,
5250 size_t* workSpaceSize);
5251
5271MIOPEN_EXPORT miopenStatus_t miopenCTCLoss(miopenHandle_t handle,
5272 const miopenTensorDescriptor_t probsDesc,
5273 const void* probs,
5274 const int* labels,
5275 const int* labelLengths,
5276 const int* inputLengths,
5277 void* losses,
5278 const miopenTensorDescriptor_t gradientsDesc,
5279 void* gradients,
5281 const miopenCTCLossDescriptor_t ctcLossDesc,
5282 void* workSpace,
5283 size_t workSpaceSize);
5284
5286// CLOSEOUT LossFunction DOXYGEN GROUP
5287
5288// Dropout APIs
5297typedef enum
5298{
5301
5307MIOPEN_EXPORT miopenStatus_t miopenCreateDropoutDescriptor(miopenDropoutDescriptor_t* dropoutDesc);
5308
5314MIOPEN_EXPORT miopenStatus_t miopenDestroyDropoutDescriptor(miopenDropoutDescriptor_t dropoutDesc);
5315
5324MIOPEN_EXPORT miopenStatus_t miopenDropoutGetReserveSpaceSize(const miopenTensorDescriptor_t xDesc,
5325 size_t* reserveSpaceSizeInBytes);
5326
5335MIOPEN_EXPORT miopenStatus_t miopenDropoutGetStatesSize(miopenHandle_t handle,
5336 size_t* stateSizeInBytes);
5337
5354MIOPEN_EXPORT miopenStatus_t miopenGetDropoutDescriptor(miopenDropoutDescriptor_t dropoutDesc,
5355 miopenHandle_t handle,
5356 float* dropout,
5357 void** states,
5358 unsigned long long* seed,
5359 bool* use_mask,
5360 bool* state_evo,
5361 miopenRNGType_t* rng_mode);
5362
5385MIOPEN_EXPORT miopenStatus_t miopenRestoreDropoutDescriptor(miopenDropoutDescriptor_t dropoutDesc,
5386 miopenHandle_t handle,
5387 float dropout,
5388 void* states,
5389 size_t stateSizeInBytes,
5390 unsigned long long seed,
5391 bool use_mask,
5392 bool state_evo,
5393 miopenRNGType_t rng_mode);
5394
5414MIOPEN_EXPORT miopenStatus_t miopenSetDropoutDescriptor(miopenDropoutDescriptor_t dropoutDesc,
5415 miopenHandle_t handle,
5416 float dropout,
5417 void* states,
5418 size_t stateSizeInBytes,
5419 unsigned long long seed,
5420 bool use_mask,
5421 bool state_evo,
5422 miopenRNGType_t rng_mode);
5423
5441MIOPEN_EXPORT miopenStatus_t miopenDropoutForward(miopenHandle_t handle,
5442 const miopenDropoutDescriptor_t dropoutDesc,
5443 const miopenTensorDescriptor_t noise_shape,
5444 const miopenTensorDescriptor_t xDesc,
5445 const void* x,
5446 const miopenTensorDescriptor_t yDesc,
5447 void* y,
5448 void* reserveSpace,
5449 size_t reserveSpaceSizeInBytes);
5450
5468MIOPEN_EXPORT miopenStatus_t miopenDropoutBackward(miopenHandle_t handle,
5469 const miopenDropoutDescriptor_t dropoutDesc,
5470 const miopenTensorDescriptor_t noise_shape,
5471 const miopenTensorDescriptor_t dyDesc,
5472 const void* dy,
5473 const miopenTensorDescriptor_t dxDesc,
5474 void* dx,
5475 void* reserveSpace,
5476 size_t reserveSpaceSizeInBytes);
5477
5479// CLOSEOUT DROPOUT DOXYGEN GROUP
5480
5481// TensorReduce APIs
5492MIOPEN_EXPORT miopenStatus_t
5493miopenCreateReduceTensorDescriptor(miopenReduceTensorDescriptor_t* reduceTensorDesc);
5494
5500MIOPEN_EXPORT miopenStatus_t
5501miopenDestroyReduceTensorDescriptor(miopenReduceTensorDescriptor_t reduceTensorDesc);
5502
5515MIOPEN_EXPORT miopenStatus_t
5516miopenSetReduceTensorDescriptor(miopenReduceTensorDescriptor_t reduceTensorDesc,
5517 miopenReduceTensorOp_t reduceTensorOp,
5518 miopenDataType_t reduceTensorCompType,
5519 miopenNanPropagation_t reduceTensorNanOpt,
5520 miopenReduceTensorIndices_t reduceTensorIndices,
5521 miopenIndicesType_t reduceTensorIndicesType);
5522
5538MIOPEN_EXPORT miopenStatus_t
5539miopenGetReduceTensorDescriptor(const miopenReduceTensorDescriptor_t reduceTensorDesc,
5540 miopenReduceTensorOp_t* reduceTensorOp,
5541 miopenDataType_t* reduceTensorCompType,
5542 miopenNanPropagation_t* reduceTensorNanOpt,
5543 miopenReduceTensorIndices_t* reduceTensorIndices,
5544 miopenIndicesType_t* reduceTensorIndicesType);
5545
5555MIOPEN_EXPORT miopenStatus_t
5556miopenGetReductionIndicesSize(miopenHandle_t handle,
5557 const miopenReduceTensorDescriptor_t reduceTensorDesc,
5558 const miopenTensorDescriptor_t aDesc,
5559 const miopenTensorDescriptor_t cDesc,
5560 size_t* sizeInBytes);
5561
5571MIOPEN_EXPORT miopenStatus_t
5573 const miopenReduceTensorDescriptor_t reduceTensorDesc,
5574 const miopenTensorDescriptor_t aDesc,
5575 const miopenTensorDescriptor_t cDesc,
5576 size_t* sizeInBytes);
5577
5601MIOPEN_EXPORT miopenStatus_t
5602miopenReduceTensor(miopenHandle_t handle,
5603 const miopenReduceTensorDescriptor_t reduceTensorDesc,
5604 void* indices,
5605 size_t indicesSizeInBytes,
5606 void* workspace,
5607 size_t workspaceSizeInBytes,
5608 const void* alpha,
5609 const miopenTensorDescriptor_t aDesc,
5610 const void* A,
5611 const void* beta,
5612 const miopenTensorDescriptor_t cDesc,
5613 void* C);
5614
5616// CLOSEOUT TensorReduce DOXYGEN GROUP
5617
5618// Find 2.0 API
5630
5643
5647typedef enum
5648{
5653
5687
5688#ifdef MIOPEN_BETA_API
5714#endif
5715
5717
5719#ifdef MIOPEN_BETA_API
5722#endif
5724
5733
5741MIOPEN_EXPORT miopenStatus_t miopenCreateConvProblem(miopenProblem_t* problem,
5742 miopenConvolutionDescriptor_t operatorDesc,
5743 miopenProblemDirection_t direction);
5744
5761
5762MIOPEN_EXPORT miopenStatus_t miopenCreateMhaProblem(miopenProblem_t* problem,
5763 miopenMhaDescriptor_t operatorDesc,
5764 miopenProblemDirection_t direction);
5765
5772MIOPEN_EXPORT miopenStatus_t miopenCreateMhaDescriptor(miopenMhaDescriptor_t* mhaDesc);
5773
5783MIOPEN_EXPORT miopenStatus_t miopenSetMhaDescriptor(miopenMhaDescriptor_t mhaDesc, float scale);
5784
5794MIOPEN_EXPORT miopenStatus_t miopenGetMhaDescriptor(miopenMhaDescriptor_t mhaDesc, float* scale);
5795
5802MIOPEN_EXPORT miopenStatus_t miopenCreateSoftmaxDescriptor(miopenSoftmaxDescriptor_t* softmaxDesc);
5803
5815MIOPEN_EXPORT miopenStatus_t miopenSetSoftmaxDescriptor(miopenSoftmaxDescriptor_t softmaxDesc,
5816 float alpha,
5817 float beta,
5818 miopenSoftmaxAlgorithm_t algorithm,
5819 miopenSoftmaxMode_t mode);
5820
5832MIOPEN_EXPORT miopenStatus_t miopenGetSoftmaxDescriptor(const miopenSoftmaxDescriptor_t softmaxDesc,
5833 float* alpha,
5834 float* beta,
5835 miopenSoftmaxAlgorithm_t* algorithm,
5836 miopenSoftmaxMode_t* mode);
5837
5843MIOPEN_EXPORT miopenStatus_t miopenDestroyProblem(miopenProblem_t problem);
5844
5852MIOPEN_EXPORT miopenStatus_t
5853miopenSetProblemTensorDescriptor(miopenProblem_t problem,
5855 const miopenTensorDescriptor_t descriptor);
5856
5859MIOPEN_DECLARE_OBJECT(miopenFindOptions);
5860
5866MIOPEN_EXPORT miopenStatus_t miopenCreateFindOptions(miopenFindOptions_t* options);
5867
5873MIOPEN_EXPORT miopenStatus_t miopenDestroyFindOptions(miopenFindOptions_t options);
5874
5881MIOPEN_EXPORT miopenStatus_t miopenSetFindOptionTuning(miopenFindOptions_t options, int value);
5882
5889MIOPEN_EXPORT miopenStatus_t miopenSetFindOptionResultsOrder(miopenFindOptions_t options,
5891
5899MIOPEN_EXPORT miopenStatus_t miopenSetFindOptionWorkspaceLimit(miopenFindOptions_t options,
5900 size_t value);
5901
5909MIOPEN_EXPORT miopenStatus_t miopenSetFindOptionPreallocatedWorkspace(miopenFindOptions_t options,
5910 void* buffer,
5911 size_t size);
5912
5921MIOPEN_EXPORT miopenStatus_t miopenSetFindOptionPreallocatedTensor(miopenFindOptions_t options,
5923 void* buffer);
5924
5932MIOPEN_EXPORT miopenStatus_t miopenSetFindOptionAttachBinaries(miopenFindOptions_t options,
5933 unsigned attach);
5934
5938
5950MIOPEN_EXPORT miopenStatus_t miopenFindSolutions(miopenHandle_t handle,
5951 miopenProblem_t problem,
5952 miopenFindOptions_t options,
5953 miopenSolution_t* solutions,
5954 size_t* numSolutions,
5955 size_t maxSolutions);
5956
5960{
5961 /* @brief Identifier of the tensor argument.
5962 */
5964 /* @brief Tensor descriptor to override the value stored in the solution.
5965 *
5966 * Some solvers may support overriding input and output tensor descriptors, but right now there
5967 * is no way to tell from the API. Intended for the future use.
5968 */
5969 miopenTensorDescriptor_t* descriptor;
5970 /* @brief Pointer to the device memory buffer to use for the operation or to the host memory if
5971 * the value is scalar.
5972 */
5973 void* buffer;
5974};
5975
5987MIOPEN_EXPORT miopenStatus_t miopenRunSolution(miopenHandle_t handle,
5988 miopenSolution_t solution,
5989 size_t nInputs,
5990 const miopenTensorArgument_t* tensors,
5991 void* workspace,
5992 size_t workspaceSize);
5993
5999MIOPEN_EXPORT miopenStatus_t miopenDestroySolution(miopenSolution_t solution);
6000
6008MIOPEN_EXPORT miopenStatus_t miopenLoadSolution(miopenSolution_t* solution,
6009 const char* data,
6010 size_t size);
6011
6018MIOPEN_EXPORT miopenStatus_t miopenSaveSolution(miopenSolution_t solution, char* data);
6019
6026MIOPEN_EXPORT miopenStatus_t miopenGetSolutionSize(miopenSolution_t solution, size_t* size);
6027
6034MIOPEN_EXPORT miopenStatus_t miopenGetSolutionWorkspaceSize(miopenSolution_t solution,
6035 size_t* workspaceSize);
6036
6043MIOPEN_EXPORT miopenStatus_t miopenGetSolutionTime(miopenSolution_t solution, float* time);
6044
6051MIOPEN_EXPORT miopenStatus_t miopenGetSolutionSolverId(miopenSolution_t solution,
6052 uint64_t* solverId);
6053
6060MIOPEN_EXPORT miopenStatus_t miopenGetSolverIdConvAlgorithm(uint64_t solverId,
6061 miopenConvAlgorithm_t* result);
6062
6063#ifdef MIOPEN_BETA_API
6064
6073MIOPEN_EXPORT miopenStatus_t
6074miopenCreateActivationProblem(miopenProblem_t* problem,
6075 miopenActivationDescriptor_t operatorDesc,
6076 miopenProblemDirection_t direction);
6077
6086MIOPEN_EXPORT miopenStatus_t miopenCreateBatchnormProblem(miopenProblem_t* problem,
6088 bool runningMeanVariance,
6089 miopenProblemDirection_t direction);
6090
6110MIOPEN_EXPORT miopenStatus_t miopenFuseProblems(miopenProblem_t problem1, miopenProblem_t problem2);
6111
6119MIOPEN_EXPORT miopenStatus_t miopenCreateBiasProblem(miopenProblem_t* problem,
6120 miopenProblemDirection_t direction);
6121
6130MIOPEN_EXPORT miopenStatus_t miopenCreateSoftmaxProblem(miopenProblem_t* problem,
6131 miopenSoftmaxDescriptor_t operatorDesc,
6132 miopenProblemDirection_t direction);
6133
6134#endif
6135
6137// CLOSEOUT find2 DOXYGEN GROUP
6138
6139#ifdef MIOPEN_BETA_API
6140
6151
6152// ReduceCalculation APIs
6168
6178MIOPEN_EXPORT miopenStatus_t
6180 const miopenTensorDescriptor_t xDesc,
6181 const int32_t dim,
6182 const miopenReduceCalculationOp_t reduceCalculationOp,
6183 const miopenTensorDescriptor_t reduceDesc,
6184 size_t* sizeInBytes);
6185
6199MIOPEN_EXPORT miopenStatus_t
6202 void* workspace,
6203 size_t workspaceSizeInBytes,
6204 const miopenTensorDescriptor_t xDesc,
6205 const void* x,
6206 const int32_t dim,
6207 const miopenReduceCalculationOp_t reduceCalculationOp,
6208 const miopenTensorDescriptor_t reduceDesc,
6209 void* y);
6210
6212// CLOSEOUT REDUCE CALCULATION DOXYGEN GROUP
6213#endif // MIOPEN_BETA_API
6214
6215#ifdef MIOPEN_BETA_API
6216
6232
6233// ReduceExtreme APIs
6253MIOPEN_EXPORT miopenStatus_t
6254miopenReduceExtremeForward(miopenHandle_t handle,
6255 const miopenTensorDescriptor_t xDesc,
6256 const void* x,
6257 const int32_t dim,
6258 const miopenReduceExtremeOp_t reduceExtremeOp,
6259 const miopenTensorDescriptor_t yDesc,
6260 void* y,
6261 const miopenTensorDescriptor_t indiceDesc,
6262 void* indice);
6263
6265// CLOSEOUT REDUCEEXTREME DOXYGEN GROUP
6266#endif // MIOPEN_BETA_API
6267
6268#ifdef MIOPEN_BETA_API
6269// GroupNorm APIs
6294MIOPEN_EXPORT miopenStatus_t miopenGroupNormForward(miopenHandle_t handle,
6295 miopenNormMode_t mode,
6296 const miopenTensorDescriptor_t xDesc,
6297 const void* x,
6298 const miopenTensorDescriptor_t weightDesc,
6299 const void* weight,
6300 const miopenTensorDescriptor_t biasDesc,
6301 const void* bias,
6302 const uint64_t num_groups,
6303 const float epsilon,
6304 const miopenTensorDescriptor_t yDesc,
6305 void* y,
6306 const miopenTensorDescriptor_t meanDesc,
6307 void* mean,
6308 const miopenTensorDescriptor_t rstdDesc,
6309 void* rstd);
6310
6312// CLOSEOUT groupnorm DOXYGEN GROUP
6313#endif // MIOPEN_BETA_API
6314
6315#ifdef MIOPEN_BETA_API
6316// LayerNorm APIs
6343MIOPEN_EXPORT miopenStatus_t miopenAddLayerNormForward(miopenHandle_t handle,
6344 miopenNormMode_t mode,
6345 const miopenTensorDescriptor_t xDesc,
6346 const void* x,
6347 const miopenTensorDescriptor_t x2Desc,
6348 const void* x2,
6349 const miopenTensorDescriptor_t weightDesc,
6350 const void* weight,
6351 const miopenTensorDescriptor_t biasDesc,
6352 const void* bias,
6353 const float epsilon,
6354 const int32_t normalized_dim,
6355 const miopenTensorDescriptor_t yDesc,
6356 void* y,
6357 const miopenTensorDescriptor_t meanDesc,
6358 void* mean,
6359 const miopenTensorDescriptor_t rstdDesc,
6360 void* rstd);
6361
6363// CLOSEOUT LAYERNORM DOXYGEN GROUP
6364#endif // MIOPEN_BETA_API
6365
6366#ifdef MIOPEN_BETA_API
6367// LayerNorm APIs
6387MIOPEN_EXPORT miopenStatus_t miopenT5LayerNormForward(miopenHandle_t handle,
6388 miopenNormMode_t mode,
6389 const miopenTensorDescriptor_t xDesc,
6390 const void* x,
6391 const miopenTensorDescriptor_t weightDesc,
6392 const void* weight,
6393 const float epsilon,
6394 const miopenTensorDescriptor_t yDesc,
6395 void* y,
6396 const miopenTensorDescriptor_t rstdDesc,
6397 void* rstd);
6398
6413MIOPEN_EXPORT miopenStatus_t
6415 miopenNormMode_t mode,
6416 const miopenTensorDescriptor_t dyDesc,
6417 const miopenTensorDescriptor_t xDesc,
6418 const miopenTensorDescriptor_t weightDesc,
6419 const miopenTensorDescriptor_t rstdDesc,
6420 const miopenTensorDescriptor_t dxDesc,
6421 const miopenTensorDescriptor_t dwDesc,
6422 size_t* sizeInBytes);
6423
6444MIOPEN_EXPORT miopenStatus_t miopenT5LayerNormBackward(miopenHandle_t handle,
6445 miopenNormMode_t mode,
6446 void* workspace,
6447 size_t workspaceSizeInBytes,
6448 const miopenTensorDescriptor_t dyDesc,
6449 const void* dy,
6450 const miopenTensorDescriptor_t xDesc,
6451 const void* x,
6452 const miopenTensorDescriptor_t weightDesc,
6453 const void* weight,
6454 const miopenTensorDescriptor_t rstdDesc,
6455 const void* rstd,
6456 const miopenTensorDescriptor_t dxDesc,
6457 void* dx,
6458 const miopenTensorDescriptor_t dwDesc,
6459 void* dw);
6461// CLOSEOUT LAYERNORM DOXYGEN GROUP
6462#endif // MIOPEN_BETA_API
6463
6464#ifdef MIOPEN_BETA_API
6465// Graph API
6477typedef enum
6478{
6512
6520typedef enum
6521{
6532
6540
6545
6549
6556
6561
6564
6592
6598
6616
6620
6632
6637
6640
6645
6653
6656
6665
6668
6672
6684
6694
6701
6710
6715
6721
6737
6749
6752
6759
6764
6766
6807
6813typedef enum
6814{
6817
6821
6824
6827
6830
6834
6837
6840
6843
6846
6849
6852
6855
6858
6861
6864
6867
6870
6873
6876
6879
6884
6887
6890
6893
6896
6900
6903
6906
6911
6915
6918
6921
6925
6929
6932
6935
6942
6945
6948
6951
6955
6958
6962
6965
6968
6971
6974
6978
6983
6995
6996typedef enum
6997{
6998 /* IDENTITY alpha = 1.0 and beta = 0.0 */
6999 /* SCALE alpha = 4.2 and beta = 0.0 */
7000 /* BILINEAR alpha = 3.2 and beta = 1.1 */
7001 /* ERROR_STATE alpha = 0.0 and beta = 3.1 */
7002
7003 DEFAULT = 0, /* alpha = 1.0 and beta = 0.0.*/
7004 SCALE = 1, /* alpha with some value and beta 0.0*/
7005 BILINEAR = 2, /* both alpha and beta with some value*/
7006 ERROR_STATE = 3, /* alpha 0.0 and beta with some value, this should not occur.
7007 But used to check for errors.*/
7021
7034MIOPEN_DECLARE_OBJECT(miopenBackendDescriptor)
7035
7036
7050 miopenBackendDescriptorType_t descriptorType, miopenBackendDescriptor_t* descriptor);
7051
7081MIOPEN_EXPORT miopenStatus_t miopenBackendSetAttribute(miopenBackendDescriptor_t descriptor,
7082 miopenBackendAttributeName_t attributeName,
7083 miopenBackendAttributeType_t attributeType,
7084 int64_t elementCount,
7085 void* arrayOfElements);
7086
7103MIOPEN_EXPORT miopenStatus_t miopenBackendFinalize(miopenBackendDescriptor_t descriptor);
7104
7139MIOPEN_EXPORT miopenStatus_t miopenBackendGetAttribute(miopenBackendDescriptor_t descriptor,
7140 miopenBackendAttributeName_t attributeName,
7141 miopenBackendAttributeType_t attributeType,
7142 int64_t requestedElementCount,
7143 int64_t* elementCount,
7144 void* arrayOfElements);
7145
7165MIOPEN_EXPORT miopenStatus_t miopenBackendExecute(miopenHandle_t handle,
7166 miopenBackendDescriptor_t executionPlan,
7167 miopenBackendDescriptor_t variantPack);
7168
7185MIOPEN_EXPORT miopenStatus_t miopenBackendDestroyDescriptor(miopenBackendDescriptor_t descriptor);
7186
7204MIOPEN_EXPORT miopenStatus_t miopenBackendInitialize(miopenBackendDescriptor_t descriptor,
7205 miopenBackendDescriptorType_t descriptorType,
7206 size_t sizeInBytes);
7207
7209// CLOSEOUT BackendAPI DOXYGEN GROUP
7210#endif // MIOPEN_BETA_API
7211
7212#ifdef MIOPEN_BETA_API
7213// FusedAdam APIs
7356MIOPEN_EXPORT miopenStatus_t miopenFusedAdam(miopenHandle_t handle,
7357 const miopenTensorDescriptor_t paramDesc,
7358 void* param,
7359 const miopenTensorDescriptor_t gradDesc,
7360 const void* grad,
7361 const miopenTensorDescriptor_t expAvgDesc,
7362 void* expAvg,
7363 const miopenTensorDescriptor_t expAvgSqDesc,
7364 void* expAvgSq,
7365 const miopenTensorDescriptor_t maxExpAvgSqDesc,
7366 void* maxExpAvgSq,
7367 const miopenTensorDescriptor_t stateStepDesc,
7368 void* stateStep,
7369 const unsigned int state_step,
7370 const float lr,
7371 const float beta1,
7372 const float beta2,
7373 const float weight_decay,
7374 const float eps,
7375 const bool amsgrad,
7376 const bool maximize,
7377 const bool adamw,
7378 const miopenTensorDescriptor_t gradScaleDesc,
7379 const void* gradScale,
7380 const miopenTensorDescriptor_t foundInfDesc,
7381 const void* foundInf);
7382
7523MIOPEN_EXPORT miopenStatus_t
7524miopenFusedAdamWithOutput(miopenHandle_t handle,
7525 const miopenTensorDescriptor_t paramInDesc,
7526 void* paramIn,
7527 const miopenTensorDescriptor_t paramOutDesc,
7528 void* paramOut,
7529 const miopenTensorDescriptor_t paramOutFloat16Desc,
7530 void* paramOutFloat16,
7531 const miopenTensorDescriptor_t gradInDesc,
7532 const void* gradIn,
7533 const miopenTensorDescriptor_t expAvgInDesc,
7534 void* expAvgIn,
7535 const miopenTensorDescriptor_t expAvgOutDesc,
7536 void* expAvgOut,
7537 const miopenTensorDescriptor_t expAvgSqInDesc,
7538 void* expAvgSqIn,
7539 const miopenTensorDescriptor_t expAvgSqOutDesc,
7540 void* expAvgSqOut,
7541 const miopenTensorDescriptor_t maxExpAvgSqInDesc,
7542 void* maxExpAvgSqIn,
7543 const miopenTensorDescriptor_t maxExpAvgSqOutDesc,
7544 void* maxExpAvgSqOut,
7545 const miopenTensorDescriptor_t stateStepInDesc,
7546 void* stateStepIn,
7547 const miopenTensorDescriptor_t stateStepOutDesc,
7548 void* stateStepOut,
7549 const unsigned int state_step,
7550 const float lr,
7551 const float beta1,
7552 const float beta2,
7553 const float weight_decay,
7554 const float eps,
7555 const bool amsgrad,
7556 const bool maximize,
7557 const bool adamw,
7558 const miopenTensorDescriptor_t gradScaleDesc,
7559 const void* gradScale,
7560 const miopenTensorDescriptor_t foundInfDesc,
7561 const void* foundInf);
7562
7564// CLOSEOUT SGD DOXYGEN GROUP
7565#endif // MIOPEN_BETA_API
7566
7567#ifdef MIOPEN_BETA_API
7568// TransformersAdamW APIs
7659MIOPEN_EXPORT miopenStatus_t miopenTransformersAdamW(miopenHandle_t handle,
7660 const miopenTensorDescriptor_t paramDesc,
7661 void* param,
7662 const miopenTensorDescriptor_t gradDesc,
7663 const void* grad,
7664 const miopenTensorDescriptor_t expAvgDesc,
7665 void* expAvg,
7666 const miopenTensorDescriptor_t expAvgSqDesc,
7667 void* expAvgSq,
7668 const miopenTensorDescriptor_t stateStepDesc,
7669 void* stateStep,
7670 const unsigned int state_step,
7671 const float lr,
7672 const float beta1,
7673 const float beta2,
7674 const float weight_decay,
7675 const float eps,
7676 const bool correct_bias,
7677 const miopenTensorDescriptor_t gradScaleDesc,
7678 const void* gradScale,
7679 const miopenTensorDescriptor_t foundInfDesc,
7680 const void* foundInf);
7681
7808MIOPEN_EXPORT miopenStatus_t
7810 const miopenTensorDescriptor_t paramInDesc,
7811 void* paramIn,
7812 const miopenTensorDescriptor_t paramOutDesc,
7813 void* paramOut,
7814 const miopenTensorDescriptor_t paramOutFloat16Desc,
7815 void* paramOutFloat16,
7816 const miopenTensorDescriptor_t gradInDesc,
7817 const void* gradIn,
7818 const miopenTensorDescriptor_t expAvgInDesc,
7819 void* expAvgIn,
7820 const miopenTensorDescriptor_t expAvgOutDesc,
7821 void* expAvgOut,
7822 const miopenTensorDescriptor_t expAvgSqInDesc,
7823 void* expAvgSqIn,
7824 const miopenTensorDescriptor_t expAvgSqOutDesc,
7825 void* expAvgSqOut,
7826 const miopenTensorDescriptor_t stateStepInDesc,
7827 void* stateStepIn,
7828 const miopenTensorDescriptor_t stateStepOutDesc,
7829 void* stateStepOut,
7830 const unsigned int state_step,
7831 const float lr,
7832 const float beta1,
7833 const float beta2,
7834 const float weight_decay,
7835 const float eps,
7836 const float step_size,
7837 const bool correct_bias,
7838 const miopenTensorDescriptor_t gradScaleDesc,
7839 const void* gradScale,
7840 const miopenTensorDescriptor_t foundInfDesc,
7841 const void* foundInf);
7842
7844// CLOSEOUT SGD DOXYGEN GROUP
7845#endif // MIOPEN_BETA_API
7846
7847#ifdef MIOPEN_BETA_API
7848// GetItem APIs
7861MIOPEN_EXPORT miopenStatus_t
7862miopenGetGetitemWorkspaceSize(miopenHandle_t handle,
7863 uint32_t indexCount,
7864 const miopenTensorDescriptor_t* indexDescs,
7865 size_t* sizeInBytes);
7866
7891MIOPEN_EXPORT miopenStatus_t miopenGetitemBackward(miopenHandle_t handle,
7892 void* workspace,
7893 size_t workspaceSizeInBytes,
7894 const miopenTensorDescriptor_t dyDesc,
7895 const void* dy,
7896 uint32_t indexCount,
7897 const miopenTensorDescriptor_t* indexDescs,
7898 const void* const* indexs,
7899 const miopenTensorDescriptor_t dxDesc,
7900 void* dx,
7901 const miopenTensorDescriptor_t errorDesc,
7902 void* error,
7903 uint32_t dimCount,
7904 const int32_t* dims,
7905 uint32_t sliceCount,
7906 const int32_t* slices,
7907 uint32_t offset);
7908
7910// CLOSEOUT GETITEM DOXYGEN GROUP
7911#endif // MIOPEN_BETA_API
7912
7913#ifdef MIOPEN_BETA_API
7914// RotaryPositionalEmbeddings APIs
7932MIOPEN_EXPORT miopenStatus_t miopenRoPEForward(miopenHandle_t handle,
7933 const miopenTensorDescriptor_t xDesc,
7934 const void* x,
7935 const miopenTensorDescriptor_t cosDesc,
7936 const void* cos,
7937 const miopenTensorDescriptor_t sinDesc,
7938 const void* sin,
7939 const miopenTensorDescriptor_t yDesc,
7940 void* y);
7941
7955MIOPEN_EXPORT miopenStatus_t miopenRoPEBackward(miopenHandle_t handle,
7956 const miopenTensorDescriptor_t dyDesc,
7957 const void* dy,
7958 const miopenTensorDescriptor_t cosDesc,
7959 const void* cos,
7960 const miopenTensorDescriptor_t sinDesc,
7961 const void* sin,
7962 const miopenTensorDescriptor_t dxDesc,
7963 void* dx);
7965// CLOSEOUT ROPE DOXYGEN GROUP
7966// kthvalue APIs
7987MIOPEN_EXPORT miopenStatus_t miopenKthvalueForward(miopenHandle_t handle,
7988 miopenTensorDescriptor_t inputDesc,
7989 const void* input,
7990 miopenTensorDescriptor_t outputDesc,
7991 void* output,
7992 miopenTensorDescriptor_t indicesDesc,
7993 size_t* indices,
7994 size_t k,
7995 int32_t dim = -1,
7996 bool keepDim = false);
7997
7999// CLOSEOUT kthvalue DOXYGEN GROUP
8000#endif // MIOPEN_BETA_API
8001
8002#ifdef MIOPEN_BETA_API
8016MIOPEN_EXPORT miopenStatus_t
8018 miopenTensorDescriptor_t inputDesc,
8019 miopenTensorDescriptor_t weightDesc,
8020 size_t* sizeInBytes);
8021
8038MIOPEN_EXPORT miopenStatus_t miopenPReLUBackward(miopenHandle_t handle,
8039 void* workspace,
8040 size_t workspaceSizeInBytes,
8041 miopenTensorDescriptor_t inputDesc,
8042 const void* input,
8043 miopenTensorDescriptor_t weightDesc,
8044 const void* weight,
8045 miopenTensorDescriptor_t doutputDesc,
8046 const void* doutput,
8047 miopenTensorDescriptor_t dinputDesc,
8048 void* dinput,
8049 miopenTensorDescriptor_t dweightDesc,
8050 void* dweight);
8051
8053// CLOSEOUT RELU DOXYGEN GROUP
8054#endif // MIOPEN_BETA_API
8055
8056#ifdef MIOPEN_BETA_API
8057
8069
8070// SoftMarginLoss APIs
8088MIOPEN_EXPORT miopenStatus_t
8090 miopenTensorDescriptor_t inputDesc,
8091 miopenTensorDescriptor_t targetDesc,
8092 miopenTensorDescriptor_t outputDesc,
8093 miopenLossReductionMode_t reduction,
8094 size_t* sizeInBytes);
8095
8112MIOPEN_EXPORT miopenStatus_t miopenSoftMarginLossForward(miopenHandle_t handle,
8113 miopenTensorDescriptor_t inputDesc,
8114 const void* input,
8115 miopenTensorDescriptor_t targetDesc,
8116 const void* target,
8117 miopenTensorDescriptor_t outputDesc,
8118 void* output,
8119 miopenLossReductionMode_t reduction,
8120 void* workspace = nullptr,
8121 size_t workspaceSizeInBytes = 0);
8122
8137MIOPEN_EXPORT miopenStatus_t miopenSoftMarginLossBackward(miopenHandle_t handle,
8138 miopenTensorDescriptor_t inputDesc,
8139 const void* input,
8140 miopenTensorDescriptor_t targetDesc,
8141 const void* target,
8142 miopenTensorDescriptor_t doutputDesc,
8143 const void* doutput,
8144 miopenTensorDescriptor_t dinputDesc,
8145 void* dinput,
8146 miopenLossReductionMode_t reduction);
8147
8149// CLOSEOUT LossFunction DOXYGEN GROUP
8150#endif
8151
8152#ifdef MIOPEN_BETA_API
8153// MultiMarginLoss APIs
8177MIOPEN_EXPORT miopenStatus_t
8179 miopenTensorDescriptor_t inputDesc,
8180 miopenTensorDescriptor_t targetDesc,
8181 miopenTensorDescriptor_t weightDesc,
8182 miopenTensorDescriptor_t outputDesc,
8183 long p,
8184 float margin,
8185 miopenLossReductionMode_t reduction,
8186 size_t* sizeInBytes);
8187
8215MIOPEN_EXPORT miopenStatus_t miopenMultiMarginLossForward(miopenHandle_t handle,
8216 miopenTensorDescriptor_t inputDesc,
8217 const void* input,
8218 miopenTensorDescriptor_t targetDesc,
8219 const void* target,
8220 miopenTensorDescriptor_t weightDesc,
8221 const void* weight,
8222 miopenTensorDescriptor_t outputDesc,
8223 void* output,
8224 long p,
8225 float margin,
8226 miopenLossReductionMode_t reduction,
8227 void* workspace,
8228 size_t workspaceSizeInBytes);
8229
8231// CLOSEOUT LossFunction DOXYGEN GROUP
8232#endif // MIOPEN_BETA_API
8233
8234#ifdef __cplusplus
8235}
8236#endif
8237
8238#ifdef __clang__
8239#pragma clang diagnostic pop
8240#endif
8241
8242#endif // MIOPEN_GUARD_MIOPEN_H_
miopenStatus_t miopenCreateOpActivationBackward(miopenFusionPlanDescriptor_t fusePlanDesc, miopenFusionOpDescriptor_t *activBwdOp, miopenActivationMode_t mode)
Creates a backward activation operator.
miopenStatus_t miopenCreateOpBatchNormForward(miopenFusionPlanDescriptor_t fusePlanDesc, miopenFusionOpDescriptor_t *bnFwdOp, const miopenBatchNormMode_t bn_mode, bool runningMeanVariance)
Creates a forward training batch normalization operator.
miopenStatus_t miopenFusionPlanConvolutionGetAlgo(miopenFusionPlanDescriptor_t fusePlanDesc, const int requestAlgoCount, int *returnedAlgoCount, miopenConvFwdAlgorithm_t *returnedAlgos)
Returns the supported algorithms for the convolution operator in the Fusion Plan.
miopenStatus_t miopenFusionPlanGetWorkSpaceSize(miopenHandle_t handle, miopenFusionPlanDescriptor_t fusePlanDesc, size_t *workSpaceSize, miopenConvFwdAlgorithm_t algo)
Query the workspace size required for the fusion plan.
miopenStatus_t miopenFusionPlanConvolutionSetAlgo(miopenFusionPlanDescriptor_t fusePlanDesc, miopenConvFwdAlgorithm_t algo)
Requests the fusion runtime to choose a particular algorithm for the added convolution operation.
miopenStatus_t miopenCreateOpBatchNormInference(miopenFusionPlanDescriptor_t fusePlanDesc, miopenFusionOpDescriptor_t *bnOp, const miopenBatchNormMode_t bn_mode, const miopenTensorDescriptor_t bnScaleBiasMeanVarDesc)
Creates a forward inference batch normalization operator.
miopenStatus_t miopenSetOpArgsBiasForward(miopenOperatorArgs_t args, const miopenFusionOpDescriptor_t biasOp, const void *alpha, const void *beta, const void *bias)
Sets the arguments for forward bias op.
miopenStatus_t miopenCreateOpConvForward(miopenFusionPlanDescriptor_t fusePlanDesc, miopenFusionOpDescriptor_t *convOp, miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t wDesc)
Creates forward convolution operator.
miopenStatus_t miopenSetOpArgsBatchNormInference(miopenOperatorArgs_t args, const miopenFusionOpDescriptor_t bnOp, const void *alpha, const void *beta, const void *bnScale, const void *bnBias, const void *estimatedMean, const void *estimatedVariance, double epsilon)
Sets the arguments for inference batch normalization op.
miopenStatus_t miopenSetOpArgsBatchNormForward(miopenOperatorArgs_t args, const miopenFusionOpDescriptor_t bnOp, const void *alpha, const void *beta, const void *bnScale, const void *bnBias, void *savedMean, void *savedInvVariance, void *runningMean, void *runningVariance, double expAvgFactor, double epsilon)
Sets the arguments for forward batch normalization op.
miopenStatus_t miopenExecuteFusionPlan(const miopenHandle_t handle, const miopenFusionPlanDescriptor_t fusePlanDesc, const miopenTensorDescriptor_t inputDesc, const void *input, const miopenTensorDescriptor_t outputDesc, void *output, miopenOperatorArgs_t args)
Executes the fusion plan.
miopenStatus_t miopenFusionPlanGetOp(miopenFusionPlanDescriptor_t fusePlanDesc, const int op_idx, miopenFusionOpDescriptor_t *op)
Allows access to the operators in a fusion plan.
miopenStatus_t miopenDestroyFusionPlan(miopenFusionPlanDescriptor_t fusePlanDesc)
Destroy the fusion plan descriptor object.
miopenStatus_t miopenCreateOpActivationForward(miopenFusionPlanDescriptor_t fusePlanDesc, miopenFusionOpDescriptor_t *activFwdOp, miopenActivationMode_t mode)
Creates a forward activation operator.
miopenFusionDirection_t
Kernel fusion direction in the network.
Definition miopen.h:3348
miopenStatus_t miopenSetOpArgsActivBackward(miopenOperatorArgs_t args, const miopenFusionOpDescriptor_t activBwdOp, const void *alpha, const void *beta, const void *y, const void *reserved, double activAlpha, double activBeta, double activGamma)
Sets the arguments for backward activation op.
miopenStatus_t miopenCompileFusionPlan(miopenHandle_t handle, miopenFusionPlanDescriptor_t fusePlanDesc)
Compiles the fusion plan.
miopenStatus_t miopenSetOpArgsBatchNormBackward(miopenOperatorArgs_t args, const miopenFusionOpDescriptor_t bnOp, const void *alpha, const void *beta, const void *x, const void *bnScale, const void *bnBias, void *resultBnScaleDiff, void *resultBnBiasDiff, const void *savedMean, const void *savedInvVariance)
Sets the arguments for backward batch normalization op.
miopenStatus_t miopenSetOpArgsActivForward(miopenOperatorArgs_t args, const miopenFusionOpDescriptor_t activFwdOp, const void *alpha, const void *beta, double activAlpha, double activBeta, double activGamma)
Sets the arguments for forward activation op.
miopenStatus_t miopenDestroyOperatorArgs(miopenOperatorArgs_t args)
Destroys an operator argument object.
miopenStatus_t miopenCreateOpBatchNormBackward(miopenFusionPlanDescriptor_t fusePlanDesc, miopenFusionOpDescriptor_t *bnBwdOp, const miopenBatchNormMode_t bn_mode)
Creates a back propagation batch normalization operator.
miopenStatus_t miopenCreateOperatorArgs(miopenOperatorArgs_t *args)
Creates an operator argument object.
miopenStatus_t miopenSetOpArgsConvForward(miopenOperatorArgs_t args, const miopenFusionOpDescriptor_t convOp, const void *alpha, const void *beta, const void *w)
Sets the arguments for forward convolution op.
miopenStatus_t miopenConvolutionBiasActivationForward(miopenHandle_t handle, const void *alpha1, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t wDesc, const void *w, const miopenConvolutionDescriptor_t convDesc, miopenConvFwdAlgorithm_t algo, void *workspace, size_t workspaceSizeInBytes, const void *alpha2, const miopenTensorDescriptor_t zDesc, const void *z, const miopenTensorDescriptor_t biasDesc, const void *bias, const miopenActivationDescriptor_t activationDesc, const miopenTensorDescriptor_t yDesc, void *y)
Prepares and executes the Convlution+Bias+Activation Fusion.
miopenStatus_t miopenCreateFusionPlan(miopenFusionPlanDescriptor_t *fusePlanDesc, const miopenFusionDirection_t fuseDirection, const miopenTensorDescriptor_t inputDesc)
Creates the kenrel fusion plan descriptor object.
miopenStatus_t miopenCreateOpBiasForward(miopenFusionPlanDescriptor_t fusePlanDesc, miopenFusionOpDescriptor_t *biasOp, const miopenTensorDescriptor_t bDesc)
Creates a forward bias operator.
@ miopenHorizontalFusion
Definition miopen.h:3350
@ miopenVerticalFusion
Definition miopen.h:3349
miopenStatus_t miopenBackendExecute(miopenHandle_t handle, miopenBackendDescriptor_t executionPlan, miopenBackendDescriptor_t variantPack)
Executes a graph.
miopenBackendHeurMode_t
Operation mode of CUDNN_BACKEND_ENGINEHEUR_DESCRIPTOR.
Definition miopen.h:7014
miopenPointwiseMode_t
Intended poinwise math operation for a pointwise operation descriptor.
Definition miopen.h:6814
miopenStatus_t miopenBackendFinalize(miopenBackendDescriptor_t descriptor)
Finalizes a backend descriptor.
miopenStatus_t miopenBackendInitialize(miopenBackendDescriptor_t descriptor, miopenBackendDescriptorType_t descriptorType, size_t sizeInBytes)
Repurposes an instance of miopenBackendDescriptor_t.
miopenBackendAttributeName_t
Backend Descriptor's Attribute.
Definition miopen.h:6521
miopenRngDistribution_t
Distribution for random number generation.
Definition miopen.h:6990
miopenBackendDescriptorType_t
Descriptor type.
Definition miopen.h:6478
miopenStatus_t miopenBackendSetAttribute(miopenBackendDescriptor_t descriptor, miopenBackendAttributeName_t attributeName, miopenBackendAttributeType_t attributeType, int64_t elementCount, void *arrayOfElements)
Sets an attribute of a descriptor.
miopenStatus_t miopenBackendGetAttribute(miopenBackendDescriptor_t descriptor, miopenBackendAttributeName_t attributeName, miopenBackendAttributeType_t attributeType, int64_t requestedElementCount, int64_t *elementCount, void *arrayOfElements)
Retrieves backend descriptor's attribute.
miopenStatus_t miopenBackendCreateDescriptor(miopenBackendDescriptorType_t descriptorType, miopenBackendDescriptor_t *descriptor)
Backend descriptor.
miopenAlphaBetaCase_t
Definition miopen.h:6997
miopenStatus_t miopenBackendDestroyDescriptor(miopenBackendDescriptor_t descriptor)
Destroys an instance of miopenBackendDescriptor_t.
miopenBackendAttributeType_t
Data type of an attribute of a backend descriptor.
Definition miopen.h:6775
@ MIOPEN_HEUR_MODE_INSTANT
Definition miopen.h:7015
@ MIOPEN_HEUR_MODE_A
Definition miopen.h:7018
@ MIOPEN_HEUR_MODE_B
Definition miopen.h:7016
@ MIOPEN_HEUR_MODES_COUNT
Definition miopen.h:7019
@ MIOPEN_HEUR_MODE_FALLBACK
Definition miopen.h:7017
@ MIOPEN_POINTWISE_SOFTPLUS_FWD
Definition miopen.h:6902
@ MIOPEN_POINTWISE_ELU_FWD
Definition miopen.h:6895
@ MIOPEN_POINTWISE_RELU_FWD
Definition miopen.h:6886
@ MIOPEN_POINTWISE_DIV
Definition miopen.h:6823
@ MIOPEN_POINTWISE_SIGMOID_BWD
Definition miopen.h:6920
@ MIOPEN_POINTWISE_POW
Definition miopen.h:6839
@ MIOPEN_POINTWISE_MOD
Definition miopen.h:6833
@ MIOPEN_POINTWISE_SQRT
Definition miopen.h:6872
@ MIOPEN_POINTWISE_BINARY_SELECT
Definition miopen.h:6977
@ MIOPEN_POINTWISE_GELU_BWD
Definition miopen.h:6928
@ MIOPEN_POINTWISE_MIN
Definition miopen.h:6829
@ MIOPEN_POINTWISE_CMP_NEQ
Definition miopen.h:6947
@ MIOPEN_POINTWISE_FLOOR
Definition miopen.h:6857
@ MIOPEN_POINTWISE_RSQRT
Definition miopen.h:6866
@ MIOPEN_POINTWISE_CMP_EQ
Definition miopen.h:6944
@ MIOPEN_POINTWISE_CMP_GE
Definition miopen.h:6954
@ MIOPEN_POINTWISE_ADD_SQUARE
Definition miopen.h:6820
@ MIOPEN_POINTWISE_ERF
Definition miopen.h:6878
@ MIOPEN_POINTWISE_SWISH_FWD
Definition miopen.h:6905
@ MIOPEN_POINTWISE_LOG
Definition miopen.h:6860
@ MIOPEN_POINTWISE_SUB
Definition miopen.h:6842
@ MIOPEN_POINTWISE_NEG
Definition miopen.h:6863
@ MIOPEN_POINTWISE_LOGICAL_AND
Definition miopen.h:6964
@ MIOPEN_POINTWISE_SWISH_BWD
Definition miopen.h:6934
@ MIOPEN_POINTWISE_GELU_APPROX_TANH_FWD
Definition miopen.h:6910
@ MIOPEN_POINTWISE_SIN
Definition miopen.h:6869
@ MIOPEN_POINTWISE_RECIPROCAL
Definition miopen.h:6981
@ MIOPEN_POINTWISE_GELU_APPROX_TANH_BWD
Definition miopen.h:6941
@ MIOPEN_POINTWISE_GELU_FWD
Definition miopen.h:6899
@ MIOPEN_POINTWISE_ABS
Definition miopen.h:6845
@ MIOPEN_POINTWISE_CMP_LT
Definition miopen.h:6957
@ MIOPEN_POINTWISE_EXP
Definition miopen.h:6854
@ MIOPEN_POINTWISE_GEN_INDEX
Definition miopen.h:6973
@ MIOPEN_POINTWISE_CEIL
Definition miopen.h:6848
@ MIOPEN_POINTWISE_LOGICAL_NOT
Definition miopen.h:6970
@ MIOPEN_POINTWISE_SIGMOID_FWD
Definition miopen.h:6892
@ MIOPEN_POINTWISE_SOFTPLUS_BWD
Definition miopen.h:6931
@ MIOPEN_POINTWISE_LOGICAL_OR
Definition miopen.h:6967
@ MIOPEN_POINTWISE_TAN
Definition miopen.h:6875
@ MIOPEN_POINTWISE_ELU_BWD
Definition miopen.h:6924
@ MIOPEN_POINTWISE_IDENTITY
Definition miopen.h:6883
@ MIOPEN_POINTWISE_CMP_LE
Definition miopen.h:6961
@ MIOPEN_POINTWISE_COS
Definition miopen.h:6851
@ MIOPEN_POINTWISE_TANH_BWD
Definition miopen.h:6917
@ MIOPEN_POINTWISE_MUL
Definition miopen.h:6836
@ MIOPEN_POINTWISE_TANH_FWD
Definition miopen.h:6889
@ MIOPEN_POINTWISE_RELU_BWD
Definition miopen.h:6914
@ MIOPEN_POINTWISE_ADD
Definition miopen.h:6816
@ MIOPEN_POINTWISE_MAX
Definition miopen.h:6826
@ MIOPEN_POINTWISE_CMP_GT
Definition miopen.h:6950
@ MIOPEN_ATTR_OPERATION_NORM_BWD_MODE
Definition miopen.h:6738
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_FORWARD_W
Definition miopen.h:6568
@ MIOPEN_ATTR_RESAMPLE_NAN_PROPAGATION
Definition miopen.h:6692
@ MIOPEN_ATTR_OPERATION_RESAMPLE_FWD_XDESC
Definition miopen.h:6695
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_W
Definition miopen.h:6574
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_FORWARD_ALPHA
Definition miopen.h:6565
@ MIOPEN_ATTR_OPERATION_SIGNAL_MODE
Definition miopen.h:6716
@ MIOPEN_ATTR_OPERATION_RNG_DESC
Definition miopen.h:6762
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_FORWARD_BETA
Definition miopen.h:6566
@ MIOPEN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_SCALE_DESC
Definition miopen.h:6679
@ MIOPEN_ATTR_OPERATION_NORM_BWD_INV_VARIANCE_DESC
Definition miopen.h:6741
@ MIOPEN_ATTR_OPERATION_NORM_FWD_EPSILON_DESC
Definition miopen.h:6729
@ MIOPEN_ATTR_OPERATIONGRAPH_OPS
Definition miopen.h:6618
@ MIOPEN_ATTR_KNOB_INFO_MAXIMUM_VALUE
Definition miopen.h:6642
@ MIOPEN_ATTR_CONVOLUTION_POST_PADDINGS
Definition miopen.h:6537
@ MIOPEN_ATTR_OPERATION_SIGNAL_YDESC
Definition miopen.h:6720
@ MIOPEN_ATTR_OPERATION_NORM_BWD_DSCALE_DESC
Definition miopen.h:6745
@ MIOPEN_ATTR_OPERATION_NORM_BWD_PEER_STAT_DESCS
Definition miopen.h:6748
@ MIOPEN_ATTR_OPERATION_RESAMPLE_BWD_YDESC
Definition miopen.h:6709
@ MIOPEN_ATTR_CONVOLUTION_PRE_PADDINGS
Definition miopen.h:6538
@ MIOPEN_ATTR_REDUCTION_OPERATOR
Definition miopen.h:6666
@ MIOPEN_ATTR_OPERATION_MATMUL_DESC
Definition miopen.h:6660
@ MIOPEN_ATTR_CONVOLUTION_DILATIONS
Definition miopen.h:6535
@ MIOPEN_ATTR_OPERATION_RESAMPLE_BWD_DYDESC
Definition miopen.h:6703
@ MIOPEN_ATTR_OPERATION_POINTWISE_ALPHA1
Definition miopen.h:6587
@ MIOPEN_ATTR_RESAMPLE_SPATIAL_DIMS
Definition miopen.h:6687
@ MIOPEN_ATTR_EXECUTION_PLAN_COMPUTED_INTERMEDIATE_UIDS
Definition miopen.h:6553
@ MIOPEN_ATTR_OPERATION_NORM_FWD_MEAN_DESC
Definition miopen.h:6725
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_MEAN_DESC
Definition miopen.h:6607
@ MIOPEN_ATTR_OPERATION_BN_BWD_WEIGHTS_INVSTD_DESC
Definition miopen.h:6675
@ MIOPEN_ATTR_KNOB_INFO_TYPE
Definition miopen.h:6641
@ MIOPEN_ATTR_LAYOUT_INFO_TYPES
Definition miopen.h:6639
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_Y_SUM_DESC
Definition miopen.h:6601
@ MIOPEN_ATTR_OPERATIONGRAPH_HANDLE
Definition miopen.h:6617
@ MIOPEN_ATTR_OPERATION_NORM_BWD_DYDESC
Definition miopen.h:6742
@ MIOPEN_ATTR_RNG_UNIFORM_DIST_MINIMUM
Definition miopen.h:6757
@ MIOPEN_ATTR_POINTWISE_MATH_PREC
Definition miopen.h:6523
@ MIOPEN_ATTR_OPERATION_MATMUL_GEMM_N_OVERRIDE_DESC
Definition miopen.h:6663
@ MIOPEN_ATTR_OPERATION_GENSTATS_MODE
Definition miopen.h:6593
@ MIOPEN_ATTR_KNOB_CHOICE_KNOB_VALUE
Definition miopen.h:6563
@ MIOPEN_ATTR_VARIANT_PACK_INTERMEDIATES
Definition miopen.h:6635
@ MIOPEN_ATTR_OPERATION_REDUCTION_YDESC
Definition miopen.h:6670
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_BETA
Definition miopen.h:6578
@ MIOPEN_ATTR_VARIANT_PACK_WORKSPACE
Definition miopen.h:6636
@ MIOPEN_ATTR_TENSOR_IS_BY_VALUE
Definition miopen.h:6629
@ MIOPEN_ATTR_OPERATION_NORM_FWD_MODE
Definition miopen.h:6722
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_FORWARD_CONV_DESC
Definition miopen.h:6567
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_STATS_MODE
Definition miopen.h:6599
@ MIOPEN_ATTR_OPERATION_NORM_FWD_INPUT_RUNNING_VAR_DESC
Definition miopen.h:6732
@ MIOPEN_ATTR_OPERATION_RESHAPE_XDESC
Definition miopen.h:6750
@ MIOPEN_ATTR_OPERATION_RESAMPLE_BWD_XDESC
Definition miopen.h:6708
@ MIOPEN_ATTR_OPERATION_POINTWISE_XDESC
Definition miopen.h:6584
@ MIOPEN_ATTR_VARIANT_PACK_UNIQUE_IDS
Definition miopen.h:6633
@ MIOPEN_ATTR_OPERATION_BN_BWD_WEIGHTS_DY_DESC
Definition miopen.h:6678
@ MIOPEN_ATTR_OPERATION_RESAMPLE_FWD_ALPHA
Definition miopen.h:6698
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_SCALE_DESC
Definition miopen.h:6603
@ MIOPEN_ATTR_OPERATION_SIGNAL_VALUE
Definition miopen.h:6718
@ MIOPEN_ATTR_OPERATION_SIGNAL_FLAGDESC
Definition miopen.h:6717
@ MIOPEN_ATTR_OPERATION_POINTWISE_TDESC
Definition miopen.h:6591
@ MIOPEN_ATTR_ENGINEHEUR_RESULTS
Definition miopen.h:6543
@ MIOPEN_ATTR_TENSOR_BYTE_ALIGNMENT
Definition miopen.h:6621
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_X
Definition miopen.h:6581
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_ACCUM_COUNT_DESC
Definition miopen.h:6613
@ MIOPEN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_BIAS
Definition miopen.h:6683
@ MIOPEN_ATTR_OPERATION_GENSTATS_MATH_PREC
Definition miopen.h:6594
@ MIOPEN_ATTR_OPERATION_NORM_FWD_INPUT_RUNNING_MEAN_DESC
Definition miopen.h:6731
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_EQ_SCALE_DESC
Definition miopen.h:6611
@ MIOPEN_ATTR_EXECUTION_PLAN_HANDLE
Definition miopen.h:6550
@ MIOPEN_ATTR_OPERATION_BN_BWD_WEIGHTS_X_DESC
Definition miopen.h:6677
@ MIOPEN_ATTR_OPERATION_CONCAT_OUTPUT_DESC
Definition miopen.h:6714
@ MIOPEN_ATTR_OPERATION_NORM_BWD_EPSILON_DESC
Definition miopen.h:6744
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_BETA
Definition miopen.h:6572
@ MIOPEN_ATTR_EXECUTION_PLAN_WORKSPACE_SIZE
Definition miopen.h:6552
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DX
Definition miopen.h:6575
@ MIOPEN_ATTR_TENSOR_VECTOR_COUNT
Definition miopen.h:6625
@ MIOPEN_ATTR_OPERATION_MATMUL_CDESC
Definition miopen.h:6659
@ MIOPEN_ATTR_REDUCTION_COMP_TYPE
Definition miopen.h:6667
@ MIOPEN_ATTR_OPERATION_RESAMPLE_BWD_BETA
Definition miopen.h:6706
@ MIOPEN_ATTR_TENSOR_VECTORIZED_DIMENSION
Definition miopen.h:6626
@ MIOPEN_ATTR_TENSOR_DIMENSIONS
Definition miopen.h:6623
@ MIOPEN_ATTR_OPERATION_GENSTATS_SUMDESC
Definition miopen.h:6596
@ MIOPEN_ATTR_OPERATION_CONCAT_INPLACE_INDEX
Definition miopen.h:6713
@ MIOPEN_ATTR_OPERATION_POINTWISE_ALPHA2
Definition miopen.h:6588
@ MIOPEN_ATTR_ENGINE_NUMERICAL_NOTE
Definition miopen.h:6649
@ MIOPEN_ATTR_ENGINE_BEHAVIOR_NOTE
Definition miopen.h:6651
@ MIOPEN_ATTR_EXECUTION_PLAN_JSON_REPRESENTATION
Definition miopen.h:6555
@ MIOPEN_ATTR_RESAMPLE_STRIDES
Definition miopen.h:6690
@ MIOPEN_ATTR_POINTWISE_ELU_ALPHA
Definition miopen.h:6528
@ MIOPEN_ATTR_OPERATION_NORM_FWD_OUTPUT_RUNNING_VAR_DESC
Definition miopen.h:6734
@ MIOPEN_ATTR_OPERATION_RESAMPLE_BWD_IDXDESC
Definition miopen.h:6704
@ MIOPEN_ATTR_OPERATION_RNG_SEED
Definition miopen.h:6761
@ MIOPEN_ATTR_OPERATION_NORM_BWD_XDESC
Definition miopen.h:6739
@ MIOPEN_ATTR_OPERATION_POINTWISE_DXDESC
Definition miopen.h:6589
@ MIOPEN_ATTR_OPERATION_CONCAT_INPUT_DESCS
Definition miopen.h:6712
@ MIOPEN_ATTR_RESAMPLE_MODE
Definition miopen.h:6685
@ MIOPEN_ATTR_RNG_DISTRIBUTION
Definition miopen.h:6753
@ MIOPEN_ATTR_OPERATION_NORM_BWD_MEAN_DESC
Definition miopen.h:6740
@ MIOPEN_ATTR_OPERATION_MATMUL_GEMM_M_OVERRIDE_DESC
Definition miopen.h:6662
@ MIOPEN_ATTR_OPERATION_NORM_FWD_PHASE
Definition miopen.h:6723
@ MIOPEN_ATTR_POINTWISE_RELU_LOWER_CLIP_SLOPE
Definition miopen.h:6527
@ MIOPEN_ATTR_OPERATION_RESHAPE_YDESC
Definition miopen.h:6751
@ MIOPEN_ATTR_VARIANT_PACK_DATA_POINTERS
Definition miopen.h:6634
@ MIOPEN_ATTR_POINTWISE_AXIS
Definition miopen.h:6531
@ MIOPEN_ATTR_OPERATION_NORM_FWD_YDESC
Definition miopen.h:6735
@ MIOPEN_ATTR_POINTWISE_RELU_LOWER_CLIP
Definition miopen.h:6525
@ MIOPEN_ATTR_ENGINE_OPERATION_GRAPH
Definition miopen.h:6646
@ MIOPEN_ATTR_OPERATION_MATMUL_BDESC
Definition miopen.h:6658
@ MIOPEN_ATTR_TENSOR_DATA_TYPE
Definition miopen.h:6622
@ MIOPEN_ATTR_OPERATION_SIGNAL_XDESC
Definition miopen.h:6719
@ MIOPEN_ATTR_KNOB_INFO_MINIMUM_VALUE
Definition miopen.h:6643
@ MIOPEN_ATTR_OPERATION_NORM_FWD_BIAS_DESC
Definition miopen.h:6728
@ MIOPEN_ATTR_OPERATION_RESAMPLE_FWD_DESC
Definition miopen.h:6700
@ MIOPEN_ATTR_RESAMPLE_PRE_PADDINGS
Definition miopen.h:6689
@ MIOPEN_ATTR_MATMUL_COMP_TYPE
Definition miopen.h:6654
@ MIOPEN_ATTR_TENSOR_UNIQUE_ID
Definition miopen.h:6627
@ MIOPEN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_DY_SCALE_DESC
Definition miopen.h:6681
@ MIOPEN_ATTR_OPERATION_CONCAT_AXIS
Definition miopen.h:6711
@ MIOPEN_ATTR_OPERATION_RNG_YDESC
Definition miopen.h:6760
@ MIOPEN_ATTR_ENGINE_GLOBAL_INDEX
Definition miopen.h:6647
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_CONV_DESC
Definition miopen.h:6573
@ MIOPEN_ATTR_ENGINEHEUR_OPERATION_GRAPH
Definition miopen.h:6542
@ MIOPEN_ATTR_TENSOR_RAGGED_OFFSET_DESC
Definition miopen.h:6631
@ MIOPEN_ATTR_POINTWISE_SOFTPLUS_BETA
Definition miopen.h:6529
@ MIOPEN_ATTR_TENSOR_IS_VIRTUAL
Definition miopen.h:6628
@ MIOPEN_ATTR_ENGINECFG_KNOB_CHOICES
Definition miopen.h:6548
@ MIOPEN_ATTR_MATMUL_PADDING_VALUE
Definition miopen.h:6655
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_EXP_AVERATE_FACTOR_DESC
Definition miopen.h:6615
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_SAVED_INV_STD_DESC
Definition miopen.h:6610
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_FORWARD_X
Definition miopen.h:6569
@ MIOPEN_ATTR_KNOB_INFO_STRIDE
Definition miopen.h:6644
@ MIOPEN_ATTR_RESAMPLE_WINDOW_DIMS
Definition miopen.h:6691
@ MIOPEN_ATTR_OPERATION_POINTWISE_YDESC
Definition miopen.h:6586
@ MIOPEN_ATTR_OPERATION_RESAMPLE_FWD_YDESC
Definition miopen.h:6696
@ MIOPEN_ATTR_OPERATION_BN_BWD_WEIGHTS_BN_SCALE_DESC
Definition miopen.h:6676
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DY
Definition miopen.h:6576
@ MIOPEN_ATTR_CONVOLUTION_CONV_MODE
Definition miopen.h:6534
@ MIOPEN_ATTR_OPERATION_REDUCTION_XDESC
Definition miopen.h:6669
@ MIOPEN_ATTR_EXECUTION_PLAN_RUN_ONLY_INTERMEDIATE_UIDS
Definition miopen.h:6554
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_MATH_PREC
Definition miopen.h:6600
@ MIOPEN_ATTR_ENGINE_SM_COUNT_TARGET
Definition miopen.h:6652
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_EQ_BIAS_DESC
Definition miopen.h:6612
@ MIOPEN_ATTR_KNOB_CHOICE_KNOB_TYPE
Definition miopen.h:6562
@ MIOPEN_ATTR_OPERATION_RESAMPLE_BWD_DXDESC
Definition miopen.h:6702
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_MEAN_DESC
Definition miopen.h:6605
@ MIOPEN_ATTR_OPERATION_POINTWISE_DYDESC
Definition miopen.h:6590
@ MIOPEN_ATTR_OPERATION_NORM_FWD_EXP_AVG_FACTOR_DESC
Definition miopen.h:6730
@ MIOPEN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_X_SCALE_DESC
Definition miopen.h:6682
@ MIOPEN_ATTR_OPERATION_RNG_OFFSET_DESC
Definition miopen.h:6763
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_FORWARD_Y
Definition miopen.h:6570
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_VAR_DESC
Definition miopen.h:6606
@ MIOPEN_ATTR_ENGINE_LAYOUT_INFO
Definition miopen.h:6650
@ MIOPEN_ATTR_INTERMEDIATE_INFO_UNIQUE_ID
Definition miopen.h:6557
@ MIOPEN_ATTR_CONVOLUTION_COMP_TYPE
Definition miopen.h:6533
@ MIOPEN_ATTR_RESAMPLE_COMP_TYPE
Definition miopen.h:6686
@ MIOPEN_ATTR_ENGINECFG_ENGINE
Definition miopen.h:6546
@ MIOPEN_ATTR_RESAMPLE_POST_PADDINGS
Definition miopen.h:6688
@ MIOPEN_ATTR_RESAMPLE_PADDING_MODE
Definition miopen.h:6693
@ MIOPEN_ATTR_CONVOLUTION_SPATIAL_DIMS
Definition miopen.h:6539
@ MIOPEN_ATTR_OPERATION_NORM_FWD_OUTPUT_RUNNING_MEAN_DESC
Definition miopen.h:6733
@ MIOPEN_ATTR_OPERATION_GENSTATS_XDESC
Definition miopen.h:6595
@ MIOPEN_ATTR_OPERATION_NORM_FWD_INV_VARIANCE_DESC
Definition miopen.h:6726
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_Y_SQ_SUM_DESC
Definition miopen.h:6602
@ MIOPEN_ATTR_ENGINE_KNOB_INFO
Definition miopen.h:6648
@ MIOPEN_ATTR_OPERATION_MATMUL_IRREGULARLY_STRIDED_BATCH_COUNT
Definition miopen.h:6661
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DW
Definition miopen.h:6580
@ MIOPEN_ATTR_TENSOR_REORDERING_MODE
Definition miopen.h:6630
@ MIOPEN_ATTR_INTERMEDIATE_INFO_SIZE
Definition miopen.h:6558
@ MIOPEN_ATTR_OPERATION_MATMUL_GEMM_K_OVERRIDE_DESC
Definition miopen.h:6664
@ MIOPEN_ATTR_OPERATION_POINTWISE_PW_DESCRIPTOR
Definition miopen.h:6583
@ MIOPEN_ATTR_RNG_NORMAL_DIST_STANDARD_DEVIATION
Definition miopen.h:6755
@ MIOPEN_ATTR_INTERMEDIATE_INFO_DEPENDENT_DATA_UIDS
Definition miopen.h:6559
@ MIOPEN_ATTR_LAYOUT_INFO_TENSOR_UID
Definition miopen.h:6638
@ MIOPEN_ATTR_ENGINEHEUR_MODE
Definition miopen.h:6541
@ MIOPEN_ATTR_OPERATION_RESAMPLE_BWD_ALPHA
Definition miopen.h:6705
@ MIOPEN_ATTR_OPERATION_RESAMPLE_BWD_DESC
Definition miopen.h:6707
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_EPSILON_DESC
Definition miopen.h:6614
@ MIOPEN_ATTR_OPERATION_POINTWISE_BDESC
Definition miopen.h:6585
@ MIOPEN_ATTR_POINTWISE_MODE
Definition miopen.h:6522
@ MIOPEN_ATTR_ENGINECFG_INTERMEDIATE_INFO
Definition miopen.h:6547
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DY
Definition miopen.h:6582
@ MIOPEN_ATTR_OPERATION_NORM_BWD_DXDESC
Definition miopen.h:6747
@ MIOPEN_ATTR_POINTWISE_NAN_PROPAGATION
Definition miopen.h:6524
@ MIOPEN_ATTR_INTERMEDIATE_INFO_DEPENDENT_ATTRIBUTES
Definition miopen.h:6560
@ MIOPEN_ATTR_POINTWISE_RELU_UPPER_CLIP
Definition miopen.h:6526
@ MIOPEN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_BIAS_DESC
Definition miopen.h:6680
@ MIOPEN_ATTR_RNG_BERNOULLI_DIST_PROBABILITY
Definition miopen.h:6758
@ MIOPEN_ATTR_ENGINEHEUR_SM_COUNT_TARGET
Definition miopen.h:6544
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_BIAS_DESC
Definition miopen.h:6604
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_VAR_DESC
Definition miopen.h:6608
@ MIOPEN_ATTR_RNG_NORMAL_DIST_MEAN
Definition miopen.h:6754
@ MIOPEN_ATTR_OPERATION_BN_BWD_WEIGHTS_MATH_PREC
Definition miopen.h:6673
@ MIOPEN_ATTR_OPERATION_BN_BWD_WEIGHTS_MEAN_DESC
Definition miopen.h:6674
@ MIOPEN_ATTR_OPERATION_NORM_FWD_PEER_STAT_DESCS
Definition miopen.h:6736
@ MIOPEN_ATTR_OPERATION_NORM_FWD_SCALE_DESC
Definition miopen.h:6727
@ MIOPEN_ATTR_OPERATION_GENSTATS_SQSUMDESC
Definition miopen.h:6597
@ MIOPEN_ATTR_EXECUTION_PLAN_ENGINE_CONFIG
Definition miopen.h:6551
@ MIOPEN_ATTR_OPERATION_RESAMPLE_FWD_BETA
Definition miopen.h:6699
@ MIOPEN_ATTR_OPERATION_NORM_BWD_DBIAS_DESC
Definition miopen.h:6746
@ MIOPEN_ATTR_OPERATION_NORM_BWD_SCALE_DESC
Definition miopen.h:6743
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_ALPHA
Definition miopen.h:6571
@ MIOPEN_ATTR_RNG_UNIFORM_DIST_MAXIMUM
Definition miopen.h:6756
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_CONV_DESC
Definition miopen.h:6579
@ MIOPEN_ATTR_TENSOR_STRIDES
Definition miopen.h:6624
@ MIOPEN_ATTR_CONVOLUTION_FILTER_STRIDES
Definition miopen.h:6536
@ MIOPEN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_ALPHA
Definition miopen.h:6577
@ MIOPEN_ATTR_POINTWISE_SWISH_BETA
Definition miopen.h:6530
@ MIOPEN_ATTR_OPERATION_RESAMPLE_FWD_IDXDESC
Definition miopen.h:6697
@ MIOPEN_ATTR_OPERATION_REDUCTION_DESC
Definition miopen.h:6671
@ MIOPEN_ATTR_OPERATION_NORM_FWD_XDESC
Definition miopen.h:6724
@ MIOPEN_ATTR_OPERATION_MATMUL_ADESC
Definition miopen.h:6657
@ MIOPEN_ATTR_OPERATIONGRAPH_ENGINE_GLOBAL_COUNT
Definition miopen.h:6619
@ MIOPEN_ATTR_OPERATION_BN_FINALIZE_SAVED_MEAN_DESC
Definition miopen.h:6609
@ MIOPEN_RNG_DISTRIBUTION_BERNOULLI
Definition miopen.h:6991
@ MIOPEN_RNG_DISTRIBUTION_UNIFORM
Definition miopen.h:6992
@ MIOPEN_RNG_DISTRIBUTION_NORMAL
Definition miopen.h:6993
@ MIOPEN_BACKEND_OPERATION_CONCAT_DESCRIPTOR
Definition miopen.h:6489
@ MIOPEN_BACKEND_RESAMPLE_DESCRIPTOR
Definition miopen.h:6507
@ MIOPEN_BACKEND_ENGINECFG_DESCRIPTOR
Definition miopen.h:6481
@ MIOPEN_BACKEND_POINTWISE_DESCRIPTOR
Definition miopen.h:6505
@ MIOPEN_BACKEND_OPERATION_RESAMPLE_FWD_DESCRIPTOR
Definition miopen.h:6500
@ MIOPEN_BACKEND_CONVOLUTION_DESCRIPTOR
Definition miopen.h:6479
@ MIOPEN_BACKEND_OPERATION_RNG_DESCRIPTOR
Definition miopen.h:6502
@ MIOPEN_BACKEND_KNOB_INFO_DESCRIPTOR
Definition miopen.h:6486
@ MIOPEN_BACKEND_RNG_DESCRIPTOR
Definition miopen.h:6508
@ MIOPEN_BACKEND_OPERATION_POINTWISE_DESCRIPTOR
Definition miopen.h:6497
@ MIOPEN_BACKEND_OPERATION_NORM_FORWARD_DESCRIPTOR
Definition miopen.h:6496
@ MIOPEN_BACKEND_ENGINEHEUR_DESCRIPTOR
Definition miopen.h:6482
@ MIOPEN_BACKEND_OPERATION_RESHAPE_DESCRIPTOR
Definition miopen.h:6501
@ MIOPEN_BACKEND_LAYOUT_INFO_DESCRIPTOR
Definition miopen.h:6487
@ MIOPEN_BACKEND_OPERATION_REDUCTION_DESCRIPTOR
Definition miopen.h:6498
@ MIOPEN_BACKEND_TENSOR_DESCRIPTOR
Definition miopen.h:6509
@ MIOPEN_BACKEND_OPERATION_RESAMPLE_BWD_DESCRIPTOR
Definition miopen.h:6499
@ MIOPEN_BACKEND_OPERATIONGRAPH_DESCRIPTOR
Definition miopen.h:6504
@ MIOPEN_BACKEND_OPERATION_CONVOLUTION_FORWARD_DESCRIPTOR
Definition miopen.h:6492
@ MIOPEN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_FILTER_DESCRIPTOR
Definition miopen.h:6491
@ MIOPEN_BACKEND_INTERMEDIATE_INFO_DESCRIPTOR
Definition miopen.h:6484
@ MIOPEN_BACKEND_ENGINE_DESCRIPTOR
Definition miopen.h:6480
@ MIOPEN_BACKEND_MATMUL_DESCRIPTOR
Definition miopen.h:6488
@ MIOPEN_BACKEND_OPERATION_GEN_STATS_DESCRIPTOR
Definition miopen.h:6493
@ MIOPEN_BACKEND_VARIANT_PACK_DESCRIPTOR
Definition miopen.h:6510
@ MIOPEN_BACKEND_REDUCTION_DESCRIPTOR
Definition miopen.h:6506
@ MIOPEN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_DATA_DESCRIPTOR
Definition miopen.h:6490
@ MIOPEN_BACKEND_OPERATION_MATMUL_DESCRIPTOR
Definition miopen.h:6494
@ MIOPEN_BACKEND_OPERATION_NORM_BACKWARD_DESCRIPTOR
Definition miopen.h:6495
@ MIOPEN_BACKEND_OPERATION_SIGNAL_DESCRIPTOR
Definition miopen.h:6503
@ MIOPEN_BACKEND_EXECUTION_PLAN_DESCRIPTOR
Definition miopen.h:6483
@ MIOPEN_BACKEND_KNOB_CHOICE_DESCRIPTOR
Definition miopen.h:6485
@ SCALE
Definition miopen.h:7004
@ BILINEAR
Definition miopen.h:7005
@ DEFAULT
Definition miopen.h:7003
@ ERROR_STATE
Definition miopen.h:7006
@ MIOPEN_TYPE_RNG_DISTRIBUTION
Definition miopen.h:6805
@ MIOPEN_TYPE_FLOAT
Definition miopen.h:6780
@ MIOPEN_TYPE_NUMERICAL_NOTE
Definition miopen.h:6787
@ MIOPEN_TYPE_RESAMPLE_MODE
Definition miopen.h:6797
@ MIOPEN_TYPE_INT32
Definition miopen.h:6799
@ MIOPEN_TYPE_POINTWISE_MODE
Definition miopen.h:6790
@ MIOPEN_TYPE_HANDLE
Definition miopen.h:6776
@ MIOPEN_TYPE_HEUR_MODE
Definition miopen.h:6784
@ MIOPEN_TYPE_CONVOLUTION_MODE
Definition miopen.h:6783
@ MIOPEN_TYPE_TENSOR_REORDERING_MODE
Definition miopen.h:6796
@ MIOPEN_TYPE_BOOLEAN
Definition miopen.h:6778
@ MIOPEN_TYPE_NORM_MODE
Definition miopen.h:6803
@ MIOPEN_TYPE_FRACTION
Definition miopen.h:6802
@ MIOPEN_TYPE_BACKEND_DESCRIPTOR
Definition miopen.h:6791
@ MIOPEN_TYPE_ATTRIB_NAME
Definition miopen.h:6789
@ MIOPEN_TYPE_BEHAVIOR_NOTE
Definition miopen.h:6795
@ MIOPEN_TYPE_DATA_TYPE
Definition miopen.h:6777
@ MIOPEN_TYPE_NAN_PROPOGATION
Definition miopen.h:6786
@ MIOPEN_TYPE_DOUBLE
Definition miopen.h:6781
@ MIOPEN_TYPE_SIGNAL_MODE
Definition miopen.h:6801
@ MIOPEN_TYPE_CHAR
Definition miopen.h:6800
@ MIOPEN_TYPE_PADDING_MODE
Definition miopen.h:6798
@ MIOPEN_TYPE_INT64
Definition miopen.h:6779
@ MIOPEN_TYPE_REDUCTION_OPERATOR_TYPE
Definition miopen.h:6794
@ MIOPEN_TYPE_LAYOUT_TYPE
Definition miopen.h:6788
@ MIOPEN_TYPE_GENSTATS_MODE
Definition miopen.h:6792
@ MIOPEN_TYPE_VOID_PTR
Definition miopen.h:6782
@ MIOPEN_TYPE_BN_FINALIZE_STATS_MODE
Definition miopen.h:6793
@ MIOPEN_TYPE_KNOB_TYPE
Definition miopen.h:6785
@ MIOPEN_TYPE_NORM_FWD_PHASE
Definition miopen.h:6804
miopenStatus_t miopenSetLRNDescriptor(const miopenLRNDescriptor_t lrnDesc, miopenLRNMode_t mode, unsigned int lrnN, double lrnAlpha, double lrnBeta, double lrnK)
Sets a LRN layer descriptor details.
miopenStatus_t miopenCreateLRNDescriptor(miopenLRNDescriptor_t *lrnDesc)
Creates a local response normalization (LRN) layer descriptor.
miopenStatus_t miopenGetLRNDescriptor(const miopenLRNDescriptor_t lrnDesc, miopenLRNMode_t *mode, unsigned int *lrnN, double *lrnAlpha, double *lrnBeta, double *lrnK)
Gets a LRN layer descriptor details.
miopenStatus_t miopenLRNBackward(miopenHandle_t handle, const miopenLRNDescriptor_t lrnDesc, const void *alpha, const miopenTensorDescriptor_t yDesc, const void *y, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t xDesc, const void *x, const void *beta, const miopenTensorDescriptor_t dxDesc, void *dx, const void *workSpace)
Execute a LRN backward layer.
miopenStatus_t miopenLRNGetWorkSpaceSize(const miopenTensorDescriptor_t yDesc, size_t *workSpaceSize)
Determine the workspace requirements.
miopenStatus_t miopenLRNForward(miopenHandle_t handle, const miopenLRNDescriptor_t lrnDesc, const void *alpha, const miopenTensorDescriptor_t xDesc, const void *x, const void *beta, const miopenTensorDescriptor_t yDesc, void *y, bool do_backward, void *workSpace)
Execute a LRN forward layer.
miopenStatus_t miopenDestroyLRNDescriptor(miopenLRNDescriptor_t lrnDesc)
Destroys the LRN descriptor object.
miopenStatus_t miopenGetCTCLossWorkspaceSize(miopenHandle_t handle, const miopenTensorDescriptor_t probsDesc, const miopenTensorDescriptor_t gradientsDesc, const int *labels, const int *labelLengths, const int *inputLengths, miopenCTCLossAlgo_t algo, const miopenCTCLossDescriptor_t ctcLossDesc, size_t *workSpaceSize)
Query the amount of memory required to execute miopenCTCLoss.
miopenStatus_t miopenGetSoftMarginLossForwardWorkspaceSize(miopenHandle_t handle, miopenTensorDescriptor_t inputDesc, miopenTensorDescriptor_t targetDesc, miopenTensorDescriptor_t outputDesc, miopenLossReductionMode_t reduction, size_t *sizeInBytes)
Helper function to query the minimum workspace size required by the SoftMarginLossForward call.
miopenStatus_t miopenGetMultiMarginLossForwardWorkspaceSize(miopenHandle_t handle, miopenTensorDescriptor_t inputDesc, miopenTensorDescriptor_t targetDesc, miopenTensorDescriptor_t weightDesc, miopenTensorDescriptor_t outputDesc, long p, float margin, miopenLossReductionMode_t reduction, size_t *sizeInBytes)
Helper function to query the minimum workspace size required by the MultiMarginLossForward call.
miopenCTCLossAlgo_t
Definition miopen.h:5178
miopenStatus_t miopenSetCTCLossDescriptor(miopenCTCLossDescriptor_t ctcLossDesc, miopenDataType_t dataType, const int blank_label_id, bool apply_softmax_layer)
Set the details of a CTC loss function descriptor.
miopenStatus_t miopenCTCLoss(miopenHandle_t handle, const miopenTensorDescriptor_t probsDesc, const void *probs, const int *labels, const int *labelLengths, const int *inputLengths, void *losses, const miopenTensorDescriptor_t gradientsDesc, void *gradients, miopenCTCLossAlgo_t algo, const miopenCTCLossDescriptor_t ctcLossDesc, void *workSpace, size_t workSpaceSize)
Execute forward inference for CTCLoss layer.
miopenStatus_t miopenGetCTCLossDescriptor(miopenCTCLossDescriptor_t ctcLossDesc, miopenDataType_t *dataType, int *blank_label_id, bool *apply_softmax_layer)
Retrieves a CTC loss function descriptor's details.
miopenStatus_t miopenCreateCTCLossDescriptor(miopenCTCLossDescriptor_t *ctcLossDesc)
Create a CTC loss function Descriptor.
miopenStatus_t miopenMultiMarginLossForward(miopenHandle_t handle, miopenTensorDescriptor_t inputDesc, const void *input, miopenTensorDescriptor_t targetDesc, const void *target, miopenTensorDescriptor_t weightDesc, const void *weight, miopenTensorDescriptor_t outputDesc, void *output, long p, float margin, miopenLossReductionMode_t reduction, void *workspace, size_t workspaceSizeInBytes)
Execute a MultiMarginLoss forward layer.
miopenStatus_t miopenSoftMarginLossBackward(miopenHandle_t handle, miopenTensorDescriptor_t inputDesc, const void *input, miopenTensorDescriptor_t targetDesc, const void *target, miopenTensorDescriptor_t doutputDesc, const void *doutput, miopenTensorDescriptor_t dinputDesc, void *dinput, miopenLossReductionMode_t reduction)
Execute a SoftMarginLoss backward layer.
miopenStatus_t miopenSoftMarginLossForward(miopenHandle_t handle, miopenTensorDescriptor_t inputDesc, const void *input, miopenTensorDescriptor_t targetDesc, const void *target, miopenTensorDescriptor_t outputDesc, void *output, miopenLossReductionMode_t reduction, void *workspace=nullptr, size_t workspaceSizeInBytes=0)
Execute a SoftMarginLoss forward layer.
miopenStatus_t miopenDestroyCTCLossDescriptor(miopenCTCLossDescriptor_t ctcLossDesc)
Destroys a CTC loss function descriptor object.
@ MIOPEN_CTC_LOSS_ALGO_DETERMINISTIC
Definition miopen.h:5179
miopenRNNMode_t
Definition miopen.h:3783
miopenStatus_t miopenGetRNNDescriptor_V2(miopenRNNDescriptor_t rnnDesc, int *hiddenSize, int *layer, miopenDropoutDescriptor_t *dropoutDesc, miopenRNNInputMode_t *inputMode, miopenRNNDirectionMode_t *dirMode, miopenRNNMode_t *rnnMode, miopenRNNBiasMode_t *biasMode, miopenRNNAlgo_t *algoMode, miopenDataType_t *dataType)
Retrieves a RNN layer descriptor's details version 2. This version enables retrieving information of ...
miopenRNNInputMode_t
Definition miopen.h:3794
miopenStatus_t miopenSetRNNLayerBias(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, const int layer, miopenTensorDescriptor_t xDesc, miopenTensorDescriptor_t wDesc, void *w, const int biasID, miopenTensorDescriptor_t biasDesc, const void *layerBias)
Sets a bias for a specific layer in an RNN stack.
miopenStatus_t miopenRNNBackwardWeightsSeqTensor(miopenHandle_t handle, const miopenRNNDescriptor_t rnnDesc, const miopenSeqTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t hDesc, const void *hx, const miopenSeqTensorDescriptor_t yDesc, const void *y, void *dw, size_t weightSpaceSize, void *workSpace, size_t workSpaceNumBytes, const void *reserveSpace, size_t reserveSpaceNumBytes)
Execute backward weights for recurrent layer.
miopenStatus_t miopenGetRNNParamsSize(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, miopenTensorDescriptor_t xDesc, size_t *numBytes, miopenDataType_t dtype)
Query the amount of parameter memory required for RNN training.
miopenStatus_t miopenGetRNNLayerBiasOffset(miopenRNNDescriptor_t rnnDesc, const int layer, miopenTensorDescriptor_t xDesc, const int biasID, miopenTensorDescriptor_t biasDesc, size_t *layerBiasOffset)
Gets a bias index offset for a specific layer in an RNN stack.
miopenStatus_t miopenGetRNNLayerParamOffset(miopenRNNDescriptor_t rnnDesc, const int layer, miopenTensorDescriptor_t xDesc, const int paramID, miopenTensorDescriptor_t paramDesc, size_t *layerParamOffset)
Gets an index offset for a specific weight matrix for a layer in the RNN stack.
miopenRNNDirectionMode_t
Definition miopen.h:3816
miopenStatus_t miopenRNNBackwardSeqData(miopenHandle_t handle, const miopenRNNDescriptor_t rnnDesc, const miopenSeqTensorDescriptor_t yDesc, const void *y, const void *dy, const miopenTensorDescriptor_t hDesc, const void *hx, const void *dhy, void *dhx, const miopenTensorDescriptor_t cDesc, const void *cx, const void *dcy, void *dcx, const miopenSeqTensorDescriptor_t xDesc, void *dx, const void *w, size_t weightSpaceSize, void *workSpace, size_t workSpaceNumBytes, void *reserveSpace, size_t reserveSpaceNumBytes)
Execute backward data for recurrent layer.
miopenRNNBiasMode_t
Definition miopen.h:3825
miopenStatus_t miopenGetRNNLayerBias(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, const int layer, miopenTensorDescriptor_t xDesc, miopenTensorDescriptor_t wDesc, const void *w, const int biasID, miopenTensorDescriptor_t biasDesc, void *layerBias)
Gets a bias for a specific layer in an RNN stack.
miopenStatus_t miopenRNNBackwardWeights(miopenHandle_t handle, const miopenRNNDescriptor_t rnnDesc, const int sequenceLen, const miopenTensorDescriptor_t *xDesc, const void *x, const miopenTensorDescriptor_t hxDesc, const void *hx, const miopenTensorDescriptor_t *yDesc, const void *y, const miopenTensorDescriptor_t dwDesc, void *dw, void *workSpace, size_t workSpaceNumBytes, const void *reserveSpace, size_t reserveSpaceNumBytes)
Execute backward weights for recurrent layer.
miopenStatus_t miopenGetRNNTrainingReserveSize(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, const int sequenceLen, const miopenTensorDescriptor_t *xDesc, size_t *numBytes)
Query the amount of memory required for RNN training.
miopenStatus_t miopenGetRNNLayerBiasSize(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, const int layer, const int biasID, size_t *numBytes)
Gets the number of bytes of a bias.
miopenStatus_t miopenSetRNNDescriptor(miopenRNNDescriptor_t rnnDesc, const int hsize, const int nlayers, miopenRNNInputMode_t inMode, miopenRNNDirectionMode_t direction, miopenRNNMode_t rnnMode, miopenRNNBiasMode_t biasMode, miopenRNNAlgo_t algo, miopenDataType_t dataType)
Set the details of the RNN descriptor.
miopenRNNBaseLayout_t
Definition miopen.h:3860
miopenStatus_t miopenRNNBackwardData(miopenHandle_t handle, const miopenRNNDescriptor_t rnnDesc, const int sequenceLen, const miopenTensorDescriptor_t *yDesc, const void *y, const miopenTensorDescriptor_t *dyDesc, const void *dy, const miopenTensorDescriptor_t dhyDesc, const void *dhy, const miopenTensorDescriptor_t dcyDesc, const void *dcy, const miopenTensorDescriptor_t wDesc, const void *w, const miopenTensorDescriptor_t hxDesc, const void *hx, const miopenTensorDescriptor_t cxDesc, const void *cx, const miopenTensorDescriptor_t *dxDesc, void *dx, const miopenTensorDescriptor_t dhxDesc, void *dhx, const miopenTensorDescriptor_t dcxDesc, void *dcx, void *workSpace, size_t workSpaceNumBytes, void *reserveSpace, size_t reserveSpaceNumBytes)
Execute backward data for recurrent layer.
miopenStatus_t miopenGetRNNDescriptor(miopenRNNDescriptor_t rnnDesc, miopenRNNMode_t *rnnMode, miopenRNNAlgo_t *algoMode, miopenRNNInputMode_t *inputMode, miopenRNNDirectionMode_t *dirMode, miopenRNNBiasMode_t *biasMode, int *hiddenSize, int *layer)
Retrieves a RNN layer descriptor's details.
miopenRNNAlgo_t
Definition miopen.h:3803
miopenStatus_t miopenGetRNNTempSpaceSizes(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, miopenSeqTensorDescriptor_t xDesc, miopenRNNFWDMode_t fwdMode, size_t *workSpaceSize, size_t *reserveSpaceSize)
Query the amount of additional memory required for this RNN layer execution.
miopenStatus_t miopenGetRNNPaddingMode(miopenRNNDescriptor_t rnnDesc, miopenRNNPaddingMode_t *paddingMode)
This function retrieves the RNN padding mode from the RNN descriptor.
miopenStatus_t miopenRNNForward(miopenHandle_t handle, const miopenRNNDescriptor_t rnnDesc, miopenRNNFWDMode_t fwdMode, const miopenSeqTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t hDesc, const void *hx, void *hy, const miopenTensorDescriptor_t cDesc, const void *cx, void *cy, const miopenSeqTensorDescriptor_t yDesc, void *y, const void *w, size_t weightSpaceSize, void *workSpace, size_t workSpaceNumBytes, void *reserveSpace, size_t reserveSpaceNumBytes)
Execute forward training for recurrent layer.
miopenStatus_t miopenGetRNNDataSeqTensorDescriptor(miopenSeqTensorDescriptor_t seqTensorDesc, miopenDataType_t *dataType, miopenRNNBaseLayout_t *layout, int *maxSequenceLen, int *batchSize, int *vectorSize, int sequenceLenArrayLimit, int *sequenceLenArray, void *paddingMarker)
Get shape of RNN seqData tensor.
miopenStatus_t miopenGetRNNInputTensorSize(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, const int seqLen, miopenTensorDescriptor_t *xDesc, size_t *numBytes)
Obtain a the size in bytes of the RNN input tensor.
miopenRNNFWDMode_t
Definition miopen.h:3851
miopenStatus_t miopenSetRNNLayerParam(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, const int layer, miopenTensorDescriptor_t xDesc, miopenTensorDescriptor_t wDesc, void *w, const int paramID, miopenTensorDescriptor_t paramDesc, const void *layerParam)
Sets a weight matrix for a specific layer in an RNN stack.
miopenStatus_t miopenGetRNNLayerParamSize(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, const int layer, miopenTensorDescriptor_t xDesc, const int paramID, size_t *numBytes)
Gets the number of bytes of a parameter matrix.
miopenStatus_t miopenCreateRNNDescriptor(miopenRNNDescriptor_t *rnnDesc)
Create a RNN layer Descriptor.
miopenRNNGEMMalgoMode_t
Definition miopen.h:3834
miopenStatus_t miopenGetRNNLayerParam(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, const int layer, miopenTensorDescriptor_t xDesc, miopenTensorDescriptor_t wDesc, const void *w, const int paramID, miopenTensorDescriptor_t paramDesc, void *layerParam)
Gets a weight matrix for a specific layer in an RNN stack.
miopenStatus_t miopenGetRNNWorkspaceSize(miopenHandle_t handle, const miopenRNNDescriptor_t rnnDesc, const int sequenceLen, const miopenTensorDescriptor_t *xDesc, size_t *numBytes)
Query the amount of memory required to execute the RNN layer.
miopenStatus_t miopenSetRNNDataSeqTensorDescriptor(miopenSeqTensorDescriptor_t seqTensorDesc, miopenDataType_t dataType, miopenRNNBaseLayout_t layout, int maxSequenceLen, int batchSize, int vectorSize, const int *sequenceLenArray, void *paddingMarker)
Set shape of RNN seqData tensor.
miopenStatus_t miopenGetRNNParamsDescriptor(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, miopenTensorDescriptor_t xDesc, miopenTensorDescriptor_t wDesc, miopenDataType_t dtype)
Obtain a weight tensor descriptor for RNNs.
miopenStatus_t miopenRNNForwardTraining(miopenHandle_t handle, const miopenRNNDescriptor_t rnnDesc, const int sequenceLen, const miopenTensorDescriptor_t *xDesc, const void *x, const miopenTensorDescriptor_t hxDesc, const void *hx, const miopenTensorDescriptor_t cxDesc, const void *cx, const miopenTensorDescriptor_t wDesc, const void *w, const miopenTensorDescriptor_t *yDesc, void *y, const miopenTensorDescriptor_t hyDesc, void *hy, const miopenTensorDescriptor_t cyDesc, void *cy, void *workSpace, size_t workSpaceNumBytes, void *reserveSpace, size_t reserveSpaceNumBytes)
Execute forward training for recurrent layer.
miopenRNNPaddingMode_t
Definition miopen.h:3842
miopenStatus_t miopenSetRNNDescriptor_V2(miopenRNNDescriptor_t rnnDesc, const int hsize, const int nlayers, miopenDropoutDescriptor_t dropoutDesc, miopenRNNInputMode_t inMode, miopenRNNDirectionMode_t direction, miopenRNNMode_t rnnMode, miopenRNNBiasMode_t biasMode, miopenRNNAlgo_t algo, miopenDataType_t dataType)
Set the details of the RNN descriptor version 2. This version enables the use of dropout in rnn.
miopenStatus_t miopenDestroyRNNDescriptor(miopenRNNDescriptor_t rnnDesc)
Destroys the tensor descriptor object.
miopenStatus_t miopenGetRNNHiddenTensorSize(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, const int seqLen, miopenTensorDescriptor_t *xDesc, size_t *numBytes)
Obtain a the size in bytes of the RNN hidden tensor.
miopenStatus_t miopenSetRNNPaddingMode(miopenRNNDescriptor_t rnnDesc, miopenRNNPaddingMode_t paddingMode)
Sets a bias for a specific layer in an RNN stack.
miopenStatus_t miopenRNNForwardInference(miopenHandle_t handle, miopenRNNDescriptor_t rnnDesc, const int sequenceLen, const miopenTensorDescriptor_t *xDesc, const void *x, const miopenTensorDescriptor_t hxDesc, const void *hx, const miopenTensorDescriptor_t cxDesc, const void *cx, const miopenTensorDescriptor_t wDesc, const void *w, const miopenTensorDescriptor_t *yDesc, void *y, const miopenTensorDescriptor_t hyDesc, void *hy, const miopenTensorDescriptor_t cyDesc, void *cy, void *workSpace, size_t workSpaceNumBytes)
Execute forward inference for RNN layer.
@ miopenRNNTANH
Definition miopen.h:3785
@ miopenLSTM
Definition miopen.h:3786
@ miopenGRU
Definition miopen.h:3787
@ miopenRNNRELU
Definition miopen.h:3784
@ miopenRNNlinear
Definition miopen.h:3795
@ miopenRNNskip
Definition miopen.h:3796
@ miopenRNNbidirection
Definition miopen.h:3818
@ miopenRNNunidirection
Definition miopen.h:3817
@ miopenRNNwithBias
Definition miopen.h:3827
@ miopenRNNNoBias
Definition miopen.h:3826
@ miopenRNNDataSeqMajorPadded
Definition miopen.h:3863
@ miopenRNNDataSeqMajorNotPadded
Definition miopen.h:3862
@ miopenRNNDataBatchMajorPadded
Definition miopen.h:3864
@ miopenRNNDataUnknownLayout
Definition miopen.h:3861
@ miopenRNNroundedDynamic
Definition miopen.h:3808
@ miopenRNNfundamental
Definition miopen.h:3806
@ miopenRNNdefault
Definition miopen.h:3804
@ miopenRNNTraining
Definition miopen.h:3852
@ miopenRNNInference
Definition miopen.h:3853
@ miopenRNNAlgoGEMM
Definition miopen.h:3835
@ miopenRNNIOWithPadding
Definition miopen.h:3844
@ miopenRNNIONotPadded
Definition miopen.h:3843
miopenStatus_t miopenGetPReLUBackwardWorkspaceSize(miopenHandle_t handle, miopenTensorDescriptor_t inputDesc, miopenTensorDescriptor_t weightDesc, size_t *sizeInBytes)
Helper function to query the minimum workspace size required by the PReLU backward call.
miopenStatus_t miopenPReLUBackward(miopenHandle_t handle, void *workspace, size_t workspaceSizeInBytes, miopenTensorDescriptor_t inputDesc, const void *input, miopenTensorDescriptor_t weightDesc, const void *weight, miopenTensorDescriptor_t doutputDesc, const void *doutput, miopenTensorDescriptor_t dinputDesc, void *dinput, miopenTensorDescriptor_t dweightDesc, void *dweight)
Execute a PReLU backward layer.
miopenStatus_t miopenReduceExtremeForward(miopenHandle_t handle, const miopenTensorDescriptor_t xDesc, const void *x, const int32_t dim, const miopenReduceExtremeOp_t reduceExtremeOp, const miopenTensorDescriptor_t yDesc, void *y, const miopenTensorDescriptor_t indiceDesc, void *indice)
Find the the extreme (minimum, maximum) value and index of a tensor across Dimension.
miopenStatus_t miopenRoPEBackward(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t cosDesc, const void *cos, const miopenTensorDescriptor_t sinDesc, const void *sin, const miopenTensorDescriptor_t dxDesc, void *dx)
Execute a rope backward layer.
miopenStatus_t miopenRoPEForward(miopenHandle_t handle, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t cosDesc, const void *cos, const miopenTensorDescriptor_t sinDesc, const void *sin, const miopenTensorDescriptor_t yDesc, void *y)
Execute a rope forward layer.
miopenStatus_t miopenFusedAdam(miopenHandle_t handle, const miopenTensorDescriptor_t paramDesc, void *param, const miopenTensorDescriptor_t gradDesc, const void *grad, const miopenTensorDescriptor_t expAvgDesc, void *expAvg, const miopenTensorDescriptor_t expAvgSqDesc, void *expAvgSq, const miopenTensorDescriptor_t maxExpAvgSqDesc, void *maxExpAvgSq, const miopenTensorDescriptor_t stateStepDesc, void *stateStep, const unsigned int state_step, const float lr, const float beta1, const float beta2, const float weight_decay, const float eps, const bool amsgrad, const bool maximize, const bool adamw, const miopenTensorDescriptor_t gradScaleDesc, const void *gradScale, const miopenTensorDescriptor_t foundInfDesc, const void *foundInf)
Perform Fused Adam optimization for a single tensor (Adaptive Moment Estimation).
miopenStatus_t miopenTransformersAdamW(miopenHandle_t handle, const miopenTensorDescriptor_t paramDesc, void *param, const miopenTensorDescriptor_t gradDesc, const void *grad, const miopenTensorDescriptor_t expAvgDesc, void *expAvg, const miopenTensorDescriptor_t expAvgSqDesc, void *expAvgSq, const miopenTensorDescriptor_t stateStepDesc, void *stateStep, const unsigned int state_step, const float lr, const float beta1, const float beta2, const float weight_decay, const float eps, const bool correct_bias, const miopenTensorDescriptor_t gradScaleDesc, const void *gradScale, const miopenTensorDescriptor_t foundInfDesc, const void *foundInf)
Implements Adam algorithm with weight decay fix as introduced in Decoupled Weight Decay Regularizatio...
miopenStatus_t miopenFusedAdamWithOutput(miopenHandle_t handle, const miopenTensorDescriptor_t paramInDesc, void *paramIn, const miopenTensorDescriptor_t paramOutDesc, void *paramOut, const miopenTensorDescriptor_t paramOutFloat16Desc, void *paramOutFloat16, const miopenTensorDescriptor_t gradInDesc, const void *gradIn, const miopenTensorDescriptor_t expAvgInDesc, void *expAvgIn, const miopenTensorDescriptor_t expAvgOutDesc, void *expAvgOut, const miopenTensorDescriptor_t expAvgSqInDesc, void *expAvgSqIn, const miopenTensorDescriptor_t expAvgSqOutDesc, void *expAvgSqOut, const miopenTensorDescriptor_t maxExpAvgSqInDesc, void *maxExpAvgSqIn, const miopenTensorDescriptor_t maxExpAvgSqOutDesc, void *maxExpAvgSqOut, const miopenTensorDescriptor_t stateStepInDesc, void *stateStepIn, const miopenTensorDescriptor_t stateStepOutDesc, void *stateStepOut, const unsigned int state_step, const float lr, const float beta1, const float beta2, const float weight_decay, const float eps, const bool amsgrad, const bool maximize, const bool adamw, const miopenTensorDescriptor_t gradScaleDesc, const void *gradScale, const miopenTensorDescriptor_t foundInfDesc, const void *foundInf)
Execute single tensor Adam optimization and receive the result in a separate output tensor.
miopenStatus_t miopenTransformersAdamWWithOutput(miopenHandle_t handle, const miopenTensorDescriptor_t paramInDesc, void *paramIn, const miopenTensorDescriptor_t paramOutDesc, void *paramOut, const miopenTensorDescriptor_t paramOutFloat16Desc, void *paramOutFloat16, const miopenTensorDescriptor_t gradInDesc, const void *gradIn, const miopenTensorDescriptor_t expAvgInDesc, void *expAvgIn, const miopenTensorDescriptor_t expAvgOutDesc, void *expAvgOut, const miopenTensorDescriptor_t expAvgSqInDesc, void *expAvgSqIn, const miopenTensorDescriptor_t expAvgSqOutDesc, void *expAvgSqOut, const miopenTensorDescriptor_t stateStepInDesc, void *stateStepIn, const miopenTensorDescriptor_t stateStepOutDesc, void *stateStepOut, const unsigned int state_step, const float lr, const float beta1, const float beta2, const float weight_decay, const float eps, const float step_size, const bool correct_bias, const miopenTensorDescriptor_t gradScaleDesc, const void *gradScale, const miopenTensorDescriptor_t foundInfDesc, const void *foundInf)
Execute single tensor Adam optimization and receive the result in a separate output tensor.
miopenStatus_t miopenSetReduceTensorDescriptor(miopenReduceTensorDescriptor_t reduceTensorDesc, miopenReduceTensorOp_t reduceTensorOp, miopenDataType_t reduceTensorCompType, miopenNanPropagation_t reduceTensorNanOpt, miopenReduceTensorIndices_t reduceTensorIndices, miopenIndicesType_t reduceTensorIndicesType)
Initialize a ReduceTensor descriptor object.
miopenStatus_t miopenCreateReduceTensorDescriptor(miopenReduceTensorDescriptor_t *reduceTensorDesc)
Creates the ReduceTensor descriptor object.
miopenStatus_t miopenReduceTensor(miopenHandle_t handle, const miopenReduceTensorDescriptor_t reduceTensorDesc, void *indices, size_t indicesSizeInBytes, void *workspace, size_t workspaceSizeInBytes, const void *alpha, const miopenTensorDescriptor_t aDesc, const void *A, const void *beta, const miopenTensorDescriptor_t cDesc, void *C)
TensorReduce function doing reduction on tensor A by implementing C = alpha * reduceOp(A)
miopenStatus_t miopenGetReductionIndicesSize(miopenHandle_t handle, const miopenReduceTensorDescriptor_t reduceTensorDesc, const miopenTensorDescriptor_t aDesc, const miopenTensorDescriptor_t cDesc, size_t *sizeInBytes)
Helper function to query the minimum index space size required by the ReduceTensor call.
miopenStatus_t miopenDestroyReduceTensorDescriptor(miopenReduceTensorDescriptor_t reduceTensorDesc)
Destroy the ReduceTensor descriptor object.
miopenStatus_t miopenGetReductionWorkspaceSize(miopenHandle_t handle, const miopenReduceTensorDescriptor_t reduceTensorDesc, const miopenTensorDescriptor_t aDesc, const miopenTensorDescriptor_t cDesc, size_t *sizeInBytes)
Helper function to query the minimum workspace size required by the ReduceTensor call.
miopenStatus_t miopenGetReduceTensorDescriptor(const miopenReduceTensorDescriptor_t reduceTensorDesc, miopenReduceTensorOp_t *reduceTensorOp, miopenDataType_t *reduceTensorCompType, miopenNanPropagation_t *reduceTensorNanOpt, miopenReduceTensorIndices_t *reduceTensorIndices, miopenIndicesType_t *reduceTensorIndicesType)
Query a ReduceTensor descriptor object.
miopenStatus_t miopenActivationForward(miopenHandle_t handle, const miopenActivationDescriptor_t activDesc, const void *alpha, const miopenTensorDescriptor_t xDesc, const void *x, const void *beta, const miopenTensorDescriptor_t yDesc, void *y)
Execute an activation forward layer.
miopenStatus_t miopenGLUBackward(miopenHandle_t handle, const miopenTensorDescriptor_t inputDesc, const void *input, const miopenTensorDescriptor_t outputGradDesc, const void *outputGrad, const miopenTensorDescriptor_t inputGradDesc, void *inputGrad, const uint32_t dim)
Execute a GLU backward layer.
miopenStatus_t miopenActivationBackward(miopenHandle_t handle, const miopenActivationDescriptor_t activDesc, const void *alpha, const miopenTensorDescriptor_t yDesc, const void *y, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t xDesc, const void *x, const void *beta, const miopenTensorDescriptor_t dxDesc, void *dx)
Execute a activation backwards layer.
miopenStatus_t miopenSetActivationDescriptor(const miopenActivationDescriptor_t activDesc, miopenActivationMode_t mode, double activAlpha, double activBeta, double activGamma)
Sets the activation layer descriptor details.
miopenStatus_t miopenCreateActivationDescriptor(miopenActivationDescriptor_t *activDesc)
Creates the Activation descriptor object.
miopenStatus_t miopenGetActivationDescriptor(const miopenActivationDescriptor_t activDesc, miopenActivationMode_t *mode, double *activAlpha, double *activBeta, double *activGamma)
Gets the activation layer descriptor details.
miopenStatus_t miopenGLUForward(miopenHandle_t handle, const miopenTensorDescriptor_t inputDesc, const void *input, const miopenTensorDescriptor_t outputDesc, void *output, const uint32_t dim)
Execute a GLU forward layer.
miopenStatus_t miopenDestroyActivationDescriptor(miopenActivationDescriptor_t activDesc)
Destroys the activation descriptor object.
miopenStatus_t miopenBatchNormalizationForwardInference(miopenHandle_t handle, miopenBatchNormMode_t bn_mode, void *alpha, void *beta, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t yDesc, void *y, const miopenTensorDescriptor_t bnScaleBiasMeanVarDesc, void *bnScale, void *bnBias, void *estimatedMean, void *estimatedVariance, double epsilon)
Execute forward inference layer for batch normalization.
miopenStatus_t miopenBatchNormalizationForwardInference_V2(miopenHandle_t handle, miopenBatchNormMode_t bn_mode, void *alpha, void *beta, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t yDesc, void *y, const miopenTensorDescriptor_t scaleDesc, const miopenTensorDescriptor_t biasDesc, const miopenTensorDescriptor_t estMeanDesc, const miopenTensorDescriptor_t estVarianceDesc, void *bnScale, void *bnBias, void *estimatedMean, void *estimatedVariance, double epsilon)
Execute forward inference layer for batch normalization.
miopenStatus_t miopenBatchNormalizationForwardTraining(miopenHandle_t handle, miopenBatchNormMode_t bn_mode, void *alpha, void *beta, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t yDesc, void *y, const miopenTensorDescriptor_t bnScaleBiasMeanVarDesc, void *bnScale, void *bnBias, double expAvgFactor, void *resultRunningMean, void *resultRunningVariance, double epsilon, void *resultSaveMean, void *resultSaveInvVariance)
Execute forward training layer for batch normalization.
miopenStatus_t miopenBatchNormalizationForwardTraining_V2(miopenHandle_t handle, miopenBatchNormMode_t bn_mode, void *alpha, void *beta, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t yDesc, void *y, const miopenTensorDescriptor_t scaleDesc, const miopenTensorDescriptor_t biasVarDesc, const miopenTensorDescriptor_t savedMeanDesc, const miopenTensorDescriptor_t savedVarDesc, void *bnScale, void *bnBias, double expAvgFactor, void *resultRunningMean, void *resultRunningVariance, double epsilon, void *resultSaveMean, void *resultSaveInvVariance)
Execute forward training layer for batch normalization.
miopenStatus_t miopenBatchNormalizationBackward_V2(miopenHandle_t handle, miopenBatchNormMode_t bn_mode, const void *alphaDataDiff, const void *betaDataDiff, const void *alphaParamDiff, const void *betaParamDiff, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t dxDesc, void *dx, const miopenTensorDescriptor_t scaleDesc, const miopenTensorDescriptor_t biasDesc, const miopenTensorDescriptor_t savedMeanDesc, const miopenTensorDescriptor_t savedVarDesc, const void *bnScale, void *resultBnScaleDiff, void *resultBnBiasDiff, double epsilon, const void *savedMean, const void *savedInvVariance)
Execute backwards propagation layer for batch normalization.
miopenStatus_t miopenBatchNormalizationBackward(miopenHandle_t handle, miopenBatchNormMode_t bn_mode, const void *alphaDataDiff, const void *betaDataDiff, const void *alphaParamDiff, const void *betaParamDiff, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t dxDesc, void *dx, const miopenTensorDescriptor_t bnScaleBiasDiffDesc, const void *bnScale, void *resultBnScaleDiff, void *resultBnBiasDiff, double epsilon, const void *savedMean, const void *savedInvVariance)
Execute backwards propagation layer for batch normalization.
miopenStatus_t miopenDeriveBNTensorDescriptor(miopenTensorDescriptor_t derivedBnDesc, const miopenTensorDescriptor_t xDesc, miopenBatchNormMode_t bn_mode)
Derive tensor for gamma and beta from input tensor descriptor.
miopenStatus_t miopenCatForward(miopenHandle_t handle, const int32_t xCount, const miopenTensorDescriptor_t *xDescs, const void *const *xs, const miopenTensorDescriptor_t yDesc, void *y, const int32_t dim)
Execute a cat forward layer.
miopenStatus_t miopenInitConvolutionNdDescriptor(miopenConvolutionDescriptor_t convDesc, int spatialDim, const int *padA, const int *strideA, const int *dilationA, miopenConvolutionMode_t c_mode)
Creates a N-dimensional convolution layer descriptor.
miopenStatus_t miopenConvolutionForwardImmediate(miopenHandle_t handle, const miopenTensorDescriptor_t wDesc, const void *w, const miopenTensorDescriptor_t xDesc, const void *x, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t yDesc, void *y, void *workSpace, size_t workSpaceSize, const uint64_t solution_id)
Executes the Forward convolution operation based on the provided solution ID.
miopenStatus_t miopenConvolutionBackwardDataCompileSolution(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const miopenTensorDescriptor_t wDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dxDesc, const uint64_t solution_id)
Compiles the solution provided by the user, this solution may be acquired by the miopenConvolutionBac...
miopenStatus_t miopenConvolutionForwardGetSolutionWorkspaceSize(miopenHandle_t handle, const miopenTensorDescriptor_t wDesc, const miopenTensorDescriptor_t xDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t yDesc, const uint64_t solution_id, size_t *workSpaceSize)
Returns the workspace size required for a particular solution id.
miopenStatus_t miopenConvolutionForward(miopenHandle_t handle, const void *alpha, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t wDesc, const void *w, const miopenConvolutionDescriptor_t convDesc, miopenConvFwdAlgorithm_t algo, const void *beta, const miopenTensorDescriptor_t yDesc, void *y, void *workSpace, size_t workSpaceSize)
Execute a forward convolution layer.
miopenStatus_t miopenGetConvolutionGroupCount(miopenConvolutionDescriptor_t convDesc, int *groupCount)
Get the number of groups to be used in Group/Depthwise convolution.
miopenStatus_t miopenGetConvolutionFindMode(const miopenConvolutionDescriptor_t convDesc, miopenConvolutionFindMode_t *findMode)
Reads the Find Mode attribute from the convolution descriptor.
miopenStatus_t miopenInitConvolutionDescriptor(miopenConvolutionDescriptor_t convDesc, miopenConvolutionMode_t c_mode, int pad_h, int pad_w, int stride_h, int stride_w, int dilation_h, int dilation_w)
Creates a 2-D convolution layer descriptor.
miopenConvAlgorithm_t
Definition miopen.h:1267
miopenStatus_t miopenConvolutionBackwardData(miopenHandle_t handle, const void *alpha, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t wDesc, const void *w, const miopenConvolutionDescriptor_t convDesc, miopenConvBwdDataAlgorithm_t algo, const void *beta, const miopenTensorDescriptor_t dxDesc, void *dx, void *workSpace, size_t workSpaceSize)
Execute a backward data convolution layer.
miopenStatus_t miopenGetConvolutionAttribute(miopenConvolutionDescriptor_t convDesc, const miopenConvolutionAttrib_t attr, int *value)
Get the attribute of the convolution descriptor.
miopenStatus_t miopenGetConvolutionNdForwardOutputDim(miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t inputTensorDesc, const miopenTensorDescriptor_t filterDesc, int *nDim, int *outputTensorDimA)
Get the shape of a resulting N-dimensional tensor from a (N-2)-dimensional convolution.
miopenStatus_t miopenConvolutionBackwardWeightsCompileSolution(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const miopenTensorDescriptor_t xDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dwDesc, const uint64_t solution_id)
Compiles the solution provided by the user, this solution may be acquired by the miopenConvolutionBac...
miopenStatus_t miopenFindConvolutionBackwardWeightsAlgorithm(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t xDesc, const void *x, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dwDesc, void *dw, const int requestAlgoCount, int *returnedAlgoCount, miopenConvAlgoPerf_t *perfResults, void *workSpace, size_t workSpaceSize, bool exhaustiveSearch)
Search and run the backwards weights convolutional algorithms and return a list of kernel times.
miopenStatus_t miopenGetConvolutionForwardOutputDim(miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t inputTensorDesc, const miopenTensorDescriptor_t filterDesc, int *n, int *c, int *h, int *w)
Get the shape of a resulting 4-D tensor from a 2-D convolution.
miopenConvFwdAlgorithm_t
Definition miopen.h:1230
miopenStatus_t miopenConvolutionForwardGetWorkSpaceSize(miopenHandle_t handle, const miopenTensorDescriptor_t wDesc, const miopenTensorDescriptor_t xDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t yDesc, size_t *workSpaceSize)
Query the workspace size required for a forward convolution algorithm.
miopenStatus_t miopenCreateConvolutionDescriptor(miopenConvolutionDescriptor_t *convDesc)
Creates a convolution layer descriptor.
miopenStatus_t miopenConvolutionBackwardWeightsGetSolution(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const miopenTensorDescriptor_t xDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dwDesc, const size_t maxSolutionCount, size_t *solutionCount, miopenConvSolution_t *solutions)
Query the applicable solutions for a backward convolution w-r-t weights as described by input,...
miopenStatus_t miopenGetConvolutionNdDescriptor(miopenConvolutionDescriptor_t convDesc, int requestedSpatialDim, int *spatialDim, int *padA, int *strideA, int *dilationA, miopenConvolutionMode_t *c_mode)
Retrieves a N-dimensional convolution layer descriptor's details.
miopenConvBwdDataAlgorithm_t
Definition miopen.h:1253
miopenStatus_t miopenConvolutionBackwardWeightsGetWorkSpaceSize(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const miopenTensorDescriptor_t xDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dwDesc, size_t *workSpaceSize)
Get the GPU memory required for the backward weights convolution algorithm.
miopenStatus_t miopenConvolutionBackwardWeightsImmediate(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t xDesc, const void *x, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dwDesc, void *dw, void *workSpace, size_t workSpaceSize, const uint64_t solution_id)
Executes the Backward convolution w-r-t weights operation based on the provided solution ID.
miopenStatus_t miopenFindConvolutionBackwardDataAlgorithm(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t wDesc, const void *w, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dxDesc, void *dx, const int requestAlgoCount, int *returnedAlgoCount, miopenConvAlgoPerf_t *perfResults, void *workSpace, size_t workSpaceSize, bool exhaustiveSearch)
Search and run the backwards data convolution algorithms and return a list of kernel times.
miopenStatus_t miopenConvolutionBackwardDataGetSolution(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const miopenTensorDescriptor_t wDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dxDesc, const size_t maxSolutionCount, size_t *solutionCount, miopenConvSolution_t *solutions)
Query the applicable solutions for a backward convolution w-r-t data as described by input,...
miopenStatus_t miopenConvolutionForwardBias(miopenHandle_t handle, const void *alpha, const miopenTensorDescriptor_t bDesc, const void *b, const void *beta, const miopenTensorDescriptor_t yDesc, void *y)
Calculate element-wise scale and shift of a tensor via a bias tensor.
miopenStatus_t miopenSetConvolutionAttribute(miopenConvolutionDescriptor_t convDesc, const miopenConvolutionAttrib_t attr, int value)
Set the attribute of the convolution descriptor.
miopenStatus_t miopenConvolutionBackwardDataImmediate(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t wDesc, const void *w, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dxDesc, void *dx, void *workSpace, size_t workSpaceSize, const uint64_t solution_id)
Executes the Backward convolution w-r-t data operation based on the provided solution ID.
miopenStatus_t miopenSetTransposeConvNdOutputPadding(miopenConvolutionDescriptor_t convDesc, int spatialDim, const int *adjA)
Set the output padding to be used in N-dimensional Transpose convolution.
miopenStatus_t miopenSetConvolutionFindMode(miopenConvolutionDescriptor_t convDesc, miopenConvolutionFindMode_t findMode)
Sets the Find Mode attribute in the convolution descriptor.
miopenStatus_t miopenSetTransposeConvOutputPadding(miopenConvolutionDescriptor_t convDesc, int adj_h, int adj_w)
Set the output padding to be used in 2-D Transpose convolution.
miopenStatus_t miopenGetConvolutionSpatialDim(miopenConvolutionDescriptor_t convDesc, int *spatialDim)
Retrieves the spatial dimension of a convolution layer descriptor.
miopenConvBwdWeightsAlgorithm_t
Definition miopen.h:1242
miopenStatus_t miopenConvolutionForwardCompileSolution(miopenHandle_t handle, const miopenTensorDescriptor_t wDesc, const miopenTensorDescriptor_t xDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t yDesc, const uint64_t solution_id)
Compiles the solution provided by the user, this solution may be acquired by the miopenConvolutionFor...
miopenStatus_t miopenConvolutionBackwardDataGetSolutionCount(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const miopenTensorDescriptor_t wDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dxDesc, size_t *solutionCount)
Query the maximum number of solutions applicable for the given input/output and weights tensor descri...
miopenStatus_t miopenConvolutionBackwardWeights(miopenHandle_t handle, const void *alpha, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t xDesc, const void *x, const miopenConvolutionDescriptor_t convDesc, miopenConvBwdWeightsAlgorithm_t algo, const void *beta, const miopenTensorDescriptor_t dwDesc, void *dw, void *workSpace, size_t workSpaceSize)
Execute a backward weights convolution layer.
miopenStatus_t miopenConvolutionBackwardDataGetWorkSpaceSize(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const miopenTensorDescriptor_t wDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dxDesc, size_t *workSpaceSize)
Query the workspace size required for a backward data convolution algorithm.
miopenStatus_t miopenFindConvolutionForwardAlgorithm(miopenHandle_t handle, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t wDesc, const void *w, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t yDesc, void *y, const int requestAlgoCount, int *returnedAlgoCount, miopenConvAlgoPerf_t *perfResults, void *workSpace, size_t workSpaceSize, bool exhaustiveSearch)
Search and run the forward convolutional algorithms and return a list of kernel times.
miopenStatus_t miopenDestroyConvolutionDescriptor(miopenConvolutionDescriptor_t convDesc)
Destroys the tensor descriptor object.
miopenStatus_t miopenConvolutionBackwardWeightsGetSolutionCount(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const miopenTensorDescriptor_t xDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dwDesc, size_t *solutionCount)
Query the maximum number of solutions applicable for the given input/output and weights tensor descri...
miopenStatus_t miopenSetConvolutionGroupCount(miopenConvolutionDescriptor_t convDesc, int groupCount)
Set the number of groups to be used in Group/Depthwise convolution.
miopenStatus_t miopenConvolutionBackwardWeightsGetSolutionWorkspaceSize(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const miopenTensorDescriptor_t xDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dwDesc, const uint64_t solution_id, size_t *workSpaceSize)
Returns the workspace size required for a particular solution id.
miopenStatus_t miopenConvolutionForwardGetSolution(miopenHandle_t handle, const miopenTensorDescriptor_t wDesc, const miopenTensorDescriptor_t xDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t yDesc, const size_t maxSolutionCount, size_t *solutionCount, miopenConvSolution_t *solutions)
Query the applicable solutions for a convolution configuration described by input,...
miopenStatus_t miopenGetConvolutionDescriptor(miopenConvolutionDescriptor_t convDesc, miopenConvolutionMode_t *c_mode, int *pad_h, int *pad_w, int *stride_h, int *stride_w, int *dilation_h, int *dilation_w)
Retrieves a 2-D convolution layer descriptor's details.
miopenStatus_t miopenConvolutionForwardGetSolutionCount(miopenHandle_t handle, const miopenTensorDescriptor_t wDesc, const miopenTensorDescriptor_t xDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t yDesc, size_t *solutionCount)
Query the maximum number of solutions applicable for the given input/output and weights tensor descri...
miopenStatus_t miopenConvolutionBackwardDataGetSolutionWorkspaceSize(miopenHandle_t handle, const miopenTensorDescriptor_t dyDesc, const miopenTensorDescriptor_t wDesc, const miopenConvolutionDescriptor_t convDesc, const miopenTensorDescriptor_t dxDesc, const uint64_t solution_id, size_t *workSpaceSize)
Returns the workspace size required for a particular solution id.
miopenStatus_t miopenConvolutionBackwardBias(miopenHandle_t handle, const void *alpha, const miopenTensorDescriptor_t dyDesc, const void *dy, const void *beta, const miopenTensorDescriptor_t dbDesc, void *db)
Calculates the gradient with respect to the bias.
@ miopenConvolutionAlgoDirect
Definition miopen.h:1269
@ miopenConvolutionAlgoWinograd
Definition miopen.h:1271
@ miopenConvolutionAlgoFFT
Definition miopen.h:1270
@ miopenConvolutionAlgoImplicitGEMM
Definition miopen.h:1272
@ miopenConvolutionAlgoGEMM
Definition miopen.h:1268
@ miopenConvolutionFwdAlgoFFT
Definition miopen.h:1233
@ miopenConvolutionFwdAlgoImplicitGEMM
Definition miopen.h:1235
@ miopenConvolutionFwdAlgoGEMM
Definition miopen.h:1231
@ miopenConvolutionFwdAlgoWinograd
Definition miopen.h:1234
@ miopenConvolutionFwdAlgoDirect
Definition miopen.h:1232
@ miopenTransposeBwdDataAlgoGEMM
Definition miopen.h:1258
@ miopenConvolutionBwdDataAlgoDirect
Definition miopen.h:1255
@ miopenConvolutionBwdDataAlgoGEMM
Definition miopen.h:1254
@ miopenConvolutionBwdDataAlgoFFT
Definition miopen.h:1256
@ miopenConvolutionBwdDataAlgoWinograd
Definition miopen.h:1257
@ miopenConvolutionBwdDataAlgoImplicitGEMM
Definition miopen.h:1260
@ miopenConvolutionBwdWeightsAlgoGEMM
Definition miopen.h:1243
@ miopenConvolutionBwdWeightsAlgoWinograd
Definition miopen.h:1245
@ miopenConvolutionBwdWeightsAlgoDirect
Definition miopen.h:1244
@ miopenConvolutionBwdWeightsAlgoImplicitGEMM
Definition miopen.h:1246
miopenStatus_t miopenDestroyDropoutDescriptor(miopenDropoutDescriptor_t dropoutDesc)
Destroys the dropout descriptor object.
miopenRNGType_t
Definition miopen.h:5298
miopenStatus_t miopenDropoutGetStatesSize(miopenHandle_t handle, size_t *stateSizeInBytes)
Query the amount of memory required to store the states of the random number generators.
miopenStatus_t miopenDropoutGetReserveSpaceSize(const miopenTensorDescriptor_t xDesc, size_t *reserveSpaceSizeInBytes)
Query the amount of memory required to run dropout.
miopenStatus_t miopenDropoutForward(miopenHandle_t handle, const miopenDropoutDescriptor_t dropoutDesc, const miopenTensorDescriptor_t noise_shape, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t yDesc, void *y, void *reserveSpace, size_t reserveSpaceSizeInBytes)
Execute forward dropout operation.
miopenStatus_t miopenGetDropoutDescriptor(miopenDropoutDescriptor_t dropoutDesc, miopenHandle_t handle, float *dropout, void **states, unsigned long long *seed, bool *use_mask, bool *state_evo, miopenRNGType_t *rng_mode)
Get the details of the dropout descriptor.
miopenStatus_t miopenCreateDropoutDescriptor(miopenDropoutDescriptor_t *dropoutDesc)
Creates the dropout descriptor object.
miopenStatus_t miopenDropoutBackward(miopenHandle_t handle, const miopenDropoutDescriptor_t dropoutDesc, const miopenTensorDescriptor_t noise_shape, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t dxDesc, void *dx, void *reserveSpace, size_t reserveSpaceSizeInBytes)
Execute backward dropout operation.
miopenStatus_t miopenRestoreDropoutDescriptor(miopenDropoutDescriptor_t dropoutDesc, miopenHandle_t handle, float dropout, void *states, size_t stateSizeInBytes, unsigned long long seed, bool use_mask, bool state_evo, miopenRNGType_t rng_mode)
Restore the dropout descriptor to a saved state.
miopenStatus_t miopenSetDropoutDescriptor(miopenDropoutDescriptor_t dropoutDesc, miopenHandle_t handle, float dropout, void *states, size_t stateSizeInBytes, unsigned long long seed, bool use_mask, bool state_evo, miopenRNGType_t rng_mode)
Initialize the dropout descriptor.
@ MIOPEN_RNG_PSEUDO_XORWOW
Definition miopen.h:5299
miopenFindResultsOrder_t
Definition miopen.h:5729
miopenStatus_t miopenGetSolutionSolverId(miopenSolution_t solution, uint64_t *solverId)
Reads id of the solver referred by the solution.
miopenStatus_t miopenSetSoftmaxDescriptor(miopenSoftmaxDescriptor_t softmaxDesc, float alpha, float beta, miopenSoftmaxAlgorithm_t algorithm, miopenSoftmaxMode_t mode)
Sets the softmax descriptor details.
miopenStatus_t miopenGetSolutionTime(miopenSolution_t solution, float *time)
Reads the time spent to execute the solution the last it was run.
miopenStatus_t miopenGetMhaDescriptor(miopenMhaDescriptor_t mhaDesc, float *scale)
Gets the Mha descriptor details.
miopenMhaMask_t
Initializes a problem object describing a Mha operation.
Definition miopen.h:5757
miopenStatus_t miopenSetMhaDescriptor(miopenMhaDescriptor_t mhaDesc, float scale)
Sets the Mha descriptor details.
miopenStatus_t miopenSetFindOptionWorkspaceLimit(miopenFindOptions_t options, size_t value)
Sets the workspace limit find option. Default value is maximum of size_t.
miopenStatus_t miopenSetFindOptionPreallocatedTensor(miopenFindOptions_t options, miopenTensorArgumentId_t id, void *buffer)
Attaches a preallocated tensor to find options. If not used, buffers are allocated by MIOpen internal...
miopenStatus_t miopenCreateSoftmaxProblem(miopenProblem_t *problem, miopenSoftmaxDescriptor_t operatorDesc, miopenProblemDirection_t direction)
Initializes a problem object describing a softmax operation.
miopenStatus_t miopenDestroyFindOptions(miopenFindOptions_t options)
Destroys miopenFindOptions object.
miopenStatus_t miopenSetFindOptionAttachBinaries(miopenFindOptions_t options, unsigned attach)
Forces library to attach kernel binaries to solutions for later saving. This allows zero lookup miope...
miopenStatus_t miopenFuseProblems(miopenProblem_t problem1, miopenProblem_t problem2)
Fuse two problems into a single one. Problems can be either regular, or fused. No problems are dispos...
miopenStatus_t miopenGetSolutionSize(miopenSolution_t solution, size_t *size)
Reads the expected size of a solution.
miopenTensorArgumentId_t
Definition miopen.h:5648
miopenStatus_t miopenFindSolutions(miopenHandle_t handle, miopenProblem_t problem, miopenFindOptions_t options, miopenSolution_t *solutions, size_t *numSolutions, size_t maxSolutions)
Finds solutions to a problem by running different applicable solutions. Memory is automatically alloc...
miopenStatus_t miopenSetFindOptionTuning(miopenFindOptions_t options, int value)
Sets the tuning find option. Default value is zero.
miopenStatus_t miopenGetSolutionWorkspaceSize(miopenSolution_t solution, size_t *workspaceSize)
Reads the amount of workspace required to exectute the solution.
miopenStatus_t miopenSetFindOptionResultsOrder(miopenFindOptions_t options, miopenFindResultsOrder_t value)
Sets the results order find option. Default value is miopenFindResultsOrderByTime.
miopenStatus_t miopenRunSolution(miopenHandle_t handle, miopenSolution_t solution, size_t nInputs, const miopenTensorArgument_t *tensors, void *workspace, size_t workspaceSize)
Runs the solution using the passed in buffers.
miopenStatus_t miopenCreateMhaProblem(miopenProblem_t *problem, miopenMhaDescriptor_t operatorDesc, miopenProblemDirection_t direction)
miopenProblemDirection_t
Definition miopen.h:5635
miopenStatus_t miopenCreateBatchnormProblem(miopenProblem_t *problem, miopenBatchNormMode_t mode, bool runningMeanVariance, miopenProblemDirection_t direction)
Initializes a problem object describing an activation operation.
miopenStatus_t miopenCreateMhaDescriptor(miopenMhaDescriptor_t *mhaDesc)
Creates the mha descriptor object.
miopenStatus_t miopenDestroySolution(miopenSolution_t solution)
Destroys solution object.
miopenStatus_t miopenLoadSolution(miopenSolution_t *solution, const char *data, size_t size)
Loads solution object from binary data.
miopenStatus_t miopenSaveSolution(miopenSolution_t solution, char *data)
Saves a solution object as binary data.
miopenStatus_t miopenGetSolverIdConvAlgorithm(uint64_t solverId, miopenConvAlgorithm_t *result)
Gets the convolution algorithm implemented by a solver.
miopenStatus_t miopenSetFindOptionPreallocatedWorkspace(miopenFindOptions_t options, void *buffer, size_t size)
Attaches the preallocated workspace to find options. Allocated by the library by default.
miopenStatus_t miopenCreateActivationProblem(miopenProblem_t *problem, miopenActivationDescriptor_t operatorDesc, miopenProblemDirection_t direction)
Initializes a problem object describing an activation operation.
miopenStatus_t miopenDestroyProblem(miopenProblem_t problem)
Destroys a problem object.
miopenStatus_t miopenCreateFindOptions(miopenFindOptions_t *options)
Initializes miopenFindOptions object.
miopenStatus_t miopenGetSoftmaxDescriptor(const miopenSoftmaxDescriptor_t softmaxDesc, float *alpha, float *beta, miopenSoftmaxAlgorithm_t *algorithm, miopenSoftmaxMode_t *mode)
Gets the softmax layer descriptor details.
miopenStatus_t miopenCreateConvProblem(miopenProblem_t *problem, miopenConvolutionDescriptor_t operatorDesc, miopenProblemDirection_t direction)
Initializes a problem object describing a convolution operation.
miopenStatus_t miopenCreateBiasProblem(miopenProblem_t *problem, miopenProblemDirection_t direction)
Initializes a problem object describing an bias operation.
miopenStatus_t miopenSetProblemTensorDescriptor(miopenProblem_t problem, miopenTensorArgumentId_t id, const miopenTensorDescriptor_t descriptor)
Sets a tensor descriptor for the specified argument.
miopenStatus_t miopenCreateSoftmaxDescriptor(miopenSoftmaxDescriptor_t *softmaxDesc)
Creates the Softmax descriptor object.
@ miopenFindResultsOrderByWorkspaceSize
Definition miopen.h:5731
@ miopenFindResultsOrderByTime
Definition miopen.h:5730
@ miopenMhaMaskCausal
Definition miopen.h:5759
@ miopenMhaMaskNone
Definition miopen.h:5758
@ miopenTensorMhaDescaleS
Definition miopen.h:5660
@ miopenTensorMhaO
Definition miopen.h:5666
@ miopenTensorMhaAmaxDV
Definition miopen.h:5684
@ miopenTensorBatchnormScaleDiff
Definition miopen.h:5707
@ miopenTensorMhaMask
Definition miopen.h:5718
@ miopenTensorMhaDescaleDS
Definition miopen.h:5674
@ miopenTensorMhaDropoutSeed
Definition miopen.h:5664
@ miopenTensorBatchnormSavedMean
Definition miopen.h:5704
@ miopenTensorActivationDY
Definition miopen.h:5692
@ miopenTensorBatchnormDX
Definition miopen.h:5712
@ miopenTensorMhaDescaleV
Definition miopen.h:5659
@ miopenTensorMhaK
Definition miopen.h:5654
@ miopenTensorConvolutionX
Definition miopen.h:5650
@ miopenTensorMhaAmaxDK
Definition miopen.h:5683
@ miopenTensorMhaScaleDS
Definition miopen.h:5675
@ miopenTensorBatchnormBias
Definition miopen.h:5710
@ miopenTensorMhaM
Definition miopen.h:5669
@ miopenTensorBatchnormRunningMean
Definition miopen.h:5702
@ miopenTensorMhaDropoutProbability
Definition miopen.h:5663
@ miopenTensorSoftmaxY
Definition miopen.h:5697
@ miopenTensorSoftmaxDY
Definition miopen.h:5699
@ miopenTensorMhaDescaleO
Definition miopen.h:5672
@ miopenTensorMhaScaleO
Definition miopen.h:5662
@ miopenScalarBatchnormExpAvgFactor
Definition miopen.h:5720
@ miopenTensorBatchnormScale
Definition miopen.h:5706
@ miopenTensorBatchnormRunningVariance
Definition miopen.h:5703
@ miopenTensorActivationDX
Definition miopen.h:5691
@ miopenTensorMhaScaleDK
Definition miopen.h:5677
@ miopenTensorMhaV
Definition miopen.h:5656
@ miopenTensorMhaAmaxS
Definition miopen.h:5668
@ miopenTensorBatchnormBiasDiff
Definition miopen.h:5711
@ miopenTensorBatchnormSavedVariance
Definition miopen.h:5705
@ miopenTensorActivationX
Definition miopen.h:5689
@ miopenTensorMhaScaleDV
Definition miopen.h:5678
@ miopenTensorMhaAmaxO
Definition miopen.h:5667
@ miopenScalarBatchnormEpsilon
Definition miopen.h:5721
@ miopenTensorMhaScaleDQ
Definition miopen.h:5676
@ miopenTensorSoftmaxDX
Definition miopen.h:5698
@ miopenTensorMhaAmaxDS
Definition miopen.h:5685
@ miopenTensorMhaDV
Definition miopen.h:5681
@ miopenTensorMhaQ
Definition miopen.h:5655
@ miopenTensorMhaAmaxDQ
Definition miopen.h:5682
@ miopenTensorConvolutionY
Definition miopen.h:5652
@ miopenTensorBatchnormEstimatedMean
Definition miopen.h:5708
@ miopenTensorBatchnormDY
Definition miopen.h:5713
@ miopenTensorMhaZInv
Definition miopen.h:5670
@ miopenTensorMhaDescaleQ
Definition miopen.h:5658
@ miopenTensorMhaBias
Definition miopen.h:5686
@ miopenTensorBatchnormEstimatedVariance
Definition miopen.h:5709
@ miopenTensorArgumentIsScalar
Definition miopen.h:5716
@ miopenTensorArgumentIdInvalid
Definition miopen.h:5649
@ miopenTensorMhaDO
Definition miopen.h:5671
@ miopenTensorMhaDescaleDO
Definition miopen.h:5673
@ miopenTensorConvolutionW
Definition miopen.h:5651
@ miopenTensorMhaDescaleK
Definition miopen.h:5657
@ miopenTensorMhaDropoutOffset
Definition miopen.h:5665
@ miopenTensorBiasY
Definition miopen.h:5694
@ miopenTensorMhaDQ
Definition miopen.h:5679
@ miopenTensorSoftmaxX
Definition miopen.h:5696
@ miopenTensorBatchnormY
Definition miopen.h:5701
@ miopenTensorMhaScaleS
Definition miopen.h:5661
@ miopenTensorBias
Definition miopen.h:5695
@ miopenTensorActivationY
Definition miopen.h:5690
@ miopenTensorBatchnormX
Definition miopen.h:5700
@ miopenTensorBiasX
Definition miopen.h:5693
@ miopenTensorMhaDK
Definition miopen.h:5680
@ miopenProblemDirectionBackwardWeights
Definition miopen.h:5638
@ miopenProblemDirectionInference
Definition miopen.h:5640
@ miopenProblemDirectionForward
Definition miopen.h:5636
@ miopenProblemDirectionBackward
Definition miopen.h:5637
miopenStatus_t miopenGetGetitemWorkspaceSize(miopenHandle_t handle, uint32_t indexCount, const miopenTensorDescriptor_t *indexDescs, size_t *sizeInBytes)
Helper function to query the minimum workspace size required by the getitem call.
miopenStatus_t miopenGetitemBackward(miopenHandle_t handle, void *workspace, size_t workspaceSizeInBytes, const miopenTensorDescriptor_t dyDesc, const void *dy, uint32_t indexCount, const miopenTensorDescriptor_t *indexDescs, const void *const *indexs, const miopenTensorDescriptor_t dxDesc, void *dx, const miopenTensorDescriptor_t errorDesc, void *error, uint32_t dimCount, const int32_t *dims, uint32_t sliceCount, const int32_t *slices, uint32_t offset)
Execute a getitem backward layer.
miopenStatus_t miopenGroupNormForward(miopenHandle_t handle, miopenNormMode_t mode, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t weightDesc, const void *weight, const miopenTensorDescriptor_t biasDesc, const void *bias, const uint64_t num_groups, const float epsilon, const miopenTensorDescriptor_t yDesc, void *y, const miopenTensorDescriptor_t meanDesc, void *mean, const miopenTensorDescriptor_t rstdDesc, void *rstd)
Execute a groupnorm forward layer.
const char * miopenGetErrorString(miopenStatus_t error)
Get character string for an error code.
miopenStatus_t miopenCreateWithStream(miopenHandle_t *handle, miopenAcceleratorQueue_t stream)
Create a MIOpen handle with an accelerator stream.
miopenStatus_t miopenDestroy(miopenHandle_t handle)
Destroys the MIOpen handle.
void(* miopenDeallocatorFunction)(void *context, void *memory)
Custom deallocator function.
Definition miopen.h:158
void *(* miopenAllocatorFunction)(void *context, size_t sizeBytes)
Custom allocator function.
Definition miopen.h:148
miopenStatus_t miopenGetStream(miopenHandle_t handle, miopenAcceleratorQueue_t *streamID)
Get the previously created accelerator command queue.
miopenStatus_t miopenEnableProfiling(miopenHandle_t handle, bool enable)
Enable profiling to retrieve kernel time.
miopenStatus_t miopenGetVersion(size_t *major, size_t *minor, size_t *patch)
Method to return version of MIOpen.
miopenStatus_t
Definition miopen.h:109
miopenStatus_t miopenSetAllocator(miopenHandle_t handle, miopenAllocatorFunction allocator, miopenDeallocatorFunction deallocator, void *allocatorContext)
Set allocator for previously created miopenHandle.
miopenF8RoundingMode_t
Definition miopen.h:125
miopenStatus_t miopenCreate(miopenHandle_t *handle)
Method to create the MIOpen handle object.
miopenStatus_t miopenGetKernelTime(miopenHandle_t handle, float *time)
Get time for last kernel launched.
miopenStatus_t miopenSetStream(miopenHandle_t handle, miopenAcceleratorQueue_t streamID)
Set accelerator command queue previously created.
@ miopenStatusUnsupportedOp
Definition miopen.h:118
@ miopenStatusGpuOperationsSkipped
Definition miopen.h:119
@ miopenStatusUnknownError
Definition miopen.h:117
@ miopenStatusSuccess
Definition miopen.h:110
@ miopenStatusVersionMismatch
Definition miopen.h:120
@ miopenStatusAllocFailed
Definition miopen.h:114
@ miopenStatusNotImplemented
Definition miopen.h:116
@ miopenStatusBadParm
Definition miopen.h:113
@ miopenStatusNotInitialized
Definition miopen.h:111
@ miopenStatusInternalError
Definition miopen.h:115
@ miopenStatusInvalidValue
Definition miopen.h:112
@ miopenF8RoundingModeStandard
Definition miopen.h:126
@ miopenF8RoundingModeStochastic
Definition miopen.h:127
miopenStatus_t miopenKthvalueForward(miopenHandle_t handle, miopenTensorDescriptor_t inputDesc, const void *input, miopenTensorDescriptor_t outputDesc, void *output, miopenTensorDescriptor_t indicesDesc, size_t *indices, size_t k, int32_t dim=-1, bool keepDim=false)
Execute a Kthvalue forward layer.
miopenStatus_t miopenLayerNormForward(miopenHandle_t handle, miopenNormMode_t mode, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t weightDesc, const void *weight, const miopenTensorDescriptor_t biasDesc, const void *bias, const float epsilon, const int32_t normalized_dim, const miopenTensorDescriptor_t yDesc, void *y, const miopenTensorDescriptor_t meanDesc, void *mean, const miopenTensorDescriptor_t rstdDesc, void *rstd)
Execute a layernorm forward layer.
miopenStatus_t miopenT5LayerNormBackward(miopenHandle_t handle, miopenNormMode_t mode, void *workspace, size_t workspaceSizeInBytes, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t weightDesc, const void *weight, const miopenTensorDescriptor_t rstdDesc, const void *rstd, const miopenTensorDescriptor_t dxDesc, void *dx, const miopenTensorDescriptor_t dwDesc, void *dw)
Execute a T5layernorm backward layer.
miopenStatus_t miopenT5LayerNormForward(miopenHandle_t handle, miopenNormMode_t mode, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t weightDesc, const void *weight, const float epsilon, const miopenTensorDescriptor_t yDesc, void *y, const miopenTensorDescriptor_t rstdDesc, void *rstd)
Execute a T5layernorm forward layer.
miopenStatus_t miopenGetT5LayerNormBackwardWorkspaceSize(miopenHandle_t handle, miopenNormMode_t mode, const miopenTensorDescriptor_t dyDesc, const miopenTensorDescriptor_t xDesc, const miopenTensorDescriptor_t weightDesc, const miopenTensorDescriptor_t rstdDesc, const miopenTensorDescriptor_t dxDesc, const miopenTensorDescriptor_t dwDesc, size_t *sizeInBytes)
Helper function to query the minimum workspace size required by the T5layernorm backward call.
miopenStatus_t miopenAddLayerNormForward(miopenHandle_t handle, miopenNormMode_t mode, const miopenTensorDescriptor_t xDesc, const void *x, const miopenTensorDescriptor_t x2Desc, const void *x2, const miopenTensorDescriptor_t weightDesc, const void *weight, const miopenTensorDescriptor_t biasDesc, const void *bias, const float epsilon, const int32_t normalized_dim, const miopenTensorDescriptor_t yDesc, void *y, const miopenTensorDescriptor_t meanDesc, void *mean, const miopenTensorDescriptor_t rstdDesc, void *rstd)
Execute a add and layernorm forward layer.
miopenStatus_t miopenSet2dPoolingDescriptor(miopenPoolingDescriptor_t poolDesc, miopenPoolingMode_t mode, int windowHeight, int windowWidth, int pad_h, int pad_w, int stride_h, int stride_w)
Sets a 2-D pooling layer descriptor details.
miopenStatus_t miopenSetPoolingWorkSpaceIndexMode(miopenPoolingDescriptor_t poolDesc, miopenPoolingWorkspaceIndexMode_t workspace_index)
Set workspace index mode for pooling layer. The default mode is miopenPoolingWorkSpaceIndexMask.
miopenStatus_t miopenGetPoolingForwardOutputDim(const miopenPoolingDescriptor_t poolDesc, const miopenTensorDescriptor_t tensorDesc, int *n, int *c, int *h, int *w)
Gets the shape of the output tensor for 2-D pooling.
miopenStatus_t miopenPoolingGetWorkSpaceSize(const miopenTensorDescriptor_t yDesc, size_t *workSpaceSize)
Get the amount of GPU memory required for pooling.
miopenStatus_t miopenSetNdPoolingDescriptor(miopenPoolingDescriptor_t poolDesc, const miopenPoolingMode_t mode, int nbDims, const int *windowDimA, const int *padA, const int *stridesA)
Set details of a N-D pooling layer descriptor.
miopenStatus_t miopenPoolingForward(miopenHandle_t handle, const miopenPoolingDescriptor_t poolDesc, const void *alpha, const miopenTensorDescriptor_t xDesc, const void *x, const void *beta, const miopenTensorDescriptor_t yDesc, void *y, bool do_backward, void *workSpace, size_t workSpaceSize)
Execute a forward pooling layer.
miopenStatus_t miopenPoolingGetWorkSpaceSizeV2(const miopenPoolingDescriptor_t poolDesc, const miopenTensorDescriptor_t yDesc, size_t *workSpaceSize)
Get the amount of GPU memory required for pooling.
miopenStatus_t miopenGetPoolingWorkSpaceIndexMode(miopenPoolingDescriptor_t poolDesc, miopenPoolingWorkspaceIndexMode_t *workspace_index)
Get workspace index mode for pooling layer.
miopenStatus_t miopenGetPoolingIndexType(miopenPoolingDescriptor_t poolDesc, miopenIndexType_t *index_type)
Get the index data type for pooling layer. The index type to any of the miopenIndexType_t sizes; 8,...
miopenStatus_t miopenGetPoolingNdForwardOutputDim(const miopenPoolingDescriptor_t poolDesc, const miopenTensorDescriptor_t tensorDesc, int dims, int *tensorDimArr)
Gets the shape of the output tensor for N-D pooling.
miopenStatus_t miopenGetNdPoolingDescriptor(const miopenPoolingDescriptor_t poolDesc, int nbDimsRequested, miopenPoolingMode_t *mode, int *nbDims, int *windowDimA, int *padA, int *stridesA)
Get details of a N-D pooling layer descriptor.
miopenStatus_t miopenCreatePoolingDescriptor(miopenPoolingDescriptor_t *poolDesc)
Creates a pooling layer descriptor.
miopenStatus_t miopenSetPoolingIndexType(miopenPoolingDescriptor_t poolDesc, miopenIndexType_t index_type)
Set index data type for pooling layer. The default indexing type is uint8_t. Users can set the index ...
miopenStatus_t miopenGet2dPoolingDescriptor(const miopenPoolingDescriptor_t poolDesc, miopenPoolingMode_t *mode, int *windowHeight, int *windowWidth, int *pad_h, int *pad_w, int *stride_h, int *stride_w)
Gets a 2-D pooling layer descriptor details.
miopenStatus_t miopenDestroyPoolingDescriptor(miopenPoolingDescriptor_t poolDesc)
Destroys the pooling descriptor object.
miopenStatus_t miopenPoolingBackward(miopenHandle_t handle, const miopenPoolingDescriptor_t poolDesc, const void *alpha, const miopenTensorDescriptor_t yDesc, const void *y, const miopenTensorDescriptor_t dyDesc, const void *dy, const miopenTensorDescriptor_t xDesc, const void *x, const void *beta, const miopenTensorDescriptor_t dxDesc, void *dx, void *workSpace)
Execute a backward pooling layer.
miopenStatus_t miopenReduceCalculationForward(miopenHandle_t handle, miopenReduceCalculationNanPropagation_t nanPropagation, void *workspace, size_t workspaceSizeInBytes, const miopenTensorDescriptor_t xDesc, const void *x, const int32_t dim, const miopenReduceCalculationOp_t reduceCalculationOp, const miopenTensorDescriptor_t reduceDesc, void *y)
Execute a reducecalculation forward layer.
miopenReduceCalculationOp_t
Definition miopen.h:6162
miopenStatus_t miopenGetReduceCalculationWorkspaceSize(miopenHandle_t handle, const miopenTensorDescriptor_t xDesc, const int32_t dim, const miopenReduceCalculationOp_t reduceCalculationOp, const miopenTensorDescriptor_t reduceDesc, size_t *sizeInBytes)
Helper function to query the minimum workspace size required by the ReduceTensor call.
@ MIOPEN_REDUCE_CALCULATION_PROD
Definition miopen.h:6163
@ MIOPEN_REDUCE_CALCULATION_SUM
Definition miopen.h:6165
miopenStatus_t miopenSoftmaxBackward_V2(miopenHandle_t handle, const void *alpha, const miopenTensorDescriptor_t yDesc, const void *y, const miopenTensorDescriptor_t dyDesc, const void *dy, const void *beta, const miopenTensorDescriptor_t dxDesc, void *dx, miopenSoftmaxAlgorithm_t algorithm, miopenSoftmaxMode_t mode)
Execute a softmax backwards layer with expanded modes and algorithms.
miopenStatus_t miopenSoftmaxForward(miopenHandle_t handle, const void *alpha, const miopenTensorDescriptor_t xDesc, const void *x, const void *beta, const miopenTensorDescriptor_t yDesc, void *y)
Execute a softmax forward layer.
miopenStatus_t miopenSoftmaxForward_V2(miopenHandle_t handle, const void *alpha, const miopenTensorDescriptor_t xDesc, const void *x, const void *beta, const miopenTensorDescriptor_t yDesc, void *y, miopenSoftmaxAlgorithm_t algorithm, miopenSoftmaxMode_t mode)
Execute a softmax forward layer with expanded modes and algorithms.
miopenStatus_t miopenSoftmaxBackward(miopenHandle_t handle, const void *alpha, const miopenTensorDescriptor_t yDesc, const void *y, const miopenTensorDescriptor_t dyDesc, const void *dy, const void *beta, const miopenTensorDescriptor_t dxDesc, void *dx)
Execute a softmax backwards layer.
miopenStatus_t miopenDestroySeqTensorDescriptor(miopenSeqTensorDescriptor_t tensorDesc)
Destroys the sequence data tensor descriptor.
miopenStatus_t miopenGetTensorDescriptor(miopenTensorDescriptor_t tensorDesc, miopenDataType_t *dataType, int *dimsA, int *stridesA)
Get the details of the N-dimensional tensor descriptor.
miopenStatus_t miopenSetNdTensorDescriptorWithLayout(miopenTensorDescriptor_t tensorDesc, miopenDataType_t dataType, miopenTensorLayout_t tensorLayout, const int *lens, int num_lens)
Set shape of ND tensor with specific layout.
miopenStatus_t miopenSetTensor(miopenHandle_t handle, const miopenTensorDescriptor_t yDesc, void *y, const void *alpha)
Fills a tensor with a single value.
miopenStatus_t miopenOpTensor(miopenHandle_t handle, miopenTensorOp_t tensorOp, const void *alpha1, const miopenTensorDescriptor_t aDesc, const void *A, const void *alpha2, const miopenTensorDescriptor_t bDesc, const void *B, const void *beta, const miopenTensorDescriptor_t cDesc, void *C)
Execute element-wise tensor operations.
miopenStatus_t miopenGetTensorNumBytes(miopenTensorDescriptor_t tensorDesc, size_t *numBytes)
Returns number of bytes associated with tensor descriptor.
miopenStatus_t miopenGet4dTensorDescriptor(miopenTensorDescriptor_t tensorDesc, miopenDataType_t *dataType, int *n, int *c, int *h, int *w, int *nStride, int *cStride, int *hStride, int *wStride)
Get the details of the tensor descriptor.
miopenStatus_t miopenTransformTensor(miopenHandle_t handle, const void *alpha, const miopenTensorDescriptor_t xDesc, const void *x, const void *beta, const miopenTensorDescriptor_t yDesc, void *y)
Copies one tensor to another tensor with a different layout/scale.
miopenStatus_t miopenCreateTensorDescriptor(miopenTensorDescriptor_t *tensorDesc)
Create a Tensor Descriptor.
miopenStatus_t miopenSetTensorDescriptorV2(miopenTensorDescriptor_t tensorDesc, miopenDataType_t dataType, int nbDims, const size_t *dimsA, const size_t *stridesA)
Set shape of N-dimensional tensor.
miopenStatus_t miopenScaleTensor(miopenHandle_t handle, const miopenTensorDescriptor_t yDesc, void *y, const void *alpha)
Scales all elements in a tensor by a single value.
miopenStatus_t miopenSetTensorCastType(miopenTensorDescriptor_t tensorDesc, miopenDataType_t cast_type)
Set the tensor cast type.
miopenStatus_t miopenSet4dTensorDescriptor(miopenTensorDescriptor_t tensorDesc, miopenDataType_t dataType, int n, int c, int h, int w)
Set shape of 4D tensor.
miopenStatus_t miopenSet4dTensorDescriptorEx(miopenTensorDescriptor_t tensorDesc, miopenDataType_t dataType, int n, int c, int h, int w, int nStride, int cStride, int hStride, int wStride)
Set shape and stride of 4D tensor.
miopenStatus_t miopenCreateSeqTensorDescriptor(miopenSeqTensorDescriptor_t *tensorDesc)
Create a Tensor Descriptor for sequence data.
miopenStatus_t miopenGetTensorDescriptorSize(miopenTensorDescriptor_t tensorDesc, int *size)
Set shape of N-dimensional tensor.
miopenStatus_t miopenDestroyTensorDescriptor(miopenTensorDescriptor_t tensorDesc)
Destroys the tensor descriptor.
miopenStatus_t miopenSetTensorDescriptor(miopenTensorDescriptor_t tensorDesc, miopenDataType_t dataType, int nbDims, const int *dimsA, const int *stridesA)
Set shape of N-dimensional tensor.
miopenLossReductionMode_t
Definition miopen.h:8063
@ MIOPEN_LOSS_REDUCTION_MEAN
Definition miopen.h:8066
@ MIOPEN_LOSS_REDUCTION_SUM
Definition miopen.h:8065
@ MIOPEN_LOSS_REDUCTION_NONE
Definition miopen.h:8064
miopenPoolingMode_t
Definition miopen.h:457
@ miopenPoolingAverage
Definition miopen.h:459
@ miopenPoolingAverageInclusive
Definition miopen.h:460
@ miopenPoolingMax
Definition miopen.h:458
miopenPaddingMode_t
Definition miopen.h:446
@ miopenPaddingDefault
Definition miopen.h:447
@ miopenPaddingSame
Definition miopen.h:448
@ miopenPaddingValid
Definition miopen.h:449
miopenTensorLayout_t
Definition miopen.h:393
@ miopenTensorCHWN
Definition miopen.h:396
@ miopenTensorNHWC
Definition miopen.h:395
@ miopenTensorNDHWC
Definition miopen.h:402
@ miopenTensorNCHW
Definition miopen.h:394
@ miopenTensorCHWNc4
Definition miopen.h:399
@ miopenTensorNCHWc8
Definition miopen.h:398
@ miopenTensorNCDHW
Definition miopen.h:401
@ miopenTensorCHWNc8
Definition miopen.h:400
@ miopenTensorNCHWc4
Definition miopen.h:397
miopenReduceTensorIndices_t
Definition miopen.h:607
@ MIOPEN_REDUCE_TENSOR_FLATTENED_INDICES
Definition miopen.h:609
@ MIOPEN_REDUCE_TENSOR_NO_INDICES
Definition miopen.h:608
miopenActivationMode_t
Definition miopen.h:519
@ miopenActivationLEAKYRELU
Definition miopen.h:529
@ miopenActivationPASTHRU
Definition miopen.h:520
@ miopenActivationABS
Definition miopen.h:525
@ miopenActivationLOGISTIC
Definition miopen.h:521
@ miopenActivationCLIPPEDRELU
Definition miopen.h:527
@ miopenActivationRELU
Definition miopen.h:523
@ miopenActivationPOWER
Definition miopen.h:526
@ miopenActivationELU
Definition miopen.h:531
@ miopenActivationSOFTRELU
Definition miopen.h:524
@ miopenActivationTANH
Definition miopen.h:522
miopenReduceCalculationNanPropagation_t
Definition miopen.h:6146
@ MIOPEN_REDUCE_CALCULATION_PROPAGATE_NAN
Definition miopen.h:6148
@ MIOPEN_REDUCE_CALCULATION_NOT_PROPAGATE_NAN
Definition miopen.h:6147
miopenReduceTensorOp_t
Definition miopen.h:572
@ MIOPEN_REDUCE_TENSOR_MUL
Definition miopen.h:574
@ MIOPEN_REDUCE_TENSOR_MAX
Definition miopen.h:578
@ MIOPEN_REDUCE_TENSOR_AVG
Definition miopen.h:582
@ MIOPEN_REDUCE_TENSOR_NORM1
Definition miopen.h:584
@ MIOPEN_REDUCE_TENSOR_AMAX
Definition miopen.h:580
@ MIOPEN_REDUCE_TENSOR_MIN
Definition miopen.h:576
@ MIOPEN_REDUCE_TENSOR_ADD
Definition miopen.h:573
@ MIOPEN_REDUCE_TENSOR_NORM2
Definition miopen.h:586
miopenConvolutionAttrib_t
Definition miopen.h:629
@ MIOPEN_CONVOLUTION_ATTRIB_DETERMINISTIC
Definition miopen.h:634
@ MIOPEN_CONVOLUTION_ATTRIB_FP8_ROUNDING_MODE
Definition miopen.h:638
@ MIOPEN_CONVOLUTION_ATTRIB_FP16_ALT_IMPL
Definition miopen.h:630
miopenIndexType_t
Definition miopen.h:410
@ miopenIndexUint16
Definition miopen.h:412
@ miopenIndexUint64
Definition miopen.h:414
@ miopenIndexUint32
Definition miopen.h:413
@ miopenIndexUint8
Definition miopen.h:411
miopenDataType_t
Definition miopen.h:368
@ miopenFloat
Definition miopen.h:370
@ miopenBFloat16
Definition miopen.h:374
@ miopenInt8
Definition miopen.h:372
@ miopenInt32
Definition miopen.h:371
@ miopenHalf
Definition miopen.h:369
@ miopenBFloat8
Definition miopen.h:379
@ miopenInt64
Definition miopen.h:384
@ miopenDouble
Definition miopen.h:376
@ miopenFloat8
Definition miopen.h:378
miopenIndicesType_t
Definition miopen.h:617
@ MIOPEN_8BIT_INDICES
Definition miopen.h:621
@ MIOPEN_32BIT_INDICES
Definition miopen.h:618
@ MIOPEN_16BIT_INDICES
Definition miopen.h:620
@ MIOPEN_64BIT_INDICES
Definition miopen.h:619
miopenPoolingWorkspaceIndexMode_t
Definition miopen.h:470
@ miopenPoolingWorkspaceIndexImage
Definition miopen.h:472
@ miopenPoolingWorkspaceIndexMask
Definition miopen.h:471
miopenConvolutionMode_t
Definition miopen.h:434
@ miopenDepthwise
Definition miopen.h:438
@ miopenGroupConv
Definition miopen.h:437
@ miopenTranspose
Definition miopen.h:436
@ miopenConvolution
Definition miopen.h:435
#define MIOPEN_DECLARE_OBJECT(name)
Definition miopen.h:79
miopenNormMode_t
Definition miopen.h:490
@ MIOPEN_ELEMENTWISE_AFFINE_FUSED_ADD
Definition miopen.h:494
@ MIOPEN_WEIGHT_BIAS
Definition miopen.h:492
@ MIOPEN_ELEMENTWISE_AFFINE
Definition miopen.h:491
@ MIOPEN_WEIGHT_BIAS_T5
Definition miopen.h:500
@ MIOPEN_ELEMENTWISE_AFFINE_T5
Definition miopen.h:498
@ MIOPEN_WEIGHT_BIAS_FUSED_ADD
Definition miopen.h:496
miopenReduceExtremeOp_t
Definition miopen.h:6222
@ MIOPEN_REDUCE_EXTREME_ARGMAX
Definition miopen.h:6225
@ MIOPEN_REDUCE_EXTREME_MIN
Definition miopen.h:6227
@ MIOPEN_REDUCE_EXTREME_MAX
Definition miopen.h:6229
@ MIOPEN_REDUCE_EXTREME_ARGMIN
Definition miopen.h:6223
miopenTensorOp_t
Definition miopen.h:422
@ miopenTensorOpMin
Definition miopen.h:425
@ miopenTensorOpAdd
Definition miopen.h:423
@ miopenTensorOpMul
Definition miopen.h:424
@ miopenTensorOpMax
Definition miopen.h:426
miopenBatchNormMode_t
Definition miopen.h:509
@ miopenBNSpatial
Definition miopen.h:511
@ miopenBNPerActivation
Definition miopen.h:510
miopenConvolutionFindMode_t
Definition miopen.h:655
@ miopenConvolutionFindModeDynamicHybrid
Definition miopen.h:667
@ miopenConvolutionFindModeDefault
Definition miopen.h:672
@ miopenConvolutionFindModeHybrid
Definition miopen.h:662
@ miopenConvolutionFindModeFast
Definition miopen.h:658
@ miopenConvolutionFindModeNormal
Definition miopen.h:656
miopenNanPropagation_t
Definition miopen.h:597
@ MIOPEN_PROPAGATE_NAN
Definition miopen.h:599
@ MIOPEN_NOT_PROPAGATE_NAN
Definition miopen.h:598
miopenLRNMode_t
Definition miopen.h:480
@ miopenLRNWithinChannel
Definition miopen.h:481
@ miopenLRNCrossChannel
Definition miopen.h:482
miopenSoftmaxMode_t
Definition miopen.h:552
@ MIOPEN_SOFTMAX_MODE_INSTANCE
Definition miopen.h:553
@ MIOPEN_SOFTMAX_MODE_CHANNEL
Definition miopen.h:554
miopenSoftmaxAlgorithm_t
Definition miopen.h:541
@ MIOPEN_SOFTMAX_FAST
Definition miopen.h:542
@ MIOPEN_SOFTMAX_ACCURATE
Definition miopen.h:543
@ MIOPEN_SOFTMAX_LOG
Definition miopen.h:544
Perf struct for forward, backward filter, or backward data algorithms.
Definition miopen.h:1282
miopenConvFwdAlgorithm_t fwd_algo
Definition miopen.h:1285
miopenConvBwdDataAlgorithm_t bwd_data_algo
Definition miopen.h:1289
size_t memory
Definition miopen.h:1293
miopenConvBwdWeightsAlgorithm_t bwd_weights_algo
Definition miopen.h:1286
float time
Definition miopen.h:1292
Performance struct for forward, backward filter, or backward data algorithms in immediate mode.
Definition miopen.h:1306
miopenConvAlgorithm_t algorithm
Definition miopen.h:1313
uint64_t solution_id
Definition miopen.h:1312
size_t workspace_size
Definition miopen.h:1310
float time
Definition miopen.h:1307
Values of a tensor or scalar argument for the miopenRunSolution function.
Definition miopen.h:5960
miopenTensorArgumentId_t id
Definition miopen.h:5963
void * buffer
Definition miopen.h:5973
miopenTensorDescriptor_t * descriptor
Definition miopen.h:5969