tesseract++ 0.0.1
N-dimensional tensor library for embedded systems
Loading...
Searching...
No Matches
neon_microkernel.h
Go to the documentation of this file.
1#ifndef __NEON_MICROKERNEL_H__
2#define __NEON_MICROKERNEL_H__
3
4#include "neon_intrinsics.h"
5
6// ============================================================================
7// Architecture tags
8// ============================================================================
10{
11};
13{
14};
16{
17};
18
19// ============================================================================
20// Per-microarch specializations — only tiling differs
21// ============================================================================
22
23// --- A55 (in-order, narrow) ---
24template <>
26{
27 static constexpr my_size_t MR = 4;
28 static constexpr my_size_t NR_VECS = 3;
29 static constexpr my_size_t NR = NR_VECS * simdWidth; // 12
30};
31
32template <>
34{
35 static constexpr my_size_t MR = 4;
36 static constexpr my_size_t NR_VECS = 3;
37 static constexpr my_size_t NR = NR_VECS * simdWidth; // 6
38};
39
40// --- A72 (RPi4) ---
41template <>
43{
44 static constexpr my_size_t MR = 8;
45 static constexpr my_size_t NR_VECS = 3;
46 static constexpr my_size_t NR = NR_VECS * simdWidth; // 12
47};
48
49template <>
51{
52 static constexpr my_size_t MR = 8;
53 static constexpr my_size_t NR_VECS = 3;
54 static constexpr my_size_t NR = NR_VECS * simdWidth; // 6
55};
56
57// --- A76+ (RPi5, Graviton) ---
58template <>
60{
61 static constexpr my_size_t MR = 8;
62 static constexpr my_size_t NR_VECS = 3;
63 static constexpr my_size_t NR = NR_VECS * simdWidth; // 12
64};
65
66template <>
68{
69 static constexpr my_size_t MR = 8;
70 static constexpr my_size_t NR_VECS = 3;
71 static constexpr my_size_t NR = NR_VECS * simdWidth; // 6
72};
73
74#endif // __NEON_MICROKERNEL_H__
#define my_size_t
Size/index type used throughout the library.
Definition config.h:126
Definition neon_microkernel.h:10
Definition neon_microkernel.h:13
Definition neon_microkernel.h:16
Definition microkernel_base.h:16
static constexpr my_size_t simdWidth
Definition microkernel_base.h:17
Definition neon_intrinsics.h:111
Definition neon_intrinsics.h:11