Skip to content

Commit c5dd775

Browse files
author
Jenkins
committed
Compute Library v24.07
1 parent 505adb9 commit c5dd775

File tree

728 files changed

+8443
-2102
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

728 files changed

+8443
-2102
lines changed

Android.bp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,10 @@ cc_library_static {
479479
"src/cpu/kernels/boundingboxtransform/generic/neon/impl.cpp",
480480
"src/cpu/kernels/boundingboxtransform/generic/neon/qsymm16.cpp",
481481
"src/cpu/kernels/cast/generic/neon/fp16.cpp",
482+
"src/cpu/kernels/conv3d/generic/neon/fp16.cpp",
483+
"src/cpu/kernels/conv3d/generic/neon/fp32.cpp",
484+
"src/cpu/kernels/conv3d/generic/neon/qasymm8.cpp",
485+
"src/cpu/kernels/conv3d/generic/neon/qasymm8_signed.cpp",
482486
"src/cpu/kernels/crop/generic/neon/fp16.cpp",
483487
"src/cpu/kernels/crop/generic/neon/fp32.cpp",
484488
"src/cpu/kernels/crop/generic/neon/integer.cpp",
@@ -1010,6 +1014,12 @@ cc_library_static {
10101014
"src/runtime/Tensor.cpp",
10111015
"src/runtime/TensorAllocator.cpp",
10121016
"src/runtime/Utils.cpp",
1017+
"src/runtime/experimental/operators/CpuActivation.cpp",
1018+
"src/runtime/experimental/operators/CpuGemm.cpp",
1019+
"src/runtime/experimental/operators/CpuGemmConv2d.cpp",
1020+
"src/runtime/experimental/operators/CpuGemmDirectConv2d.cpp",
1021+
"src/runtime/experimental/operators/CpuTranspose.cpp",
1022+
"src/runtime/experimental/operators/CpuWinogradConv2d.cpp",
10131023
"src/runtime/heuristics/direct_conv/ClDirectConvDefaultConfigBifrost.cpp",
10141024
"src/runtime/heuristics/direct_conv/ClDirectConvDefaultConfigValhall.cpp",
10151025
"src/runtime/heuristics/dwc_native/ClDWCNativeDefaultConfigBifrost.cpp",

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
2828
list(APPEND CMAKE_MESSAGE_CONTEXT ArmCompute)
2929
project(
3030
ArmCompute
31-
VERSION 38.0.0
31+
VERSION 39.0.0
3232
DESCRIPTION
3333
"The Arm Compute Library is a collection of low-level machine learning functions optimized for Arm® Cortex®-A CPU and Arm® Mali™ GPU architectures"
3434
LANGUAGES C CXX ASM)

README.md

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
> **⚠ Deprecation Notice**
32
> 24.01 announcement: NCHW data format specific optimizations will gradually be removed from the code base in
43
> future releases. The implication of this is that the user is expected to translate NCHW models into NHWC in
@@ -9,7 +8,7 @@
98
<img src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png"/><br><br>
109
</div>
1110

12-
# Compute Library ![](https://img.shields.io/badge/latest_release-24.06-green)
11+
# Compute Library ![](https://img.shields.io/badge/latest_release-24.07-green)
1312

1413

1514
The Compute Library is a collection of low-level machine learning functions optimized for Arm® Cortex®-A, Arm® Neoverse® and Arm® Mali™ GPUs architectures.<br>
@@ -37,7 +36,7 @@ Key Features:
3736
<br>
3837

3938
## Documentation
40-
[![Documentation](https://img.shields.io/badge/documentation-24.06-green)](https://arm-software.github.io/ComputeLibrary/latest)
39+
[![Documentation](https://img.shields.io/badge/documentation-24.07-green)](https://arm-software.github.io/ComputeLibrary/latest)
4140

4241
> Note: The documentation includes the reference API, changelogs, build guide, contribution guide, errata, etc.
4342
@@ -50,24 +49,22 @@ All the binaries can be downloaded from [here](https://github.com/ARM-software/C
5049

5150
| Platform | Operating System | Release archive (Download) |
5251
| -------------- | ---------------- | -------------------------- |
53-
| Raspberry Pi 4 | Linux® 32bit | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-armv7a-neon.tar.gz) |
54-
| Raspberry Pi 4 | Linux® 64bit | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8a-neon.tar.gz) |
55-
| Odroid N2 | Linux® 64bit | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8a-neon-cl.tar.gz) |
56-
| HiKey960 | Linux® 64bit | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8a-neon-cl.tar.gz) |
52+
| Raspberry Pi 4 | Linux® 32bit | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.07/arm_compute-v24.07-linux-armv7a-cpu-bin.tar.gz) |
53+
| Raspberry Pi 4 | Linux® 64bit | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.07/arm_compute-v24.07-linux-aarch64-cpu-bin.tar.gz) |
54+
| Odroid N2 | Linux® 64bit | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.07/arm_compute-v24.07-linux-aarch64-cpu-bin.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.07/arm_compute-v24.07-linux-aarch64-cpu-gpu-bin.tar.gz) |
55+
| HiKey960 | Linux® 64bit | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.07/arm_compute-v24.07-linux-aarch64-cpu-bin.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.07/arm_compute-v24.07-linux-aarch64-cpu-gpu-bin.tar.gz) |
5756

5857
<br>
5958

6059
| Architecture | Operating System | Release archive (Download) |
6160
| ------------ | ---------------- | -------------------------- |
62-
| armv7 | Linux® | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-armv7a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-armv7a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-armv7a-neon-cl.tar.gz) |
63-
| arm64-v8a | Android™ | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-android-arm64-v8a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-android-arm64-v8a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-android-arm64-v8a-neon-cl.tar.gz) |
64-
| arm64-v8a | Linux® | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8a-neon-cl.tar.gz) |
65-
| arm64-v8.2-a | Android™ | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-android-arm64-v8.2-a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-android-arm64-v8.2-a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-android-arm64-v8.2-a-neon-cl.tar.gz) |
66-
| arm64-v8.2-a | Linux® | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8.2-a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8.2-a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.06/arm_compute-v24.06-bin-linux-arm64-v8.2-a-neon-cl.tar.gz) |
61+
| armv7 | Linux® | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.07/arm_compute-v24.07-linux-armv7a-cpu-bin.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.07/arm_compute-v24.07-linux-armv7a-cpu-gpu-bin.tar.gz) |
62+
| arm64-v8a | Android™ | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.07/arm_compute-v24.07-android-aarch64-cpu-bin.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.07/arm_compute-v24.07-android-aarch64-cpu-gpu-bin.tar.gz) |
63+
| arm64-v8a | Linux® | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.07/arm_compute-v24.07-linux-aarch64-cpu-bin.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v24.07/arm_compute-v24.07-linux-aarch64-cpu-gpu-bin.tar.gz) |
6764

6865
<br>
6966

70-
Please refer to the following link for more pre-built binaries: [![](https://img.shields.io/badge/v24.06-bins-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/tag/v24.06)
67+
Please refer to the following link for more pre-built binaries: [![](https://img.shields.io/badge/v24.07-bins-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/tag/v24.07)
7168

7269
Pre-build binaries are generated with the following security / good coding practices related flags:
7370
> -Wall, -Wextra, -Wformat=2, -Winit-self, -Wstrict-overflow=2, -Wswitch-default, -Woverloaded-virtual, -Wformat-security, -Wctor-dtor-privacy, -Wsign-promo, -Weffc++, -pedantic, -fstack-protector-strong

SConscript

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ import zlib
3131
import json
3232
import codecs
3333
import platform
34+
import SCons
3435

35-
VERSION = "v24.06"
36-
LIBRARY_VERSION_MAJOR = 38
36+
VERSION = "v24.07"
37+
LIBRARY_VERSION_MAJOR = 39
3738
LIBRARY_VERSION_MINOR = 0
3839
LIBRARY_VERSION_PATCH = 0
3940
SONAME_VERSION = str(LIBRARY_VERSION_MAJOR) + "." + str(LIBRARY_VERSION_MINOR) + "." + str(LIBRARY_VERSION_PATCH)
@@ -151,6 +152,33 @@ def get_ckw_obj_list():
151152

152153
def build_library(name, build_env, sources, static=False, libs=[]):
153154
cloned_build_env = build_env.Clone()
155+
156+
#The following set up only works for posix system, RANLIBCOM isn't available on win32 HOST_OS
157+
if cloned_build_env['HOST_OS'] == 'posix':
158+
#Set up to use temp file for long command when building and linking libraries
159+
cloned_build_env['TEMPFILE'] = SCons.Platform.TempFileMunge
160+
161+
#To use temp file for any command, the following pattern should be used:
162+
# env['COMMAND'] = "{$TEMPFILE('$COMMANDSTRING')}"
163+
#See: https://github.com/SCons/scons/blob/05f2992377844bbfec9bcd4a9c7f5479c634b91b/SCons/Platform/__init__.py#L147
164+
#The commands' string are taken from https://github.com/SCons/scons
165+
#The commands' explanations are taken from Scons userguide
166+
167+
#The command line used to compile C++ source file to an object file
168+
cloned_build_env['CXXCOM'] = "${TEMPFILE('"+ cloned_build_env['CXXCOM'] + "')}"
169+
#The command line used to compile C++ source file to a shared-library object file
170+
cloned_build_env['SHCXXCOM'] = "${TEMPFILE('"+ cloned_build_env['SHCXXCOM'] + "')}"
171+
#The command line used to generate a static library from object files
172+
cloned_build_env['ARCOM'] = "${TEMPFILE('"+ cloned_build_env['ARCOM'] + "')}"
173+
#The command line used to link object files into an executable
174+
cloned_build_env['LINKCOM'] = "${TEMPFILE('"+ cloned_build_env['LINKCOM'] + "')}"
175+
#The command line used to link programs using shared libraries
176+
cloned_build_env['SHLINKCOM'] = "${TEMPFILE('"+ cloned_build_env['SHLINKCOM'] + "')}"
177+
#The command line used to index a static library archive
178+
cloned_build_env['RANLIBCOM'] = "${TEMPFILE('"+ cloned_build_env['RANLIBCOM'] + "')}"
179+
#Set up directory for temp files. To prevent permission issue, the temp files are in the same directory with output files
180+
cloned_build_env['TEMPFILEDIR'] = cloned_build_env['build_dir']
181+
154182
if env['os'] == 'android' and static == False:
155183
cloned_build_env["LINKFLAGS"].remove('-pie')
156184
cloned_build_env["LINKFLAGS"].remove('-static-libstdc++')

SConstruct

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def update_data_type_layout_flags(env, data_types, data_layouts):
6666
if any(i in data_types for i in ['all', 'fp16']):
6767
env.Append(CXXFLAGS = ['-DENABLE_FP16_KERNELS', '-DARM_COMPUTE_ENABLE_FP16'])
6868
else:
69-
if not 'v8a' in env['arch'] and not 'v7a' in env['arch'] and not 'armv8r64' in env['arch']:
69+
if not 'v8a' in env['arch'] and not 'v7a' in env['arch'] and not 'armv8r64' in env['arch'] and not 'x86' in env['arch']:
7070
if any(i in data_types for i in ['all', 'fp16']):
7171
env.Append(CXXFLAGS = ['-DENABLE_FP16_KERNELS','-DARM_COMPUTE_ENABLE_FP16'])
7272

arm_compute/runtime/CL/functions/CLLSTMLayer.h

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2018-2021 Arm Limited.
2+
* Copyright (c) 2018-2021, 2024 Arm Limited.
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -21,8 +21,8 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
* SOFTWARE.
2323
*/
24-
#ifndef ARM_COMPUTE_CLLSTMLAYER_H
25-
#define ARM_COMPUTE_CLLSTMLAYER_H
24+
#ifndef ACL_ARM_COMPUTE_RUNTIME_CL_FUNCTIONS_CLLSTMLAYER_H
25+
#define ACL_ARM_COMPUTE_RUNTIME_CL_FUNCTIONS_CLLSTMLAYER_H
2626

2727
#include "arm_compute/core/Types.h"
2828
#include "arm_compute/runtime/CL/CLTensor.h"
@@ -322,7 +322,6 @@ class CLLSTMLayer : public IFunction
322322
CLTensor _forget_gate_out3;
323323
CLTensor _forget_gate_out4;
324324
CLTensor _forget_gate_out5;
325-
CLTensor _forget_gate_out6;
326325
CLTensor _cell_state_out1;
327326
CLTensor _cell_state_out2;
328327
CLTensor _cell_state_out3;
@@ -353,4 +352,4 @@ class CLLSTMLayer : public IFunction
353352
const ICLTensor *_recurrent_to_cell_weights{nullptr};
354353
};
355354
} // namespace arm_compute
356-
#endif /* ARM_COMPUTE_CLLSTMLAYER_H */
355+
#endif // ACL_ARM_COMPUTE_RUNTIME_CL_FUNCTIONS_CLLSTMLAYER_H

arm_compute/runtime/NEON/functions/NEConvolutionLayer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2018-2021, 2023 Arm Limited.
2+
* Copyright (c) 2018-2021, 2023-2024 Arm Limited.
33
*
44
* SPDX-License-Identifier: MIT
55
*

arm_compute/runtime/NEON/functions/NELSTMLayer.h

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2018-2021 Arm Limited.
2+
* Copyright (c) 2018-2021, 2024 Arm Limited.
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -21,8 +21,8 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
* SOFTWARE.
2323
*/
24-
#ifndef ARM_COMPUTE_NELSTMLAYER_H
25-
#define ARM_COMPUTE_NELSTMLAYER_H
24+
#ifndef ACL_ARM_COMPUTE_RUNTIME_NEON_FUNCTIONS_NELSTMLAYER_H
25+
#define ACL_ARM_COMPUTE_RUNTIME_NEON_FUNCTIONS_NELSTMLAYER_H
2626

2727
#include "arm_compute/core/Types.h"
2828
#include "arm_compute/runtime/common/LSTMParams.h"
@@ -245,7 +245,6 @@ class NELSTMLayer : public IFunction
245245
Tensor _forget_gate_out3;
246246
Tensor _forget_gate_out4;
247247
Tensor _forget_gate_out5;
248-
Tensor _forget_gate_out6;
249248
Tensor _cell_state_out1;
250249
Tensor _cell_state_out2;
251250
Tensor _cell_state_out3;
@@ -275,4 +274,4 @@ class NELSTMLayer : public IFunction
275274
bool _is_layer_norm_lstm;
276275
};
277276
} // namespace arm_compute
278-
#endif /* ARM_COMPUTE_NELSTMLAYER_H */
277+
#endif // ACL_ARM_COMPUTE_RUNTIME_NEON_FUNCTIONS_NELSTMLAYER_H
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/*
2+
* Copyright (c) 2024 Arm Limited.
3+
*
4+
* SPDX-License-Identifier: MIT
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to
8+
* deal in the Software without restriction, including without limitation the
9+
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10+
* sell copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in all
14+
* copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
* SOFTWARE.
23+
*/
24+
25+
#ifndef ACL_ARM_COMPUTE_RUNTIME_EXPERIMENTAL_OPERATORS_CPUACTIVATION_H
26+
#define ACL_ARM_COMPUTE_RUNTIME_EXPERIMENTAL_OPERATORS_CPUACTIVATION_H
27+
28+
#include "arm_compute/core/ITensorPack.h"
29+
#include "arm_compute/core/TensorInfo.h"
30+
31+
namespace arm_compute
32+
{
33+
namespace experimental
34+
{
35+
namespace op
36+
{
37+
/** Wrapper class for CpuActivation. For information on the functions,
38+
* see "src/cpu/operators/CpuActivation.h"
39+
*/
40+
class CpuActivation
41+
{
42+
public:
43+
/** Constructor **/
44+
CpuActivation();
45+
/** Prevent instances of this class from being copied (As this class contains pointers) */
46+
CpuActivation(const CpuActivation &) = delete;
47+
/** Default move constructor */
48+
CpuActivation(CpuActivation &&) = default;
49+
/** Default destructor */
50+
~CpuActivation();
51+
52+
/** Configure operator for a given list of arguments
53+
*
54+
* @param[in] src Source tensor info. Data types supported: QASYMM8/QASYMM8_SIGNED/QSYMM16/F16/F32.
55+
* @param[out] dst Destination tensor info. Data type supported: same as @p src
56+
* @param[in] act_info Activation layer parameters.
57+
*/
58+
void configure(const ITensorInfo *src, ITensorInfo *dst, const ActivationLayerInfo &act_info);
59+
60+
/** Static function to check if given info will lead to a valid configuration
61+
*
62+
* Similar to @ref CpuActivation::configure()
63+
*
64+
* @return a status
65+
*/
66+
static Status validate(const ITensorInfo *src, const ITensorInfo *dst, const ActivationLayerInfo &act_info);
67+
68+
void run(ITensorPack &tensors);
69+
70+
private:
71+
struct Impl;
72+
std::unique_ptr<Impl> _impl;
73+
};
74+
} // namespace op
75+
} // namespace experimental
76+
} // namespace arm_compute
77+
78+
#endif // ACL_ARM_COMPUTE_RUNTIME_EXPERIMENTAL_OPERATORS_CPUACTIVATION_H

0 commit comments

Comments
 (0)