aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGian Marco Iodice <gianmarco.iodice@arm.com>2022-07-11 12:09:45 +0100
committerGian Marco Iodice <gianmarco.iodice@arm.com>2022-08-02 15:24:28 +0000
commit3c4d085da54c3d9727cb31718c5b407c18ff646a (patch)
tree7070f449fc9addea69c05dd34f43e02d7ec10642
parent9b921be1ff7283050eb39d9ce1b10b5c8bfc1300 (diff)
downloadComputeLibrary-3c4d085da54c3d9727cb31718c5b407c18ff646a.tar.gz
Update the GPUTarget list
Resolves COMPMID-5405 Change-Id: I995b5e79bef13529097ed17f7854763a4cf89272 Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/7986 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Gunes Bayir <gunes.bayir@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com>
-rw-r--r--arm_compute/core/GPUTarget.h52
-rw-r--r--src/core/GPUTarget.cpp36
-rw-r--r--tests/validation/UNIT/GPUTarget.cpp17
-rw-r--r--utils/TypePrinter.h31
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;