Build tuning code.
[dense-linear-algebra-libraries/linalg.git] / src / ti / linalg / tuning / common / tune_com.h
1 /******************************************************************************
2  * Copyright (c) 2013-2014, Texas Instruments Incorporated - http://www.ti.com/
3  *   All rights reserved.
4  *
5  *   Redistribution and use in source and binary forms, with or without
6  *   modification, are permitted provided that the following conditions are met:
7  *       * Redistributions of source code must retain the above copyright
8  *         notice, this list of conditions and the following disclaimer.
9  *       * Redistributions in binary form must reproduce the above copyright
10  *         notice, this list of conditions and the following disclaimer in the
11  *         documentation and/or other materials provided with the distribution.
12  *       * Neither the name of Texas Instruments Incorporated nor the
13  *         names of its contributors may be used to endorse or promote products
14  *         derived from this software without specific prior written permission.
15  *
16  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17  *   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  *   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  *   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20  *   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  *   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  *   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  *   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  *   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26  *   THE POSSIBILITY OF SUCH DAMAGE.
27  *****************************************************************************/
28 #include <stdlib.h>
29 #include <stdio.h>
31 #define TUNING_START_SIZE_SQUARE_MATRIX 16
32 #define TUNING_START_SIZE_RECTAN_MATRIX 64
33 #define NUM_MATRIX_SIZE_TO_BENCHMARK    4 //16
34 #define HAS_MEMORY   1
35 #define NO_MEMORY    0
36 #define OFFLOAD      1
37 #define NO_OFFLOAD   0
39 #define NUM_TEST_RUN 5    
41 /*-----------------------------------------------------------------------------
42 * Timing Setup
43 *----------------------------------------------------------------------------*/
44 struct timespec t0,t1;
45 #define tick()  clock_gettime(CLOCK_MONOTONIC, &t0);
46 #define tock() (clock_gettime(CLOCK_MONOTONIC, &t1), \
47                         t1.tv_sec - t0.tv_sec + (t1.tv_nsec - t0.tv_nsec) / 1e9)
48                                                 
49 #define TIME_MARGIN (float)1.05           /* 5% margin to guard against error */
50 #define DSP_FASTER_THAN_ARM(tdsp,tarm) (tdsp < tarm*TIME_MARGIN)
51                                                 
52 extern void print_file_header(FILE *fp_tbl);