diff options
-rw-r--r-- | arm_compute/core/CPP/CPPTypes.h | 6 | ||||
-rw-r--r-- | src/core/CPP/CPPTypes.cpp | 4 | ||||
-rw-r--r-- | utils/TypePrinter.h | 49 |
3 files changed, 59 insertions, 0 deletions
diff --git a/arm_compute/core/CPP/CPPTypes.h b/arm_compute/core/CPP/CPPTypes.h index 495de13759..3ab1316369 100644 --- a/arm_compute/core/CPP/CPPTypes.h +++ b/arm_compute/core/CPP/CPPTypes.h @@ -121,6 +121,12 @@ public: */ void set_cpu_num(unsigned int cpu_count); + /** Return the maximum number of CPUs present + * + * @return Number of CPUs + */ + unsigned int get_cpu_num() const; + private: std::vector<CPUModel> _percpu = {}; bool _fp16 = false; diff --git a/src/core/CPP/CPPTypes.cpp b/src/core/CPP/CPPTypes.cpp index 9c2b41b4ef..e4c3b7793f 100644 --- a/src/core/CPP/CPPTypes.cpp +++ b/src/core/CPP/CPPTypes.cpp @@ -51,6 +51,10 @@ void CPUInfo::set_cpu_model(unsigned int cpuid, CPUModel model) } } +unsigned int CPUInfo::get_cpu_num() const +{ + return _percpu.size(); +} bool CPUInfo::has_fp16() const { return _fp16; diff --git a/utils/TypePrinter.h b/utils/TypePrinter.h index d9b971d993..5d57dda201 100644 --- a/utils/TypePrinter.h +++ b/utils/TypePrinter.h @@ -25,6 +25,7 @@ #define __ARM_COMPUTE_TEST_TYPE_PRINTER_H__ #include "arm_compute/core/CL/CLTypes.h" +#include "arm_compute/core/CPP/CPPTypes.h" #include "arm_compute/core/Dimensions.h" #include "arm_compute/core/Error.h" #include "arm_compute/core/GPUTarget.h" @@ -1667,6 +1668,54 @@ inline std::string to_string(const Termination &termination) return str.str(); } +/** Formatted output of the CPUModel type. + * + * @param[out] os Output stream + * @param[in] cpu_model Model to output + * + * @return Modified output stream. + */ +inline ::std::ostream &operator<<(::std::ostream &os, const CPUModel &cpu_model) +{ + switch(cpu_model) + { + case CPUModel::GENERIC: + os << "GENERIC"; + break; + case CPUModel::GENERIC_FP16: + os << "GENERIC_FP16"; + break; + case CPUModel::GENERIC_FP16_DOT: + os << "GENERIC_FP16_DOT"; + break; + case CPUModel::A53: + os << "A53"; + break; + case CPUModel::A55r0: + os << "A55r0"; + break; + case CPUModel::A55r1: + os << "A55r1"; + break; + default: + ARM_COMPUTE_ERROR("NOT_SUPPORTED!"); + } + + return os; +} + +/** Formatted output of the CPUModel type. + * + * @param[in] cpu_model Model to output + * + * @return Formatted string. + */ +inline std::string to_string(const CPUModel &cpu_model) +{ + std::stringstream str; + str << cpu_model; + return str.str(); +} /** Formatted output of a vector of objects. * * @param[out] os Output stream |