freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Git][freetype/freetype-demos][gsoc-2023-ahmet] [ftbench] warmup


From: @goksu
Subject: [Git][freetype/freetype-demos][gsoc-2023-ahmet] [ftbench] warmup
Date: Fri, 29 Sep 2023 06:44:36 +0000

Ahmet Göksu pushed to branch gsoc-2023-ahmet at FreeType / FreeType Demo Programs

Commits:

  • 33ed0c59
    by goksu at 2023-09-29T09:44:21+03:00
    [ftbench] warmup
    
    with this update, warmup feature is available
    

1 changed file:

Changes:

  • src/ftbench.c
    ... ... @@ -98,6 +98,7 @@
    98 98
     #define CACHE_SIZE  1024
    
    99 99
     #define BENCH_TIME  2.0
    
    100 100
     #define FACE_SIZE   10
    
    101
    +#define WARMUP_ITER   10
    
    101 102
     
    
    102 103
     
    
    103 104
       static FT_Library        lib;
    
    ... ... @@ -267,9 +268,10 @@
    267 268
       benchmark( FT_Face   face,
    
    268 269
                  btest_t*  test,
    
    269 270
                  int       max_iter,
    
    270
    -             double    max_time )
    
    271
    +             double    max_time,
    
    272
    +             double    warmup )
    
    271 273
       {
    
    272
    -    int       n, done;
    
    274
    +    int       n, w, done;
    
    273 275
         btimer_t  timer;
    
    274 276
     
    
    275 277
     
    
    ... ... @@ -279,6 +281,15 @@
    279 281
           test->bench( face, test->user_data );
    
    280 282
         }
    
    281 283
     
    
    284
    +
    
    285
    +    TIMER_START(&timer);
    
    286
    +
    
    287
    +    for(  w = 0;  w < warmup; w++ )
    
    288
    +        test->bench(face, test->user_data);
    
    289
    +
    
    290
    +    TIMER_STOP(&timer);
    
    291
    +
    
    292
    +
    
    282 293
         printf( "  %-25s ", test->title );
    
    283 294
         fflush( stdout );
    
    284 295
     
    
    ... ... @@ -986,6 +997,7 @@
    986 997
                  FACE_SIZE );
    
    987 998
         fprintf( stderr,
    
    988 999
           "  -t T      Use at most T seconds per bench (default is %.0f).\n"
    
    1000
    +      "  -w N      Use N iterations for warming up before each test\n"
    
    989 1001
           "\n"
    
    990 1002
           "  -b tests  Perform chosen tests (default is all):\n",
    
    991 1003
                  BENCH_TIME );
    
    ... ... @@ -1042,6 +1054,7 @@
    1042 1054
         unsigned int   size           = FACE_SIZE;
    
    1043 1055
         int            max_iter       = 0;
    
    1044 1056
         double         max_time       = BENCH_TIME;
    
    1057
    +    int            warmup_iter    = WARMUP_ITER;
    
    1045 1058
         int            j;
    
    1046 1059
     
    
    1047 1060
         unsigned int  versions[2] = { TT_INTERPRETER_VERSION_35,
    
    ... ... @@ -1113,7 +1126,7 @@
    1113 1126
           int  opt;
    
    1114 1127
     
    
    1115 1128
     
    
    1116
    -      opt = getopt( argc, argv, "a:b:Cc:e:f:H:I:i:l:m:pr:s:t:v" );
    
    1129
    +      opt = getopt( argc, argv, "a:b:Cc:e:f:H:I:i:l:m:pr:s:t:w:v" );
    
    1117 1130
     
    
    1118 1131
           if ( opt == -1 )
    
    1119 1132
             break;
    
    ... ... @@ -1281,6 +1294,15 @@
    1281 1294
               printf( "\n" );
    
    1282 1295
               exit( 0 );
    
    1283 1296
             }
    
    1297
    +        break;
    
    1298
    +
    
    1299
    +      case 'w':
    
    1300
    +        warmup_iter = atoi( optarg );
    
    1301
    +        if ( warmup_iter < 0 )
    
    1302
    +          warmup_iter = -warmup_iter;
    
    1303
    +        break;
    
    1304
    +
    
    1305
    +
    
    1284 1306
             /* break; */
    
    1285 1307
     
    
    1286 1308
           default:
    
    ... ... @@ -1369,6 +1391,9 @@
    1369 1391
         if ( max_iter )
    
    1370 1392
           printf( "number of iterations for each test: at most %d\n",
    
    1371 1393
                   max_iter );
    
    1394
    +    printf( "\n"
    
    1395
    +            "number of iterations as warmup in all tests: %d\n",
    
    1396
    +            warmup_iter );
    
    1372 1397
     
    
    1373 1398
         printf( "\n"
    
    1374 1399
                 "executing tests:\n" );
    
    ... ... @@ -1392,7 +1417,7 @@
    1392 1417
           case FT_BENCH_LOAD_GLYPH:
    
    1393 1418
             test.title = "Load";
    
    1394 1419
             test.bench = test_load;
    
    1395
    -        benchmark( face, &test, max_iter, max_time );
    
    1420
    +        benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1396 1421
     
    
    1397 1422
             if ( cache_man )
    
    1398 1423
             {
    
    ... ... @@ -1402,7 +1427,7 @@
    1402 1427
               {
    
    1403 1428
                 test.title = "Load (image cached)";
    
    1404 1429
                 test.bench = test_image_cache;
    
    1405
    -            benchmark( face, &test, max_iter, max_time );
    
    1430
    +            benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1406 1431
               }
    
    1407 1432
     
    
    1408 1433
               if ( !FTC_SBitCache_New( cache_man, &sbit_cache ) )
    
    ... ... @@ -1410,7 +1435,7 @@
    1410 1435
                 test.title = "Load (sbit cached)";
    
    1411 1436
                 test.bench = test_sbit_cache;
    
    1412 1437
                 if ( size )
    
    1413
    -              benchmark( face, &test, max_iter, max_time );
    
    1438
    +              benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1414 1439
                 else
    
    1415 1440
                   printf( "  %-25s disabled (size = 0)\n", test.title );
    
    1416 1441
               }
    
    ... ... @@ -1423,24 +1448,24 @@
    1423 1448
             test.title = "Load_Advances (Normal)";
    
    1424 1449
             test.bench = test_load_advances;
    
    1425 1450
             flags      = FT_LOAD_DEFAULT;
    
    1426
    -        benchmark( face, &test, max_iter, max_time );
    
    1451
    +        benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1427 1452
     
    
    1428 1453
             test.title  = "Load_Advances (Fast)";
    
    1429 1454
             test.bench  = test_load_advances;
    
    1430 1455
             flags       = FT_LOAD_TARGET_LIGHT;
    
    1431
    -        benchmark( face, &test, max_iter, max_time );
    
    1456
    +        benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1432 1457
     
    
    1433 1458
             test.title  = "Load_Advances (Unscaled)";
    
    1434 1459
             test.bench  = test_load_advances;
    
    1435 1460
             flags       = FT_LOAD_NO_SCALE;
    
    1436
    -        benchmark( face, &test, max_iter, max_time );
    
    1461
    +        benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1437 1462
             break;
    
    1438 1463
     
    
    1439 1464
           case FT_BENCH_RENDER:
    
    1440 1465
             test.title = "Render";
    
    1441 1466
             test.bench = test_render;
    
    1442 1467
             if ( size )
    
    1443
    -          benchmark( face, &test, max_iter, max_time );
    
    1468
    +          benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1444 1469
             else
    
    1445 1470
               printf( "  %-25s disabled (size = 0)\n", test.title );
    
    1446 1471
             break;
    
    ... ... @@ -1448,13 +1473,13 @@
    1448 1473
           case FT_BENCH_GET_GLYPH:
    
    1449 1474
             test.title = "Get_Glyph";
    
    1450 1475
             test.bench = test_get_glyph;
    
    1451
    -        benchmark( face, &test, max_iter, max_time );
    
    1476
    +        benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1452 1477
             break;
    
    1453 1478
     
    
    1454 1479
           case FT_BENCH_GET_CBOX:
    
    1455 1480
             test.title = "Get_CBox";
    
    1456 1481
             test.bench = test_get_cbox;
    
    1457
    -        benchmark( face, &test, max_iter, max_time );
    
    1482
    +        benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1458 1483
             break;
    
    1459 1484
     
    
    1460 1485
           case FT_BENCH_GET_BBOX:
    
    ... ... @@ -1466,7 +1491,7 @@
    1466 1491
     
    
    1467 1492
               /* rotate outlines by 30 degrees so that CBox and BBox differ */
    
    1468 1493
               FT_Set_Transform( face, &rot30, NULL );
    
    1469
    -          benchmark( face, &test, max_iter, max_time );
    
    1494
    +          benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1470 1495
               FT_Set_Transform( face, NULL, NULL );
    
    1471 1496
             }
    
    1472 1497
             break;
    
    ... ... @@ -1485,7 +1510,7 @@
    1485 1510
                 test.title = "Get_Char_Index";
    
    1486 1511
                 test.bench = test_get_char_index;
    
    1487 1512
     
    
    1488
    -            benchmark( face, &test, max_iter, max_time );
    
    1513
    +            benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1489 1514
     
    
    1490 1515
                 if ( cache_man                                    &&
    
    1491 1516
                      !FTC_CMapCache_New( cache_man, &cmap_cache ) )
    
    ... ... @@ -1494,7 +1519,7 @@
    1494 1519
     
    
    1495 1520
                   test.title = "Get_Char_Index (cached)";
    
    1496 1521
                   test.bench = test_cmap_cache;
    
    1497
    -              benchmark( face, &test, max_iter, max_time );
    
    1522
    +              benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1498 1523
                 }
    
    1499 1524
     
    
    1500 1525
                 free( charset.code );
    
    ... ... @@ -1505,20 +1530,20 @@
    1505 1530
           case FT_BENCH_CMAP_ITER:
    
    1506 1531
             test.title = "Iterate CMap";
    
    1507 1532
             test.bench = test_cmap_iter;
    
    1508
    -        benchmark( face, &test, max_iter, max_time );
    
    1533
    +        benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1509 1534
             break;
    
    1510 1535
     
    
    1511 1536
           case FT_BENCH_NEW_FACE:
    
    1512 1537
             test.title = "New_Face";
    
    1513 1538
             test.bench = test_new_face;
    
    1514
    -        benchmark( face, &test, max_iter, max_time );
    
    1539
    +        benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1515 1540
             break;
    
    1516 1541
     
    
    1517 1542
           case FT_BENCH_EMBOLDEN:
    
    1518 1543
             test.title = "Embolden";
    
    1519 1544
             test.bench = test_embolden;
    
    1520 1545
             if ( size )
    
    1521
    -          benchmark( face, &test, max_iter, max_time );
    
    1546
    +          benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1522 1547
             else
    
    1523 1548
               printf( "  %-25s disabled (size = 0)\n", test.title );
    
    1524 1549
             break;
    
    ... ... @@ -1527,7 +1552,7 @@
    1527 1552
             test.title = "Stroke";
    
    1528 1553
             test.bench = test_stroke;
    
    1529 1554
             if ( size )
    
    1530
    -          benchmark( face, &test, max_iter, max_time );
    
    1555
    +          benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1531 1556
             else
    
    1532 1557
               printf( "  %-25s disabled (size = 0)\n", test.title );
    
    1533 1558
             break;
    
    ... ... @@ -1535,7 +1560,7 @@
    1535 1560
           case FT_BENCH_NEW_FACE_AND_LOAD_GLYPH:
    
    1536 1561
             test.title = "New_Face & load glyph(s)";
    
    1537 1562
             test.bench = test_new_face_and_load_glyph;
    
    1538
    -        benchmark( face, &test, max_iter, max_time );
    
    1563
    +        benchmark( face, &test, max_iter, max_time, warmup_iter );
    
    1539 1564
             break;
    
    1540 1565
           }
    
    1541 1566
         }
    


  • reply via email to

    [Prev in Thread] Current Thread [Next in Thread]