From 402740da11c4fd2a9dc7aee5dadf3b1fdda0afde Mon Sep 17 00:00:00 2001 From: Michalis Spyrou Date: Tue, 20 Apr 2021 11:26:21 +0100 Subject: Add support for CLVK This patch enables CLVK through the graph API and inside the CLScheduler. By default the Native platform is selected. Selecting CLVK can be done via --target=clvk. Resolves COMPMID-4205 and COMPMID-4206 Change-Id: Ic60744980c6b8a60e776627ea677ed46be88f656 Signed-off-by: Michalis Spyrou Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5475 Tested-by: Arm Jenkins Reviewed-by: Georgios Pinitas --- arm_compute/graph/Types.h | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'arm_compute/graph/Types.h') diff --git a/arm_compute/graph/Types.h b/arm_compute/graph/Types.h index 4f3ce76370..7306b82a1e 100644 --- a/arm_compute/graph/Types.h +++ b/arm_compute/graph/Types.h @@ -28,6 +28,7 @@ #include "arm_compute/core/PixelValue.h" #include "arm_compute/core/Types.h" #include "arm_compute/runtime/CL/CLTunerTypes.h" +#include "arm_compute/runtime/CL/CLTypes.h" #include #include @@ -37,6 +38,7 @@ namespace arm_compute namespace graph { using arm_compute::CLTunerMode; +using arm_compute::CLBackendType; using arm_compute::Status; using arm_compute::Coordinates; @@ -80,16 +82,17 @@ struct TensorDescriptor; /** Graph configuration structure */ struct GraphConfig { - bool use_function_memory_manager{ true }; /**< Use a memory manager to manage per-function auxilary memory */ - bool use_function_weights_manager{ true }; /**< Use a weights manager to manage transformed weights */ - bool use_transition_memory_manager{ true }; /**< Use a memory manager to manager transition buffer memory */ - bool use_tuner{ false }; /**< Use a tuner in tunable backends */ - bool use_synthetic_type{ false }; /**< Convert graph to a synthetic graph for a data type */ - DataType synthetic_type{ DataType::QASYMM8 }; /**< The data type of the synthetic graph */ - CLTunerMode tuner_mode{ CLTunerMode::EXHAUSTIVE }; /**< Tuner mode to be used by the CL tuner */ - int num_threads{ -1 }; /**< Number of threads to use (thread capable backends), if 0 the backend will auto-initialize, if -1 the backend will stay as it is. */ - std::string tuner_file{ "acl_tuner.csv" }; /**< File to load/store tuning values from */ - std::string mlgo_file{ "heuristics.mlgo" }; /**< Filename to load MLGO heuristics from */ + bool use_function_memory_manager{ true }; /**< Use a memory manager to manage per-function auxilary memory */ + bool use_function_weights_manager{ true }; /**< Use a weights manager to manage transformed weights */ + bool use_transition_memory_manager{ true }; /**< Use a memory manager to manager transition buffer memory */ + bool use_tuner{ false }; /**< Use a tuner in tunable backends */ + bool use_synthetic_type{ false }; /**< Convert graph to a synthetic graph for a data type */ + DataType synthetic_type{ DataType::QASYMM8 }; /**< The data type of the synthetic graph */ + CLTunerMode tuner_mode{ CLTunerMode::EXHAUSTIVE }; /**< Tuner mode to be used by the CL tuner */ + int num_threads{ -1 }; /**< Number of threads to use (thread capable backends), if 0 the backend will auto-initialize, if -1 the backend will stay as it is. */ + std::string tuner_file{ "acl_tuner.csv" }; /**< File to load/store tuning values from */ + std::string mlgo_file{ "heuristics.mlgo" }; /**< Filename to load MLGO heuristics from */ + CLBackendType backend_type{ CLBackendType::Native }; /**< CL backend type to use */ }; /**< Device target types */ @@ -98,6 +101,7 @@ enum class Target UNSPECIFIED, /**< Unspecified Target */ NEON, /**< Arm® Neon™ capable target device */ CL, /**< OpenCL capable target device */ + CLVK, /**< CLVK capable target device */ }; /** Supported Element-wise operations */ -- cgit v1.2.1