aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/fixtures/QLSTMLayerNormalizationFixture.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/validation/fixtures/QLSTMLayerNormalizationFixture.h')
-rw-r--r--tests/validation/fixtures/QLSTMLayerNormalizationFixture.h34
1 files changed, 31 insertions, 3 deletions
diff --git a/tests/validation/fixtures/QLSTMLayerNormalizationFixture.h b/tests/validation/fixtures/QLSTMLayerNormalizationFixture.h
index 5d2cd2bd55..72af9d9241 100644
--- a/tests/validation/fixtures/QLSTMLayerNormalizationFixture.h
+++ b/tests/validation/fixtures/QLSTMLayerNormalizationFixture.h
@@ -26,6 +26,9 @@
#include "arm_compute/core/TensorShape.h"
#include "arm_compute/core/Types.h"
+#ifdef ARM_COMPUTE_CL
+#include "arm_compute/runtime/CL/CLScheduler.h"
+#endif /* ARM_COMPUTE_CL */
#include "arm_compute/runtime/NEON/NEScheduler.h"
#include "tests/AssetsLibrary.h"
#include "tests/Globals.h"
@@ -98,6 +101,8 @@ protected:
}
}
+ virtual void run_target(FunctionType &fn) = 0;
+
TensorType compute_target(const TensorShape &input_shape, const TensorShape &weight_shape, const TensorShape &bias_shape)
{
TensorType input = create_tensor<TensorType>(input_shape, _data_type, 1);
@@ -110,9 +115,7 @@ protected:
allocate_tensors({ &input, &weight, &bias, &output });
fill(AccessorType(input), AccessorType(weight), AccessorType(bias));
- ThreadInfo tinfo;
- tinfo.cpu_info = &NEScheduler::get().cpu_info();
- fn.run(fn.window(), tinfo);
+ run_target(fn);
return output;
}
@@ -136,6 +139,31 @@ protected:
QuantizationInfo _qinfo{};
};
+template <typename TensorType, typename AccessorType, typename FunctionType, typename T>
+class NEQLSTMLayerNormalizationValidationFixture : public QLSTMLayerNormalizationValidationFixture<TensorType, AccessorType, FunctionType, T>
+{
+protected:
+ void run_target(FunctionType &fn) override
+ {
+ ThreadInfo tinfo;
+ tinfo.cpu_info = &NEScheduler::get().cpu_info();
+ fn.run(fn.window(), tinfo);
+ }
+};
+
+#ifdef ARM_COMPUTE_CL
+template <typename TensorType, typename AccessorType, typename FunctionType, typename T>
+class CLQLSTMLayerNormalizationValidationFixture : public QLSTMLayerNormalizationValidationFixture<TensorType, AccessorType, FunctionType, T>
+{
+protected:
+ void run_target(FunctionType &fn) override
+ {
+ CLScheduler::get().default_init();
+ fn.run(fn.window(), CLScheduler::get().queue());
+ }
+};
+#endif /* ARM_COMPUTE_CL */
+
} // namespace validation
} // namespace test
} // namespace arm_compute