1c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath//=====================================================
2c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// File   :  bench_static.hh
3c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Author :  L. Plagne <laurent.plagne@edf.fr)>
4c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Copyright (C) EDF R&D,  lun sep 30 14:23:16 CEST 2002
5c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath//=====================================================
6c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath//
7c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// This program is free software; you can redistribute it and/or
8c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// modify it under the terms of the GNU General Public License
9c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// as published by the Free Software Foundation; either version 2
10c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// of the License, or (at your option) any later version.
11c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath//
12c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// This program is distributed in the hope that it will be useful,
13c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// but WITHOUT ANY WARRANTY; without even the implied warranty of
14c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// GNU General Public License for more details.
16c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// You should have received a copy of the GNU General Public License
17c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// along with this program; if not, write to the Free Software
18c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath//
20c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#ifndef BENCH_STATIC_HH
21c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#define BENCH_STATIC_HH
22c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
23c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "btl.hh"
24c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "bench_parameter.hh"
25c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include <iostream>
26c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "utilities.h"
27c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "xy_file.hh"
28c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "static/static_size_generator.hh"
29c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "timers/portable_perf_analyzer.hh"
30c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// #include "timers/mixed_perf_analyzer.hh"
31c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// #include "timers/x86_perf_analyzer.hh"
32c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
33c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathusing namespace std;
34c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
35c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
36c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate <template<class> class Perf_Analyzer, template<class> class Action, template<class,int> class Interface>
37c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathBTL_DONT_INLINE  void bench_static(void)
38c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{
39c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  if (BtlConfig::skipAction(Action<Interface<REAL_TYPE,10> >::name()))
40c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    return;
41c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
42c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  string filename = "bench_" + Action<Interface<REAL_TYPE,10> >::name() + ".dat";
43c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
44c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  INFOS("starting " << filename);
45c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
46c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  const int max_size = TINY_MV_MAX_SIZE;
47c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
48c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  std::vector<double> tab_mflops;
49c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  std::vector<double> tab_sizes;
50c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
51c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  static_size_generator<max_size,Perf_Analyzer,Action,Interface>::go(tab_sizes,tab_mflops);
52c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
53c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  dump_xy_file(tab_sizes,tab_mflops,filename);
54c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
55c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
56c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// default Perf Analyzer
57c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate <template<class> class Action, template<class,int> class Interface>
58c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan KamathBTL_DONT_INLINE  void bench_static(void)
59c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{
60c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  bench_static<Portable_Perf_Analyzer,Action,Interface>();
61c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  //bench_static<Mixed_Perf_Analyzer,Action,Interface>();
62c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  //bench_static<X86_Perf_Analyzer,Action,Interface>();
63c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
64c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
65c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#endif
66c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
67c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
68c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
69c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
70c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
71c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
72c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
73c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
74c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
75c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
76c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
77c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
78c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
79c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
80c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
81