diff options
author | Viet-Hoa Do <viet-hoa.do@arm.com> | 2024-01-18 16:10:46 +0000 |
---|---|---|
committer | Viet-Hoa Do <viet-hoa.do@arm.com> | 2024-01-23 09:52:40 +0000 |
commit | fdf56fb9d414a754e7cedfdc1351ab0ce2866a0c (patch) | |
tree | 75b48446e9b4041ae9c520070e432d32b9748ef7 /tests/validation/dynamic_fusion/gpu/cl/Add.cpp | |
parent | e812c0cafc6f224ec9caca30c2e97ec062012d53 (diff) | |
download | ComputeLibrary-fdf56fb9d414a754e7cedfdc1351ab0ce2866a0c.tar.gz |
Make GpuWorkloadContext own all tensor info objects
* The tensor info objects created by calling create_tensor_info
is now solely owned by the context object. The user only receives
pointers to those objects.
- Internally pointers to tensor info objects are used in various
places. It's safer for dynamic fusion to manage these objects
directly rather than relying on the users.
- The validation test is updated to use the modified API.
* Make various changes in dynamic fusion API to make it more
friendly (e.g. making some of the objects moveable).
Partially resolves: COMPMID-6707
Signed-off-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Change-Id: Ifee70e53c05f8e7b72bf9ef123701ff291c5ee80
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10990
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Jakub Sujak <jakub.sujak@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests/validation/dynamic_fusion/gpu/cl/Add.cpp')
-rw-r--r-- | tests/validation/dynamic_fusion/gpu/cl/Add.cpp | 104 |
1 files changed, 54 insertions, 50 deletions
diff --git a/tests/validation/dynamic_fusion/gpu/cl/Add.cpp b/tests/validation/dynamic_fusion/gpu/cl/Add.cpp index 09a8f3fe39..a358d47bdd 100644 --- a/tests/validation/dynamic_fusion/gpu/cl/Add.cpp +++ b/tests/validation/dynamic_fusion/gpu/cl/Add.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Arm Limited. + * Copyright (c) 2022-2024 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -29,14 +29,13 @@ #include "arm_compute/dynamic_fusion/sketch/gpu/operators/GpuAdd.h" #include "tests/CL/CLAccessor.h" -#include "tests/framework/Fixture.h" -#include "tests/framework/Macros.h" -#include "tests/framework/datasets/Datasets.h" -#include "tests/validation/Validation.h" - #include "tests/datasets/DynamicFusionDataset.h" #include "tests/datasets/ShapeDatasets.h" +#include "tests/framework/datasets/Datasets.h" +#include "tests/framework/Fixture.h" +#include "tests/framework/Macros.h" #include "tests/validation/fixtures/dynamic_fusion/gpu/cl/ElementwiseBinaryFixture.h" +#include "tests/validation/Validation.h" namespace arm_compute { @@ -97,32 +96,36 @@ DATA_TEST_CASE(Validate, framework::DatasetMode::ALL, zip(zip( auto lhs_info = context.create_tensor_info(input1_info); auto rhs_info = context.create_tensor_info(input2_info); - bool res = bool(GpuAdd::validate_op(sketch, &lhs_info, &rhs_info)); + bool res = bool(GpuAdd::validate_op(sketch, lhs_info, rhs_info)); ARM_COMPUTE_EXPECT(res == expected, framework::LogLevel::ERRORS); } // clang-format on // *INDENT-ON* -constexpr AbsoluteTolerance<float> tolerance_f(0.0001f); /**< Tolerance value for comparing reference's output against implementation's output for DataType::F32 and DataType::F16 */ -constexpr float tolerance_num = 0.0001f; /**< Tolerance number */ +constexpr AbsoluteTolerance<float> tolerance_f( + 0.0001f); /**< Tolerance value for comparing reference's output against implementation's output for DataType::F32 and DataType::F16 */ +constexpr float tolerance_num = 0.0001f; /**< Tolerance number */ template <typename T> -using DynamicFusionCLAddFixture = DynamicFusionGpuElementwiseBinaryOneOpValidationFixture<CLTensor, CLAccessor, GpuAdd, T>; +using DynamicFusionCLAddFixture = + DynamicFusionGpuElementwiseBinaryOneOpValidationFixture<CLTensor, CLAccessor, GpuAdd, T>; template <typename T> -using DynamicFusionCLAddBroadcastFixture = DynamicFusionGpuElementwiseBinaryBroadcastOneOpValidationFixture<CLTensor, CLAccessor, GpuAdd, T>; +using DynamicFusionCLAddBroadcastFixture = + DynamicFusionGpuElementwiseBinaryBroadcastOneOpValidationFixture<CLTensor, CLAccessor, GpuAdd, T>; template <typename T> -using DynamicFusionCLAddTwoOpsFixture = DynamicFusionGpuElementwiseBinaryTwoOpsValidationFixture<CLTensor, CLAccessor, GpuAdd, T>; +using DynamicFusionCLAddTwoOpsFixture = + DynamicFusionGpuElementwiseBinaryTwoOpsValidationFixture<CLTensor, CLAccessor, GpuAdd, T>; TEST_SUITE(FP32) FIXTURE_DATA_TEST_CASE(RunSmallOneOp, DynamicFusionCLAddFixture<float>, framework::DatasetMode::PRECOMMIT, - combine(combine(combine(framework::dataset::make("ElementwiseOp", { ArithmeticOperation::ADD }), + combine(combine(combine(framework::dataset::make("ElementwiseOp", {ArithmeticOperation::ADD}), datasets::SmallShapes()), - framework::dataset::make("DataType", { DataType::F32 })), - framework::dataset::make("InPlace", { false }))) + framework::dataset::make("DataType", {DataType::F32})), + framework::dataset::make("InPlace", {false}))) { // Validate output validate(CLAccessor(_target), _reference, tolerance_f); @@ -130,10 +133,10 @@ FIXTURE_DATA_TEST_CASE(RunSmallOneOp, FIXTURE_DATA_TEST_CASE(RunLargeOneOp, DynamicFusionCLAddFixture<float>, framework::DatasetMode::NIGHTLY, - combine(combine(combine(framework::dataset::make("ElementwiseOp", { ArithmeticOperation::ADD }), + combine(combine(combine(framework::dataset::make("ElementwiseOp", {ArithmeticOperation::ADD}), datasets::LargeShapes()), - framework::dataset::make("DataType", { DataType::F32 })), - framework::dataset::make("InPlace", { false }))) + framework::dataset::make("DataType", {DataType::F32})), + framework::dataset::make("InPlace", {false}))) { // Validate output validate(CLAccessor(_target), _reference, tolerance_f); @@ -141,10 +144,10 @@ FIXTURE_DATA_TEST_CASE(RunLargeOneOp, FIXTURE_DATA_TEST_CASE(RunSmallBroadcastOneOp, DynamicFusionCLAddBroadcastFixture<float>, framework::DatasetMode::PRECOMMIT, - combine(combine(combine(framework::dataset::make("ElementwiseOp", { ArithmeticOperation::ADD }), + combine(combine(combine(framework::dataset::make("ElementwiseOp", {ArithmeticOperation::ADD}), datasets::TemporaryLimitedSmallShapesBroadcast()), - framework::dataset::make("DataType", { DataType::F32 })), - framework::dataset::make("InPlace", { false }))) + framework::dataset::make("DataType", {DataType::F32})), + framework::dataset::make("InPlace", {false}))) { // Validate output validate(CLAccessor(_target), _reference, tolerance_f); @@ -153,22 +156,23 @@ FIXTURE_DATA_TEST_CASE(RunSmallBroadcastOneOp, FIXTURE_DATA_TEST_CASE(RunLargeBroadcastOneOp, DynamicFusionCLAddBroadcastFixture<float>, framework::DatasetMode::NIGHTLY, - combine(combine(combine(framework::dataset::make("ElementwiseOp", { ArithmeticOperation::ADD }), + combine(combine(combine(framework::dataset::make("ElementwiseOp", {ArithmeticOperation::ADD}), datasets::TemporaryLimitedLargeShapesBroadcast()), - framework::dataset::make("DataType", { DataType::F32 })), - framework::dataset::make("InPlace", { false }))) + framework::dataset::make("DataType", {DataType::F32})), + framework::dataset::make("InPlace", {false}))) { // Validate output validate(CLAccessor(_target), _reference, tolerance_f); } -FIXTURE_DATA_TEST_CASE(RunSmallTwoOps, - DynamicFusionCLAddTwoOpsFixture<float>, - framework::DatasetMode::PRECOMMIT, - combine(combine(combine(combine(framework::dataset::make("ElementwiseOp", { ArithmeticOperation::ADD }), - datasets::DynamicFusionElementwiseBinaryTwoOpsSmallShapes()), - framework::dataset::make("DataType", { DataType::F32 })), - framework::dataset::make("InPlace", { false })), - framework::dataset::make("FuseTwoOps", { true }))) +FIXTURE_DATA_TEST_CASE( + RunSmallTwoOps, + DynamicFusionCLAddTwoOpsFixture<float>, + framework::DatasetMode::PRECOMMIT, + combine(combine(combine(combine(framework::dataset::make("ElementwiseOp", {ArithmeticOperation::ADD}), + datasets::DynamicFusionElementwiseBinaryTwoOpsSmallShapes()), + framework::dataset::make("DataType", {DataType::F32})), + framework::dataset::make("InPlace", {false})), + framework::dataset::make("FuseTwoOps", {true}))) { // Validate output validate(CLAccessor(_target), _reference, tolerance_f); @@ -179,10 +183,10 @@ TEST_SUITE(FP16) FIXTURE_DATA_TEST_CASE(RunSmallOneOp, DynamicFusionCLAddFixture<half>, framework::DatasetMode::ALL, - combine(combine(combine(framework::dataset::make("ElementwiseOp", { ArithmeticOperation::ADD }), + combine(combine(combine(framework::dataset::make("ElementwiseOp", {ArithmeticOperation::ADD}), datasets::SmallShapes()), - framework::dataset::make("DataType", { DataType::F16 })), - framework::dataset::make("InPlace", { false }))) + framework::dataset::make("DataType", {DataType::F16})), + framework::dataset::make("InPlace", {false}))) { // Validate output validate(CLAccessor(_target), _reference, tolerance_f, tolerance_num); @@ -191,10 +195,10 @@ FIXTURE_DATA_TEST_CASE(RunSmallOneOp, FIXTURE_DATA_TEST_CASE(RunSmallBroadcastOneOp, DynamicFusionCLAddBroadcastFixture<half>, framework::DatasetMode::ALL, - combine(combine(combine(framework::dataset::make("ElementwiseOp", { ArithmeticOperation::ADD }), + combine(combine(combine(framework::dataset::make("ElementwiseOp", {ArithmeticOperation::ADD}), datasets::TemporaryLimitedSmallShapesBroadcast()), - framework::dataset::make("DataType", { DataType::F16 })), - framework::dataset::make("InPlace", { false }))) + framework::dataset::make("DataType", {DataType::F16})), + framework::dataset::make("InPlace", {false}))) { // Validate output validate(CLAccessor(_target), _reference, tolerance_f, tolerance_num); @@ -206,10 +210,10 @@ TEST_SUITE(S32) FIXTURE_DATA_TEST_CASE(RunSmall, DynamicFusionCLAddFixture<int32_t>, framework::DatasetMode::PRECOMMIT, - combine(combine(combine(framework::dataset::make("ElementwiseOp", { ArithmeticOperation::ADD }), + combine(combine(combine(framework::dataset::make("ElementwiseOp", {ArithmeticOperation::ADD}), datasets::SmallShapes()), - framework::dataset::make("DataType", { DataType::S32 })), - framework::dataset::make("InPlace", { false }))) + framework::dataset::make("DataType", {DataType::S32})), + framework::dataset::make("InPlace", {false}))) { // Validate output validate(CLAccessor(_target), _reference); @@ -220,10 +224,10 @@ TEST_SUITE(S16) FIXTURE_DATA_TEST_CASE(RunSmall, DynamicFusionCLAddFixture<int16_t>, framework::DatasetMode::PRECOMMIT, - combine(combine(combine(framework::dataset::make("ElementwiseOp", { ArithmeticOperation::ADD }), + combine(combine(combine(framework::dataset::make("ElementwiseOp", {ArithmeticOperation::ADD}), datasets::SmallShapes()), - framework::dataset::make("DataType", { DataType::S16 })), - framework::dataset::make("InPlace", { false }))) + framework::dataset::make("DataType", {DataType::S16})), + framework::dataset::make("InPlace", {false}))) { // Validate output validate(CLAccessor(_target), _reference); @@ -231,10 +235,10 @@ FIXTURE_DATA_TEST_CASE(RunSmall, FIXTURE_DATA_TEST_CASE(RunLarge, DynamicFusionCLAddFixture<int16_t>, framework::DatasetMode::NIGHTLY, - combine(combine(combine(framework::dataset::make("ElementwiseOp", { ArithmeticOperation::ADD }), + combine(combine(combine(framework::dataset::make("ElementwiseOp", {ArithmeticOperation::ADD}), datasets::LargeShapes()), - framework::dataset::make("DataType", { DataType::S16 })), - framework::dataset::make("InPlace", { false }))) + framework::dataset::make("DataType", {DataType::S16})), + framework::dataset::make("InPlace", {false}))) { // Validate output validate(CLAccessor(_target), _reference); @@ -245,10 +249,10 @@ TEST_SUITE(U8) FIXTURE_DATA_TEST_CASE(RunSmall, DynamicFusionCLAddFixture<uint8_t>, framework::DatasetMode::PRECOMMIT, - combine(combine(combine(framework::dataset::make("ElementwiseOp", { ArithmeticOperation::ADD }), + combine(combine(combine(framework::dataset::make("ElementwiseOp", {ArithmeticOperation::ADD}), datasets::SmallShapes()), - framework::dataset::make("DataType", { DataType::U8 })), - framework::dataset::make("InPlace", { false }))) + framework::dataset::make("DataType", {DataType::U8})), + framework::dataset::make("InPlace", {false}))) { // Validate output validate(CLAccessor(_target), _reference); |