From 3c4d085da54c3d9727cb31718c5b407c18ff646a Mon Sep 17 00:00:00 2001 From: Gian Marco Iodice Date: Mon, 11 Jul 2022 12:09:45 +0100 Subject: Update the GPUTarget list Resolves COMPMID-5405 Change-Id: I995b5e79bef13529097ed17f7854763a4cf89272 Signed-off-by: Gian Marco Iodice Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/7986 Tested-by: Arm Jenkins Reviewed-by: Gunes Bayir Comments-Addressed: Arm Jenkins Benchmark: Arm Jenkins --- arm_compute/core/GPUTarget.h | 52 +++++++++++++++++++++---------------- src/core/GPUTarget.cpp | 36 +++++++++++++++++++++---- tests/validation/UNIT/GPUTarget.cpp | 17 ++++++++---- utils/TypePrinter.h | 31 ++++++++++++++++++++-- 4 files changed, 101 insertions(+), 35 deletions(-) diff --git a/arm_compute/core/GPUTarget.h b/arm_compute/core/GPUTarget.h index 7e2cfe1b6b..affa79a89e 100644 --- a/arm_compute/core/GPUTarget.h +++ b/arm_compute/core/GPUTarget.h @@ -33,29 +33,35 @@ namespace arm_compute /** Available GPU Targets */ enum class GPUTarget { - UNKNOWN = 0x101, - GPU_ARCH_MASK = 0xF00, - MIDGARD = 0x100, - BIFROST = 0x200, - VALHALL = 0x300, - T600 = 0x110, - T700 = 0x120, - T800 = 0x130, - G71 = 0x210, - G72 = 0x220, - G51 = 0x230, - G51BIG = 0x231, - G51LIT = 0x232, - G52 = 0x240, - G52LIT = 0x241, - G31 = 0x242, - G76 = 0x250, - G77 = 0x310, - G57 = 0x311, - G78 = 0x320, - G710 = 0x330, - G715 = 0x340, - G615 = 0x341 + UNKNOWN = 0x101, + GPU_ARCH_MASK = 0xF00, + GPU_GENERATION_MASK = 0x0F0, + MIDGARD = 0x100, + BIFROST = 0x200, + VALHALL = 0x300, + T600 = 0x110, + T700 = 0x120, + T800 = 0x130, + G71 = 0x210, + G72 = 0x220, + G51 = 0x221, + G51BIG = 0x222, + G51LIT = 0x223, + G31 = 0x224, + G76 = 0x230, + G52 = 0x231, + G52LIT = 0x232, + G77 = 0x310, + G57 = 0x311, + G78 = 0x320, + G68 = 0x321, + G78AE = 0x330, + G710 = 0x340, + G610 = 0x341, + G510 = 0x342, + G310 = 0x343, + G715 = 0x350, + G615 = 0x351, }; /** Enable bitwise operations on GPUTarget enumerations */ diff --git a/src/core/GPUTarget.cpp b/src/core/GPUTarget.cpp index e74abf6e7e..292acf8633 100644 --- a/src/core/GPUTarget.cpp +++ b/src/core/GPUTarget.cpp @@ -35,6 +35,18 @@ arm_compute::GPUTarget get_valhall_target(const std::string &version) { return arm_compute::GPUTarget::G77; } + else if(version.find("G57") != std::string::npos) + { + return arm_compute::GPUTarget::G57; + } + if(version.find("G68") != std::string::npos) + { + return arm_compute::GPUTarget::G68; + } + if(version.find("G78AE") != std::string::npos) + { + return arm_compute::GPUTarget::G78AE; + } if(version.find("G78") != std::string::npos) { return arm_compute::GPUTarget::G78; @@ -43,9 +55,17 @@ arm_compute::GPUTarget get_valhall_target(const std::string &version) { return arm_compute::GPUTarget::G710; } - else if(version.find("G57") != std::string::npos) + else if(version.find("G610") != std::string::npos) { - return arm_compute::GPUTarget::G57; + return arm_compute::GPUTarget::G610; + } + else if(version.find("G510") != std::string::npos) + { + return arm_compute::GPUTarget::G510; + } + else if(version.find("G310") != std::string::npos) + { + return arm_compute::GPUTarget::G310; } else if(version.find("G715") != std::string::npos) { @@ -143,15 +163,21 @@ const std::string &string_from_target(GPUTarget target) { GPUTarget::G51, "g51" }, { GPUTarget::G51BIG, "g51big" }, { GPUTarget::G51LIT, "g51lit" }, + { GPUTarget::G31, "g31" }, + { GPUTarget::G76, "g76" }, { GPUTarget::G52, "g52" }, { GPUTarget::G52LIT, "g52lit" }, - { GPUTarget::G76, "g76" }, { GPUTarget::G77, "g77" }, + { GPUTarget::G57, "g57" }, { GPUTarget::G78, "g78" }, + { GPUTarget::G68, "g68" }, + { GPUTarget::G78AE, "g78ae" }, { GPUTarget::G710, "g710" }, - { GPUTarget::G57, "g57" }, + { GPUTarget::G610, "g610" }, + { GPUTarget::G510, "g510" }, + { GPUTarget::G310, "g310" }, { GPUTarget::G715, "g715" }, - { GPUTarget::G615, "g615" } + { GPUTarget::G615, "g615" }, }; return gpu_target_map[target]; diff --git a/tests/validation/UNIT/GPUTarget.cpp b/tests/validation/UNIT/GPUTarget.cpp index 8f8ff91751..5ec2592f00 100644 --- a/tests/validation/UNIT/GPUTarget.cpp +++ b/tests/validation/UNIT/GPUTarget.cpp @@ -37,6 +37,7 @@ TEST_SUITE(GPUTarget) TEST_CASE(GetGPUTargetFromName, framework::DatasetMode::ALL) { + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-T000") == GPUTarget::MIDGARD, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-T600") == GPUTarget::T600, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-T700") == GPUTarget::T700, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-T800") == GPUTarget::T800, framework::LogLevel::ERRORS); @@ -45,16 +46,22 @@ TEST_CASE(GetGPUTargetFromName, framework::DatasetMode::ALL) ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G51") == GPUTarget::G51, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G51BIG") == GPUTarget::G51BIG, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G51LIT") == GPUTarget::G51LIT, framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G52") == GPUTarget::G52, framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G52LIT") == GPUTarget::G52LIT, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G31") == GPUTarget::G31, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G76") == GPUTarget::G76, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G76 r0p0") == GPUTarget::G76, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G52") == GPUTarget::G52, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G52LIT") == GPUTarget::G52LIT, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G77") == GPUTarget::G77, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G57") == GPUTarget::G57, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G78") == GPUTarget::G78, framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G78AE") == GPUTarget::G78, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G68") == GPUTarget::G68, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G78AE") == GPUTarget::G78AE, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G710") == GPUTarget::G710, framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G57") == GPUTarget::G57, framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(get_target_from_name("Mali-T000") == GPUTarget::MIDGARD, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G610") == GPUTarget::G610, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G510") == GPUTarget::G510, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G310") == GPUTarget::G310, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G715") == GPUTarget::G715, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G615") == GPUTarget::G615, framework::LogLevel::ERRORS); } TEST_CASE(GPUTargetIsIn, framework::DatasetMode::ALL) diff --git a/utils/TypePrinter.h b/utils/TypePrinter.h index f47943aa77..fe7f13a19e 100644 --- a/utils/TypePrinter.h +++ b/utils/TypePrinter.h @@ -2320,6 +2320,9 @@ inline ::std::ostream &operator<<(::std::ostream &os, const GPUTarget &gpu_targe case GPUTarget::GPU_ARCH_MASK: os << "GPU_ARCH_MASK"; break; + case GPUTarget::GPU_GENERATION_MASK: + os << "GPU_GENERATION_MASK"; + break; case GPUTarget::MIDGARD: os << "MIDGARD"; break; @@ -2353,21 +2356,45 @@ inline ::std::ostream &operator<<(::std::ostream &os, const GPUTarget &gpu_targe case GPUTarget::G51LIT: os << "G51LIT"; break; + case GPUTarget::G31: + os << "G31"; + break; case GPUTarget::G76: os << "G76"; break; + case GPUTarget::G52: + os << "G52"; + break; + case GPUTarget::G52LIT: + os << "G52LIT"; + break; case GPUTarget::G77: os << "G77"; break; + case GPUTarget::G57: + os << "G57"; + break; case GPUTarget::G78: os << "G78"; break; - case GPUTarget::G31: - os << "G31"; + case GPUTarget::G68: + os << "G68"; + break; + case GPUTarget::G78AE: + os << "G78AE"; break; case GPUTarget::G710: os << "G710"; break; + case GPUTarget::G610: + os << "G610"; + break; + case GPUTarget::G510: + os << "G510"; + break; + case GPUTarget::G310: + os << "G310"; + break; case GPUTarget::G715: os << "G715"; break; -- cgit v1.2.1