Skip to content

Commit 871448e

Browse files
arm_compute v17.03.1
1 parent e8f6d10 commit 871448e

File tree

4,131 files changed

+481225
-0
lines changed

Some content is hidden

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

4,131 files changed

+481225
-0
lines changed

.clang-format

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
Language: Cpp
3+
AccessModifierOffset: '0'
4+
AlignAfterOpenBracket: Align
5+
AlignConsecutiveAssignments: 'true'
6+
AlignConsecutiveDeclarations: 'true'
7+
AlignEscapedNewlinesLeft: 'true'
8+
AlignTrailingComments: 'true'
9+
AllowShortBlocksOnASingleLine: 'false'
10+
AllowShortCaseLabelsOnASingleLine: 'false'
11+
AllowShortFunctionsOnASingleLine: None
12+
AllowShortIfStatementsOnASingleLine: 'false'
13+
AllowShortLoopsOnASingleLine: 'false'
14+
AlwaysBreakAfterDefinitionReturnType: None
15+
AlwaysBreakAfterReturnType: None
16+
AlwaysBreakBeforeMultilineStrings: 'true'
17+
AlwaysBreakTemplateDeclarations: 'true'
18+
BreakBeforeBinaryOperators: NonAssignment
19+
BreakBeforeBraces: Allman
20+
BreakBeforeTernaryOperators: 'false'
21+
BreakConstructorInitializersBeforeComma: 'false'
22+
#BreakStringLiterals: 'true'
23+
ConstructorInitializerAllOnOneLineOrOnePerLine: 'true'
24+
Cpp11BracedListStyle: 'false'
25+
DerivePointerAlignment: 'false'
26+
IndentCaseLabels: 'true'
27+
IndentWidth: '4'
28+
IndentWrappedFunctionNames: 'false'
29+
KeepEmptyLinesAtTheStartOfBlocks: 'false'
30+
MaxEmptyLinesToKeep: '1'
31+
NamespaceIndentation: None
32+
PointerAlignment: Right
33+
SortIncludes: 'true'
34+
SpaceAfterCStyleCast: 'false'
35+
SpaceBeforeAssignmentOperators: 'true'
36+
SpaceBeforeParens: Never
37+
SpaceInEmptyParentheses: 'false'
38+
SpacesInAngles: 'false'
39+
SpacesInCStyleCastParentheses: 'false'
40+
SpacesInParentheses: 'false'
41+
SpacesInSquareBrackets: 'false'
42+
Standard: Cpp11
43+
TabWidth: '4'
44+
UseTab: Never
45+
ReflowComments: 'false'
46+
ContinuationIndentWidth: '4'
47+
ColumnLimit: 0
48+
---

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
Please report issues here: https://github.com/ARM-software/ComputeLibrary/issues
3+
4+
Documentation available here: [v17.03.1](https://arm-software.github.io/ComputeLibrary/v17.03.1/)
5+
6+
7+

SConstruct

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Copyright (c) 2016, 2017 ARM Limited.
2+
#
3+
# SPDX-License-Identifier: MIT
4+
#
5+
# Permission is hereby granted, free of charge, to any person obtaining a copy
6+
# of this software and associated documentation files (the "Software"), to
7+
# deal in the Software without restriction, including without limitation the
8+
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
9+
# sell copies of the Software, and to permit persons to whom the Software is
10+
# furnished to do so, subject to the following conditions:
11+
#
12+
# The above copyright notice and this permission notice shall be included in all
13+
# copies or substantial portions of the Software.
14+
#
15+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
# SOFTWARE.
22+
23+
SConscript('sconscript', variant_dir='build', duplicate=0)
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
/*
2+
* Copyright (c) 2017 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+
#ifndef __ARM_COMPUTE_ACCESS_WINDOW_AUTO_PADDING_H__
25+
#define __ARM_COMPUTE_ACCESS_WINDOW_AUTO_PADDING_H__
26+
27+
#include "arm_compute/core/Coordinates.h"
28+
#include "arm_compute/core/IAccessWindow.h"
29+
#include "arm_compute/core/TensorShape.h"
30+
#include "arm_compute/core/Types.h"
31+
32+
namespace arm_compute
33+
{
34+
class Window;
35+
class TensorInfo;
36+
37+
/** Dummy access window.
38+
*
39+
* This implementation always uses the auto padding of the tensor info and
40+
* never updates the window. The valid region is always set to cover the entire
41+
* tensor.
42+
*
43+
* @note This access window is only used during the migration to the new
44+
* padding system. It will be removed once all kernels have been ported.
45+
*
46+
* */
47+
class AccessWindowAutoPadding : public IAccessWindow
48+
{
49+
public:
50+
/** Default constructor.
51+
*
52+
* @param[in,out] info Tensor info of the accessed kernel.
53+
*/
54+
AccessWindowAutoPadding(TensorInfo *info);
55+
AccessWindowAutoPadding(const AccessWindowAutoPadding &) = delete;
56+
AccessWindowAutoPadding &operator=(const AccessWindowAutoPadding &) = delete;
57+
AccessWindowAutoPadding(AccessWindowAutoPadding &&) = default;
58+
AccessWindowAutoPadding &operator=(AccessWindowAutoPadding &&) = default;
59+
~AccessWindowAutoPadding() = default;
60+
61+
void set_valid_region();
62+
63+
// Inherited methods overridden:
64+
bool update_window_if_needed(Window &window) const override;
65+
bool update_padding_if_needed(const Window &window) const override;
66+
void set_valid_region(const Window &window, ValidRegion input_valid_region, bool border_undefined, BorderSize border_size) override;
67+
68+
private:
69+
TensorInfo *_info;
70+
};
71+
} // namespace arm_compute
72+
#endif /*__ARM_COMPUTE_ACCESS_WINDOW_AUTO_PADDING_H__*/

arm_compute/core/AccessWindowStatic.h

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/*
2+
* Copyright (c) 2017 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+
#ifndef __ARM_COMPUTE_IACCESS_WINDOW_STATIC_H__
25+
#define __ARM_COMPUTE_IACCESS_WINDOW_STATIC_H__
26+
27+
#include "arm_compute/core/Coordinates.h"
28+
#include "arm_compute/core/IAccessWindow.h"
29+
#include "arm_compute/core/TensorShape.h"
30+
#include "arm_compute/core/Types.h"
31+
32+
#include <array>
33+
34+
namespace arm_compute
35+
{
36+
class Window;
37+
class TensorInfo;
38+
39+
/** Implementation of a static rectangular access pattern.
40+
*
41+
* In this implementation the access offsets and sizes are not relative to the
42+
* current element. Instead they are considered to be absolute coordinates
43+
* within the accessed tensor's shape.
44+
*
45+
* */
46+
class AccessWindowStatic : public IAccessWindow
47+
{
48+
public:
49+
/** Constructor for a static access pattern.
50+
*
51+
* @param[in,out] info Tensor info of the accessed kernel.
52+
* @param[in] start_x Start of the access in X direction.
53+
* @param[in] start_y Start of the access in Y direction.
54+
* @param[in] end_x End of the access in X direction.
55+
* @param[in] end_y End of the access in Y direction.
56+
*/
57+
AccessWindowStatic(TensorInfo *info, int start_x, int start_y, int end_x, int end_y);
58+
59+
AccessWindowStatic(const AccessWindowStatic &) = delete;
60+
AccessWindowStatic &operator=(const AccessWindowStatic &) = delete;
61+
AccessWindowStatic(AccessWindowStatic &&) = default;
62+
AccessWindowStatic &operator=(AccessWindowStatic &&) = default;
63+
~AccessWindowStatic() = default;
64+
65+
// Inherited methods overriden:
66+
bool update_window_if_needed(Window &window) const override;
67+
bool update_padding_if_needed(const Window &window) const override;
68+
void set_valid_region(const Window &window, ValidRegion input_valid_region);
69+
void set_valid_region(const Window &window, ValidRegion input_valid_region, bool border_undefined, BorderSize border_size) override;
70+
71+
TensorInfo *_info;
72+
int _start_x;
73+
int _start_y;
74+
int _end_x;
75+
int _end_y;
76+
};
77+
} // namespace arm_compute
78+
#endif /*__ARM_COMPUTE_IACCESS_WINDOW_STATIC_H__*/
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
* Copyright (c) 2017 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+
#ifndef __ARM_COMPUTE_IACCESS_WINDOW_TRANSPOSE_H__
25+
#define __ARM_COMPUTE_IACCESS_WINDOW_TRANSPOSE_H__
26+
27+
#include "arm_compute/core/Coordinates.h"
28+
#include "arm_compute/core/IAccessWindow.h"
29+
#include "arm_compute/core/TensorShape.h"
30+
#include "arm_compute/core/Types.h"
31+
32+
namespace arm_compute
33+
{
34+
class Window;
35+
class TensorInfo;
36+
37+
/** Implementation of a XY-transpose access pattern. */
38+
class AccessWindowTranspose : public AccessWindowRectangle
39+
{
40+
public:
41+
using AccessWindowRectangle::AccessWindowRectangle;
42+
bool update_window_if_needed(Window &window) const override;
43+
bool update_padding_if_needed(const Window &window) const override;
44+
using AccessWindowRectangle::set_valid_region;
45+
void set_valid_region(const Window &window, ValidRegion input_valid_region, bool border_undefined, BorderSize border_size) override;
46+
};
47+
} // namespace arm_compute
48+
#endif /*__ARM_COMPUTE_IACCESS_WINDOW_TRANSPOSE_H__*/

arm_compute/core/CL/CLHelpers.h

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright (c) 2016, 2017 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+
#ifndef __ARM_COMPUTE_CLHELPERS_H__
25+
#define __ARM_COMPUTE_CLHELPERS_H__
26+
27+
#include <string>
28+
29+
namespace arm_compute
30+
{
31+
enum class DataType;
32+
33+
/** Max vector width of an OpenCL vector */
34+
static constexpr const unsigned int max_cl_vector_width = 16;
35+
36+
/** Translates a tensor data type to the appropriate OpenCL type.
37+
*
38+
* @param[in] dt @ref DataType to be translated to OpenCL type.
39+
*
40+
* @return The string specifying the OpenCL type to be used.
41+
*/
42+
std::string get_cl_type_from_data_type(const DataType &dt);
43+
}
44+
#endif

0 commit comments

Comments
 (0)