diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt index b7c619c3..f995bdf1 100644 --- a/Testing/CMakeLists.txt +++ b/Testing/CMakeLists.txt @@ -72,7 +72,9 @@ option(BENCHMARK "Benchmarking compiled" OFF) option(EXTBENCH "Benchmarking with external traces" OFF) option(NN "NN Tests included" OFF) option(REFLIB "Use already built reference lib" OFF) + option(FLOAT16TESTS "Float16 tests" OFF) +option(MICROBENCH "Micro benchmarks" OFF) project(Testing) @@ -100,6 +102,16 @@ add_library(TestingLib STATIC) add_library(FrameworkLib STATIC) if (BENCHMARK) + +if (MICROBENCH) + set (MICROSRC + Source/Benchmarks/MicroBenchmarksF32.cpp + Source/Benchmarks/MicroBenchmarksQ31.cpp + Source/Benchmarks/MicroBenchmarksQ15.cpp + Source/Benchmarks/MicroBenchmarksQ7.cpp + ) +endif() + set (NNSRC Source/Benchmarks/FullyConnectedBench.cpp Source/Benchmarks/PoolingBench.cpp @@ -268,6 +280,9 @@ target_sources(TestingLib PRIVATE GeneratedSource/TestDesc.cpp) if (BENCHMARK) target_compile_definitions(TestingLib PUBLIC BENCHMARK) + if (MICROBENCH) + target_sources(TestingLib PRIVATE ${MICROSRC}) + endif() endif() diff --git a/Testing/bench.txt b/Testing/bench.txt index db1dd305..c95e6d48 100755 --- a/Testing/bench.txt +++ b/Testing/bench.txt @@ -1469,4 +1469,118 @@ group Root { } } } + + group Compiler Benchmarks { + class = CompilerBenchmarks + folder = DSP + + group Micro Benchmarks { + class = MicroBenchmarks + folder = BasicMaths + + suite MicroBenchmarksF32 { + class = MicroBenchmarksF32 + folder = BasicMathsF32 + + ParamList { + NB + Summary NB + Names "NB Samples" + Formula "NB" + } + + Pattern INPUT1_F32_ID : Input1_f32.txt + Pattern INPUT2_F32_ID : Input2_f32.txt + Output OUT_SAMPLES_F32_ID : Output + + Params PARAM1_ID = { + A = [16,32,64,128,256] + } + + Functions { + While loop:test_while_f32 + For loop:test_for_f32 + For loop and array:test_array_f32 + } -> PARAM1_ID + } + + suite MicroBenchmarksQ31 { + class = MicroBenchmarksQ31 + folder = BasicMathsQ31 + + ParamList { + NB + Summary NB + Names "NB Samples" + Formula "NB" + } + + Pattern INPUT1_Q31_ID : Input1_q31.txt + Pattern INPUT2_Q31_ID : Input2_q31.txt + Output OUT_SAMPLES_Q31_ID : Output + + Params PARAM1_ID = { + A = [16,32,64,128,256] + } + + Functions { + While loop:test_while_q31 + For loop:test_for_q31 + For loop and array:test_array_q31 + } -> PARAM1_ID + } + + suite MicroBenchmarksQ15 { + class = MicroBenchmarksQ15 + folder = BasicMathsQ15 + + ParamList { + NB + Summary NB + Names "NB Samples" + Formula "NB" + } + + Pattern INPUT1_Q15_ID : Input1_q15.txt + Pattern INPUT2_Q15_ID : Input2_q15.txt + Output OUT_SAMPLES_Q15_ID : Output + + Params PARAM1_ID = { + A = [16,32,64,128,256] + } + + Functions { + While loop:test_while_q15 + For loop:test_for_q15 + For loop and array:test_array_q15 + } -> PARAM1_ID + } + + suite MicroBenchmarksQ7 { + class = MicroBenchmarksQ7 + folder = BasicMathsQ7 + + ParamList { + NB + Summary NB + Names "NB Samples" + Formula "NB" + } + + Pattern INPUT1_Q7_ID : Input1_q7.txt + Pattern INPUT2_Q7_ID : Input2_q7.txt + Output OUT_SAMPLES_Q7_ID : Output + + Params PARAM1_ID = { + A = [16,32,64,128,256] + } + + Functions { + While loop:test_while_q7 + For loop:test_for_q7 + For loop and array:test_array_q7 + } -> PARAM1_ID + } + } + } }