public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] Benchtests: Adjust timing
@ 2023-03-23 11:44 Wilco Dijkstra
  2023-03-24 13:51 ` Adhemerval Zanella Netto
  0 siblings, 1 reply; 2+ messages in thread
From: Wilco Dijkstra @ 2023-03-23 11:44 UTC (permalink / raw)
  To: 'GNU C Library'


Adjust iteration counts so benchmarks don't run too slowly or quickly.
Ensure benchmarks take less than 10 seconds on older, slower cores and
more than 0.5 seconds on fast cores.

---

diff --git a/benchtests/bench-bzero.c b/benchtests/bench-bzero.c
index 7ff04f2d2fcea7d32c45ef4cf032032031773065..5e891ce87549d017587df4fc2a4cdaba788b4093 100644
--- a/benchtests/bench-bzero.c
+++ b/benchtests/bench-bzero.c
@@ -51,7 +51,7 @@ IMPL (memset_zero, 0)
 static void
 do_one_test (json_ctx_t *json_ctx, impl_t *impl, CHAR *s, size_t n)
 {
-  size_t i, iters = INNER_LOOP_ITERS_LARGE;
+  size_t i, iters = INNER_LOOP_ITERS8;
   timing_t start, stop, cur;
 
   TIMING_NOW (start);
diff --git a/benchtests/bench-hash-funcs.c b/benchtests/bench-hash-funcs.c
index 5e7e5022307cf58058f76b64ab3fb4ee84462438..4a6858c0217bc3932da665ae9c74427beb7b8836 100644
--- a/benchtests/bench-hash-funcs.c
+++ b/benchtests/bench-hash-funcs.c
@@ -42,7 +42,7 @@ enum
 {
   NFIXED_ITERS = 1048576,
   NRAND_BUFS = 16384,
-  NRAND_ITERS = 2048,
+  NRAND_ITERS = 256,
   RAND_BENCH_MAX_LEN = 128
 };
 
diff --git a/benchtests/bench-memccpy.c b/benchtests/bench-memccpy.c
index 51ed8dad2f5033fc337a7b7422272c48480b2e93..a26ed7eee2374d12d6bef5e721f941d9c5ddcc6a 100644
--- a/benchtests/bench-memccpy.c
+++ b/benchtests/bench-memccpy.c
@@ -41,7 +41,7 @@ static void
 do_one_test (impl_t *impl, void *dst, const void *src, int c, size_t len,
 	     size_t n)
 {
-  size_t i, iters = INNER_LOOP_ITERS_LARGE;
+  size_t i, iters = INNER_LOOP_ITERS_LARGE * 4;
   timing_t start, stop, cur;
 
   TIMING_NOW (start);
diff --git a/benchtests/bench-memchr.c b/benchtests/bench-memchr.c
index 90bd3879e32e81950c633cf7f2d4f3f6a92d2311..1a9bf511188f8ec511b10e92632b5ed1dbd3e445 100644
--- a/benchtests/bench-memchr.c
+++ b/benchtests/bench-memchr.c
@@ -51,7 +51,7 @@ static void
 do_one_test (json_ctx_t *json_ctx, impl_t *impl, const CHAR *s, int c,
 	     size_t n)
 {
-  size_t i, iters = INNER_LOOP_ITERS;
+  size_t i, iters = INNER_LOOP_ITERS8 / 2;
   timing_t start, stop, cur;
 
   TIMING_NOW (start);
diff --git a/benchtests/bench-memcpy-random.c b/benchtests/bench-memcpy-random.c
index a0753b60e02c677f50de1220c785f4f7214d6bb0..48cb64d533c5e5867226552ee5d9a84da256ef2f 100644
--- a/benchtests/bench-memcpy-random.c
+++ b/benchtests/bench-memcpy-random.c
@@ -127,7 +127,7 @@ do_one_test (json_ctx_t *json_ctx, impl_t *impl, char *dst, char *src,
 	     copy_t *copy, size_t n)
 {
   timing_t start, stop, cur;
-  size_t iters = INNER_LOOP_ITERS_MEDIUM;
+  size_t iters = INNER_LOOP_ITERS_MEDIUM / 2;
 
   for (int j = 0; j < n; j++)
     CALL (impl, dst + copy[j].dst, src + copy[j].src, copy[j].len);
diff --git a/benchtests/bench-memcpy.c b/benchtests/bench-memcpy.c
index 1fd41c035fe4fae74d576f38db78ad2eadb8748a..5be09966e0eace1aed1d4625df5f24f4cbc07214 100644
--- a/benchtests/bench-memcpy.c
+++ b/benchtests/bench-memcpy.c
@@ -38,7 +38,7 @@ static void
 do_one_test (json_ctx_t *json_ctx, impl_t *impl, char *dst, const char *src,
 	     size_t len)
 {
-  size_t i, iters = INNER_LOOP_ITERS;
+  size_t i, iters = INNER_LOOP_ITERS / 2;
   timing_t start, stop, cur;
   for (i = 0; i < iters / 64; ++i)
     {
diff --git a/benchtests/bench-memset.c b/benchtests/bench-memset.c
index 1e785e6c8f6411aa34d205a219abd8b5d29a7f4e..e68b14201e097678847a9fba2bad76fb20970491 100644
--- a/benchtests/bench-memset.c
+++ b/benchtests/bench-memset.c
@@ -43,7 +43,7 @@ static void
 do_one_test (json_ctx_t *json_ctx, impl_t *impl, CHAR *s,
 	     int c __attribute ((unused)), size_t n)
 {
-  size_t i, iters = INNER_LOOP_ITERS_LARGE;
+  size_t i, iters = INNER_LOOP_ITERS;
   timing_t start, stop, cur;
 
   TIMING_NOW (start);
diff --git a/benchtests/bench-strcat.c b/benchtests/bench-strcat.c
index 96383ce06a5aa88d0ca1bbd20b3b2826e40f14f2..08a19e53c9fc4208c59f5d2bade64594e2005bcd 100644
--- a/benchtests/bench-strcat.c
+++ b/benchtests/bench-strcat.c
@@ -52,7 +52,7 @@ IMPL (generic_strcat, 0)
 static void
 do_one_test (json_ctx_t *json_ctx, impl_t *impl, CHAR *dst, const CHAR *src)
 {
-  size_t k = STRLEN (dst), i, iters = INNER_LOOP_ITERS_LARGE;
+  size_t k = STRLEN (dst), i, iters = INNER_LOOP_ITERS_LARGE / CHARBYTES;
   timing_t start, stop, cur;
 
   if (CALL (impl, dst, src) != dst)
diff --git a/benchtests/bench-strcmp.c b/benchtests/bench-strcmp.c
index 65fd04b43a2aeaab85ee4996f083333a32d7b29f..f696f074fcc7d56e967eabbf3b5c48600e8fc0f5 100644
--- a/benchtests/bench-strcmp.c
+++ b/benchtests/bench-strcmp.c
@@ -50,7 +50,7 @@ do_one_test (json_ctx_t *json_ctx, impl_t *impl,
 	     const CHAR *s1, const CHAR *s2,
 	     int exp_result)
 {
-  size_t i, iters = INNER_LOOP_ITERS;
+  size_t i, iters = INNER_LOOP_ITERS8 / 2;
   timing_t start, stop, cur;
 
   TIMING_NOW (start);
diff --git a/benchtests/bench-strlen.c b/benchtests/bench-strlen.c
index 9b91f8a10ef0621cf2bc8310d8f08bd978b6d898..cae88dd6ec1794709fdf36a373896dd2d9d285dd 100644
--- a/benchtests/bench-strlen.c
+++ b/benchtests/bench-strlen.c
@@ -48,7 +48,7 @@ IMPL (STRLEN, 1)
 static void
 do_one_test (json_ctx_t *json_ctx, impl_t *impl, const CHAR *s, size_t exp_len)
 {
-  size_t len = CALL (impl, s), i, iters = INNER_LOOP_ITERS8;
+  size_t len = CALL (impl, s), i, iters = INNER_LOOP_ITERS_LARGE;
   timing_t start, stop, cur;
 
   if (len != exp_len)
diff --git a/benchtests/bench-strncpy.c b/benchtests/bench-strncpy.c
index 83a88f658318f16a13c476a3a0bd685ee0e4d889..d90e3c55e28c1ce88ae660a74972bc4374c142f2 100644
--- a/benchtests/bench-strncpy.c
+++ b/benchtests/bench-strncpy.c
@@ -57,7 +57,7 @@ static void
 do_one_test (json_ctx_t *json_ctx, impl_t *impl, CHAR *dst, const CHAR *src,
 	     size_t len, size_t n)
 {
-  size_t i, iters = INNER_LOOP_ITERS_LARGE * (4 / CHARBYTES);
+  size_t i, iters = INNER_LOOP_ITERS_LARGE / CHARBYTES;
   timing_t start, stop, cur;
 
   if (CALL (impl, dst, src, n) != STRNCPY_RESULT (dst, len, n))



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] Benchtests: Adjust timing
  2023-03-23 11:44 [PATCH] Benchtests: Adjust timing Wilco Dijkstra
@ 2023-03-24 13:51 ` Adhemerval Zanella Netto
  0 siblings, 0 replies; 2+ messages in thread
From: Adhemerval Zanella Netto @ 2023-03-24 13:51 UTC (permalink / raw)
  To: libc-alpha, Wilco Dijkstra



On 23/03/23 08:44, Wilco Dijkstra via Libc-alpha wrote:
> 
> Adjust iteration counts so benchmarks don't run too slowly or quickly.
> Ensure benchmarks take less than 10 seconds on older, slower cores and
> more than 0.5 seconds on fast cores.

LGTM, thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> 
> ---
> 
> diff --git a/benchtests/bench-bzero.c b/benchtests/bench-bzero.c
> index 7ff04f2d2fcea7d32c45ef4cf032032031773065..5e891ce87549d017587df4fc2a4cdaba788b4093 100644
> --- a/benchtests/bench-bzero.c
> +++ b/benchtests/bench-bzero.c
> @@ -51,7 +51,7 @@ IMPL (memset_zero, 0)
>  static void
>  do_one_test (json_ctx_t *json_ctx, impl_t *impl, CHAR *s, size_t n)
>  {
> -  size_t i, iters = INNER_LOOP_ITERS_LARGE;
> +  size_t i, iters = INNER_LOOP_ITERS8;
>    timing_t start, stop, cur;
>  
>    TIMING_NOW (start);
> diff --git a/benchtests/bench-hash-funcs.c b/benchtests/bench-hash-funcs.c
> index 5e7e5022307cf58058f76b64ab3fb4ee84462438..4a6858c0217bc3932da665ae9c74427beb7b8836 100644
> --- a/benchtests/bench-hash-funcs.c
> +++ b/benchtests/bench-hash-funcs.c
> @@ -42,7 +42,7 @@ enum
>  {
>    NFIXED_ITERS = 1048576,
>    NRAND_BUFS = 16384,
> -  NRAND_ITERS = 2048,
> +  NRAND_ITERS = 256,
>    RAND_BENCH_MAX_LEN = 128
>  };
>  
> diff --git a/benchtests/bench-memccpy.c b/benchtests/bench-memccpy.c
> index 51ed8dad2f5033fc337a7b7422272c48480b2e93..a26ed7eee2374d12d6bef5e721f941d9c5ddcc6a 100644
> --- a/benchtests/bench-memccpy.c
> +++ b/benchtests/bench-memccpy.c
> @@ -41,7 +41,7 @@ static void
>  do_one_test (impl_t *impl, void *dst, const void *src, int c, size_t len,
>  	     size_t n)
>  {
> -  size_t i, iters = INNER_LOOP_ITERS_LARGE;
> +  size_t i, iters = INNER_LOOP_ITERS_LARGE * 4;
>    timing_t start, stop, cur;
>  
>    TIMING_NOW (start);
> diff --git a/benchtests/bench-memchr.c b/benchtests/bench-memchr.c
> index 90bd3879e32e81950c633cf7f2d4f3f6a92d2311..1a9bf511188f8ec511b10e92632b5ed1dbd3e445 100644
> --- a/benchtests/bench-memchr.c
> +++ b/benchtests/bench-memchr.c
> @@ -51,7 +51,7 @@ static void
>  do_one_test (json_ctx_t *json_ctx, impl_t *impl, const CHAR *s, int c,
>  	     size_t n)
>  {
> -  size_t i, iters = INNER_LOOP_ITERS;
> +  size_t i, iters = INNER_LOOP_ITERS8 / 2;
>    timing_t start, stop, cur;
>  
>    TIMING_NOW (start);
> diff --git a/benchtests/bench-memcpy-random.c b/benchtests/bench-memcpy-random.c
> index a0753b60e02c677f50de1220c785f4f7214d6bb0..48cb64d533c5e5867226552ee5d9a84da256ef2f 100644
> --- a/benchtests/bench-memcpy-random.c
> +++ b/benchtests/bench-memcpy-random.c
> @@ -127,7 +127,7 @@ do_one_test (json_ctx_t *json_ctx, impl_t *impl, char *dst, char *src,
>  	     copy_t *copy, size_t n)
>  {
>    timing_t start, stop, cur;
> -  size_t iters = INNER_LOOP_ITERS_MEDIUM;
> +  size_t iters = INNER_LOOP_ITERS_MEDIUM / 2;
>  
>    for (int j = 0; j < n; j++)
>      CALL (impl, dst + copy[j].dst, src + copy[j].src, copy[j].len);
> diff --git a/benchtests/bench-memcpy.c b/benchtests/bench-memcpy.c
> index 1fd41c035fe4fae74d576f38db78ad2eadb8748a..5be09966e0eace1aed1d4625df5f24f4cbc07214 100644
> --- a/benchtests/bench-memcpy.c
> +++ b/benchtests/bench-memcpy.c
> @@ -38,7 +38,7 @@ static void
>  do_one_test (json_ctx_t *json_ctx, impl_t *impl, char *dst, const char *src,
>  	     size_t len)
>  {
> -  size_t i, iters = INNER_LOOP_ITERS;
> +  size_t i, iters = INNER_LOOP_ITERS / 2;
>    timing_t start, stop, cur;
>    for (i = 0; i < iters / 64; ++i)
>      {
> diff --git a/benchtests/bench-memset.c b/benchtests/bench-memset.c
> index 1e785e6c8f6411aa34d205a219abd8b5d29a7f4e..e68b14201e097678847a9fba2bad76fb20970491 100644
> --- a/benchtests/bench-memset.c
> +++ b/benchtests/bench-memset.c
> @@ -43,7 +43,7 @@ static void
>  do_one_test (json_ctx_t *json_ctx, impl_t *impl, CHAR *s,
>  	     int c __attribute ((unused)), size_t n)
>  {
> -  size_t i, iters = INNER_LOOP_ITERS_LARGE;
> +  size_t i, iters = INNER_LOOP_ITERS;
>    timing_t start, stop, cur;
>  
>    TIMING_NOW (start);
> diff --git a/benchtests/bench-strcat.c b/benchtests/bench-strcat.c
> index 96383ce06a5aa88d0ca1bbd20b3b2826e40f14f2..08a19e53c9fc4208c59f5d2bade64594e2005bcd 100644
> --- a/benchtests/bench-strcat.c
> +++ b/benchtests/bench-strcat.c
> @@ -52,7 +52,7 @@ IMPL (generic_strcat, 0)
>  static void
>  do_one_test (json_ctx_t *json_ctx, impl_t *impl, CHAR *dst, const CHAR *src)
>  {
> -  size_t k = STRLEN (dst), i, iters = INNER_LOOP_ITERS_LARGE;
> +  size_t k = STRLEN (dst), i, iters = INNER_LOOP_ITERS_LARGE / CHARBYTES;
>    timing_t start, stop, cur;
>  
>    if (CALL (impl, dst, src) != dst)
> diff --git a/benchtests/bench-strcmp.c b/benchtests/bench-strcmp.c
> index 65fd04b43a2aeaab85ee4996f083333a32d7b29f..f696f074fcc7d56e967eabbf3b5c48600e8fc0f5 100644
> --- a/benchtests/bench-strcmp.c
> +++ b/benchtests/bench-strcmp.c
> @@ -50,7 +50,7 @@ do_one_test (json_ctx_t *json_ctx, impl_t *impl,
>  	     const CHAR *s1, const CHAR *s2,
>  	     int exp_result)
>  {
> -  size_t i, iters = INNER_LOOP_ITERS;
> +  size_t i, iters = INNER_LOOP_ITERS8 / 2;
>    timing_t start, stop, cur;
>  
>    TIMING_NOW (start);
> diff --git a/benchtests/bench-strlen.c b/benchtests/bench-strlen.c
> index 9b91f8a10ef0621cf2bc8310d8f08bd978b6d898..cae88dd6ec1794709fdf36a373896dd2d9d285dd 100644
> --- a/benchtests/bench-strlen.c
> +++ b/benchtests/bench-strlen.c
> @@ -48,7 +48,7 @@ IMPL (STRLEN, 1)
>  static void
>  do_one_test (json_ctx_t *json_ctx, impl_t *impl, const CHAR *s, size_t exp_len)
>  {
> -  size_t len = CALL (impl, s), i, iters = INNER_LOOP_ITERS8;
> +  size_t len = CALL (impl, s), i, iters = INNER_LOOP_ITERS_LARGE;
>    timing_t start, stop, cur;
>  
>    if (len != exp_len)
> diff --git a/benchtests/bench-strncpy.c b/benchtests/bench-strncpy.c
> index 83a88f658318f16a13c476a3a0bd685ee0e4d889..d90e3c55e28c1ce88ae660a74972bc4374c142f2 100644
> --- a/benchtests/bench-strncpy.c
> +++ b/benchtests/bench-strncpy.c
> @@ -57,7 +57,7 @@ static void
>  do_one_test (json_ctx_t *json_ctx, impl_t *impl, CHAR *dst, const CHAR *src,
>  	     size_t len, size_t n)
>  {
> -  size_t i, iters = INNER_LOOP_ITERS_LARGE * (4 / CHARBYTES);
> +  size_t i, iters = INNER_LOOP_ITERS_LARGE / CHARBYTES;
>    timing_t start, stop, cur;
>  
>    if (CALL (impl, dst, src, n) != STRNCPY_RESULT (dst, len, n))
> 
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-03-24 13:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-23 11:44 [PATCH] Benchtests: Adjust timing Wilco Dijkstra
2023-03-24 13:51 ` Adhemerval Zanella Netto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).