MCPcopy Create free account
hub / github.com/ARM-software/ComputeLibrary / validate_arguments

Function validate_arguments

src/gpu/cl/kernels/ClScaleKernel.cpp:66–92  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64}
65
66Status validate_arguments(const ITensorInfo *src, const ITensorInfo *dst, const ScaleKernelInfo &info)
67{
68 ARM_COMPUTE_RETURN_ERROR_ON_NULLPTR(src, dst);
69 ARM_COMPUTE_RETURN_ERROR_ON_SIZE_UNSUPPORTED(src, dst);
70 ARM_COMPUTE_RETURN_ERROR_ON_F16_UNSUPPORTED(src);
71 ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(src, 1, DataType::QASYMM8, DataType::QASYMM8_SIGNED,
72 DataType::U8, DataType::S16, DataType::F16, DataType::F32);
73 ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_DATA_TYPES(src, dst);
74 ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_QUANTIZATION_INFO(src, dst);
75 ARM_COMPUTE_RETURN_ERROR_ON(dst == src);
76 ARM_COMPUTE_RETURN_ERROR_ON(src->num_channels() != 1);
77 ARM_COMPUTE_RETURN_ERROR_ON(
78 info.align_corners &&
79 !arm_compute::scale_utils::is_align_corners_allowed_sampling_policy(info.sampling_policy));
80 ARM_COMPUTE_RETURN_ERROR_ON(is_data_type_quantized(src->data_type()) &&
81 !is_data_type_quantized_asymmetric(src->data_type()));
82
83 float scale_x = 0.f;
84 float scale_y = 0.f;
85 const DataLayout data_layout = info.data_layout == DataLayout::UNKNOWN ? src->data_layout() : info.data_layout;
86 std::tie(scale_x, scale_y) = calculate_scale_factors(src, dst, data_layout, info.align_corners);
87
88 ARM_COMPUTE_RETURN_ERROR_ON(info.interpolation_policy == InterpolationPolicy::AREA &&
89 (scale_x > 1.f || scale_y > 1.f));
90
91 return Status{};
92}
93} // namespace
94
95Status ClScaleKernel::validate(const ITensorInfo *src, const ITensorInfo *dst, const ScaleKernelInfo &info)

Callers 2

validateMethod · 0.70
configureMethod · 0.70

Calls 7

is_data_type_quantizedFunction · 0.85
calculate_scale_factorsFunction · 0.85
num_channelsMethod · 0.45
data_typeMethod · 0.45
data_layoutMethod · 0.45

Tested by

no test coverage detected