aboutsummaryrefslogtreecommitdiff
path: root/benchtests
AgeCommit message (Collapse)AuthorFilesLines
8 daysbenchtests: Add workload directive for tgammaAdhemerval Zanella1-0/+1
8 daysbenchtests: Add workload directive for erf and erfcAdhemerval Zanella2-0/+2
8 daysbenchtests: Add workload for lgammaAdhemerval Zanella1-1001/+1002
Random inputs in range [-20.00,20.00]. Reviewed-by: DJ Delorie <dj@redhat.com>
8 daysbenchtests: Add workload for asinhAdhemerval Zanella1-300/+1002
Random input in range [-10,10]. Reviewed-by: DJ Delorie <dj@redhat.com>
8 daysbenchtests: Add workload for acoshAdhemerval Zanella1-300/+1002
Random inputs in range [1.00,21.00] Reviewed-by: DJ Delorie <dj@redhat.com>
2025-09-02AArch64: Implement exp2m1 and exp10m1 routinesHasaan Khan4-0/+16400
Vector variants of the new C23 exp2m1 & exp10m1 routines. Note: Benchmark inputs for exp2m1 & exp10m1 are identical to exp2 & exp10 respectively, this also includes the floating point variations. Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
2025-08-27added benchmark inputs for rsqrtf and rsqrtPaul Zimmermann3-0/+2010
Changes with respect to v1: - added missing rsqrt and rsqrtf in bench-math
2025-08-26add missing benchmark files for several C23 binary64 functionsPaul Zimmermann12-0/+11066
These files were prepared together with Saban Houssein.
2025-08-12benchtests: Avoid truncation in random memcpy/memset benchmarksWilco Dijkstra2-2/+2
Use uint16_t rather than uint8_t for the size arrays. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2025-08-04Revert "benchtests: Avoid overflow in random memcpy/memset benchmarks"Wilco Dijkstra2-2/+2
This reverts commit 09604542d31abf1e35cd00c1db8d9bee9568bdd0.
2025-08-04benchtests: Avoid overflow in random memcpy/memset benchmarksWilco Dijkstra2-2/+2
Use uint16_t rather than uint8_t for the size arrays.
2025-08-02benchtests: Cleanup bench-malloc-threadWilco Dijkstra1-9/+9
Change duration to 3 seconds.  Add spaces before '('. Reviewed-by: DJ Delorie <dj@redhat.com>
2025-07-29replace atan2-inputs with more meaningful inputsPaul Zimmermann1-1002/+1001
Commit 934d88d used inputs with exponent generated at random in the whole binary64 exponent range, which yields essentially very large or very small values of |y/x|. Instead, this commit generates x, y at random in [-10,10], which should better corresponds to real applications. Reviewed-by: Florian Weimer <fweimer@redhat.com>
2025-06-24benchtests: Add IPv6 inet_ntop benchmarkAdhemerval Zanella3-0/+1014
Random IP addresses in the full range. There is no extra workload to check the effectiveness '::' optimization for a set of 0-oct sets (although it would be a possible workload). Reviewed-by: DJ Delorie <dj@redhat.com>
2025-06-24benchtests: Add IPv4 inet_ntop benchmarkAdhemerval Zanella3-0/+1019
Random IP addresses in the full range. Reviewed-by: Collin Funk <collin.funk1@gmail.com> Reviewed-by: DJ Delorie <dj@redhat.com>
2025-06-13benchtests: Improve modf benchtestAdhemerval Zanella1-3/+4010
It adds four ranges, which is how the generic implementation handles normal numbers: 1. Random inputs in the range [0.0, 1.0]; 2. Random inputs in the range [1.0, (double)(UINT64_C(1) << 52))]; 3. Random inputs in the range [(double)(UINT64_C(1) << 52), DBL_MAX]; 4. Random integral inputs in the range [0.0, (double)(UINT64_C(1) << 52)]. Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
2025-06-13benchtests: Add modff benchtestAdhemerval Zanella2-0/+8012
It adds four ranges, which is how the generic implementation handles normal numbers: 1. Random inputs in the range [0.0, 1.0]; 2. Random inputs in the range [1.0, (float)(1U << 23)]; 3. Random inputs in the range [(float)(1U << 23), FLT_MAX]; 4. Random integral inputs in the range [0.0, (float)(1U << 23)]. Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
2025-05-23libmvec: Add inputs for asinpi(f), acospi(f), atanpi(f) and atan2pi(f)Wilco Dijkstra8-0/+16458
Add initial inputs for asinpi(f), acospi(f), atanpi(f) and atan2pi(f) based on existing asin/acos/atan inputs. Benchtests now works on the new libmvec function. Reviewed-by: Yury Khrustalev <yury.khrustalev@arm.com>
2025-05-15benchtest: malloc tcache hotpath benchtestCupertino Miranda3-0/+205
Existing benchtests for malloc infrastructure seem to be rather generic to test global malloc implementation performance. This new benchtest focus on reducing any non tcache related side effects, allowing to more realistically predict performance impacts of tcache code changes. The test was inpired in bench-[cm]alloc-thread code, with severe simplifications: - forces single thread execution, reducing concurrency side-effects, like cache incoherence penalties due simultaneous writes to the same cache pages; - Focus on allocating and deallocating a single size for all the duration of the benchmark. Since all it does is allocate and deallocate, it will measure the tcache hotpath without any side-effects. - Allows to specify the allocation size as input argument. Reviewed-by: Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
2025-05-13added benchtest inputs for log2lPaul Zimmermann2-0/+1005
2025-05-13added benchtest inputs for explPaul Zimmermann2-0/+1005
2025-05-13added benchtest inputs for powlPaul Zimmermann2-0/+1004
changes in v2: * fixed the missing Makefile entry in the first version Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2025-05-13added benchtest inputs for fmalPaul Zimmermann2-0/+1004
2025-04-25benchtest: Correct shell script related to bench-malloc-threadCupertino Miranda1-1/+1
This patch changes the shell script that selects which arguments are used for the execution of bench-malloc-thread. The problem seems to have been introduced in commit: commit 2d6427a63cad8056ba6bcaaaa8df21977c8dde3d Author: Wangyang Guo <wangyang.guo@intel.com> Date: Fri Nov 29 16:05:35 2024 +0800 benchtests: Add calloc test With current condition, the following error "/bin/sh: 3: [[: not found" occurs when executing `make bench BENCHSET="malloc-thread"` and the else path is taken, using incorrect arguments for bench test execution. Error is reproducible in Debian based distros. Reviewed-by: Florian Weimer <fweimer@redhat.com>
2025-03-18benchtests: Increase iterations of bench-malloc-simpleWilco Dijkstra1-1/+1
Increase iterations so it runs for ~1 second on modern CPUs. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2025-03-13x86_64: Add atanh with FMASunil K Pandey1-0/+1
On SPR, it improves atanh bench performance by: Before After Improvement reciprocal-throughput 15.1715 14.8628 2% latency 57.1941 56.1883 2% Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2025-03-13x86_64: Add sinh with FMASunil K Pandey1-0/+1
On SPR, it improves sinh bench performance by: Before After Improvement reciprocal-throughput 14.2017 11.815 17% latency 36.4917 35.2114 4% Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2025-03-13benchtests: Remove wrong snippet from 360cce0b06Adhemerval Zanella1-1/+0
2025-03-13nptl: Check if thread is already terminated in sigcancel_handler (BZ 32782)Adhemerval Zanella1-0/+1
The SIGCANCEL signal handler should not issue __syscall_do_cancel, which calls __do_cancel and __pthread_unwind, if the cancellation is already in proces (and libgcc unwind is not reentrant). Any cancellation signal received after is ignored. Checked on x86_64-linux-gnu and aarch64-linux-gnu. Tested-by: Aurelien Jarno <aurelien@aurel32.net> Reviewed-by: Florian Weimer <fweimer@redhat.com>
2025-03-05benchtests: Add random strlen benchmarkWilco Dijkstra2-0/+195
Add a new randomized strlen test similar to bench-random-memcpy. Instead of repeating the same call to strlen over and over again, it times a large number of different strings. The distribution of the string length and alignment is based on SPEC2017. Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2025-03-05benchtests: Improve large memcpy/memset benchmarksWilco Dijkstra4-43/+14
Adjust sizes between 64KB and 16MB and iterations based on length. Remove incorrect uses of alloc_bufs since we're not interested in measuring Linux clear_page time. Use getpagesize() - 1 instead of 4095 when aligning within a page. Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2025-02-12benchtests: Add tanpifAdhemerval Zanella2-0/+2410
Random inputs in the range of [-4,4]. Reviewed-by: DJ Delorie <dj@redhat.com>
2025-02-12benchtests: Add sinpifAdhemerval Zanella2-0/+2410
Random inputs in the range of [-4,4]. Reviewed-by: DJ Delorie <dj@redhat.com>
2025-02-12benchtests: Add cospifAdhemerval Zanella2-0/+2410
Random inputs in the range of [-4,4]. Reviewed-by: DJ Delorie <dj@redhat.com>
2025-02-11benchtests: Add atanpifAdhemerval Zanella2-0/+2006
Random inputs in the range of [-10,10]. Reviewed-by: DJ Delorie <dj@redhat.com>
2025-02-11benchtests: Add atan2pifAdhemerval Zanella2-0/+2006
Random inputs in the range of [-10,10]. Reviewed-by: DJ Delorie <dj@redhat.com>
2025-02-11benchtests: Add asinpifAdhemerval Zanella2-0/+2711
Random inputs in the range of [-1,1]. Reviewed-by: DJ Delorie <dj@redhat.com>
2025-02-11benchtests: Add acospifAdhemerval Zanella2-0/+2711
Random inputs in the range of [-1,1]. Reviewed-by: DJ Delorie <dj@redhat.com>
2025-01-16benchtests: Add dummy in put files cospi, cospif, sinpi, sinpif, tanpi, tanpifFlorian Weimer6-0/+24
This fixes an AArch64 build failure: python3 -B ../sysdeps/aarch64/fpu/scripts/bench_libmvec_advsimd.py bench-float-advsimd-cospi > …/benchtests/bench-float-advsimd-cospi.c Traceback (most recent call last): File "…/sysdeps/aarch64/fpu/scripts/bench_libmvec_advsimd.py", line 106, in <module> main(sys.argv[1]) ~~~~^^^^^^^^^^^^^ File "…/sysdeps/aarch64/fpu/scripts/bench_libmvec_advsimd.py", line 81, in main with open(f"../benchtests/libmvec/{input_filename}") as f: ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '../benchtests/libmvec/cospif-inputs'
2025-01-01Update copyright dates with scripts/update-copyrightsPaul Eggert103-103/+103
2024-12-23include/sys/cdefs.h: Add __attribute_optimization_barrier__Adhemerval Zanella3-5/+5
Add __attribute_optimization_barrier__ to disable inlining and cloning on a function. For Clang, expand it to __attribute__ ((optnone)) Otherwise, expand it to __attribute__ ((noinline, clone)) Co-Authored-By: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sam James <sam@gentoo.org>
2024-12-18benchtests: Add tanhf benchmarkAdhemerval Zanella2-0/+2006
Random inputs in the range [-10,10]. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-12-18benchtests: Add sinhf benchmarkAdhemerval Zanella2-0/+2006
Random inputs in the range [-10,10]. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-12-18benchtests: Add coshf benchmarkAdhemerval Zanella2-0/+2006
Random inputs in the range [-10,10]. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-12-18benchtests: Add atanhf benchmarkAdhemerval Zanella2-0/+2006
The input is based on acosf one (random inputs in [-1,1]). Reviewed-by: DJ Delorie <dj@redhat.com>
2024-12-18benchtests: Add atan2f benchmarkAdhemerval Zanella2-0/+2006
Random inputs in the range [-10,10]. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-12-18benchtests: Add atanf benchmarkAdhemerval Zanella2-0/+2006
Random inputs in the range [-10,10]. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-12-18benchtests: Add asinhf benchmarkAdhemerval Zanella2-0/+2006
Random inputs in the range [-10,10]. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-12-18benchtests: Add asinf benchmarkAdhemerval Zanella2-0/+2711
The input is based on acosf one (random inputs in [-1,1]). Reviewed-by: DJ Delorie <dj@redhat.com>
2024-12-18benchtests: Add acoshf benchmarkAdhemerval Zanella2-0/+1006
Random inputs in the range [1,21]. Reviewed-by: DJ Delorie <dj@redhat.com>