diff options
author | Georgios Pinitas <georgios.pinitas@arm.com> | 2018-09-04 12:18:50 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:54:54 +0000 |
commit | a34286ecabf4fc9e66e423332063a3d5fb17b8f8 (patch) | |
tree | 849999d27a1b0e67b2980730fce04c753a7b37fe /src/core | |
parent | 71ecf396bb08e302dc06b2c7ed44001894d3a2ea (diff) | |
download | ComputeLibrary-a34286ecabf4fc9e66e423332063a3d5fb17b8f8.tar.gz |
COMPMID-1553: Add GPU detection for G52.
Change-Id: Ief61733d0e66fec0c67255ad899c76933109b797
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/146794
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Michalis Spyrou <michalis.spyrou@arm.com>
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/CL/kernels/CLDirectConvolutionLayerKernel.cpp | 10 | ||||
-rw-r--r-- | src/core/CL/kernels/CLGEMMMatrixAccumulateBiasesKernel.cpp | 6 | ||||
-rw-r--r-- | src/core/GPUTarget.cpp | 10 |
3 files changed, 23 insertions, 3 deletions
diff --git a/src/core/CL/kernels/CLDirectConvolutionLayerKernel.cpp b/src/core/CL/kernels/CLDirectConvolutionLayerKernel.cpp index 6de97d40af..c3d514adb4 100644 --- a/src/core/CL/kernels/CLDirectConvolutionLayerKernel.cpp +++ b/src/core/CL/kernels/CLDirectConvolutionLayerKernel.cpp @@ -93,8 +93,14 @@ Status validate_arguments(const ITensorInfo *input, const ITensorInfo *weights, inline bool can_run_optimized_kernel_for_bifrost(GPUTarget gpu_target, unsigned int conv_stride_x, unsigned int conv_stride_y, unsigned int kernel_size, DataType data_type, DataLayout data_layout) { - return gpu_target_is_in(gpu_target, GPUTarget::G71, GPUTarget::G72, GPUTarget::G51, GPUTarget::G51BIG, GPUTarget::G51LIT, GPUTarget::G76) && (kernel_size <= 5) - && (conv_stride_x == 1) && (conv_stride_y == 1) && (data_type == DataType::F32) && (data_layout == DataLayout::NCHW); + return gpu_target_is_in(gpu_target, + GPUTarget::G71, GPUTarget::G72, GPUTarget::G76, + GPUTarget::G51, GPUTarget::G51BIG, GPUTarget::G51LIT, + GPUTarget::G52, GPUTarget::G52LIT) + && (kernel_size <= 5) + && (conv_stride_x == 1) && (conv_stride_y == 1) + && (data_type == DataType::F32) + && (data_layout == DataLayout::NCHW); } inline void setup_num_elems(unsigned int &num_elems_read_per_iteration_x, unsigned int &num_elems_read_per_iteration_y, diff --git a/src/core/CL/kernels/CLGEMMMatrixAccumulateBiasesKernel.cpp b/src/core/CL/kernels/CLGEMMMatrixAccumulateBiasesKernel.cpp index 2f1f1bf865..93332de9d1 100644 --- a/src/core/CL/kernels/CLGEMMMatrixAccumulateBiasesKernel.cpp +++ b/src/core/CL/kernels/CLGEMMMatrixAccumulateBiasesKernel.cpp @@ -52,7 +52,11 @@ std::pair<Status, Window> validate_and_configure_window(ITensorInfo *accum, ITen unsigned int &num_elems_processed_per_iteration) { // Select the vector size to use (8 for Bifrost; 16 for Midgard). - num_elems_processed_per_iteration = gpu_target_is_in(gpu_target, GPUTarget::G71, GPUTarget::G72, GPUTarget::G51, GPUTarget::G51BIG, GPUTarget::G51LIT, GPUTarget::G76) ? 8 : 16; + bool is_gpu_bifrost = gpu_target_is_in(gpu_target, + GPUTarget::G71, GPUTarget::G72, GPUTarget::G76, + GPUTarget::G51, GPUTarget::G51BIG, GPUTarget::G51LIT, + GPUTarget::G52, GPUTarget::G52LIT); + num_elems_processed_per_iteration = is_gpu_bifrost ? 8 : 16; // Configure kernel window Window win = calculate_max_window(*accum, Steps(num_elems_processed_per_iteration)); diff --git a/src/core/GPUTarget.cpp b/src/core/GPUTarget.cpp index a14a9c9971..78e2df1599 100644 --- a/src/core/GPUTarget.cpp +++ b/src/core/GPUTarget.cpp @@ -51,6 +51,14 @@ arm_compute::GPUTarget get_bifrost_target(const std::string &version) { return arm_compute::GPUTarget::G51LIT; } + else if(version == "G52") + { + return arm_compute::GPUTarget::G52; + } + else if(version == "G52LIT") + { + return arm_compute::GPUTarget::G52LIT; + } else if(version == "G76") { return arm_compute::GPUTarget::G76; @@ -106,6 +114,8 @@ const std::string &string_from_target(GPUTarget target) { GPUTarget::G51, "g51" }, { GPUTarget::G51BIG, "g51big" }, { GPUTarget::G51LIT, "g51lit" }, + { GPUTarget::G52, "g52" }, + { GPUTarget::G52LIT, "g52lit" }, { GPUTarget::G76, "g76" }, { GPUTarget::TTRX, "ttrx" }, { GPUTarget::TBOX, "tbox" } |