mirror of
				https://github.com/PaddlePaddle/FastDeploy.git
				synced 2025-10-31 11:56:44 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
 | |
| #include "basicbenchmark.h"
 | |
| #include <iostream>
 | |
| #include "BenchUtil.h"
 | |
| 
 | |
| int main(int argc, char *argv[]) {
 | |
|   DISABLE_SSE_EXCEPTIONS();
 | |
| 
 | |
| // this is the list of matrix type and size we want to bench:
 | |
| // ((suffix) (matrix size) (number of iterations))
 | |
| #define MODES \
 | |
|   ((3d)(3)(4000000))((4d)(4)(1000000))((Xd)(4)(1000000))((Xd)(20)(10000))
 | |
| //   #define MODES ((Xd)(20)(10000))
 | |
| 
 | |
| #define _GENERATE_HEADER(R, ARG, EL)                     \
 | |
|   << BOOST_PP_STRINGIZE(BOOST_PP_SEQ_HEAD(EL)) << "-"    \
 | |
|   << BOOST_PP_STRINGIZE(BOOST_PP_SEQ_ELEM(1, EL)) << "x" \
 | |
|   << BOOST_PP_STRINGIZE(BOOST_PP_SEQ_ELEM(1, EL)) << "   /   "
 | |
| 
 | |
|   std::cout BOOST_PP_SEQ_FOR_EACH(_GENERATE_HEADER, ~, MODES) << endl;
 | |
| 
 | |
|   const int tries = 10;
 | |
| 
 | |
| #define _RUN_BENCH(R, ARG, EL)                                              \
 | |
|   std::cout << ARG(BOOST_PP_CAT(Matrix, BOOST_PP_SEQ_HEAD(EL))(             \
 | |
|                        BOOST_PP_SEQ_ELEM(1, EL), BOOST_PP_SEQ_ELEM(1, EL)), \
 | |
|                    BOOST_PP_SEQ_ELEM(2, EL), tries)                         \
 | |
|             << "   ";
 | |
| 
 | |
|   BOOST_PP_SEQ_FOR_EACH(_RUN_BENCH, benchBasic<LazyEval>, MODES);
 | |
|   std::cout << endl;
 | |
|   BOOST_PP_SEQ_FOR_EACH(_RUN_BENCH, benchBasic<EarlyEval>, MODES);
 | |
|   std::cout << endl;
 | |
| 
 | |
|   return 0;
 | |
| }
 | 
