- Jan 27, 2025
-
-
Joana Cruz authored
Bump version in CMakeLists.
-
- Jan 22, 2025
-
-
Pierre Blanchard authored
-
Benjamin A. Beasley authored
Fixes #611.
-
- Jan 21, 2025
-
-
Joana Cruz authored
Add a tool capable of processing and plotting the results produced by the new benchmark tool. Also support comparison with reference (assumes libm). Produces 1 graph per (precision, accuracy, arch, compiler) showing performance for various variants (scalar, vector and scalable vector).
-
- Jan 16, 2025
-
-
Pierre Blanchard authored
* Upgrade artifact actions * Rename some artifacts to avoid clashes
-
- Dec 24, 2024
-
-
Joana Cruz authored
Extended current benchmark tool with support to benchmark of libm functions. Libm benchmark is enabled in all functions listed in benchlibm.cpp. It interfaces with the rest of the existing tool through benchmark_callers_libm.hpp (defines macros which simplify how the list of functions to benchmark looks like as it groups functions by precision/accuracy/variant). The tool is integrated with SLEEF via CMake, meaning it can be built automatically when SLEEF is built. To enable that, pass CMake argument -DSLEEF_BUILD_BENCH=ON and -DSLEEF_BUILD_BENCH_REF=ON. Note this option is only enabled on Linux OS.
-
- Dec 20, 2024
-
-
zhangfei authored
* README: add cross-compile --------- Signed-off-by:
Zhang fei <zhangfei@iscas.ac.cn>
-
- Dec 06, 2024
-
-
Xu Han authored
-
Pierre Blanchard authored
And add tests in this region. Fix functions in region between previous overflow bound and maximum float. Accuracy is maintained by relying on high accuracy log (in branch), however performance drops slightly. Ideally the core approximation should also work above threshold.
-
- Dec 03, 2024
-
-
Pierre Blanchard authored
Issue #600 highlighted a limit of current implementation where early overflow is noticed, which diverges from the C99 standard. This patch adds test to catch this type of cases. It only checks a few points therefore we don't know for sure if overflow occurs at the right time but we know if something is wrong in the overflow region. Fix both scalar and simd implementation (double precision) Fixes #523.
-
- Nov 29, 2024
-
-
Detlef Riekenberg authored
-
- Nov 11, 2024
-
-
Michael Orlitzky authored
To test for the RISC-V vector extension (RVV), we currently run two small programs -- one for each value of LMUL=1,2 -- that use some vector intrinsics from the v0.11.x draft of the intrinsics spec. The library itself however needs newer intrinsics than the ones that we test for. This can lead to a problem because GCC 13 supports the intrinsics that we test for, but not (all of) the ones we intend to use. In short, the build can fail with GCC 13: https://github.com/shibatch/sleef/issues/579 This commit changes the detection mechanism. Instead of compiling a program that makes use of the intrinsics, we now just check the two values, __riscv_v and __riscv_v_intrinsic, to ensure that we have version 1.0 of the vector extension and version 0.12 of the intrinsics. These should be the stable versions of each. Note: the "m1" and "m2" checks are now identical because they are both covered by the official spec. Fixes #579
-
- Nov 01, 2024
-
-
Pierre Blanchard authored
Minor fixup to previous change
-
Pierre Blanchard authored
-
Pierre Blanchard authored
Just checking that it is working.
-
- Oct 28, 2024
-
-
Pierre Blanchard authored
Ubuntu-24.04 GH-runner still has a buggy version of gcc 12. Therefore we jump to gcc 13.
-
Pierre Blanchard authored
-
Pierre Blanchard authored
And complete other toolchain file.
-
Pierre Blanchard authored
-
- Oct 24, 2024
-
-
Pierre Blanchard authored
This will ultimately unlock the use of latest versions of gcc 12, then gcc 13, and finally gcc 14. Gcc 14 will unlock more testing. This PR does not update version of gcc yet, just to make sure old version still pass tests. Remove some expensive tests.
-
- Oct 18, 2024
-
-
Pierre Blanchard authored
Error: va_list 'ap2' was opened but not closed by va_end().
-
Pierre Blanchard authored
Error: memleakOnRealloc Fix: Free is realloc fails (and at end of main).
-
Pierre Blanchard authored
Error: integer overflow Fix: Use appropriate intermediate type. UL should be big enough on all platforms.
-
Pierre Blanchard authored
Error: uninitialized variables Fix: Only use mpfr_zinit when mpfr_t already initialized Note: The use of mpfr_zinit is inconsistent anyway. Gencoef needs a big cleanup and possibly porting to CMake
-
Joana Cruz authored
Deleted old benchmark system and replaced with most up to date one which uses googlebench. Changes to CMakeLists were carried accordingly. Deleted section in documentation on legacy benchmark system.
-
Joana Cruz authored
Used to be scalar, now is sve.
-
Joana Cruz authored
When benchmarks are built, SLEEF_ENABLE_CXX should be set to ON, since they use cpp.
-
Joana Cruz authored
Calls to functions which return two values (for example sincos), were being optimized away in new benchmark tool. Fixed by decreasing optimization level (O3 -> O2).
-
Joana Cruz authored
Add paragraph on multiple output format feature.
-
- Oct 16, 2024
-
-
Naoki Shibata authored
This patch fixes the following two problems: * On aarch32, cbrt(4) was returned instead of M_PI/2 when +-INFINITY is given to atanf. * Due to a bug in gcc-13, sign of tanf(+-0) was wrong on PUREC_SCALAR and VXE. This patch also adds testing for the first problem. The second problem is detected by the existing tester. --------- Co-authored-by:
Naoki Shibata <shibatch.sf.net@gmail.com>
-
- Oct 15, 2024
-
-
Joana Cruz authored
Added new benchmark tool to SLEEF project using googlebench framework. In theory this tool can benchmark any unary and binary function in SLEEF. Benchmark is enabled in all functions listed in benchsleef.cpp. This list uses macros in benchmark_callers.cpp, so that we can enable benchmarking in multiple precisions using single lines of code. It is also possible to list the exact function we want, as each of the macros in benchmark_callers.cpp can be called independently and connected like building blocks. The tool is integrated with SLEEF via CMake, meaning it can be built automatically when SLEEF is built. To enable that, pass CMake argument -DSLEEF_BUILD_BENCH=ON. This tool depends on C++17 standard. Tested on aarch64 for scalar, vector and SVE routines Tested on x86 for different vector length extensions. Tested for llvm-17, gcc-11 and gcc-14.
-
- Oct 14, 2024
-
-
Naoki Shibata authored
It adds explicit typecasting so that C++ compilers can compile the inline headers generated from these helpers. Co-authored-by:
Naoki Shibata <shibatch.sf.net@gmail.com>
-
- Oct 10, 2024
-
-
Pierre Blanchard authored
Propagate change from #489 to quad-tester.
-
Naoki Shibata authored
Manually rebased. Co-authored-by:
Naoki Shibata <shibatch.sf.net@gmail.com>
-
Pierre Blanchard authored
same
-
Pierre Blanchard authored
Bump version to 3.6.1, as this version has a compatibility fix.
-
- Oct 09, 2024
-
-
Pierre Blanchard authored
Add a new workflow to detect unexpected backward-incompatible changes at precommit, by comparing current version against a reference version, both generated on Linux with gcc. It uses abidiff to compare ELF-format shared libraries. This is the tool used by Fedora to report a recent breach in API #534. Test should fail until it is fixed by #545.
-
- Oct 04, 2024
-
-
Pierre Blanchard authored
Documentation for these runners here https://gitlab.arm.com/tooling/gha-runner-docs Note that only SLEEF upstream repo is allowed to use these runners. Integrate runners via strategy.matrix.os, in order to facilitate customisation of step (e.g. config) based on runner label. Install OpenSSL since tester3 is enforced. New runners do not seem to come with openssl or cmake pre-installed. Use SVE enabled instances (c7g) Use 2xlarge instances so tests run slightly faster without compromising on availability. Remove aarch64 from cross build and tests (on Linux). And update documentation/README.
-
- Oct 02, 2024
-
-
Pierre Blanchard authored
-
Pierre Blanchard authored
Define a custom style classes for dates and posts.
-