24.02.1
|
#include "tests/AssetsLibrary.h"
#include "tests/CL/CLAccessor.h"
#include "tests/datasets/SmallConvolutionLayerDataset.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/DirectConv2dFixture.h"
#include "tests/validation/reference/ConvolutionLayer.h"
#include "tests/validation/Validation.h"
Go to the source code of this file.
Namespaces | |
arm_compute | |
Copyright (c) 2017-2024 Arm Limited. | |
arm_compute::test | |
arm_compute::test::validation | |
Typedefs | |
template<typename T > | |
using | DynamicFusionGpuConv2dFixture = DynamicFusionGpuConv2dValidationFixture< CLTensor, CLAccessor, GpuConv2d, T > |
Synced with tests/validation/CL/ConvolutionLayer.cpp. More... | |
template<typename T > | |
using | DynamicFusionGpuDirectConv2dFixture = DynamicFusionDirectConv2dValidationFixture< CLTensor, CLAccessor, GpuConv2d, T > |
Functions | |
FIXTURE_DATA_TEST_CASE (RunSmall, DynamicFusionGpuConv2dFixture< float >, framework::DatasetMode::ALL, combine(combine(combine(datasets::SmallConvolutionLayerDataset(), framework::dataset::make("DataType", DataType::F32)), framework::dataset::make("DataLayout", {DataLayout::NHWC})), framework::dataset::make("QuantizationInfo", QuantizationInfo()))) | |
TEST_SUITE_END () FIXTURE_DATA_TEST_CASE(RunSmall = ActivationValidationQuantizedFixture<CLTensor, CLAccessor, CLActivationLayer, T> | |
[CLActivationLayer Test snippet] More... | |
combine (combine(combine(datasets::SmallConvolutionLayerDataset(), framework::dataset::make("DataType", DataType::F16)), framework::dataset::make("DataLayout", {DataLayout::NHWC})), framework::dataset::make("QuantizationInfo", QuantizationInfo()))) | |
zip (zip(zip(zip(framework::dataset::make("InputInfo", { TensorInfo(TensorShape(2U, 27U, 13U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 27U, 13U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 27U, 13U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 27U, 13U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 27U, 13U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(27U, 13U, 2U), 1, DataType::F32, DataLayout::NCHW), TensorInfo(TensorShape(2U, 32U, 16U), 1, DataType::QASYMM8, DataLayout::NHWC), TensorInfo(TensorShape(2U, 32U, 16U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 27U, 13U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 27U, 13U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 27U, 13U), 1, DataType::F32, DataLayout::NHWC), }), framework::dataset::make("WeightsInfo",{ TensorInfo(TensorShape(2U, 3U, 3U, 4U), 1, DataType::F16, DataLayout::NHWC), TensorInfo(TensorShape(3U, 3U, 3U, 4U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 3U, 3U, 4U, 3U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 3U, 3U, 4U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 3U, 3U, 4U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(3U, 3U, 2U, 4U), 1, DataType::F32, DataLayout::NCHW), TensorInfo(TensorShape(2U, 1U, 1U, 4U), 1, DataType::QASYMM8, DataLayout::NHWC), TensorInfo(TensorShape(2U, 1U, 1U, 4U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 13U, 13U, 4U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 5U, 3U, 4U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(2U, 3U, 3U, 4U), 1, DataType::F32, DataLayout::NHWC), })), framework::dataset::make("BiasesInfo",{ TensorInfo(TensorShape(4U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(4U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(4U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(3U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(4U, 2U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(25U), 1, DataType::F32, DataLayout::NCHW), TensorInfo(TensorShape(4U), 1, DataType::QASYMM8, DataLayout::NHWC), TensorInfo(TensorShape(4U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(4U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(4U), 1, DataType::F32, DataLayout::NHWC), TensorInfo(TensorShape(4U), 1, DataType::F32, DataLayout::NHWC), })), framework::dataset::make("Conv2dAttributes", { Conv2dAttributes().stride({1, 1}).pad({0, 0, 0, 0}), Conv2dAttributes().stride({1, 1}).pad({0, 0, 0, 0}), Conv2dAttributes().stride({1, 1}).pad({0, 0, 0, 0}), Conv2dAttributes().stride({1, 1}).pad({0, 0, 0, 0}), Conv2dAttributes().stride({1, 1}).pad({0, 0, 0, 0}), Conv2dAttributes().stride({1, 1}).pad({0, 0, 0, 0}), Conv2dAttributes().stride({1, 1}).pad({0, 0, 0, 0}), Conv2dAttributes().stride({1, 1}).pad({0, 0, 0, 0}), Conv2dAttributes().stride({1, 1}).pad({0, 0, 0, 0}), Conv2dAttributes().stride({1, 1}).pad({0, 0, 0, 0}), Conv2dAttributes().stride({3, 3}).pad({0, 0, 0, 0}), })), framework::dataset::make("Expected", { false, false, false, false, false, false, false, true, true, true, true })) | |
ARM_COMPUTE_EXPECT (is_valid==expected, framework::LogLevel::ERRORS) | |
FIXTURE_DATA_TEST_CASE (RunSmall, DynamicFusionGpuDirectConv2dFixture< half >, framework::DatasetMode::PRECOMMIT, combine(combine(combine(zip(zip(zip(zip(zip(framework::dataset::make("InputShape", { TensorShape(27U, 13U, 23U), TensorShape(19U, 5U, 16U, 4U), TensorShape(13U, 5U, 17U, 2U), TensorShape(32U, 37U, 13U) }), framework::dataset::make("StrideX", { 1, 3, 1, 1 })), framework::dataset::make("StrideY", { 1, 3, 2, 1 })), framework::dataset::make("PadX", { 1, 3, 0, 4 })), framework::dataset::make("PadY", { 1, 3, 0, 4 })), framework::dataset::make("KernelSize", { 3, 8, 1, 9 })), framework::dataset::make("NumKernels", { 17, 3, 1, 19 })), framework::dataset::make("DataType", DataType::F16)), framework::dataset::make("DataLayout", DataLayout::NHWC))) | |
FIXTURE_DATA_TEST_CASE (RunLarge, DynamicFusionGpuDirectConv2dFixture< half >, framework::DatasetMode::NIGHTLY, combine(combine(combine(zip(zip(zip(zip(zip(framework::dataset::make("InputShape", { TensorShape(800U, 800U, 3U) }), framework::dataset::make("StrideX", { 1 })), framework::dataset::make("StrideY", { 1 })), framework::dataset::make("PadX", { 1 })), framework::dataset::make("PadY", { 1 })), framework::dataset::make("KernelSize", { 9 })), framework::dataset::make("NumKernels", { 3 })), framework::dataset::make("DataType", DataType::F16)), framework::dataset::make("DataLayout", DataLayout::NHWC))) | |
combine (combine(combine(zip(zip(zip(zip(zip(framework::dataset::make("InputShape", { TensorShape(27U, 13U, 23U), TensorShape(19U, 5U, 16U, 4U), TensorShape(13U, 5U, 17U, 2U), TensorShape(32U, 37U, 13U) }), framework::dataset::make("StrideX", { 1, 3, 1, 1 })), framework::dataset::make("StrideY", { 1, 3, 2, 1 })), framework::dataset::make("PadX", { 1, 3, 0, 4 })), framework::dataset::make("PadY", { 1, 3, 0, 4 })), framework::dataset::make("KernelSize", { 3, 8, 1, 9 })), framework::dataset::make("NumKernels", { 17, 3, 1, 19 })), framework::dataset::make("DataType", DataType::F32)), framework::dataset::make("DataLayout", DataLayout::NHWC))) | |
FIXTURE_DATA_TEST_CASE (RunLarge, DynamicFusionGpuDirectConv2dFixture< float >, framework::DatasetMode::NIGHTLY, combine(combine(combine(zip(zip(zip(zip(zip(framework::dataset::make("InputShape", { TensorShape(800U, 800U, 3U) }), framework::dataset::make("StrideX", { 1 })), framework::dataset::make("StrideY", { 1 })), framework::dataset::make("PadX", { 1 })), framework::dataset::make("PadY", { 1 })), framework::dataset::make("KernelSize", { 9 })), framework::dataset::make("NumKernels", { 3 })), framework::dataset::make("DataType", DataType::F32)), framework::dataset::make("DataLayout", DataLayout::NHWC))) | |
Variables | |
DynamicFusionGpuConv2dFixture< half > | |
conv2d_attrs | |
auto | context = GpuWorkloadContext{ &cl_compile_ctx } |
GpuWorkloadSketch | sketch { &context } |
const ITensorInfo * | sketch_input_info = context.create_tensor_info(input_info) |
const ITensorInfo * | sketch_weights_info = context.create_tensor_info(weights_info) |
const ITensorInfo * | sketch_biases_info = context.create_tensor_info(biases_info) |
bool | is_valid = bool(GpuConv2d::validate_op(sketch, sketch_input_info, sketch_weights_info, sketch_biases_info, conv2d_attrs)) |
DynamicFusionGpuDirectConv2dFixture< float > | |