COMPMID-741 - Changelog for major release 17.12

Change-Id: If71190e398217ca6ca44df822554998d047b79db
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/112716
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Tested-by: BSG Visual Compute Jenkins server to access repositories on http://mpd-gerrit.cambridge.arm.com <bsgcomp@arm.com>
diff --git a/arm_compute/core/GLES_COMPUTE/GCKernels.h b/arm_compute/core/GLES_COMPUTE/GCKernels.h
index 9831e25..417c98a 100644
--- a/arm_compute/core/GLES_COMPUTE/GCKernels.h
+++ b/arm_compute/core/GLES_COMPUTE/GCKernels.h
@@ -31,7 +31,7 @@
 #include "arm_compute/core/GLES_COMPUTE/kernels/GCCol2ImKernel.h"
 #include "arm_compute/core/GLES_COMPUTE/kernels/GCDepthConcatenateLayerKernel.h"
 #include "arm_compute/core/GLES_COMPUTE/kernels/GCDirectConvolutionLayerKernel.h"
-#include "arm_compute/core/GLES_COMPUTE/kernels/GCDropoutKernel.h"
+#include "arm_compute/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.h"
 #include "arm_compute/core/GLES_COMPUTE/kernels/GCFillBorderKernel.h"
 #include "arm_compute/core/GLES_COMPUTE/kernels/GCGEMMInterleave4x4Kernel.h"
 #include "arm_compute/core/GLES_COMPUTE/kernels/GCGEMMMatrixAccumulateBiasesKernel.h"
diff --git a/arm_compute/core/GLES_COMPUTE/kernels/GCDropoutKernel.h b/arm_compute/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.h
similarity index 81%
rename from arm_compute/core/GLES_COMPUTE/kernels/GCDropoutKernel.h
rename to arm_compute/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.h
index 6159a7a..9f04411 100644
--- a/arm_compute/core/GLES_COMPUTE/kernels/GCDropoutKernel.h
+++ b/arm_compute/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.h
@@ -22,8 +22,8 @@
  * SOFTWARE.
  */
 
-#ifndef __ARM_COMPUTE_GCDROPOUTKERNEL_H__
-#define __ARM_COMPUTE_GCDROPOUTKERNEL_H__
+#ifndef __ARM_COMPUTE_GCDROPOUTLAYERKERNEL_H__
+#define __ARM_COMPUTE_GCDROPOUTLAYERKERNEL_H__
 
 #include "arm_compute/core/GLES_COMPUTE/IGCKernel.h"
 
@@ -31,28 +31,28 @@
 {
 class IGCTensor;
 
-/** Interface for the dropout kernel.
+/** Interface for the dropout layer kernel.
  *
  * Dropout is used to improve over-fit on neural networks.
  *
  */
-class GCDropoutKernel : public IGCKernel
+class GCDropoutLayerKernel : public IGCKernel
 {
 public:
     /** Default constructor */
-    GCDropoutKernel();
+    GCDropoutLayerKernel();
 
     /** Prevent instances of this class from being copied (As this class contains pointers) */
-    GCDropoutKernel(const GCDropoutKernel &) = delete;
+    GCDropoutLayerKernel(const GCDropoutLayerKernel &) = delete;
 
     /** Prevent instances of this class from being copied (As this class contains pointers) */
-    GCDropoutKernel &operator=(const GCDropoutKernel &) = delete;
+    GCDropoutLayerKernel &operator=(const GCDropoutLayerKernel &) = delete;
 
     /** Allow instances of this class to be moved */
-    GCDropoutKernel(GCDropoutKernel &&) = default;
+    GCDropoutLayerKernel(GCDropoutLayerKernel &&) = default;
 
     /** Allow instances of this class to be moved */
-    GCDropoutKernel &operator=(GCDropoutKernel &&) = default;
+    GCDropoutLayerKernel &operator=(GCDropoutLayerKernel &&) = default;
 
     /** Set the input and output of the kernel.
      *
@@ -76,4 +76,4 @@
 };
 }
 
-#endif /*__ARM_COMPUTE_GCDROPOUTKERNEL_H__ */
+#endif /*__ARM_COMPUTE_GCDROPOUTLAYERKERNEL_H__ */
diff --git a/arm_compute/runtime/GLES_COMPUTE/functions/GCDropoutLayer.h b/arm_compute/runtime/GLES_COMPUTE/functions/GCDropoutLayer.h
index 6a08d96..c51d2c1 100644
--- a/arm_compute/runtime/GLES_COMPUTE/functions/GCDropoutLayer.h
+++ b/arm_compute/runtime/GLES_COMPUTE/functions/GCDropoutLayer.h
@@ -25,7 +25,7 @@
 #ifndef __ARM_COMPUTE_GCDROPOUTLAYER_H__
 #define __ARM_COMPUTE_GCDROPOUTLAYER_H__
 
-#include "arm_compute/core/GLES_COMPUTE/kernels/GCDropoutKernel.h"
+#include "arm_compute/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.h"
 #include "arm_compute/runtime/IFunction.h"
 
 namespace arm_compute
@@ -33,7 +33,7 @@
 class IGCTensor;
 /** Basic function to do dropout op. This function calls the following kernels:
  *
- *  -# @ref GCDropoutKernel
+ *  -# @ref GCDropoutLayerKernel
  */
 class GCDropoutLayer : public IFunction
 {
@@ -56,7 +56,7 @@
     void run() override;
 
 private:
-    GCDropoutKernel _dropout_kernel;
+    GCDropoutLayerKernel _dropout_kernel;
 };
 }
 
diff --git a/docs/00_introduction.dox b/docs/00_introduction.dox
index bf43b3a..4d6fafa 100644
--- a/docs/00_introduction.dox
+++ b/docs/00_introduction.dox
@@ -155,6 +155,61 @@
 
 @subsection S2_2_changelog Changelog
 
+v17.12 Public major release
+ - Most machine learning functions on OpenCL support the new data type QASYMM8
+ - Introduced logging interface
+ - Introduced opencl timer
+ - Reworked GEMMLowp interface
+ - Added new NEON assembly kernels for GEMMLowp, SGEMM and HGEMM
+ - Added validation method for most Machine Learning kernels / functions
+ - Added new graph examples such as googlenet, mobilenet, squeezenet, vgg16 and vgg19
+ - Added sgemm example for OpenCL
+ - Added absolute difference example for GLES compute
+ - Added new tests and benchmarks in validation and benchmark frameworks
+ - Added new kernels / functions for GLES compute
+
+ - New OpenGL ES kernels / functions
+    - @ref arm_compute::GCAbsoluteDifferenceKernel / @ref arm_compute::GCAbsoluteDifference
+    - @ref arm_compute::GCActivationLayerKernel / @ref arm_compute::GCActivationLayer
+    - @ref arm_compute::GCBatchNormalizationLayerKernel / @ref arm_compute::GCBatchNormalizationLayer
+    - @ref arm_compute::GCCol2ImKernel
+    - @ref arm_compute::GCDepthConcatenateLayerKernel / @ref arm_compute::GCDepthConcatenateLayer
+    - @ref arm_compute::GCDirectConvolutionLayerKernel / @ref arm_compute::GCDirectConvolutionLayer
+    - @ref arm_compute::GCDropoutLayerKernel / @ref arm_compute::GCDropoutLayer
+    - @ref arm_compute::GCFillBorderKernel / @ref arm_compute::GCFillBorder
+    - @ref arm_compute::GCGEMMInterleave4x4Kernel / @ref arm_compute::GCGEMMInterleave4x4
+    - @ref arm_compute::GCGEMMMatrixAccumulateBiasesKernel / @ref arm_compute::GCGEMMMatrixAdditionKernel / @ref arm_compute::GCGEMMMatrixMultiplyKernel / @ref arm_compute::GCGEMM
+    - @ref arm_compute::GCGEMMTranspose1xWKernel / @ref arm_compute::GCGEMMTranspose1xW
+    - @ref arm_compute::GCIm2ColKernel
+    - @ref arm_compute::GCNormalizationLayerKernel / @ref arm_compute::GCNormalizationLayer
+    - @ref arm_compute::GCPixelWiseMultiplicationKernel / @ref arm_compute::GCPixelWiseMultiplication
+    - @ref arm_compute::GCPoolingLayerKernel / @ref arm_compute::GCPoolingLayer
+    - @ref arm_compute::GCLogits1DMaxKernel / @ref arm_compute::GCLogits1DShiftExpSumKernel / @ref arm_compute::GCLogits1DNormKernel / @ref arm_compute::GCSoftmaxLayer
+    - @ref arm_compute::GCTransposeKernel / @ref arm_compute::GCTranspose
+
+ - New NEON kernels / functions
+    - @ref arm_compute::NEGEMMLowpAArch64A53Kernel / @ref arm_compute::NEGEMMLowpAArch64Kernel / @ref arm_compute::NEGEMMLowpAArch64V8P4Kernel / arm_compute::NEGEMMInterleavedBlockedKernel / @ref arm_compute::NEGEMMLowpAssemblyMatrixMultiplyCore
+    - @ref arm_compute::NEHGEMMAArch64FP16Kernel
+    - @ref arm_compute::NEDepthwiseConvolutionLayer3x3Kernel / @ref arm_compute::NEDepthwiseIm2ColKernel / @ref arm_compute::NEGEMMMatrixVectorMultiplyKernel / @ref arm_compute::NEDepthwiseVectorToTensorKernel / @ref arm_compute::NEDepthwiseConvolutionLayer
+    - @ref arm_compute::NEGEMMLowpOffsetContributionKernel / @ref arm_compute::NEGEMMLowpMatrixAReductionKernel / @ref arm_compute::NEGEMMLowpMatrixBReductionKernel / @ref arm_compute::NEGEMMLowpMatrixMultiplyCore
+    - @ref arm_compute::NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel / @ref arm_compute::NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint
+    - @ref arm_compute::NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel / @ref arm_compute::NEGEMMLowpQuantizeDownInt32ToUint8Scale
+    - @ref arm_compute::NEWinogradLayerKernel / @ref arm_compute::NEWinogradLayer
+
+ - New OpenCL kernels / functions
+    - @ref arm_compute::CLGEMMLowpOffsetContributionKernel / @ref arm_compute::CLGEMMLowpMatrixAReductionKernel / @ref arm_compute::CLGEMMLowpMatrixBReductionKernel / @ref arm_compute::CLGEMMLowpMatrixMultiplyCore
+    - @ref arm_compute::CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel / @ref arm_compute::CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint
+    - @ref arm_compute::CLGEMMLowpQuantizeDownInt32ToUint8ScaleKernel / @ref arm_compute::CLGEMMLowpQuantizeDownInt32ToUint8Scale
+
+ - New graph nodes for NEON and OpenCL
+    - @ref arm_compute::graph::BranchLayer
+    - @ref arm_compute::graph::DepthConvertLayer
+    - @ref arm_compute::graph::DepthwiseConvolutionLayer
+    - @ref arm_compute::graph::DequantizationLayer
+    - @ref arm_compute::graph::FlattenLayer
+    - @ref arm_compute::graph::QuantizationLayer
+    - @ref arm_compute::graph::ReshapeLayer
+
 v17.10 Public maintenance release
  - Bug fixes:
     - Check the maximum local workgroup size supported by OpenCL devices
diff --git a/docs/Doxyfile b/docs/Doxyfile
index a3e4f5c..de0320f 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -2076,7 +2076,8 @@
                          LOCATE_MAX \
                          HAS_BIAS \
                          POOL_AVG \
-                         ARM_COMPUTE_AARCH64_V8_2
+                         ARM_COMPUTE_AARCH64_V8_2 \
+                         ARM_COMPUTE_AARCH64_V8A
 
 
 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
diff --git a/src/core/GLES_COMPUTE/kernels/GCDropoutKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.cpp
similarity index 92%
rename from src/core/GLES_COMPUTE/kernels/GCDropoutKernel.cpp
rename to src/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.cpp
index cdd6a9d..e87c902 100644
--- a/src/core/GLES_COMPUTE/kernels/GCDropoutKernel.cpp
+++ b/src/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.cpp
@@ -22,7 +22,7 @@
  * SOFTWARE.
  */
 
-#include "arm_compute/core/GLES_COMPUTE/kernels/GCDropoutKernel.h"
+#include "arm_compute/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.h"
 
 #include "arm_compute/core/Error.h"
 #include "arm_compute/core/GLES_COMPUTE/GCHelpers.h"
@@ -40,12 +40,12 @@
 
 using namespace arm_compute;
 
-GCDropoutKernel::GCDropoutKernel()
+GCDropoutLayerKernel::GCDropoutLayerKernel()
     : _input(nullptr), _mask(nullptr), _output(nullptr), _num_elems_processed_per_iteration(0)
 {
 }
 
-void GCDropoutKernel::configure(const IGCTensor *input, IGCTensor *mask, IGCTensor *output, float ratio, bool forward)
+void GCDropoutLayerKernel::configure(const IGCTensor *input, IGCTensor *mask, IGCTensor *output, float ratio, bool forward)
 {
     ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(input, 1, DataType::F16, DataType::F32);
     ARM_COMPUTE_ERROR_ON_MISMATCHING_DATA_TYPES(input, mask, output);
@@ -83,7 +83,7 @@
     IGCKernel::configure(win);
 }
 
-void GCDropoutKernel::run(const Window &window)
+void GCDropoutLayerKernel::run(const Window &window)
 {
     ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this);
     ARM_COMPUTE_ERROR_ON_MISMATCHING_WINDOWS(IGCKernel::window(), window);