aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-11-02COMPMID-1145: (API) Introduce prepare() stage (NEON/CL/GLES)Georgios Pinitas
Change-Id: I5b46764f9c3154ec3e3b9c951cc9e6dfbcb81dfb Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134255 Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com> Reviewed-by: Michele DiGiorgio <michele.digiorgio@arm.com>
2018-11-02COMPMID-1048 Add NHWC data format support to Winograd input transform 4x4_3x3Giorgio Arena
https://confluence.arm.com/display/MLENG/Winograd+Input+Transform%3A+NCHW+vs+NHWC+on+OpenCL Change-Id: Iac35a54389266701b7d8f5434a7a37df85b7b187 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/133315 Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
2018-11-02COMPMID-1180: Add support for bucket multi-threading (Part2)Anthony Barbier
- Introduced some Hints allowing the function to set its favourite splitting method for a given workload - Implemented the bucket split (Disabled by default) Change-Id: I3a48dfb0bd0ec8b69a44d9c4a4c77ad3f6dc9827 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/133079 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
2018-11-02COMPMID-911: Allow GEMM to work with 3D tensorsIsabella Gottardi
Change-Id: I8c4823a0d909e19e9ef548f00b9ae98c66de61dd Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/123569 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1222 Implementing CLArithmeticDivision - FP32 / FP16Michalis Spyrou
Change-Id: I2e3f725ef5ed1454755086b9640ab84a81f4d40e Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/135170 Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
2018-11-02COMPMID-761: Add CL/NEON Convolution benchmark testsJohn Richardson
Change-Id: I684baff3bfdff2244e04facd2d85d84609b7caff Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134769 Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
2018-11-02COMPMID-761: Add CL/NEON HOGMultiDetection benchmark testsJohn Richardson
Change-Id: I5e38eccc2fb273e2fd196b0528f27058e7c7ba2e Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/135667 Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
2018-11-02COMPMID-1162: Enable NHWC data layout support for NEWinogradConvolutionLayer ↵Pablo Tello
- part1 In this first part we reworked the configuration of the kernels as before we passed the raw pointer to the buffer within the configuration of the function Change-Id: I83d3cb64c562303093c7f0ae52395ecd080a5d52 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/133560 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Giorgio Arena <giorgio.arena@arm.com> Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
2018-11-02COMPMID-1269: (Nightly) Fix CL/Winograd/OutputTransform mismatchesGeorgios Pinitas
Check if the depth is multiple of tile size for NHWC if not write to dummy padding. Change-Id: Ie854dcbc75aa94bd1686f7769a009dd2654fdfed Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/135055 Reviewed-by: Pablo Tello <pablo.tello@arm.com> Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1246: (OCLgrind) Fix casting from __global pointerMichele Di Giorgio
Change-Id: I0e437a43d3ae0fb7d0e425e8cb8bb56314604297 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/135659 Reviewed-by: Giorgio Arena <giorgio.arena@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
2018-11-02COMPMID-761: Add CL/NEON LaplacianReconstruct benchmark testsJohn Richardson
Change-Id: I21d94d83e2bcde6c992c2425a1b8cc6f60a1d12a Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134757 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-761: Add CL/NEON GaussianPyramid benchmark testsJohn Richardson
Change-Id: I5111d5c54ed72c31cb948081596aa3d4b0541d7d Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134625 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-761: Add CL/NEON CannyEdge benchmark testsJohn Richardson
Change-Id: I72f7eb4b2d4120666558a3d7e0e9dd85321d507f Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134614 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1274: Fixed segfault in color conv referencePablo Tello
Change-Id: I662a46670096fc3d0fec2c28f320b9479a38edd5 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/135238 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-801: NHWC support in CLIm2Col.Pablo Tello
And extended tests coverage adding kernel shapes 3x1, 1x5 and 7x7 Change-Id: Ia7c1d4da2368d5f5fbc1a41187f4ac1aca5f150f Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/127727 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
2018-11-02COMPMID-1160 Turn Graph hints into heuristicsGiorgio Arena
Change-Id: Id24c2f07c59d863f8e1af6a1afbf6a542b2b9954 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/135142 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1278: Make intermediate tensors resizable in CLSoftmaxLayer::validate()Michele Di Giorgio
Change-Id: I42bdb9f71f14f0d82306a990f7d8a066947a4290 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/135129 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Giorgio Arena <giorgio.arena@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1270: Allow having weights with 1 IFM and multiple OFMs in ↵Michele Di Giorgio
CLDepthwiseConvolution3x3NCHW Change-Id: Ib2526f18bf303afd498ff85ca18c8df876f545ed Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134546 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
2018-11-02COMPMID-1274: (Nightly) CLColorConvert SegfaultsGeorgios Pinitas
Change-Id: I10ceaf32e5c704148403972802ee769852694d53 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/135065 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1254 Nightly: GC mismatches in DirectConvolutionMichalis Spyrou
Added absolute toleance as relative was failing for very small numbers. Change-Id: Ib6f7f14bcd4b71a023bb20ad8b6fbc63742d553e Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134806 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1273: Nightly : NEON GEMMConvolutionLayer FP32 mismatchGeorgios Pinitas
Change-Id: I8556132aafb1ab7d4ac60631980d437b13bb0097 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134865 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1156: Allow memory reusage when trying to reallocate a smaller CLTensorMichele Di Giorgio
In case of reconfiguration there might be the need for reallocating internal data. This patch allows resusage of already allocated memory for CLTensors only if the newly requested memory is smaller than the previous one, otherwise an error is thrown. Change-Id: Ibb545d0c521f87636f8a00154b879958570ee184 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/131022 Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
2018-11-02COMPMID-1048 Add NHWC data format support to Winograd filter transform 4x4_3x3Giorgio Arena
Change-Id: Ifd125fcb5451dbac3c28b15a9471048a74fee0ad Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/128987 Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
2018-11-02COMPMID-761: Add CL/NEON LaplacianPyramid benchmark testsJohn Richardson
Change-Id: I16a1e3e58d4df0e3c76fe7c7ff31d6995b7ce89f Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134402 Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
2018-11-02COMPMID-817: Tuner: Port kernels to new design.Georgios Pinitas
Change-Id: Iaabb1153c2abe0400ec79d51a21347debe92d642 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134062 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1200: Missing noexcept specifiersGeorgios Pinitas
Disables Wnoexcept in tests Used gcc 8.2 to reproduce. Change-Id: I06f4636d96bd3ac98dace72341bb808edcd23750 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134490 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1256: Memory corruption in NEGEMMGeorgios Pinitas
Change-Id: I762a3c9add2e26b850f388a78a16861abb2bf0f9 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134553 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1257: Allow retaining weights in CLDeconvolutionLayerMichele Di Giorgio
Change-Id: I8c430f2efafa0f47e2b12e388713ba693a6df8ee Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134467 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Michalis Spyrou <michalis.spyrou@arm.com>
2018-11-02COMPMID-1246: Add GLES target in graph TypePrinterGeorgios Pinitas
Change-Id: I5c6b29277b93facf6a992e02f72ebc6a1e5e5ef6 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134413 Reviewed-by: Michele DiGiorgio <michele.digiorgio@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
2018-11-02COMPMID-761: Add CL/NEON LocallyConnectedLayer benchmark testsJohn Richardson
Change-Id: I45f0dd8c8630f6a55e3fe71a46d0f7d25a368f41 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134119 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1048 Add NHWC data format support to Winograd output transform 4x4_3x3Giorgio Arena
https://confluence.arm.com/display/MLENG/Winograd+Output+Transform%3A+NCHW+vs+NHWC+on+OpenCL Change-Id: I6995f5cef759ba70ebd96d545b952041b6f1f36e Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/128729 Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
2018-11-02COMPMID-1244: Allow retaining weights in CLGEMMConvolutionLayer and ↵Michele Di Giorgio
CLFullyConnectedLayer Change-Id: I1c3b2197906cd4b905309bbd5f2012bbae6a7dba Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/133730 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1151: Templatize FunctionFactories.Georgios Pinitas
Change-Id: Id1c68c3bf442c3fcff265041b260d007db7593cb Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134027 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-761: Add CL/NEON OpticalFlow benchmark testsJohn Richardson
Change-Id: I9ced2fc2cc6c8e5a17017cef60916a86eb87a4e2 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134145 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1199: Fixed mismatches in CLColorConvert.Pablo Tello
Mismatches caused by the CL kernel computing the green value in a different way than in NEON and C++. Luminance values must be added after multiplying the input UV values with the coefficients and not before. Change-Id: I359573a98cf12f3be5c3437c28822175a5703dbb Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134158 Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com> Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
2018-11-02COMPMID-1143 - Excessive padding in CLReductionOperationKernel when ↵Michalis Spyrou
configuring window Now max padding is equal to 15 instead of 127. If input width is less than 128 we decrease the number of threads in the WG. Change-Id: I5ff0b6fd8cb46143ba49e745ec9ad01f691bdd80 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134152 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
2018-11-02COMPMID-799 - Use new OpenCL 8-bit dot product instructionMichalis Spyrou
Change-Id: I03d6c6db13bcb565f117725bdab2b68c89a49e21 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/122185 Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
2018-11-02COMPMID-1251 - Update GEMM's heuristic selection on OpenCLGian Marco Iodice
Change-Id: I915461d3216ee8b181a592a89143ee8c6bb25661 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/134054 Reviewed-by: Pablo Tello <pablo.tello@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
2018-11-02COMPMID-1246 Fixed Window::scale()Anthony Barbier
- There used to be two problems with scale(): - The first argument of ceil_to_multiple was promoted to float which broke the function (For example ceil_to_multiple( 24.0, 8 ) will return 31. - "End - start" needs to be a multiple of step, not "end" (e.g start=1, end =5, step =4 is a valid dimension) The reason it didn't break before is because Window::scale() was only used on windows used by iterators, and therefore the "end" value is not used in that context. Change-Id: I1798db73014294ac82eed53c74eec3d4b8cb7d59 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/133967 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com>
2018-11-02COMPMID-1209: Enable memory manager for the GEMM workspace bufferGeorgios Pinitas
Change-Id: I125660d412945aa152cb76c78280ca0d52264b86 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/133372 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-587: Port LaplacianReconstruct to new validationJohn Richardson
Change-Id: I9f160fb10c7cf59b5a84f4c40a96ce865faca2e9 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/132346 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-813 Add NHWC data format support for CL scaleMichalis Spyrou
Change-Id: Ie218447c4f3f94a37b5dd2d3b33488c7f5869adf Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/128520 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1181 Added some of the missing type printersAnthony Barbier
Change-Id: Ia5e631aa9252ae65137ba931259ce56be1dca397 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/133968 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com>
2018-11-02COMPMID-1180: Add support for bucket multi-threading (Part 1)Anthony Barbier
- Add an entry point to allow the user to parallelise an arbitrary queue of workloads (Will be used to interleave GEMM / BufferManager) - Added a ThreadFeeder which acts as a thread-safe work distributor Change-Id: I3a84fb7446c453cfcd337e21338c2ccf9f29f7b3 Note: This patch doesn't introduce any change in the default strategy, therefore it shouldn't have any impact on the performance Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/133058 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
2018-11-02COMPMID-1182: printf doesn't workGeorgios Pinitas
Change-Id: I013d57f6e2becbd6d2d7700ce5fbbeca670443c4 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/133735 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com>
2018-11-02COMPMID-1176: Adds nodes to the graph.Georgios Pinitas
Nodes added: -ChannelShuffle -Resize -Deconvolution -Dummy (used for performance analysis and debugging) Change-Id: Iad19960cbbce6e25532f77bfd34b2292c0ca9781 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/131672 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-568: Implement Canny edge function for CL/NEONAbe Mbise
Change-Id: Ic5f197463f962bac4b23663bcef7ac744be6fc2a Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/114250 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1083 : Compute library should be made usable on non-ARM platformsVidhya Sudhan Loganathan
Added * Compile time switches for kernels using FP16 extensions * Validation for support of atomics extension Change-Id: Ia88e601db054ff35f1508988b5e322bd27511ac5 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/133216 Reviewed-by: Pablo Tello <pablo.tello@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
2018-11-02COMPMID-655 : Check FP16 is supported by the GPUVidhya Sudhan Loganathan
Change-Id: I507b04680a4e88426b682bd0be03bccb560ec78d Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/132589 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
2018-11-02COMPMID-1168: enabling memory manager for _gemm_output gives wrong resultsGeorgios Pinitas
Change-Id: I96fbca08c2ad3a7415d1578fe7ec56f8a6069783 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/131946 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com>