RFR: 8327147: Improve performance of Math ceil, floor, and rint for x86 [v4]

Srinivas Vamsi Parasa duke at openjdk.org
Thu Mar 7 18:25:23 UTC 2024


> The goal of this PR is to provide ~4x faster implementation of Math.ceil, Math.floor and Math.rint for x86_64 CPUs.
> 
> Below is the performance data on an Intel Tiger Lake machine. 
> 
> <html xmlns:v="urn:schemas-microsoft-com:vml"
> xmlns:o="urn:schemas-microsoft-com:office:office"
> xmlns:x="urn:schemas-microsoft-com:office:excel"
> xmlns="http://www.w3.org/TR/REC-html40">
> 
> <head>
> 
> <meta name=ProgId content=Excel.Sheet>
> <meta name=Generator content="Microsoft Excel 15">
> <link id=Main-File rel=Main-File
> href="file:///C:/Users/sparasa/AppData/Local/Temp/msohtmlclip1/01/clip.htm">
> <link rel=File-List
> href="file:///C:/Users/sparasa/AppData/Local/Temp/msohtmlclip1/01/clip_filelist.xml">
> 
> 
> 
> </head>
> 
> <body link="#0563C1" vlink="#954F72">
> 
> 
> Benchmark   (UseAVX=3) | Stock JDK   (ops/ms) | This PR (ops/ms) | Speedup
> -- | -- | -- | --
> MathBench.ceilDouble | 547979 | 2170198 | 3.96
> MathBench.floorDouble | 547979 | 2167459 | 3.96
> MathBench.rintDouble | 547962 | 2130499 | 3.89
> MathBench.addCeilFloorDouble | 501366 | 1754260 | 3.50
> 
> 
> 
> </body>
> 
> </html>
> 
> <html xmlns:v="urn:schemas-microsoft-com:vml"
> xmlns:o="urn:schemas-microsoft-com:office:office"
> xmlns:x="urn:schemas-microsoft-com:office:excel"
> xmlns="http://www.w3.org/TR/REC-html40">
> 
> <head>
> 
> <meta name=ProgId content=Excel.Sheet>
> <meta name=Generator content="Microsoft Excel 15">
> <link id=Main-File rel=Main-File
> href="file:///C:/Users/sparasa/AppData/Local/Temp/msohtmlclip1/01/clip.htm">
> <link rel=File-List
> href="file:///C:/Users/sparasa/AppData/Local/Temp/msohtmlclip1/01/clip_filelist.xml">
> 
> 
> 
> </head>
> 
> <body link="#0563C1" vlink="#954F72">
> 
> 
> Benchmark   (UseAVX=0) | Stock JDK   (ops/ms) | This PR (ops/ms) | Speedup
> -- | -- | -- | --
> MathBench.ceilDouble | 548492 | 2193497 | 4.00
> MathBench.floorDouble | 548485 | 2192813 | 4.00
> MathBench.rintDouble | 548488 | 2192578 | 4.00
> MathBench.addCeilFloorDouble | 501761 | 1644714 | 3.28
> 
> 
> 
> </body>
> 
> </html>

Srinivas Vamsi Parasa has updated the pull request incrementally with one additional commit since the last revision:

  fix indendation

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/18089/files
  - new: https://git.openjdk.org/jdk/pull/18089/files/15b36013..d35951f6

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=18089&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=18089&range=02-03

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/18089.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18089/head:pull/18089

PR: https://git.openjdk.org/jdk/pull/18089


More information about the hotspot-compiler-dev mailing list