RFR: 8263006: Add optimization for Max(*)Node and Min(*)Node [v2]
Wang Huang
whuang at openjdk.java.net
Thu Apr 22 02:38:21 UTC 2021
On Thu, 22 Apr 2021 02:15:40 GMT, Marcus G K Williams <github.com+168222+mgkwill at openjdk.org> wrote:
> > > Running MyBenchmark test listed in the summary on x86_64 Haswell XEON with this patch results in:
> > > ```
> > > # Benchmark: org.sample.MyBenchmark.testMax
> > >
> > > # Run progress: 25.00% complete, ETA 00:03:57
> > > # Fork: 1 of 1 # Warmup Iteration 1: 112.714 us/op
> > > # Warmup Iteration 2: # To suppress the following error report, specify this argument
> > > # after -XX: or in .hotspotrc: SuppressErrorAt=/register.hpp:152 #
> > > # A fatal error has been detected by the Java Runtime Environment:
> > > #
> > > # Internal Error (/home/mgkwill/src/git/jdk/src/hotspot/share/asm/register.hpp:152), pid=3450238, tid=3450253
> > > # assert(a != b && a != c && a != d && a != e && b != c && b != d && b != e && c != d && c != e && d != e) failed: registers must be different: a=0x0000000000000001, b=0x0000000000000001, c=0x0000000000000003, d=0x0000000000000004, e=0x0000000000000005
> > > #
> > > # JRE version: OpenJDK Runtime Environment (17.0) (slowdebug build 17-internal+0-adhoc.mgkwill.jdk)
> > > ```
> > >
> > >
> > > AND
> > > ```
> > > # Benchmark: org.sample.MyBenchmark.testMin
> > >
> > > # Run progress: 25.00% complete, ETA 00:03:57
> > > # Fork: 1 of 1
> > > # Warmup Iteration 1: 112.445 us/op
> > > # Warmup Iteration 2: # To suppress the following error report, specify this argument
> > > # after -XX: or in .hotspotrc: SuppressErrorAt=/register.hpp:152
> > > #
> > > # A fatal error has been detected by the Java Runtime Environment:
> > > #
> > > # Internal Error (/home/mgkwill/src/git/jdk/src/hotspot/share/asm/register.hpp:152), pid=3450444, tid=3450481
> > > # assert(a != b && a != c && a != d && a != e && b != c && b != d && b != e && c != d && c != e && d != e) failed: registers must be different: a=0x0000000000000001, b=0x0000000000000001, c=0x0000000000000003, d=0x0000000000000004, e=0x0000000000000005
> > > #
> > > # JRE version: OpenJDK Runtime Environment (17.0) (slowdebug build 17-internal+0-adhoc.mgkwill.jdk)
> > > ```
> > >
> > >
> > > Otherwise the results are below.
> > > ```
> > > Baseline
> > > Benchmark Mode Cnt Score Error Units
> > > MyBenchmark.testAdd avgt 5 149.581 ? 13.626 us/op
> > > MyBenchmark.testMax avgt 5 223.362 ? 195.007 us/op
> > > MyBenchmark.testMin avgt 5 206.096 ? 16.840 us/op
> > > MyBenchmark.testMul avgt 5 149.366 ? 9.558 us/op
> > > Finished running test 'micro:MyBenchmark'
> > > ```
> > >
> > >
> > > ```
> > > Benchmark Mode Cnt Score Error Units
> > > MyBenchmark.testAdd avgt 5 107.874 ? 0.148 us/op
> > > MyBenchmark.testMul avgt 5 107.881 ? 0.015 us/op
> > > Finished running test 'micro:MyBenchmark'
> > > ```
> >
> >
> > > MyBenchmark.testAdd avgt 5 149.581 ? 13.626 us/op
> > > MyBenchmark.testMax avgt 5 223.362 ? 195.007 us/op
> > > MyBenchmark.testMin avgt 5 206.096 ? 16.840 us/op
> > > MyBenchmark.testMul avgt 5 149.366 ? 9.558 us/op
> >
> >
> > I run this test case by `java -jar target/benchmarks.jar -i 10 -wi 10 -f 1 `on ` Intel(R) Xeon(R) CPU E7-8890 v4 @ 2.20GHz` without crash. Can you give me your jvm options and this crash log? Thank you very much.
>
> Certainly. Tomorrow morning (my time) I will re-run with your command and test on a few other Xeons. I need to re-run to get crash logs (I'm jumping around between patches and cleaned already) but I will post those when I can recreate.
>
> To run I copied MyBenchmark.java from summary to test/micro/org/openjdk/bench/vm/compiler/MyBenchmark.java
> Command on running was:
> `make test TEST="micro:MyBenchmark" MICRO="FORK=1;WARMUP_ITER=2;" CONF=linux-x86_64-server-slowdebug`
>
> This worked on master, but on checkout of pr/3513 caused the errors above.
Thank you very much. I will check this issue.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3513
More information about the hotspot-compiler-dev
mailing list