1group Root {
2    class = Root
3
4    group DSP Benchmarks {
5        class = DSPBenchmarks
6        folder = DSP
7
8        group Statistics Benchmarks {
9           class = Stats
10           folder = Stats
11
12           suite Statistics Benchmarks F16 {
13              class = StatsF16
14              folder = StatsF16
15
16              ParamList {
17                  NB
18                  Summary NB
19                  Names "NB Samples"
20                  Formula "NB"
21              }
22
23              Pattern INPUT1_F16_ID : InputBench1_f16.txt
24              Pattern INPUT2_F16_ID : InputBench2_f16.txt
25
26              Output  OUT_F16_ID : Output
27              Output  OUT_S16_ID : Index
28              Output  TMP_F16_ID : Temp
29
30              Params PARAM1_ID = {
31                  A = [16,32,64,128,256]
32              }
33
34              Functions {
35                Vector maximum:test_max_f16
36                Vector average:test_mean_f16
37                Vector minimum:test_min_f16
38                Vector energy:test_power_f16
39                Vector root mean square:test_rms_f16
40                Vector standard deviation:test_std_f16
41                Vector variance:test_var_f16
42                Entropy:test_entropy_f16
43                Vector logsumexp:test_logsumexp_f16
44                Kullback Leibler divergence:test_kullback_leibler_f16
45                Vector logsumexp dot product:test_logsumexp_dot_prod_f16
46                Vector max with no index:test_max_no_idx_f16
47                Vector absolute maximum:test_absmax_f16
48                Vector absolute minimum:test_absmin_f16
49              } -> PARAM1_ID
50
51           }
52
53        }
54
55        group Basic Maths {
56           class = BasicBenchmarks
57           folder = BasicMaths
58
59           suite Basic Maths Benchmarks F16 {
60              class = BasicMathsBenchmarksF16
61              folder = BasicMathsF16
62
63              ParamList {
64                  NB
65                  Summary NB
66                  Names "NB Samples"
67                  Formula "NB"
68              }
69
70              Pattern INPUT1_F16_ID : Input1_f16.txt
71              Pattern INPUT2_F16_ID : Input2_f16.txt
72              Output  OUT_SAMPLES_F16_ID : Output
73              Params PARAM1_ID = {
74                  A = [16,32,64,128,256]
75              }
76
77              Functions {
78                 Elementwise multiplication:vec_mult_f16
79                 Vector addition:vec_add_f16
80                 Vector substraction:vec_sub_f16
81                 Elementwise absolute value:vec_abs_f16
82                 Elementwise negation:vec_negate_f16
83                 Elementwise offset:vec_offset_f16
84                 Vector scaling:vec_scale_f16
85                 Dot product:vec_dot_f16
86              } -> PARAM1_ID
87           }
88
89        }
90
91        group Complex Maths {
92           class = ComplexBenchmarks
93           folder = ComplexMaths
94
95           suite ComplexMaths Benchmarks F16 {
96              class = ComplexMathsBenchmarksF16
97              folder = ComplexMathsF16
98
99              ParamList {
100                  NB
101                  Summary NB
102                  Names "NB Samples"
103                  Formula "NB"
104              }
105
106              Pattern INPUT1_F16_ID : Input1_f16.txt
107              Pattern INPUT2_F16_ID : Input2_f16.txt
108              Pattern INPUT3_F16_ID : Input3_f16.txt
109              Output  OUT_SAMPLES_F16_ID : Output
110              Params PARAM1_ID = {
111                  A = [16,32,64,128,256]
112              }
113
114              Functions {
115                 Elementwise conjugate:vec_conj_f16
116                 Complex dot product:vec_dot_prod_f16
117                 Elementwise modulus:vec_mag_f16
118                 Elementwise modulus squared:vec_mag_squared_f16
119                 Elementwise complex multiplication:vec_mult_cmplx_f16
120                 Vector scaling by real number:vec_mult_real_f16
121              } -> PARAM1_ID
122           }
123
124        }
125
126        group Filtering {
127           class = DSPFiltering
128           folder = Filtering
129
130           group FIR {
131             class = FIR
132             folder = FIR
133
134             suite FIR F16 {
135                class = FIRF16
136                folder = FIRF16
137
138                ParamList {
139                  NumTaps, NB
140                  Summary NumTaps, NB
141                  Names "Number of taps","Number of samples"
142                  Formula "NumTaps * NB"
143                }
144
145                Pattern SAMPLES1_F16_ID : Samples1_f16.txt
146                Pattern REFS1_F16_ID : Refs1_f16.txt
147                Pattern COEFS1_F16_ID : Coefs1_f16.txt
148
149                Output  OUT_SAMPLES_F16_ID : Output
150                Output  STATE_F16_ID : State
151                Output  ERR_F16_ID : Err
152
153                Params PARAM1_ID = {
154                  NumTaps = [16,32,64]
155                  NB = [64,128,256]
156                }
157
158                Functions {
159                   FIR Filter:test_fir_f16
160                } -> PARAM1_ID
161             }
162
163           }
164
165           group Convolutions / Correlations {
166             class = MISC
167             folder = MISC
168
169             suite Convolutions / Correlations F16 {
170                class = MISCF16
171                folder = MISCF16
172
173                ParamList {
174                  NBA, NBB
175                  Summary NBA, NBB
176                  Names "Number of samples A,Number of samples B"
177                  Formula "NBA * NBB"
178                }
179
180                Pattern INPUTSA1_F16_ID : InputsA1_f16.txt
181                Pattern INPUTSB1_F16_ID : InputsB1_f16.txt
182
183                Output  OUT_SAMPLES_F16_ID : Output
184
185                Params PARAM1_ID = {
186                  NBA = [9,16,64]
187                  NBB = [9,16,128]
188                }
189
190                Functions {
191                   disabled{Convolution:test_conv_f16}
192                   Correlation:test_correlate_f16
193                } -> PARAM1_ID
194              }
195
196
197           }
198
199
200           group BiQuads {
201             class = BIQUAD
202             folder = BIQUAD
203
204             suite BiQuads F16 {
205                class = BIQUADF16
206                folder = BIQUADF16
207
208                ParamList {
209                  NumStages, NB
210                  Summary NumStages, NB
211                  Names "Number of stages","Number of samples"
212                  Formula "NumStages * NB"
213                }
214
215                Pattern SAMPLES1_F16_ID : Samples1_f16.txt
216                Pattern COEFS1_F16_ID : Coefs1_f16.txt
217
218                Output  OUT_SAMPLES_F16_ID : Output
219                Output  STATE_F16_ID : State
220                Output  NEON_COEFS_F16_ID : NeonCoefs
221
222                Params PARAM1_ID = {
223                  NumStages = [1,2,4]
224                  NB = [16,128,256]
225                }
226
227                Functions {
228                   Cascaded BiQuad Filter DF1:test_biquad_cascade_df1_f16
229                   Cascaded BiQuad Filter DF2T:test_biquad_cascade_df2T_f16
230                   Cascaded BiQuad Filter Stereo DF2T:test_biquad_cascade_stereo_df2T_f16
231                } -> PARAM1_ID
232              }
233
234           }
235        }
236
237        group Fast Maths {
238           class = FastMath
239           folder = FastMath
240
241           suite Fast Maths F16 {
242                class = FastMathF16
243                folder = FastMathF16
244
245                ParamList {
246                  NB
247                  Summary NB
248                  Names "Number of samples"
249                  Formula "NB"
250                }
251
252                Pattern SAMPLES_F16_ID : Samples1_f16.txt
253                Output  OUT_SAMPLES_F16_ID : Output
254
255                Params PARAM1_ID = {
256                  NB = [64,128,256]
257                }
258
259                Functions {
260                   disabled{Cosine:test_cos_f16}
261                   disabled{Sine:test_sin_f16}
262                   Square Root:test_sqrt_f16
263                } -> PARAM1_ID
264             }
265
266        }
267
268        group Bayes{
269           class = Bayes
270           folder = Bayes
271
272           suite Bayes F16 {
273              class = BayesF16
274              folder = BayesF16
275
276              ParamList {
277                  VECDIM,NBCLASSES
278                  Summary VECDIM,NBCLASSES
279                  Names "Vector dimension","Number of classes"
280                  Formula "VECDIM*NBCLASSES"
281                }
282
283              Pattern DIMS2_S16_ID : DimsBench2_s16.txt
284              Pattern INPUTS2_F16_ID : Inputs2_f16.txt
285              Pattern PARAMS2_F16_ID : Params2_f16.txt
286              Pattern PREDICTS2_S16_ID : Predicts2_s16.txt
287
288              Output  OUT_PROBA_F16_ID : Probas
289              Output  OUT_PREDICT_S16_ID : Predicts
290
291              // Must be consistent with the Python script
292              Params PARAM1_ID = {
293                  VECDIM = [12,14,20]
294                  NBCLASSES = [3,5,4]
295                }
296
297              Functions {
298                 Naive Gaussian Bayes Predictor:test_gaussian_naive_bayes_predict_f16
299              } -> PARAM1_ID
300           }
301        }
302
303        group Distance  {
304           class = Distance
305           folder = Distance
306
307           suite Distance F16 {
308              class = DistanceF16
309              folder = DistanceF16
310
311              ParamList {
312                  NB
313                  Summary NB
314                  Names "NB Samples"
315                  Formula "NB"
316              }
317
318              Pattern INPUTA_F16_ID : InputBenchA1_f16.txt
319              Pattern INPUTB_F16_ID : InputBenchB1_f16.txt
320
321              Pattern INPUTA_PROBA_F16_ID : InputBenchProbaA1_f16.txt
322              Pattern INPUTB_PROBA_F16_ID : InputBenchProbaB1_f16.txt
323
324              Output  TMPA_F16_ID : TmpA
325              Output  TMPB_F16_ID : TmpB
326
327              Params PARAM1_ID = {
328                  NB = [16,32,64,128,256]
329              }
330
331              Functions {
332                 Bray Curtis distance:test_braycurtis_distance_f16
333                 Canberra distance:test_canberra_distance_f16
334                 Chebyshev distance:test_chebyshev_distance_f16
335                 Cityblock distance:test_cityblock_distance_f16
336                 Correlation distance:test_correlation_distance_f16
337                 Cosine distance:test_cosine_distance_f16
338                 Euclidean distance:test_euclidean_distance_f16
339                 Jensen Shannon distance:test_jensenshannon_distance_f16
340                 Minkowski distance:test_minkowski_distance_f16
341              } -> PARAM1_ID
342           }
343
344        }
345
346        group SVM  {
347           class = SVM
348           folder = SVM
349
350           suite SVM F16 {
351              class = SVMF16
352              folder = SVMF16
353
354              ParamList {
355                  VECDIM,NBVECS
356                  Summary VECDIM,NBVECS
357                  Names "Vector dimension","Number of suppot vectors"
358                  Formula "VECDIM*NBVECS"
359              }
360
361              Pattern INPUT_F16_ID : InputsBench6_f16.txt
362
363              Pattern DIMS_LINEAR_S16_ID : DimsLinear6_s16.txt
364              Pattern PARAMS_LINEAR_F16_ID : ParamsLinear6_f16.txt
365
366              Pattern DIMS_POLY_S16_ID : DimsPoly6_s16.txt
367              Pattern PARAMS_POLY_F16_ID : ParamsPoly6_f16.txt
368
369              Pattern DIMS_RBF_S16_ID : DimsRBF6_s16.txt
370              Pattern PARAMS_RBF_F16_ID : ParamsRBF6_f16.txt
371
372              Pattern DIMS_SIGMOID_S16_ID : DimsSigmoid6_s16.txt
373              Pattern PARAMS_SIGMOID_F16_ID : ParamsSigmoid6_f16.txt
374
375              Output  OUT_S32_ID : Output
376
377              // Must be consistent with the Python script
378              Params PARAM1_ID = {
379                  VECDIM = [16,32,64]
380                  NBVECS = [8,16,32]
381                }
382
383              Functions {
384                 Linear SVM:test_svm_linear_predict_f16
385                 Polynomial SVM:test_svm_polynomial_predict_f16
386                 RBF SVM:test_svm_rbf_predict_f16
387                 Sigmoid SVM:test_svm_sigmoid_predict_f16
388              } -> PARAM1_ID
389           }
390        }
391
392        group Barycenter {
393           class = Barycenter
394
395           suite Barycenter {
396                class = SupportBarF16
397                folder = SupportBarF16
398
399                ParamList {
400                  NB,VECDIM
401                  Summary NB,VECDIM
402                  Names "Number of samples","Vector dimension"
403                  Formula "NB*VECDIM"
404                }
405
406                Pattern SAMPLES_F16_ID : Samples1_f16.txt
407                Pattern COEFS_F16_ID : Coefs1_f16.txt
408                Output  OUT_SAMPLES_F16_ID : Output
409
410                Params PARAM1_ID = {
411                  NB = [16,64,128]
412                  VECDIM = [5,10,15]
413                }
414
415                Functions {
416                   Barycenter:test_barycenter_f16
417                } -> PARAM1_ID
418
419           }
420
421        }
422
423        group Support Functions {
424           class = Support
425           folder = Support
426
427           suite Support Functions F16 {
428                class = SupportF16
429                folder = SupportF16
430
431                ParamList {
432                  NB
433                  Summary NB
434                  Names "Number of samples"
435                  Formula "NB"
436                }
437
438                Pattern SAMPLES_F32_ID : Samples1_f32.txt
439                Pattern SAMPLES_F16_ID : Samples11_f16.txt
440                Pattern SAMPLES_Q15_ID : Samples3_q15.txt
441
442                Pattern INPUTS6_F16_ID : Inputs6_f16.txt
443                Pattern WEIGHTS6_F16_ID : Weights6_f16.txt
444                Pattern REF6_F16_ID : Ref6_f16.txt
445
446                Output  OUT_SAMPLES_F16_ID : Output
447
448                Params PARAM1_ID = {
449                  NB = [64,128,256]
450                }
451
452                Functions {
453                   Vector Copy:test_copy_f16
454                   Vector Filling:test_fill_f16
455                   Elementwise q15 to f16:test_q15_to_f16
456                   Elementwise f32 to f16:test_f32_to_f16
457                   Weighted sum:test_weighted_sum_f16
458                } -> PARAM1_ID
459             }
460
461        }
462
463        group Matrix {
464           class = Matrix
465           folder = Matrix
466
467           group Matrix Operators with one matrix size {
468              class = Unary
469              folder = Unary
470
471              suite Unary Matrix Operators F16 {
472                class = UnaryF16
473                folder = UnaryF16
474
475                ParamList {
476                  NBR,NBC
477                  Summary NBR,NBC
478                  Names "Number of rows","Number of columns"
479                  Formula "NBR*NBC"
480                }
481
482                Pattern INPUTA_F16_ID : InputA1_f16.txt
483                Pattern INPUTAC_F16_ID : InputAC1_f16.txt
484                Pattern INPUTVEC1_F16_ID : InputVec1_f16.txt
485
486                Pattern DIMSCHOLESKY1_DPO_S16_ID : DimsCholeskyDPO1_s16.txt
487                Pattern DIMSCHOLESKY1_SDPO_S16_ID : DimsCholeskySDPO1_s16.txt
488                Pattern INPUTSCHOLESKY1_DPO_F16_ID : InputCholeskyDPO1_f16.txt
489                Pattern INPUTSCHOLESKY1_SDPO_F16_ID : InputCholeskySDPO1_f16.txt
490
491                Pattern REFCHOLESKY1_DPO_F16_ID : RefCholeskyDPO1_f16.txt
492
493                Pattern REFLDLT_D_DPO1_F16_ID : RefLDLT_D_DPO1_f16.txt
494                Pattern REFLDLT_LL_DPO1_F16_ID : RefLDLT_LL_DPO1_f16.txt
495                Pattern REFLDLT_PERM_DPO1_F16_ID : RefLDLT_PERM_DPO1_s16.txt
496
497                Pattern REFLDLT_D_SDPO1_F16_ID : RefLDLT_D_SDPO1_f16.txt
498                Pattern REFLDLT_LL_SDPO1_F16_ID : RefLDLT_LL_SDPO1_f16.txt
499                Pattern REFLDLT_PERM_SDPO1_F16_ID : RefLDLT_PERM_SDPO1_s16.txt
500
501                Pattern INPUT_UT_DPO_F16_ID : InputUTDPO1_f16.txt
502                Pattern INPUT_LT_DPO_F16_ID : InputLTDPO1_f16.txt
503                Pattern INPUT_RNDA_DPO_F16_ID : InputRNDA1_f16.txt
504
505                Pattern REF_UTINV_DPO_F16_ID : Ref_UTINV_DPO1_f16.txt
506                Pattern REF_LTINV_DPO_F16_ID : Ref_LTINV_DPO1_f16.txt
507                Pattern REF_CHOLINV_DPO_F16_ID : Ref_CHOLINV_DPO1_f16.txt
508
509                Output  TMPA_F16_ID : TempA
510                Output  TMPB_F16_ID : TempB
511                Output  OUT_F16_ID : Output
512
513                Params PARAM1_ID = {
514                  NBR = [5,10,40]
515                  NBC = [5,10,40]
516                }
517
518                Params PARAM_CHOLESKY_ID : ParamsCholesky1.txt
519
520                Functions {
521                   Matrix Scaling:test_mat_scale_f16
522                   Matrix Inversion:test_mat_inverse_f16
523                   Matrix Transpose:test_mat_trans_f16
524                   Matrix Addition:test_mat_add_f16
525                   Matrix Substraction:test_mat_sub_f16
526                   Matrix Vector Multiplication:test_mat_vec_mult_f16
527                   Matrix Complex Transpose:test_mat_cmplx_trans_f16
528                   Cholesky decomposition:test_mat_cholesky_dpo_f16 -> PARAM_CHOLESKY_ID
529                   Backward substitution:test_solve_upper_triangular_f16 -> PARAM_CHOLESKY_ID
530                   Foward substitution:test_solve_lower_triangular_f16 -> PARAM_CHOLESKY_ID
531                } -> PARAM1_ID
532              }
533
534           }
535
536           group Matrix Operators with two matrix sizes {
537              class = Binary
538              folder = Binary
539
540             suite Binary Matrix Operators F16 {
541                class = BinaryF16
542                folder = BinaryF16
543
544                ParamList {
545                  NBR,NBI,NBC
546                  Summary NBR,NBI,NBC
547                  Names "Number of rows","Inner dimensions","Number of columns"
548                  Formula "NBR*NBI*NBC"
549                }
550
551                Pattern INPUTA_F16_ID : InputA1_f16.txt
552                Pattern INPUTB_F16_ID : InputB1_f16.txt
553
554                Pattern INPUTAC_F16_ID : InputAC1_f16.txt
555                Pattern INPUTBC_F16_ID : InputBC1_f16.txt
556                Output  OUT_F16_ID : Output
557
558                Params PARAM1_ID = {
559                  NBR = [5,10,40]
560                  NBI = [5,10,40]
561                  NBC = [5,10,40]
562                }
563
564
565                Functions {
566                   Matrix Multiplication:test_mat_mult_f16
567                   Complex Matrix Multiplication:test_mat_cmplx_mult_f16
568                } -> PARAM1_ID
569             }
570           }
571        }
572
573        group Spectral Transformations {
574           class = Transform
575           folder = Transform
576
577           suite Spectral Transformations F16 {
578                class = TransformF16
579                folder = TransformF16
580
581                ParamList {
582                  NB,IFFT,BITREV
583                  Summary NB
584                  Names "Number of samples,Inverse FFT, Bit Reversal"
585                  Formula "I(NB*log2(NB))"
586                }
587
588                Pattern INPUTR_F16_ID : RealInputSamples19_f16.txt
589                Pattern INPUTC_F16_ID : ComplexInputSamples_Noisy_512_6_f16.txt
590
591                Output  OUT_F16_ID : Temp
592                Output  TMP_F16_ID : Output
593                Output  STATE_F16_ID : Output
594
595
596                Params CFFT_PARAM_ID = {
597                  NB = [64,128,256]
598                  IFFT = [0,1]
599                  REV = [0,1]
600                }
601
602                Params CFFT4_PARAM_ID = {
603                  NB = [16,64,256]
604                  IFFT = [0,1]
605                  REV = [0,1]
606                }
607
608                Params RFFT_PARAM_ID = {
609                  NB = [64,128,256]
610                  IFFT = [0,1]
611                  REV = [1]
612                }
613
614
615
616                Functions {
617                   Complex FFT:test_cfft_f16 -> CFFT_PARAM_ID
618                   Real FFT:test_rfft_f16 -> RFFT_PARAM_ID
619                   Scalar Radix 4 Complex FFT:test_cfft_radix4_f16 -> CFFT4_PARAM_ID
620                   Scalar Radix 2 Complex FFT:test_cfft_radix2_f16 -> CFFT_PARAM_ID
621                }
622           }
623
624        }
625
626    }
627
628
629}
630