Skip to content

Commit

Permalink
Docs18 (#1673)
Browse files Browse the repository at this point in the history
* Added release notes.
* Added pooling and 3-d convolution documentation.
  • Loading branch information
Daniel Lowell authored Apr 12, 2019
1 parent 492700c commit 917304e
Show file tree
Hide file tree
Showing 6 changed files with 111 additions and 14 deletions.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# MIOpen

AMD's library for high peformance machine learning primitives. MIOpen supports two programming models -
AMD's library for high performance machine learning primitives.
Sources and binaries can be found at [MIOpen's GitHub site](https://github.com/ROCmSoftwarePlatform/MIOpen).

MIOpen supports two programming models -
1. OpenCL
2. [HIP](https://github.com/ROCm-Developer-Tools/HIP)

Expand All @@ -16,7 +19,7 @@ AMD's library for high peformance machine learning primitives. MIOpen supports t
* [Half](http://half.sourceforge.net/) - IEEE 754-based half-precision floating point library
* [Boost](http://www.boost.org/) at least version 1.58
* MIOpen uses `boost-system` and `boost-filesystem` packages to enable persistent [kernel cache](https://github.com/ROCmSoftwarePlatform/MIOpen/blob/master/doc/src/cache.md)
* [rocBlas](https://github.com/ROCmSoftwarePlatform/rocBLAS) Minimum version 2.0.0 (recommended version 2.1.0)
* [rocBlas](https://github.com/ROCmSoftwarePlatform/rocBLAS) Minimum version 2.0.0 (recommended version 2.2.0)


## Installing MIOpen with pre-built packages
Expand Down
27 changes: 27 additions & 0 deletions doc/src/convolution.rst
Original file line number Diff line number Diff line change
Expand Up @@ -40,21 +40,48 @@ miopenInitConvolutionDescriptor

.. doxygenfunction:: miopenInitConvolutionDescriptor

miopenInitConvolutionNdDescriptor
---------------------------------

.. doxygenfunction:: miopenInitConvolutionNdDescriptor

miopenGetConvolutionDescriptor
------------------------------

.. doxygenfunction:: miopenGetConvolutionDescriptor

miopenGetConvolutionNdDescriptor
--------------------------------

.. doxygenfunction:: miopenGetConvolutionNdDescriptor

miopenSetConvolutionGroupCount
------------------------------

.. doxygenfunction:: miopenSetConvolutionGroupCount

miopenSetTransposeConvOutputPadding
-----------------------------------

.. doxygenfunction:: miopenSetTransposeConvOutputPadding


miopenSetTransposeConvNdOutputPadding
-------------------------------------

.. doxygenfunction:: miopenSetTransposeConvNdOutputPadding


miopenGetConvolutionForwardOutputDim
------------------------------------

.. doxygenfunction:: miopenGetConvolutionForwardOutputDim

miopenGetConvolutionNdForwardOutputDim
--------------------------------------

.. doxygenfunction:: miopenGetConvolutionNdForwardOutputDim

miopenConvolutionForwardGetWorkSpaceSize
----------------------------------------

Expand Down
2 changes: 2 additions & 0 deletions doc/src/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ Welcome to MIOpen
=================
**Advanced Micro Devices, Inc's open source deep learning library.**

Sources and binaries can be found at `MIOpen's GitHub site <https://github.com/ROCmSoftwarePlatform/MIOpen>`_.

.. toctree::
:maxdepth: 4
:caption: Contents:
Expand Down
20 changes: 20 additions & 0 deletions doc/src/pooling.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@ miopenPoolingMode_t

.. doxygenenum:: miopenPoolingMode_t

miopenIndexType_t
-----------------

.. doxygenenum:: miopenIndexType_t

miopenCreatePoolingDescriptor
-----------------------------

Expand All @@ -20,6 +25,16 @@ miopenSet2dPoolingDescriptor

.. doxygenfunction:: miopenSet2dPoolingDescriptor

miopenSetPoolingIndexType
-------------------------

.. doxygenfunction:: miopenSetPoolingIndexType

miopenGetPoolingIndexType
-------------------------

.. doxygenfunction:: miopenGetPoolingIndexType

miopenGet2dPoolingDescriptor
----------------------------

Expand All @@ -35,6 +50,11 @@ miopenPoolingGetWorkSpaceSize

.. doxygenfunction:: miopenPoolingGetWorkSpaceSize

miopenPoolingGetWorkSpaceSizeV2
-------------------------------

.. doxygenfunction:: miopenPoolingGetWorkSpaceSizeV2

miopenPoolingForward
--------------------

Expand Down
40 changes: 40 additions & 0 deletions doc/src/releasenotes.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,46 @@

## MIOpen Release notes


### 04/11/2019 [ 1.8.0 ]

- This release contaings full 3-D convolution support and int8 support for interfence.
- Additionally, there are major updates in the performance database for major models including those found in Torchvision.
- An assortment of bugs have been resolved in this release.


Changes:

- Fixed various issues in assembly kernels
- Fixed issue #92 and #79 for miopenOpTensor
- Fixed issue #88 for bzip2
- Fixed issue #77 algorithm mismatch
- Added Winograd suport for fp32 backwards weights
- Added pooling inclusive mode
- Added tuning for direct group convolution algorithms
- Added additional kernel supoort for group convolutions
- Added API for 3-D convolutions
- Added support for int8 inference convolutions
- Added integer selection for pooling indexing
- Added minimum dependencies support
- Added RNN fp16 support on the MIOpen-HIP backend
- Added 1x1 convolution + bias + activation fusions
- Added workaround for issue #84 GPU memory access fault
- Added performance tuning for direct backwards weights
- Improved performance database coverage
- Improved internal quality by reducing redunant code
- Improved build instructions in README.md
- Improved performance database coverage for fusions
- Updated Docker components and requirements


Known Issues:

- RNNs do not support fp16 on the MIOpen-OpenCL backend
- OpenCL backend does not support GEMM convolutions in fp16



### 02/06/2019 [ 1.7.1 ]

- This release contains minor bug fixes and performance improvements.
Expand Down
29 changes: 17 additions & 12 deletions include/miopen/miopen.h
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ typedef enum {
4, /*!< Pack of four 8-bit int points in NCHW_VECT_C format (Partially supported) */
} miopenDataType_t;

/*! @ingroup tensor
/*! @ingroup pooling
* @enum miopenIndexType_t
* MIOpen index datatypes.
*/
Expand Down Expand Up @@ -718,7 +718,7 @@ miopenSetTransposeConvOutputPadding(miopenConvolutionDescriptor_t convDesc, int
* This function is optional for initialization of Transpose convolution. If applicable, it must be
* called before all computational APIs of Transpose convolution. It is preferable to call
* miopenInitConvolutionNdDescriptor() first, then miopenSetTransposeConvNdOutputPadding() to fully
* initialize transpose convolutions.
* initialize transpose convolutions. Currently, 2-D and 3-D convolutions are supported.
*
* @param convDesc Convolution layer descriptor (output)
* @param spatialDim Convolutional spatial dimension (input)
Expand Down Expand Up @@ -758,9 +758,8 @@ miopenGetConvolutionForwardOutputDim(miopenConvolutionDescriptor_t convDesc,
*
* This function returns the dimensions of the resulting N-dimensional tensor of a (N-2)-dimensional
* convolution, given the convolution descriptor, the input tensor descriptor
* and the filter descriptor. This function can help to setup the output tensor
* and allocate the proper amount of memory prior to launch the actual
* convolution.
* and the filter descriptor. It is used to setup the output tensor descriptor prior to executing
* the convolution layer.
*
* @param convDesc Convolution layer descriptor (input)
* @param inputTensorDesc Input data tensor descriptor (input)
Expand Down Expand Up @@ -1261,7 +1260,9 @@ MIOPEN_EXPORT miopenStatus_t miopenConvolutionBackwardBias(miopenHandle_t handle
*/
MIOPEN_EXPORT miopenStatus_t miopenCreatePoolingDescriptor(miopenPoolingDescriptor_t* poolDesc);

/*! @brief Set index data type for pooling layer
/*! @brief Set index data type for pooling layer. The default indexing type is uint8_t.
* Users can set the index type to any of the miopenIndexType_t sizes; 8, 16, 32, or 64 bit
* unsigned integers.
*
* @param poolDesc Pointer to a pooling layer descriptor (input)
* @param index_type Index type (input)
Expand All @@ -1270,7 +1271,8 @@ MIOPEN_EXPORT miopenStatus_t miopenCreatePoolingDescriptor(miopenPoolingDescript
MIOPEN_EXPORT miopenStatus_t miopenSetPoolingIndexType(miopenPoolingDescriptor_t poolDesc,
miopenIndexType_t index_type);

/*! @brief Get index data type for pooling layer
/*! @brief Get the index data type for pooling layer. The index type to any of the
* miopenIndexType_t sizes; 8, 16, 32, or 64 bit unsigned integers.
*
* @param poolDesc Pointer to a pooling layer descriptor (input)
* @param index_type Index type (output)
Expand All @@ -1279,9 +1281,9 @@ MIOPEN_EXPORT miopenStatus_t miopenSetPoolingIndexType(miopenPoolingDescriptor_t
MIOPEN_EXPORT miopenStatus_t miopenGetPoolingIndexType(miopenPoolingDescriptor_t poolDesc,
miopenIndexType_t* index_type);

/*! @brief Sets a 2-D pooling layer descriptor details
/*! @brief Sets a 2-D pooling layer descriptor details.
*
* Sets the window shape, padding, and stride for a previously created 2-D pooling descriptor
* Sets the window shape, padding, and stride for a previously created 2-D pooling descriptor.
*
* @param poolDesc Pointer to a pooling layer descriptor (output)
* @param mode Pooling mode enum (input)
Expand All @@ -1304,7 +1306,7 @@ MIOPEN_EXPORT miopenStatus_t miopenSet2dPoolingDescriptor(miopenPoolingDescripto

/*! @brief Gets a 2-D pooling layer descriptor details
*
* Gets the window shape, padding, and stride for a previously created 2-D pooling descriptor
* Gets the window shape, padding, and stride for a previously created 2-D pooling descriptor.
*
* @param poolDesc Pointer to a pooling layer descriptor (input)
* @param mode Pooling mode enum (output)
Expand Down Expand Up @@ -1351,7 +1353,9 @@ miopenGetPoolingForwardOutputDim(const miopenPoolingDescriptor_t poolDesc,
*
* Retrieves the amount of workspace in bytes require for pooling. This call is required to
* determine the amount of GPU memory needed for the backwards pooling algorithms. For max-
* pooling, an assumption is that index data type is uint8_t
* pooling, an assumption is that index data type is uint8_t, therefore the returned
* workspace size will be based on this assumption even if the user sets the index type with
* miopenSetPoolingIndexType().
*
* @param yDesc Descriptor for pooling layer (input)
* @param workSpaceSize Pointer to workSpaceSize (output)
Expand All @@ -1364,7 +1368,8 @@ MIOPEN_EXPORT miopenStatus_t miopenPoolingGetWorkSpaceSize(const miopenTensorDes
*
* Retrieves the amount of workspace in bytes require for pooling. This call is required to
* determine the amount of GPU memory needed for the backwards pooling algorithms. For max-
* pooling, there is no assumption on index data type
* pooling, there is no assumption on index data type. As the user can set the index datatype
* size using miopenSetPoolingIndexType().
*
* @param poolDesc Pointer to a pooling layer descriptor (input)
* @param yDesc Descriptor for pooling layer (input)
Expand Down

0 comments on commit 917304e

Please sign in to comment.