30 #if defined(__aarch64__) 31 #if defined(ARM_COMPUTE_ENABLE_SVE) && defined(ARM_COMPUTE_ENABLE_SVE2) 34 #endif // defined(ARM_COMPUTE_ENABLE_SVE) && defined(ARM_COMPUTE_ENABLE_SVE2) 37 #endif // defined(__aarch64__) 44 static const PoolingImplementation<int8_t, int8_t, Requantize32> pooling_u8_methods[] = {
45 #if defined(__aarch64__) 46 #if defined(ARM_COMPUTE_ENABLE_SVE) && defined(ARM_COMPUTE_ENABLE_SVE2) 48 PoolingMethod::DEPTHFIRST,
49 "sve_s8q_nhwc_avg_generic_depthfirst",
50 [] (
const PoolingArgs &
args,
const Requantize32 &) ->
bool {
51 return args.cpu_info->has_sve2() && args.pool_type == PoolingType::AVERAGE;
54 [] (
const PoolingArgs &
args,
const Requantize32 &rq) -> PoolingCommon<int8_t, int8_t, Requantize32> * {
55 return new PoolingDepthfirstGenericQuantized<sve_s8q_nhwc_avg_generic_depthfirst>(
args, rq);
59 PoolingMethod::DEPTHFIRST,
60 "sve_s8q_nhwc_max_generic_depthfirst",
61 [] (
const PoolingArgs &
args,
const Requantize32 &) ->
bool {
return args.cpu_info->has_sve2() && args.pool_type ==
PoolingType::MAX; },
63 [] (
const PoolingArgs &
args,
const Requantize32 &rq) -> PoolingCommon<int8_t, int8_t, Requantize32> * {
64 return new PoolingDepthfirstGenericQuantized<sve_s8q_nhwc_max_generic_depthfirst>(
args, rq);
67 #endif // defined(ARM_COMPUTE_ENABLE_SVE) && defined(ARM_COMPUTE_ENABLE_SVE2) 69 PoolingMethod::DEPTHFIRST,
70 "a64_s8q_nhwc_avg_generic_depthfirst",
71 [] (
const PoolingArgs &
args,
const Requantize32 &) ->
bool {
72 return args.pool_type == PoolingType::AVERAGE;
75 [] (
const PoolingArgs &
args,
const Requantize32 &rq) -> PoolingCommon<int8_t, int8_t, Requantize32> * {
76 return new PoolingDepthfirstGenericQuantized<a64_s8q_nhwc_avg_generic_depthfirst>(
args, rq);
80 PoolingMethod::DEPTHFIRST,
81 "a64_s8q_nhwc_max_generic_depthfirst",
82 [] (
const PoolingArgs &
args,
const Requantize32 &) ->
bool {
return args.pool_type ==
PoolingType::MAX; },
84 [] (
const PoolingArgs &
args,
const Requantize32 &rq) -> PoolingCommon<int8_t, int8_t, Requantize32> * {
85 return new PoolingDepthfirstGenericQuantized<a64_s8q_nhwc_max_generic_depthfirst>(
args, rq);
88 #endif // defined(__aarch64__) 89 { PoolingMethod::DEFAULT,
"",
nullptr,
nullptr,
nullptr },
95 return pooling_u8_methods;
98 template UniquePoolingCommon<int8_t, int8_t, Requantize32>
pooling(
const PoolingArgs &,
const Requantize32 &);
template UniquePoolingCommon< int8_t, int8_t, Requantize32 > pooling(const PoolingArgs &, const Requantize32 &)
template UniquePoolingCommon< float, float > pooling(const PoolingArgs &, const Nothing &)
const PoolingImplementation< float, float > * pooling_implementation_list()