[libc-commits] [libc] [libc][math][c23] Add fmodf16 C23 math function (PR #94629)

via libc-commits libc-commits at lists.llvm.org
Fri Jun 7 13:54:51 PDT 2024


lntue wrote:

> Performance test on Intel Core i7-13700H:
> 
> `fputil::generic::FMod<float16, uint16_t>::eval` ("My function") vs `fputil::generic::FMod<float16, uint32_t>::eval` ("Other function"):
> 
> ```
>  Performance tests with inputs in denormal range:
> -- My function --
>      Total time      : 31887746 ns 
>      Average runtime : 6.23416 ns/op 
>      Ops per second  : 160406445 op/s 
> -- Other function --
>      Total time      : 31818669 ns 
>      Average runtime : 6.22066 ns/op 
>      Ops per second  : 160754681 op/s 
> -- Average runtime ratio --
>      Mine / Other's  : 1.00217 
> 
>  Performance tests with inputs in normal range:
> -- My function --
>      Total time      : 2102300916 ns 
>      Average runtime : 13.6873 ns/op 
>      Ops per second  : 73060425 op/s 
> -- Other function --
>      Total time      : 1455808877 ns 
>      Average runtime : 9.47823 ns/op 
>      Ops per second  : 105504920 op/s 
> -- Average runtime ratio --
>      Mine / Other's  : 1.44408 
> 
>  Performance tests with inputs in normal range with exponents close to each other:
> -- My function --
>      Total time      : 1191302996 ns 
>      Average runtime : 11.6338 ns/op 
>      Ops per second  : 85956301 op/s 
> -- Other function --
>      Total time      : 896641376 ns 
>      Average runtime : 8.75626 ns/op 
>      Ops per second  : 114203964 op/s 
> -- Average runtime ratio --
>      Mine / Other's  : 1.32863 
> ```
> 
> `fputil::generic::FMod<float16, uint16_t>::eval` ("My function") vs `fputil::generic::FMod<float16, uint64_t>::eval` ("Other function"):
> 
> ```
>  Performance tests with inputs in denormal range:
> -- My function --
>      Total time      : 31902551 ns 
>      Average runtime : 6.23706 ns/op 
>      Ops per second  : 160332006 op/s 
> -- Other function --
>      Total time      : 31826412 ns 
>      Average runtime : 6.22217 ns/op 
>      Ops per second  : 160715571 op/s 
> -- Average runtime ratio --
>      Mine / Other's  : 1.00239 
> 
>  Performance tests with inputs in normal range:
> -- My function --
>      Total time      : 2102323737 ns 
>      Average runtime : 13.6874 ns/op 
>      Ops per second  : 73059632 op/s 
> -- Other function --
>      Total time      : 1373600760 ns 
>      Average runtime : 8.943 ns/op 
>      Ops per second  : 111819245 op/s 
> -- Average runtime ratio --
>      Mine / Other's  : 1.53052 
> 
>  Performance tests with inputs in normal range with exponents close to each other:
> -- My function --
>      Total time      : 1191080918 ns 
>      Average runtime : 11.6316 ns/op 
>      Ops per second  : 85972328 op/s 
> -- Other function --
>      Total time      : 895173208 ns 
>      Average runtime : 8.74193 ns/op 
>      Ops per second  : 114391269 op/s 
> -- Average runtime ratio --
>      Mine / Other's  : 1.33056 
> ```

Do you plan to add the perf tests for `fmodf16` in this PR or in a separate PR?

https://github.com/llvm/llvm-project/pull/94629


More information about the libc-commits mailing list