[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] gsoc-2023-ahmet-final 8797ad3d5 4/6: [ftbench] warmup added
From: |
Werner Lemberg |
Subject: |
[freetype2] gsoc-2023-ahmet-final 8797ad3d5 4/6: [ftbench] warmup added |
Date: |
Thu, 21 Sep 2023 20:27:43 -0400 (EDT) |
branch: gsoc-2023-ahmet-final
commit 8797ad3d53e4c1f47da0538c0f05c1d3a20c008a
Author: goksu <25721443+goeksu@users.noreply.github.com>
Commit: goksu <25721443+goeksu@users.noreply.github.com>
[ftbench] warmup added
added '-w N' argument (10 by default), runs N times of iterations before
all tests.
---
src/tools/ftbench/ftbench.c | 56 ++++++++++++++++++++++++++++++---------------
1 file changed, 37 insertions(+), 19 deletions(-)
diff --git a/src/tools/ftbench/ftbench.c b/src/tools/ftbench/ftbench.c
index 2f0f2a4e6..6d4a40ab3 100644
--- a/src/tools/ftbench/ftbench.c
+++ b/src/tools/ftbench/ftbench.c
@@ -99,6 +99,7 @@
#define CACHE_SIZE 1024
#define BENCH_TIME 2.0
#define FACE_SIZE 10
+#define WARMUP_ITER 10
static FT_Library lib;
@@ -268,7 +269,8 @@
benchmark( FT_Face face,
btest_t* test,
int max_iter,
- double max_time )
+ double max_time,
+ double warmup )
{
int n, done;
btimer_t timer, elapsed;
@@ -280,6 +282,11 @@
test->bench( &timer, face, test->user_data );
}
+ TIMER_START(&elapsed);
+ for(int i = 0; i<warmup; i++)
+ test->bench( &timer,face, test->user_data);
+ TIMER_STOP(&elapsed);
+
printf( " %-25s ", test->title );
fflush( stdout );
@@ -1049,6 +1056,7 @@
FACE_SIZE );
fprintf( stderr,
" -t T Use at most T seconds per bench (default is %.0f).\n"
+ " -w N Use N iterations for warming up before each test\n"
"\n"
" -b tests Perform chosen tests (default is all):\n",
BENCH_TIME );
@@ -1101,6 +1109,7 @@
unsigned int size = FACE_SIZE;
int max_iter = 0;
double max_time = BENCH_TIME;
+ int warmup_iter = WARMUP_ITER;
int j;
unsigned int versions[2] = { TT_INTERPRETER_VERSION_35,
@@ -1172,7 +1181,7 @@
int opt;
- opt = getopt( argc, argv, "a:b:Cc:e:f:H:I:i:l:m:pr:s:t:v" );
+ opt = getopt( argc, argv, "a:b:Cc:e:f:H:I:i:l:m:pr:s:t:w:v" );
if ( opt == -1 )
break;
@@ -1340,6 +1349,13 @@
printf( "\n" );
exit( 0 );
}
+ break;
+
+ case 'w':
+ warmup_iter = atoi( optarg );
+ if ( warmup_iter < 0 )
+ warmup_iter = -warmup_iter;
+ break;
/* break; */
default:
@@ -1428,6 +1444,8 @@
if ( max_iter )
printf( "number of iterations for each test: at most %d\n",
max_iter );
+ printf( "number of iterations as warmup in all tests: %d\n",
+ warmup_iter );
printf( "\n"
"executing tests:\n" );
@@ -1451,7 +1469,7 @@
case FT_BENCH_LOAD_GLYPH:
test.title = "Load";
test.bench = test_load;
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
if ( cache_man )
{
@@ -1461,7 +1479,7 @@
{
test.title = "Load (image cached)";
test.bench = test_image_cache;
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
}
if ( !FTC_SBitCache_New( cache_man, &sbit_cache ) )
@@ -1469,7 +1487,7 @@
test.title = "Load (sbit cached)";
test.bench = test_sbit_cache;
if ( size )
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
else
printf( " %-25s disabled (size = 0)\n", test.title );
}
@@ -1482,24 +1500,24 @@
test.title = "Load_Advances (Normal)";
test.bench = test_load_advances;
flags = FT_LOAD_DEFAULT;
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
test.title = "Load_Advances (Fast)";
test.bench = test_load_advances;
flags = FT_LOAD_TARGET_LIGHT;
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
test.title = "Load_Advances (Unscaled)";
test.bench = test_load_advances;
flags = FT_LOAD_NO_SCALE;
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
break;
case FT_BENCH_RENDER:
test.title = "Render";
test.bench = test_render;
if ( size )
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
else
printf( " %-25s disabled (size = 0)\n", test.title );
break;
@@ -1507,13 +1525,13 @@
case FT_BENCH_GET_GLYPH:
test.title = "Get_Glyph";
test.bench = test_get_glyph;
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
break;
case FT_BENCH_GET_CBOX:
test.title = "Get_CBox";
test.bench = test_get_cbox;
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
break;
case FT_BENCH_GET_BBOX:
@@ -1525,7 +1543,7 @@
/* rotate outlines by 30 degrees so that CBox and BBox differ */
FT_Set_Transform( face, &rot30, NULL );
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
FT_Set_Transform( face, NULL, NULL );
}
break;
@@ -1544,7 +1562,7 @@
test.title = "Get_Char_Index";
test.bench = test_get_char_index;
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
if ( cache_man &&
!FTC_CMapCache_New( cache_man, &cmap_cache ) )
@@ -1553,7 +1571,7 @@
test.title = "Get_Char_Index (cached)";
test.bench = test_cmap_cache;
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
}
free( charset.code );
@@ -1564,20 +1582,20 @@
case FT_BENCH_CMAP_ITER:
test.title = "Iterate CMap";
test.bench = test_cmap_iter;
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
break;
case FT_BENCH_NEW_FACE:
test.title = "New_Face";
test.bench = test_new_face;
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
break;
case FT_BENCH_EMBOLDEN:
test.title = "Embolden";
test.bench = test_embolden;
if ( size )
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
else
printf( " %-25s disabled (size = 0)\n", test.title );
break;
@@ -1586,7 +1604,7 @@
test.title = "Stroke";
test.bench = test_stroke;
if ( size )
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
else
printf( " %-25s disabled (size = 0)\n", test.title );
break;
@@ -1594,7 +1612,7 @@
case FT_BENCH_NEW_FACE_AND_LOAD_GLYPH:
test.title = "New_Face & load glyph(s)";
test.bench = test_new_face_and_load_glyph;
- benchmark( face, &test, max_iter, max_time );
+ benchmark( face, &test, max_iter, max_time, warmup_iter );
break;
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] gsoc-2023-ahmet-final 8797ad3d5 4/6: [ftbench] warmup added,
Werner Lemberg <=