ArmNN
 26.07
NeonBackendModelContext Class Reference

The NeonBackendModelContext is used to pass in Neon specific backend ModelOptions. More...

#include <NeonBackendModelContext.hpp>

Inheritance diagram for NeonBackendModelContext:
[legend]
Collaboration diagram for NeonBackendModelContext:
[legend]

Public Member Functions

 NeonBackendModelContext (const ModelOptions &modelOptions)
 
bool IsFastMathEnabled () const
 
unsigned int GetNumberOfThreads () const
 
void ApplyAclIsaPolicy () const
 
- Public Member Functions inherited from IBackendModelContext
virtual ~IBackendModelContext ()
 

Detailed Description

The NeonBackendModelContext is used to pass in Neon specific backend ModelOptions.

The supported backend ModelOptions are:

  • "FastMathEnabled"
    Using the fast_math flag can lead to performance improvements in fp32 and fp16 layers but may result in
    results with reduced or different precision. The fast_math flag will not have any effect on int8 performance.
  • "NumberOfThreads"
    Specify the number of threads used by the CpuAcc backend.
  • "SveEnabled"
    Specify whether SVE/SVE2 implementations may be selected by the CpuAcc backend.
  • "SmeEnabled"
    Specify whether SME/SME2 implementations may be selected by the CpuAcc backend.

Definition at line 23 of file NeonBackendModelContext.hpp.

Constructor & Destructor Documentation

◆ NeonBackendModelContext()

NeonBackendModelContext ( const ModelOptions modelOptions)

Definition at line 63 of file NeonBackendModelContext.cpp.

64  : m_IsFastMathEnabled(false), m_NumberOfThreads(0), m_IsSveEnabled(true), m_IsSmeEnabled(true)
65 {
66  if (!modelOptions.empty())
67  {
68  ParseOptions(modelOptions, "CpuAcc", [&](std::string name, const BackendOptions::Var& value)
69  {
70  if (name == "FastMathEnabled")
71  {
72  m_IsFastMathEnabled = ParseBool(value, m_IsFastMathEnabled);
73  }
74  if (name == "NumberOfThreads")
75  {
76  m_NumberOfThreads = ParseUnsignedInt(value, m_NumberOfThreads);
77  }
78  if (name == "SmeEnabled")
79  {
80  m_IsSmeEnabled = ParseBool(value, m_IsSmeEnabled);
81  }
82  if (name == "SveEnabled")
83  {
84  m_IsSveEnabled = ParseBool(value, m_IsSveEnabled);
85  }
86  });
87  }
88 }
void ParseOptions(const std::vector< BackendOptions > &options, BackendId backend, F f)

References armnn::ParseOptions().

Member Function Documentation

◆ ApplyAclIsaPolicy()

void ApplyAclIsaPolicy ( ) const

Definition at line 100 of file NeonBackendModelContext.cpp.

101 {
102  arm_compute::CPUInfo& cpuInfo = arm_compute::CPUInfo::get();
103  SetSveAllowed(cpuInfo, m_IsSveEnabled, 0);
104  SetSmeAllowed(cpuInfo, m_IsSmeEnabled, 0);
105 }

◆ GetNumberOfThreads()

unsigned int GetNumberOfThreads ( ) const

Definition at line 95 of file NeonBackendModelContext.cpp.

96 {
97  return m_NumberOfThreads;
98 }

◆ IsFastMathEnabled()

bool IsFastMathEnabled ( ) const

The documentation for this class was generated from the following files: