RFR: JDK-8315278: Patch 'print-targets' target to print targets separated by new line

2023-08-29 Thread Cesar Soares Lucas
Currently 'make print-targets' print all targets on the same line separated by 
space. That isn't only terribly to read but hard to "grep". Printing each 
target on a separate line seems much better.

Tested on: Linux x64, Windows x64 and MacOS AArch64

-

Commit messages:
 - Print targets in separate lines

Changes: https://git.openjdk.org/jdk/pull/15479/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk=15479=00
  Issue: https://bugs.openjdk.org/browse/JDK-8315278
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/15479.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15479/head:pull/15479

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


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Vladimir Kozlov
On Mon, 28 Aug 2023 21:27:25 GMT, Srinivas Vamsi Parasa  
wrote:

>> The goal is to develop faster sort routines for x86_64 CPUs by taking 
>> advantage of AVX512 instructions. This enhancement provides an order of 
>> magnitude speedup for Arrays.sort() using int, long, float and double arrays.
>> 
>> This PR shows upto ~7x improvement for 32-bit datatypes (int, float) and 
>> upto ~4.5x improvement for 64-bit datatypes (long, double) as shown in the 
>> performance data below.
>> 
>> 
>> **Arrays.sort performance data using JMH benchmarks for arrays with random 
>> data** 
>> 
>> |Arrays.sort benchmark   |   Array Size  |   Baseline 
>> (us/op)|   AVX512 Sort (us/op) |   Speedup |
>> |--- |   --- |   --- |   --- |   --- 
>> |
>> |ArraysSort.doubleSort   |   10  |   0.034   |   0.035   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   25  |   0.116   |   0.089   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   50  |   0.282   |   0.291   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   75  |   0.474   |   0.358   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   100 |   0.654   |   0.623   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   1000|   9.274   |   6.331   
>> |   1.5 |
>> |ArraysSort.doubleSort   |   1   |   323.339 |   71.228  
>> |   **4.5** |
>> |ArraysSort.doubleSort   |   10  |   4471.871|   
>> 1002.748|   **4.5** |
>> |ArraysSort.doubleSort   |   100 |   51660.742   |   
>> 12921.295   |   **4.0** |
>> |ArraysSort.floatSort|   10  |   0.045   |   0.046   
>> |   1.0 |
>> |ArraysSort.floatSort|   25  |   0.103   |   0.084   
>> |   1.2 |
>> |ArraysSort.floatSort|   50  |   0.285   |   0.33
>> |   0.9 |
>> |ArraysSort.floatSort|   75  |   0.492   |   0.346   
>> |   1.4 |
>> |ArraysSort.floatSort|   100 |   0.597   |   0.326   
>> |   1.8 |
>> |ArraysSort.floatSort|   1000|   9.811   |   5.294   
>> |   1.9 |
>> |ArraysSort.floatSort|   1   |   323.955 |   50.547  
>> |   **6.4** |
>> |ArraysSort.floatSort|   10  |   4326.38 |   731.152 
>> |   **5.9** |
>> |ArraysSort.floatSort|   100 |   52413.88|   
>> 8409.193|   **6.2** |
>> |ArraysSort.intSort  |   10  |   0.033   |   0.033   
>> |   1.0 |
>> |ArraysSort.intSort  |   25  |   0.086   |   0.051   
>> |   1.7 |
>> |ArraysSort.intSort  |   50  |   0.236   |   0.151   
>> |   1.6 |
>> |ArraysSort.intSort  |   75  |   0.416   |   0.332   
>> |   1.3 |
>> |ArraysSort.intSort  |   100 |   0.63|   0.521   
>> |   1.2 |
>> |ArraysSort.intSort  |   1000|   10.518  |   4.698   
>> |   2.2 |
>> |ArraysSort.intSort  |   1   |   309.659 |   42.518  
>> |   **7.3** |
>> |ArraysSort.intSort  |   10  |   4130.917|   
>> 573.956 |   **7.2** |
>> |ArraysSort.intSort  |   100 |   49876.307   |   
>> 6712.812|   **7.4** |
>> |ArraysSort.longSort |   10  |   0.036   |   0.037   
>> |   1.0 |
>> |ArraysSort.longSort |   25  |   0.094   |   0.08
>> |   1.2 |
>> |ArraysSort.longSort |   50  |   0.218   |   0.227   
>> |   1.0 |
>> |ArraysSort.longSort |   75  |   0.466   |   0.402   
>> |   1.2 |
>> |ArraysSort.longSort |   100 |   0.76|   0.58
>> |   1.3 |
>> |ArraysSort.longSort |   1000|   10.449  |   6
>
> Srinivas Vamsi Parasa has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Clean up parameters passed to arrayPartition; update the check to load 
> library

Good. Thank you.

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1698380569


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Srinivas Vamsi Parasa
On Tue, 29 Aug 2023 20:44:32 GMT, Srinivas Vamsi Parasa  
wrote:

> > > Hi, We already have correctness tests. See 
> > > test/jdk/java/util/Arrays/Sorting.java
> > > The latest version you can find in PR 
> > > https://github.com/openjdk/jdk/pull/13568/files
> > 
> > 
> > Does test/jdk/java/util/Arrays/Sorting.java trigger usage of this intrinsic 
> > without additional flags? @vamsi-parasa can you check?
> 
> Sure Vladimir (@vnkozlov). Will check if 
> test/jdk/java/util/Arrays/Sorting.java is triggering the intrinsic without 
> additional flags and let you know.

Hi Vladimir,
Just verified that the test/jdk/java/util/Arrays/Sorting.java is triggering the 
intrinsic without additional flags as shown in the output snapshot below:
![image](https://github.com/openjdk/jdk/assets/23087109/a2d4edb1-9377-4f92-bed2-3e40bc5a7654)

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1698322922


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Srinivas Vamsi Parasa
On Tue, 29 Aug 2023 20:36:04 GMT, Vladimir Kozlov  wrote:

> > Hi, We already have correctness tests. See 
> > test/jdk/java/util/Arrays/Sorting.java
> > The latest version you can find in PR 
> > https://github.com/openjdk/jdk/pull/13568/files
> 
> Does test/jdk/java/util/Arrays/Sorting.java trigger usage of this intrinsic 
> without additional flags? @vamsi-parasa can you check?

Sure Vladimir (@vnkozlov). Will check if test/jdk/java/util/Arrays/Sorting.java 
is triggering the intrinsic without additional flags and let you know.

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1698103318


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Vladimir Kozlov
On Mon, 28 Aug 2023 21:27:25 GMT, Srinivas Vamsi Parasa  
wrote:

>> The goal is to develop faster sort routines for x86_64 CPUs by taking 
>> advantage of AVX512 instructions. This enhancement provides an order of 
>> magnitude speedup for Arrays.sort() using int, long, float and double arrays.
>> 
>> This PR shows upto ~7x improvement for 32-bit datatypes (int, float) and 
>> upto ~4.5x improvement for 64-bit datatypes (long, double) as shown in the 
>> performance data below.
>> 
>> 
>> **Arrays.sort performance data using JMH benchmarks for arrays with random 
>> data** 
>> 
>> |Arrays.sort benchmark   |   Array Size  |   Baseline 
>> (us/op)|   AVX512 Sort (us/op) |   Speedup |
>> |--- |   --- |   --- |   --- |   --- 
>> |
>> |ArraysSort.doubleSort   |   10  |   0.034   |   0.035   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   25  |   0.116   |   0.089   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   50  |   0.282   |   0.291   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   75  |   0.474   |   0.358   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   100 |   0.654   |   0.623   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   1000|   9.274   |   6.331   
>> |   1.5 |
>> |ArraysSort.doubleSort   |   1   |   323.339 |   71.228  
>> |   **4.5** |
>> |ArraysSort.doubleSort   |   10  |   4471.871|   
>> 1002.748|   **4.5** |
>> |ArraysSort.doubleSort   |   100 |   51660.742   |   
>> 12921.295   |   **4.0** |
>> |ArraysSort.floatSort|   10  |   0.045   |   0.046   
>> |   1.0 |
>> |ArraysSort.floatSort|   25  |   0.103   |   0.084   
>> |   1.2 |
>> |ArraysSort.floatSort|   50  |   0.285   |   0.33
>> |   0.9 |
>> |ArraysSort.floatSort|   75  |   0.492   |   0.346   
>> |   1.4 |
>> |ArraysSort.floatSort|   100 |   0.597   |   0.326   
>> |   1.8 |
>> |ArraysSort.floatSort|   1000|   9.811   |   5.294   
>> |   1.9 |
>> |ArraysSort.floatSort|   1   |   323.955 |   50.547  
>> |   **6.4** |
>> |ArraysSort.floatSort|   10  |   4326.38 |   731.152 
>> |   **5.9** |
>> |ArraysSort.floatSort|   100 |   52413.88|   
>> 8409.193|   **6.2** |
>> |ArraysSort.intSort  |   10  |   0.033   |   0.033   
>> |   1.0 |
>> |ArraysSort.intSort  |   25  |   0.086   |   0.051   
>> |   1.7 |
>> |ArraysSort.intSort  |   50  |   0.236   |   0.151   
>> |   1.6 |
>> |ArraysSort.intSort  |   75  |   0.416   |   0.332   
>> |   1.3 |
>> |ArraysSort.intSort  |   100 |   0.63|   0.521   
>> |   1.2 |
>> |ArraysSort.intSort  |   1000|   10.518  |   4.698   
>> |   2.2 |
>> |ArraysSort.intSort  |   1   |   309.659 |   42.518  
>> |   **7.3** |
>> |ArraysSort.intSort  |   10  |   4130.917|   
>> 573.956 |   **7.2** |
>> |ArraysSort.intSort  |   100 |   49876.307   |   
>> 6712.812|   **7.4** |
>> |ArraysSort.longSort |   10  |   0.036   |   0.037   
>> |   1.0 |
>> |ArraysSort.longSort |   25  |   0.094   |   0.08
>> |   1.2 |
>> |ArraysSort.longSort |   50  |   0.218   |   0.227   
>> |   1.0 |
>> |ArraysSort.longSort |   75  |   0.466   |   0.402   
>> |   1.2 |
>> |ArraysSort.longSort |   100 |   0.76|   0.58
>> |   1.3 |
>> |ArraysSort.longSort |   1000|   10.449  |   6
>
> Srinivas Vamsi Parasa has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Clean up parameters passed to arrayPartition; update the check to load 
> library

I looked on my testing log and I see that this test was run on machines which 
do not have avx512. I am re-running jdk/util tests with -Xcomp flag on avx512 
machines.

My testing  with -Xcomp flag on avx512 machines passed.

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1698106526
PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1698272873


Re: RFR: 8303427: Fixpath confused if unix root contains "/jdk"

2023-08-29 Thread Erik Joelsson
On Tue, 29 Aug 2023 04:11:24 GMT, Julian Waters  wrote:

> The GitHub Actions failures look terrifying, but all of them are just a 
> failing JTReg download for some reason (Not related to the change). Will 
> recompile with this change and report back as soon as I can

I hit rerun and it seems have worked

> Works normally on both master and the experimental JDK-8288293 branch

Thank you for testing! I'm still running through more scenarios.

-

PR Comment: https://git.openjdk.org/jdk/pull/15461#issuecomment-1698220159


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Srinivas Vamsi Parasa
On Tue, 29 Aug 2023 20:36:04 GMT, Vladimir Kozlov  wrote:

> Hi, We already have correctness tests. See 
> test/jdk/java/util/Arrays/Sorting.java
> 
> The latest version you can find in PR 
> https://github.com/openjdk/jdk/pull/13568/files

Hello Vladimir (@iaroslavski),

Thank you for providing the link to the correctness tests!

Thanks,
Vamsi

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1698101345


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Vladimir Kozlov
On Tue, 29 Aug 2023 19:32:44 GMT, iaroslavski  wrote:

> Hi, We already have correctness tests. See 
> test/jdk/java/util/Arrays/Sorting.java
> 
> The latest version you can find in PR 
> https://github.com/openjdk/jdk/pull/13568/files

Does test/jdk/java/util/Arrays/Sorting.java trigger usage of this intrinsic 
without additional flags?
@vamsi-parasa can you check?

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1698092741


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v29]

2023-08-29 Thread Vladimir Kozlov
On Tue, 29 Aug 2023 17:32:26 GMT, Srinivas Vamsi Parasa  
wrote:

>>> The reason this PR is focused on Linux is because the AVX512 sort and 
>>> partitioning routines are based on Intel’s x86-simd-library 
>>> (https://github.com/intel/x86-simd-sort) which was originally developed 
>>> with GCC as the target compiler. Thus, this PR has restricted itself to 
>>> Linux as the code was tested using GCC/Linux platforms. Additionally, the 
>>> x86_64 library is compiled for AVX512 using file specific compilation 
>>> pragmas (`#pragma GCC target("avx512dq", "avx512f")`). This feature is 
>>> absent for Windows/MSVC++ compiler.”
>> 
>> That is why I am questioning this approach to have additional separate C++ 
>> code library - too much dependencies on other tools.
>> 
>> As I suggested before try to disassemble this library and use assembler code 
>> in VM new stubs. You can create specialized 
>> stubGenerator_x86_64_array_sort.cpp file for it. Then you don't need to 
>> depend on C++ compiler or OS.
>
> The shared library approach is being followed currently as an initial 
> implementation to demonstrate the value of AVX512 sorting. This will be 
> followed up in future with support for Windows as well. 
> If it is ok with you, the shared library approach could be pursued for now to 
> be later replaced with specialized assembly stubs (which are agnostic to OS 
> and compiler) when AVX512 sort is enabled for Windows. Please let us know.

I am okay with such incremental approach. Please, file RFE to replace library 
with stubs in a future (it could be still separate library but with assembler 
code).

-

PR Review Comment: https://git.openjdk.org/jdk/pull/14227#discussion_r1309316767


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Sandhya Viswanathan
On Tue, 29 Aug 2023 19:28:17 GMT, Alan Bateman  wrote:

>> Srinivas Vamsi Parasa has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Clean up parameters passed to arrayPartition; update the check to load 
>> library
>
> The changes to DualPivotQuicksort will need detailed review to ensure that 
> this is understandable and maintainable, there is a lot here to study.
> 
> The addition of libx86_64 and having the stub generation call out to this 
> library also needs discussion to make sure there is an agreement on how this 
> would be integrated.

@AlanBateman If it helps, the changes made by @vamsi-parasa to 
DualPivotQuickSort.java don't change the logic as written in Java. They only 
carve out the functionality into separate Java methods retaining the meaning 
exactly as before. These Java methods are then optimized through a stub.

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1698079501


Re: building individual test issue

2023-08-29 Thread Mykhaylo Lodygin
Thank you Vladimir, but I'm 100percent positive that patches are applied, i
could add my build log but it is quite lengthy , the extract is:

I: Running env PATH=/usr/sbin:/usr/bin:/sbin:/bin dpkg-buildpackage
-rfakeroot -us -uc -uc -us
dpkg-buildpackage: info: source package openjdk-lts
dpkg-buildpackage: info: source version
11.0.19+7~us1-0ubuntu1~18.04.1.1692386031.126726.1
dpkg-buildpackage: info: source distribution bionic-security
dpkg-buildpackage: info: source changed by Vladimir Petko <
vladimir.pe...@canonical.com>
 dpkg-source --before-build jdk11u-jdk-11.0.19-7
dpkg-buildpackage: info: host architecture amd64
dpkg-source: info: applying system-pcsclite.diff
dpkg-source: info: applying hotspot-mips-align.diff
dpkg-source: info: applying icc_loading_with_symlink.diff
dpkg-source: info: applying icedtea-override-redirect-compiz.diff
dpkg-source: info: applying libpcsclite-dlopen.diff
dpkg-source: info: applying jexec.diff
dpkg-source: info: applying default-jvm-cfg.diff
dpkg-source: info: applying adlc-parser.diff
dpkg-source: info: applying multiple-pkcs11-library-init.diff
dpkg-source: info: applying s390x-thread-stack-size.diff
dpkg-source: info: applying s390x-opt.diff
dpkg-source: info: applying jdk-getAccessibleValue.diff
dpkg-source: info: applying jtreg-location.diff
dpkg-source: info: applying jdk-i18n-pt_BR.diff
dpkg-source: info: applying disable-doclint-by-default.diff
dpkg-source: info: applying 8199220.diff
dpkg-source: info: applying machine-flag.diff
dpkg-source: info: applying zero-x32.diff
dpkg-source: info: applying hotspot-disable-exec-shield-workaround.diff
dpkg-source: info: applying atk-wrapper-security.diff
dpkg-source: info: applying dnd-files.diff
dpkg-source: info: applying hotspot-libpath.diff
dpkg-source: info: applying reproducible-properties-timestamp.diff
dpkg-source: info: applying reproducible-javadoc-timestamp.diff
dpkg-source: info: applying
Don-t-optimize-fdlibm-fork-for-Zero-on-linux-sparc-Z.patch
dpkg-source: info: applying keep-gtk2-as-default.patch
dpkg-source: info: applying riscv64.diff
dpkg-source: info: applying reproducible-character-data.diff
dpkg-source: info: applying reproducible-module-info.diff
dpkg-source: info: applying reproducible-copyright-headers.diff
dpkg-source: info: applying reproducible-build-user.diff
dpkg-source: info: applying reproducible-build-jmod.diff
dpkg-source: info: applying hotspot-test-fix-npe-on-missing-file.patch
dpkg-source: info: applying disable-thumb-assertion.patch
dpkg-source: info: applying update-assertion-for-armhf.patch
dpkg-source: info: applying log-generated-classes-test.patch
dpkg-source: info: applying update-permission-test.patch
dpkg-source: info: applying ldap-timeout-test-use-ip.patch
dpkg-source: info: applying test-use-ip-address.patch
dpkg-source: info: applying exclude-broken-tests.patch
 debian/rules clean
dh_testdir
dh_testroot
dh_prep

I'm building with "debuild -uc -us " maybe it is not enough?

On Tue, Aug 29, 2023 at 11:04 PM Vladimir Petko <
vladimir.pe...@canonical.com> wrote:

> Hi,
>
> Yes, patches from debian/patches. They can be applied with quilt[1]
> and only patches listed in series are needed.
>
> Best Regards,
>  Vladimir.
>
> [1] https://linux.die.net/man/1/quilt
>
> On Wed, Aug 30, 2023 at 1:19 AM Mykhaylo Lodygin
>  wrote:
> >
> > Hello Vladimir, thank you for your attention,
> > did you mean set of patches located in debian/patches ? those are
> patched (all in the series file) or some other?
> > Mykhaylo
> >
> > On Mon, Aug 28, 2023 at 11:11 PM Vladimir Petko <
> vladimir.pe...@canonical.com> wrote:
> >>
> >> Hi,
> >>
> >>  I believe this was due to building OpenJDK from Debian original
> >> tarball that does not contain bundled libraries. Building from it
> >> requires applying Debian patches via `quilt push -a` and using
> >> configure arguments from `debian/rules`.
> >>
> >> Best Regards,
> >>  Vladimir.
> >>
> >> On Tue, Aug 29, 2023 at 1:02 AM David Holmes 
> wrote:
> >> >
> >> > On 28/08/2023 9:54 pm, Mykhaylo Lodygin wrote:
> >> > > Hello colleagues,
> >> > > I've build JDK locally successfully, but got several tests "FAILED".
> >> >
> >> > What did you build? images? what about test-images?
> >> >
> >> > > Tried to run one of the failing test separately with "make test
> >> > > TEST="".
> >> > > Were unable to do so due to build error - the compiler was
> unfamiliar to
> >> > > include path to winscard.h, fixed with configuration option:
> >> > > bash configure --with-extra-cflags="-I/usr/include/PCSC"
> >> >
> >> > What test(s), on what platform?
> >> >
> >> > > next error was incapability of  linker to link with libjpeg - fixed
> with
> >> > > adding --with-libjpeg=system to configure.
> >> > > the issue was solved,  but a new one was added with missing libgif.
> >> > > I was curious and tried a test that "Passed", thinking that
> "failure"
> >> > > could had happen due to inability to build the test. Tried
> >> > > sun/util/calendar/zi/Beyond2037.java but got a 

Re: building individual test issue

2023-08-29 Thread Vladimir Petko
Hi,

Yes, patches from debian/patches. They can be applied with quilt[1]
and only patches listed in series are needed.

Best Regards,
 Vladimir.

[1] https://linux.die.net/man/1/quilt

On Wed, Aug 30, 2023 at 1:19 AM Mykhaylo Lodygin
 wrote:
>
> Hello Vladimir, thank you for your attention,
> did you mean set of patches located in debian/patches ? those are patched 
> (all in the series file) or some other?
> Mykhaylo
>
> On Mon, Aug 28, 2023 at 11:11 PM Vladimir Petko 
>  wrote:
>>
>> Hi,
>>
>>  I believe this was due to building OpenJDK from Debian original
>> tarball that does not contain bundled libraries. Building from it
>> requires applying Debian patches via `quilt push -a` and using
>> configure arguments from `debian/rules`.
>>
>> Best Regards,
>>  Vladimir.
>>
>> On Tue, Aug 29, 2023 at 1:02 AM David Holmes  wrote:
>> >
>> > On 28/08/2023 9:54 pm, Mykhaylo Lodygin wrote:
>> > > Hello colleagues,
>> > > I've build JDK locally successfully, but got several tests "FAILED".
>> >
>> > What did you build? images? what about test-images?
>> >
>> > > Tried to run one of the failing test separately with "make test
>> > > TEST="".
>> > > Were unable to do so due to build error - the compiler was unfamiliar to
>> > > include path to winscard.h, fixed with configuration option:
>> > > bash configure --with-extra-cflags="-I/usr/include/PCSC"
>> >
>> > What test(s), on what platform?
>> >
>> > > next error was incapability of  linker to link with libjpeg - fixed with
>> > > adding --with-libjpeg=system to configure.
>> > > the issue was solved,  but a new one was added with missing libgif.
>> > > I was curious and tried a test that "Passed", thinking that "failure"
>> > > could had happen due to inability to build the test. Tried
>> > > sun/util/calendar/zi/Beyond2037.java but got a very similar error of
>> > > inability to link with liblcms2-2.
>> > > I'm flabbergasted, hence my questions are: does "make test" target is
>> > > expected to rebuild JDK's code? does my approach of adding options to
>> > > configure script is proper one? How come a test could be "Passed" while
>> > > running it separately results in inability to build the test?
>> >
>> > As Erik indicated we need more information/details.
>> >
>> > Cheers,
>> > David
>> >
>> >
>> > > Thank you.
>> > > Mykhaylo Lodygin


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread iaroslavski
On Tue, 29 Aug 2023 16:57:11 GMT, Srinivas Vamsi Parasa  
wrote:

> > My testing passed. But I am not sure correctness of code is fully tested. 
> > For now we have only JMH benchmark for this new code. Do we have JDK test 
> > which can check correctness of this code?
> 
> Hi Vladimir, will add the JDK tests to check for correctness and let you know

Hi,
We already have correctness tests. See test/jdk/java/util/Arrays/Sorting.java

The latest version you can find in PR 
https://github.com/openjdk/jdk/pull/13568/files

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1698014609


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread iaroslavski
On Mon, 28 Aug 2023 21:27:25 GMT, Srinivas Vamsi Parasa  
wrote:

>> The goal is to develop faster sort routines for x86_64 CPUs by taking 
>> advantage of AVX512 instructions. This enhancement provides an order of 
>> magnitude speedup for Arrays.sort() using int, long, float and double arrays.
>> 
>> This PR shows upto ~7x improvement for 32-bit datatypes (int, float) and 
>> upto ~4.5x improvement for 64-bit datatypes (long, double) as shown in the 
>> performance data below.
>> 
>> 
>> **Arrays.sort performance data using JMH benchmarks for arrays with random 
>> data** 
>> 
>> |Arrays.sort benchmark   |   Array Size  |   Baseline 
>> (us/op)|   AVX512 Sort (us/op) |   Speedup |
>> |--- |   --- |   --- |   --- |   --- 
>> |
>> |ArraysSort.doubleSort   |   10  |   0.034   |   0.035   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   25  |   0.116   |   0.089   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   50  |   0.282   |   0.291   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   75  |   0.474   |   0.358   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   100 |   0.654   |   0.623   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   1000|   9.274   |   6.331   
>> |   1.5 |
>> |ArraysSort.doubleSort   |   1   |   323.339 |   71.228  
>> |   **4.5** |
>> |ArraysSort.doubleSort   |   10  |   4471.871|   
>> 1002.748|   **4.5** |
>> |ArraysSort.doubleSort   |   100 |   51660.742   |   
>> 12921.295   |   **4.0** |
>> |ArraysSort.floatSort|   10  |   0.045   |   0.046   
>> |   1.0 |
>> |ArraysSort.floatSort|   25  |   0.103   |   0.084   
>> |   1.2 |
>> |ArraysSort.floatSort|   50  |   0.285   |   0.33
>> |   0.9 |
>> |ArraysSort.floatSort|   75  |   0.492   |   0.346   
>> |   1.4 |
>> |ArraysSort.floatSort|   100 |   0.597   |   0.326   
>> |   1.8 |
>> |ArraysSort.floatSort|   1000|   9.811   |   5.294   
>> |   1.9 |
>> |ArraysSort.floatSort|   1   |   323.955 |   50.547  
>> |   **6.4** |
>> |ArraysSort.floatSort|   10  |   4326.38 |   731.152 
>> |   **5.9** |
>> |ArraysSort.floatSort|   100 |   52413.88|   
>> 8409.193|   **6.2** |
>> |ArraysSort.intSort  |   10  |   0.033   |   0.033   
>> |   1.0 |
>> |ArraysSort.intSort  |   25  |   0.086   |   0.051   
>> |   1.7 |
>> |ArraysSort.intSort  |   50  |   0.236   |   0.151   
>> |   1.6 |
>> |ArraysSort.intSort  |   75  |   0.416   |   0.332   
>> |   1.3 |
>> |ArraysSort.intSort  |   100 |   0.63|   0.521   
>> |   1.2 |
>> |ArraysSort.intSort  |   1000|   10.518  |   4.698   
>> |   2.2 |
>> |ArraysSort.intSort  |   1   |   309.659 |   42.518  
>> |   **7.3** |
>> |ArraysSort.intSort  |   10  |   4130.917|   
>> 573.956 |   **7.2** |
>> |ArraysSort.intSort  |   100 |   49876.307   |   
>> 6712.812|   **7.4** |
>> |ArraysSort.longSort |   10  |   0.036   |   0.037   
>> |   1.0 |
>> |ArraysSort.longSort |   25  |   0.094   |   0.08
>> |   1.2 |
>> |ArraysSort.longSort |   50  |   0.218   |   0.227   
>> |   1.0 |
>> |ArraysSort.longSort |   75  |   0.466   |   0.402   
>> |   1.2 |
>> |ArraysSort.longSort |   100 |   0.76|   0.58
>> |   1.3 |
>> |ArraysSort.longSort |   1000|   10.449  |   6
>
> Srinivas Vamsi Parasa has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Clean up parameters passed to arrayPartition; update the check to load 
> library

Hi,
We already have correctness tests. See test/jdk/java/util/Arrays/Sorting.java

The latest version you can find in PR 
https://github.com/openjdk/jdk/pull/13568/files

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1698016905


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Alan Bateman
On Mon, 28 Aug 2023 21:27:25 GMT, Srinivas Vamsi Parasa  
wrote:

>> The goal is to develop faster sort routines for x86_64 CPUs by taking 
>> advantage of AVX512 instructions. This enhancement provides an order of 
>> magnitude speedup for Arrays.sort() using int, long, float and double arrays.
>> 
>> This PR shows upto ~7x improvement for 32-bit datatypes (int, float) and 
>> upto ~4.5x improvement for 64-bit datatypes (long, double) as shown in the 
>> performance data below.
>> 
>> 
>> **Arrays.sort performance data using JMH benchmarks for arrays with random 
>> data** 
>> 
>> |Arrays.sort benchmark   |   Array Size  |   Baseline 
>> (us/op)|   AVX512 Sort (us/op) |   Speedup |
>> |--- |   --- |   --- |   --- |   --- 
>> |
>> |ArraysSort.doubleSort   |   10  |   0.034   |   0.035   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   25  |   0.116   |   0.089   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   50  |   0.282   |   0.291   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   75  |   0.474   |   0.358   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   100 |   0.654   |   0.623   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   1000|   9.274   |   6.331   
>> |   1.5 |
>> |ArraysSort.doubleSort   |   1   |   323.339 |   71.228  
>> |   **4.5** |
>> |ArraysSort.doubleSort   |   10  |   4471.871|   
>> 1002.748|   **4.5** |
>> |ArraysSort.doubleSort   |   100 |   51660.742   |   
>> 12921.295   |   **4.0** |
>> |ArraysSort.floatSort|   10  |   0.045   |   0.046   
>> |   1.0 |
>> |ArraysSort.floatSort|   25  |   0.103   |   0.084   
>> |   1.2 |
>> |ArraysSort.floatSort|   50  |   0.285   |   0.33
>> |   0.9 |
>> |ArraysSort.floatSort|   75  |   0.492   |   0.346   
>> |   1.4 |
>> |ArraysSort.floatSort|   100 |   0.597   |   0.326   
>> |   1.8 |
>> |ArraysSort.floatSort|   1000|   9.811   |   5.294   
>> |   1.9 |
>> |ArraysSort.floatSort|   1   |   323.955 |   50.547  
>> |   **6.4** |
>> |ArraysSort.floatSort|   10  |   4326.38 |   731.152 
>> |   **5.9** |
>> |ArraysSort.floatSort|   100 |   52413.88|   
>> 8409.193|   **6.2** |
>> |ArraysSort.intSort  |   10  |   0.033   |   0.033   
>> |   1.0 |
>> |ArraysSort.intSort  |   25  |   0.086   |   0.051   
>> |   1.7 |
>> |ArraysSort.intSort  |   50  |   0.236   |   0.151   
>> |   1.6 |
>> |ArraysSort.intSort  |   75  |   0.416   |   0.332   
>> |   1.3 |
>> |ArraysSort.intSort  |   100 |   0.63|   0.521   
>> |   1.2 |
>> |ArraysSort.intSort  |   1000|   10.518  |   4.698   
>> |   2.2 |
>> |ArraysSort.intSort  |   1   |   309.659 |   42.518  
>> |   **7.3** |
>> |ArraysSort.intSort  |   10  |   4130.917|   
>> 573.956 |   **7.2** |
>> |ArraysSort.intSort  |   100 |   49876.307   |   
>> 6712.812|   **7.4** |
>> |ArraysSort.longSort |   10  |   0.036   |   0.037   
>> |   1.0 |
>> |ArraysSort.longSort |   25  |   0.094   |   0.08
>> |   1.2 |
>> |ArraysSort.longSort |   50  |   0.218   |   0.227   
>> |   1.0 |
>> |ArraysSort.longSort |   75  |   0.466   |   0.402   
>> |   1.2 |
>> |ArraysSort.longSort |   100 |   0.76|   0.58
>> |   1.3 |
>> |ArraysSort.longSort |   1000|   10.449  |   6
>
> Srinivas Vamsi Parasa has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Clean up parameters passed to arrayPartition; update the check to load 
> library

The changes to DualPivotQuicksort will need detailed review to ensure that this 
is understandable and maintainable, there is a lot here to study.

The addition of libx86_64 and having the stub generation call out to this 
library also needs discussion to make sure there is an agreement on how this 
would be integrated.

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1698011712


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Roger Riggs
On Mon, 28 Aug 2023 21:27:25 GMT, Srinivas Vamsi Parasa  
wrote:

>> The goal is to develop faster sort routines for x86_64 CPUs by taking 
>> advantage of AVX512 instructions. This enhancement provides an order of 
>> magnitude speedup for Arrays.sort() using int, long, float and double arrays.
>> 
>> This PR shows upto ~7x improvement for 32-bit datatypes (int, float) and 
>> upto ~4.5x improvement for 64-bit datatypes (long, double) as shown in the 
>> performance data below.
>> 
>> 
>> **Arrays.sort performance data using JMH benchmarks for arrays with random 
>> data** 
>> 
>> |Arrays.sort benchmark   |   Array Size  |   Baseline 
>> (us/op)|   AVX512 Sort (us/op) |   Speedup |
>> |--- |   --- |   --- |   --- |   --- 
>> |
>> |ArraysSort.doubleSort   |   10  |   0.034   |   0.035   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   25  |   0.116   |   0.089   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   50  |   0.282   |   0.291   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   75  |   0.474   |   0.358   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   100 |   0.654   |   0.623   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   1000|   9.274   |   6.331   
>> |   1.5 |
>> |ArraysSort.doubleSort   |   1   |   323.339 |   71.228  
>> |   **4.5** |
>> |ArraysSort.doubleSort   |   10  |   4471.871|   
>> 1002.748|   **4.5** |
>> |ArraysSort.doubleSort   |   100 |   51660.742   |   
>> 12921.295   |   **4.0** |
>> |ArraysSort.floatSort|   10  |   0.045   |   0.046   
>> |   1.0 |
>> |ArraysSort.floatSort|   25  |   0.103   |   0.084   
>> |   1.2 |
>> |ArraysSort.floatSort|   50  |   0.285   |   0.33
>> |   0.9 |
>> |ArraysSort.floatSort|   75  |   0.492   |   0.346   
>> |   1.4 |
>> |ArraysSort.floatSort|   100 |   0.597   |   0.326   
>> |   1.8 |
>> |ArraysSort.floatSort|   1000|   9.811   |   5.294   
>> |   1.9 |
>> |ArraysSort.floatSort|   1   |   323.955 |   50.547  
>> |   **6.4** |
>> |ArraysSort.floatSort|   10  |   4326.38 |   731.152 
>> |   **5.9** |
>> |ArraysSort.floatSort|   100 |   52413.88|   
>> 8409.193|   **6.2** |
>> |ArraysSort.intSort  |   10  |   0.033   |   0.033   
>> |   1.0 |
>> |ArraysSort.intSort  |   25  |   0.086   |   0.051   
>> |   1.7 |
>> |ArraysSort.intSort  |   50  |   0.236   |   0.151   
>> |   1.6 |
>> |ArraysSort.intSort  |   75  |   0.416   |   0.332   
>> |   1.3 |
>> |ArraysSort.intSort  |   100 |   0.63|   0.521   
>> |   1.2 |
>> |ArraysSort.intSort  |   1000|   10.518  |   4.698   
>> |   2.2 |
>> |ArraysSort.intSort  |   1   |   309.659 |   42.518  
>> |   **7.3** |
>> |ArraysSort.intSort  |   10  |   4130.917|   
>> 573.956 |   **7.2** |
>> |ArraysSort.intSort  |   100 |   49876.307   |   
>> 6712.812|   **7.4** |
>> |ArraysSort.longSort |   10  |   0.036   |   0.037   
>> |   1.0 |
>> |ArraysSort.longSort |   25  |   0.094   |   0.08
>> |   1.2 |
>> |ArraysSort.longSort |   50  |   0.218   |   0.227   
>> |   1.0 |
>> |ArraysSort.longSort |   75  |   0.466   |   0.402   
>> |   1.2 |
>> |ArraysSort.longSort |   100 |   0.76|   0.58
>> |   1.3 |
>> |ArraysSort.longSort |   1000|   10.449  |   6
>
> Srinivas Vamsi Parasa has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Clean up parameters passed to arrayPartition; update the check to load 
> library

@mcimadamore Does Panama have anything to offer over hard coded stubs?

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1697957043


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v29]

2023-08-29 Thread Srinivas Vamsi Parasa
On Tue, 29 Aug 2023 16:02:57 GMT, Vladimir Kozlov  wrote:

>> If it's tied to GCC as well, then we should probably include that in the 
>> condition here unless it's also expected to work with Clang. 
>> (`TOOLCHAIN_TYPE` = `gcc`)
>
>> The reason this PR is focused on Linux is because the AVX512 sort and 
>> partitioning routines are based on Intel’s x86-simd-library 
>> (https://github.com/intel/x86-simd-sort) which was originally developed with 
>> GCC as the target compiler. Thus, this PR has restricted itself to Linux as 
>> the code was tested using GCC/Linux platforms. Additionally, the x86_64 
>> library is compiled for AVX512 using file specific compilation pragmas 
>> (`#pragma GCC target("avx512dq", "avx512f")`). This feature is absent for 
>> Windows/MSVC++ compiler.”
> 
> That is why I am questioning this approach to have additional separate C++ 
> code library - too much dependencies on other tools.
> 
> As I suggested before try to disassemble this library and use assembler code 
> in VM new stubs. You can create specialized 
> stubGenerator_x86_64_array_sort.cpp file for it. Then you don't need to 
> depend on C++ compiler or OS.

The shared library approach is being followed currently as an initial 
implementation to demonstrate the value of AVX512 sorting. This will be 
followed up in future with support for Windows as well. 
If it is ok with you, the shared library approach could be pursued for now to 
be later replaced with specialized assembly stubs (which are agnostic to OS and 
compiler) when AVX512 sort is enabled for Windows. Please let us know.

-

PR Review Comment: https://git.openjdk.org/jdk/pull/14227#discussion_r1309151742


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Srinivas Vamsi Parasa
On Tue, 29 Aug 2023 16:04:58 GMT, Vladimir Kozlov  wrote:

> My testing passed. But I am not sure correctness of code is fully tested. For 
> now we have only JMH benchmark for this new code. Do we have JDK test which 
> can check correctness of this code?

Hi Vladimir, will add the JDK tests to check for correctness and let you know.

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1697820155


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Srinivas Vamsi Parasa
On Mon, 28 Aug 2023 23:35:56 GMT, Erik Joelsson  wrote:

>> Srinivas Vamsi Parasa has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Clean up parameters passed to arrayPartition; update the check to load 
>> library
>
> make/modules/java.base/Lib.gmk line 240:
> 
>> 238: 
>> 239: ifeq ($(call isTargetOs, linux)+$(call isTargetCpu, 
>> x86_64)+$(INCLUDE_COMPILER2), true+true+true)
>> 240:   $(eval $(call SetupJdkLibrary, BUILD_LIB_X86_64, \
> 
> As this is a C++ lib, consider using g++ for linking by setting:
> 
> TOOLCHAIN := TOOLCHAIN_LINK_CXX

Thanks Erik. Will update Lib.gmk to use g++ for linking.

> make/modules/java.base/Lib.gmk line 247:
> 
>> 245:   LDFLAGS := $(LDFLAGS_JDKLIB) \
>> 246:   $(call SET_SHARED_LIBRARY_ORIGIN), \
>> 247:   LDFLAGS_linux := -Wl$(COMMA)--no-as-needed, \
> 
> This is set by default since JDK-8314554.

Thanks Erik. Will update Lib.gmk accordingly.

-

PR Review Comment: https://git.openjdk.org/jdk/pull/14227#discussion_r1309118874
PR Review Comment: https://git.openjdk.org/jdk/pull/14227#discussion_r1309118373


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v29]

2023-08-29 Thread Vladimir Kozlov
On Mon, 28 Aug 2023 23:28:44 GMT, Erik Joelsson  wrote:

>> Hi Erik,
>> 
>> The reason this PR is focused on Linux is because the AVX512 sort and 
>> partitioning routines are based on Intel’s x86-simd-library 
>> (https://github.com/intel/x86-simd-sort) which was originally developed with 
>> GCC as the target compiler. Thus, this PR has restricted itself to Linux as 
>> the code was tested using GCC/Linux platforms. 
>> Additionally, the x86_64 library is compiled for AVX512 using file specific 
>> compilation pragmas (`#pragma GCC target("avx512dq", "avx512f")`). This 
>> feature is absent for Windows/MSVC++ compiler.”
>> 
>> Thanks,
>> Vamsi
>
> If it's tied to GCC as well, then we should probably include that in the 
> condition here unless it's also expected to work with Clang. 
> (`TOOLCHAIN_TYPE` = `gcc`)

> The reason this PR is focused on Linux is because the AVX512 sort and 
> partitioning routines are based on Intel’s x86-simd-library 
> (https://github.com/intel/x86-simd-sort) which was originally developed with 
> GCC as the target compiler. Thus, this PR has restricted itself to Linux as 
> the code was tested using GCC/Linux platforms. Additionally, the x86_64 
> library is compiled for AVX512 using file specific compilation pragmas 
> (`#pragma GCC target("avx512dq", "avx512f")`). This feature is absent for 
> Windows/MSVC++ compiler.”

That is why I am questioning this approach to have additional separate C++ code 
library - too much dependencies on other tools.

As I suggested before try to disassemble this library and use assembler code in 
VM new stubs. You can create specialized stubGenerator_x86_64_array_sort.cpp 
file for it. Then you don't need to depend on C++ compiler or OS.

-

PR Review Comment: https://git.openjdk.org/jdk/pull/14227#discussion_r1309054538


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Vladimir Kozlov
On Mon, 28 Aug 2023 21:27:25 GMT, Srinivas Vamsi Parasa  
wrote:

>> The goal is to develop faster sort routines for x86_64 CPUs by taking 
>> advantage of AVX512 instructions. This enhancement provides an order of 
>> magnitude speedup for Arrays.sort() using int, long, float and double arrays.
>> 
>> This PR shows upto ~7x improvement for 32-bit datatypes (int, float) and 
>> upto ~4.5x improvement for 64-bit datatypes (long, double) as shown in the 
>> performance data below.
>> 
>> 
>> **Arrays.sort performance data using JMH benchmarks for arrays with random 
>> data** 
>> 
>> |Arrays.sort benchmark   |   Array Size  |   Baseline 
>> (us/op)|   AVX512 Sort (us/op) |   Speedup |
>> |--- |   --- |   --- |   --- |   --- 
>> |
>> |ArraysSort.doubleSort   |   10  |   0.034   |   0.035   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   25  |   0.116   |   0.089   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   50  |   0.282   |   0.291   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   75  |   0.474   |   0.358   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   100 |   0.654   |   0.623   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   1000|   9.274   |   6.331   
>> |   1.5 |
>> |ArraysSort.doubleSort   |   1   |   323.339 |   71.228  
>> |   **4.5** |
>> |ArraysSort.doubleSort   |   10  |   4471.871|   
>> 1002.748|   **4.5** |
>> |ArraysSort.doubleSort   |   100 |   51660.742   |   
>> 12921.295   |   **4.0** |
>> |ArraysSort.floatSort|   10  |   0.045   |   0.046   
>> |   1.0 |
>> |ArraysSort.floatSort|   25  |   0.103   |   0.084   
>> |   1.2 |
>> |ArraysSort.floatSort|   50  |   0.285   |   0.33
>> |   0.9 |
>> |ArraysSort.floatSort|   75  |   0.492   |   0.346   
>> |   1.4 |
>> |ArraysSort.floatSort|   100 |   0.597   |   0.326   
>> |   1.8 |
>> |ArraysSort.floatSort|   1000|   9.811   |   5.294   
>> |   1.9 |
>> |ArraysSort.floatSort|   1   |   323.955 |   50.547  
>> |   **6.4** |
>> |ArraysSort.floatSort|   10  |   4326.38 |   731.152 
>> |   **5.9** |
>> |ArraysSort.floatSort|   100 |   52413.88|   
>> 8409.193|   **6.2** |
>> |ArraysSort.intSort  |   10  |   0.033   |   0.033   
>> |   1.0 |
>> |ArraysSort.intSort  |   25  |   0.086   |   0.051   
>> |   1.7 |
>> |ArraysSort.intSort  |   50  |   0.236   |   0.151   
>> |   1.6 |
>> |ArraysSort.intSort  |   75  |   0.416   |   0.332   
>> |   1.3 |
>> |ArraysSort.intSort  |   100 |   0.63|   0.521   
>> |   1.2 |
>> |ArraysSort.intSort  |   1000|   10.518  |   4.698   
>> |   2.2 |
>> |ArraysSort.intSort  |   1   |   309.659 |   42.518  
>> |   **7.3** |
>> |ArraysSort.intSort  |   10  |   4130.917|   
>> 573.956 |   **7.2** |
>> |ArraysSort.intSort  |   100 |   49876.307   |   
>> 6712.812|   **7.4** |
>> |ArraysSort.longSort |   10  |   0.036   |   0.037   
>> |   1.0 |
>> |ArraysSort.longSort |   25  |   0.094   |   0.08
>> |   1.2 |
>> |ArraysSort.longSort |   50  |   0.218   |   0.227   
>> |   1.0 |
>> |ArraysSort.longSort |   75  |   0.466   |   0.402   
>> |   1.2 |
>> |ArraysSort.longSort |   100 |   0.76|   0.58
>> |   1.3 |
>> |ArraysSort.longSort |   1000|   10.449  |   6
>
> Srinivas Vamsi Parasa has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Clean up parameters passed to arrayPartition; update the check to load 
> library

My testing passed. But I am not sure correctness of code is fully tested. For 
now we have only JMH benchmark for this new code.  Do we have JDK test which 
can check correctness of this code?

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1697743981


Re: RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v30]

2023-08-29 Thread Jatin Bhateja
On Mon, 28 Aug 2023 21:27:25 GMT, Srinivas Vamsi Parasa  
wrote:

>> The goal is to develop faster sort routines for x86_64 CPUs by taking 
>> advantage of AVX512 instructions. This enhancement provides an order of 
>> magnitude speedup for Arrays.sort() using int, long, float and double arrays.
>> 
>> This PR shows upto ~7x improvement for 32-bit datatypes (int, float) and 
>> upto ~4.5x improvement for 64-bit datatypes (long, double) as shown in the 
>> performance data below.
>> 
>> 
>> **Arrays.sort performance data using JMH benchmarks for arrays with random 
>> data** 
>> 
>> |Arrays.sort benchmark   |   Array Size  |   Baseline 
>> (us/op)|   AVX512 Sort (us/op) |   Speedup |
>> |--- |   --- |   --- |   --- |   --- 
>> |
>> |ArraysSort.doubleSort   |   10  |   0.034   |   0.035   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   25  |   0.116   |   0.089   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   50  |   0.282   |   0.291   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   75  |   0.474   |   0.358   
>> |   1.3 |
>> |ArraysSort.doubleSort   |   100 |   0.654   |   0.623   
>> |   1.0 |
>> |ArraysSort.doubleSort   |   1000|   9.274   |   6.331   
>> |   1.5 |
>> |ArraysSort.doubleSort   |   1   |   323.339 |   71.228  
>> |   **4.5** |
>> |ArraysSort.doubleSort   |   10  |   4471.871|   
>> 1002.748|   **4.5** |
>> |ArraysSort.doubleSort   |   100 |   51660.742   |   
>> 12921.295   |   **4.0** |
>> |ArraysSort.floatSort|   10  |   0.045   |   0.046   
>> |   1.0 |
>> |ArraysSort.floatSort|   25  |   0.103   |   0.084   
>> |   1.2 |
>> |ArraysSort.floatSort|   50  |   0.285   |   0.33
>> |   0.9 |
>> |ArraysSort.floatSort|   75  |   0.492   |   0.346   
>> |   1.4 |
>> |ArraysSort.floatSort|   100 |   0.597   |   0.326   
>> |   1.8 |
>> |ArraysSort.floatSort|   1000|   9.811   |   5.294   
>> |   1.9 |
>> |ArraysSort.floatSort|   1   |   323.955 |   50.547  
>> |   **6.4** |
>> |ArraysSort.floatSort|   10  |   4326.38 |   731.152 
>> |   **5.9** |
>> |ArraysSort.floatSort|   100 |   52413.88|   
>> 8409.193|   **6.2** |
>> |ArraysSort.intSort  |   10  |   0.033   |   0.033   
>> |   1.0 |
>> |ArraysSort.intSort  |   25  |   0.086   |   0.051   
>> |   1.7 |
>> |ArraysSort.intSort  |   50  |   0.236   |   0.151   
>> |   1.6 |
>> |ArraysSort.intSort  |   75  |   0.416   |   0.332   
>> |   1.3 |
>> |ArraysSort.intSort  |   100 |   0.63|   0.521   
>> |   1.2 |
>> |ArraysSort.intSort  |   1000|   10.518  |   4.698   
>> |   2.2 |
>> |ArraysSort.intSort  |   1   |   309.659 |   42.518  
>> |   **7.3** |
>> |ArraysSort.intSort  |   10  |   4130.917|   
>> 573.956 |   **7.2** |
>> |ArraysSort.intSort  |   100 |   49876.307   |   
>> 6712.812|   **7.4** |
>> |ArraysSort.longSort |   10  |   0.036   |   0.037   
>> |   1.0 |
>> |ArraysSort.longSort |   25  |   0.094   |   0.08
>> |   1.2 |
>> |ArraysSort.longSort |   50  |   0.218   |   0.227   
>> |   1.0 |
>> |ArraysSort.longSort |   75  |   0.466   |   0.402   
>> |   1.2 |
>> |ArraysSort.longSort |   100 |   0.76|   0.58
>> |   1.3 |
>> |ArraysSort.longSort |   1000|   10.449  |   6
>
> Srinivas Vamsi Parasa has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Clean up parameters passed to arrayPartition; update the check to load 
> library

> 
Hi @vamsi-parasa ,

Please find below the perf data collected over “Linux” with following JMH 
options.

java -jar target/benchmarks.jar -p builder=RANDOM -f 1 -wi 1 -i 10 -w 30 
-jvmArgs "-XX:+UnlockDiagnosticVMOptions 
-XX:DisableIntrinsic=_arraySort,_arrayPartition" ArraysSort.Long.testSort

Baseline numbers are with stock JDK. 

![image](https://github.com/openjdk/jdk/assets/59989778/d3bf2591-38bb-4924-b77d-6889c5dbc3c0)

Best Regards,
Jatin

-

PR Comment: https://git.openjdk.org/jdk/pull/14227#issuecomment-1697715820


Re: building individual test issue

2023-08-29 Thread Mykhaylo Lodygin
Hello Vladimir, thank you for your attention,
did you mean set of patches located in debian/patches ? those are patched
(all in the series file) or some other?
Mykhaylo

On Mon, Aug 28, 2023 at 11:11 PM Vladimir Petko <
vladimir.pe...@canonical.com> wrote:

> Hi,
>
>  I believe this was due to building OpenJDK from Debian original
> tarball that does not contain bundled libraries. Building from it
> requires applying Debian patches via `quilt push -a` and using
> configure arguments from `debian/rules`.
>
> Best Regards,
>  Vladimir.
>
> On Tue, Aug 29, 2023 at 1:02 AM David Holmes 
> wrote:
> >
> > On 28/08/2023 9:54 pm, Mykhaylo Lodygin wrote:
> > > Hello colleagues,
> > > I've build JDK locally successfully, but got several tests "FAILED".
> >
> > What did you build? images? what about test-images?
> >
> > > Tried to run one of the failing test separately with "make test
> > > TEST="".
> > > Were unable to do so due to build error - the compiler was unfamiliar
> to
> > > include path to winscard.h, fixed with configuration option:
> > > bash configure --with-extra-cflags="-I/usr/include/PCSC"
> >
> > What test(s), on what platform?
> >
> > > next error was incapability of  linker to link with libjpeg - fixed
> with
> > > adding --with-libjpeg=system to configure.
> > > the issue was solved,  but a new one was added with missing libgif.
> > > I was curious and tried a test that "Passed", thinking that "failure"
> > > could had happen due to inability to build the test. Tried
> > > sun/util/calendar/zi/Beyond2037.java but got a very similar error of
> > > inability to link with liblcms2-2.
> > > I'm flabbergasted, hence my questions are: does "make test" target is
> > > expected to rebuild JDK's code? does my approach of adding options to
> > > configure script is proper one? How come a test could be "Passed" while
> > > running it separately results in inability to build the test?
> >
> > As Erik indicated we need more information/details.
> >
> > Cheers,
> > David
> >
> >
> > > Thank you.
> > > Mykhaylo Lodygin
>


Re: building individual test issue

2023-08-29 Thread Mykhaylo Lodygin
Hello David,
> What did you build? images? what about test-images?
you've meant "make images" - i'm getting lots of errors about missing
methods from library liblcms2-2 (undefined reference to `cmsCloseProfile',
undefined reference to `cmsSaveProfileToMem')
test-images target is seems to be missing at all, since i'm getting make:
*** No rule to make target 'test-images'.  Stop.

> What test(s), on what platform?
on ubuntu18.04LTS, i've started with what I reckon the smallest one (among
"failing" set) java/util/TimeZone/Promiscuous.java


On Mon, Aug 28, 2023 at 4:02 PM David Holmes 
wrote:

> On 28/08/2023 9:54 pm, Mykhaylo Lodygin wrote:
> > Hello colleagues,
> > I've build JDK locally successfully, but got several tests "FAILED".
>
> What did you build? images? what about test-images?
>
> > Tried to run one of the failing test separately with "make test
> > TEST="".
> > Were unable to do so due to build error - the compiler was unfamiliar to
> > include path to winscard.h, fixed with configuration option:
> > bash configure --with-extra-cflags="-I/usr/include/PCSC"
>
> What test(s), on what platform?
>
> > next error was incapability of  linker to link with libjpeg - fixed with
> > adding --with-libjpeg=system to configure.
> > the issue was solved,  but a new one was added with missing libgif.
> > I was curious and tried a test that "Passed", thinking that "failure"
> > could had happen due to inability to build the test. Tried
> > sun/util/calendar/zi/Beyond2037.java but got a very similar error of
> > inability to link with liblcms2-2.
> > I'm flabbergasted, hence my questions are: does "make test" target is
> > expected to rebuild JDK's code? does my approach of adding options to
> > configure script is proper one? How come a test could be "Passed" while
> > running it separately results in inability to build the test?
>
> As Erik indicated we need more information/details.
>
> Cheers,
> David
>
>
> > Thank you.
> > Mykhaylo Lodygin
>


Integrated: 8314753: Remove support for @beaninfo, @ToDo, @since.unbundled, and @Note

2023-08-29 Thread Pavel Rappo
On Tue, 22 Aug 2023 11:09:39 GMT, Pavel Rappo  wrote:

> Please review this trivial PR.

This pull request has now been integrated.

Changeset: a4e97aa4
Author:Pavel Rappo 
URL:   
https://git.openjdk.org/jdk/commit/a4e97aa4ebe6fcfc3ed9e45ed81df1d55e52d621
Stats: 4 lines in 1 file changed: 0 ins; 4 del; 0 mod

8314753: Remove support for @beaninfo, @ToDo, @since.unbundled, and @Note

Reviewed-by: rriggs, azvegint, kevinw

-

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


Re: building individual test issue

2023-08-29 Thread Mykhaylo Lodygin
Hello Erik, thank you for your reply.
I'm trying to build JDK-11 for ubuntu 18.04LTS, got sources by applying
"apt sources openjdk-11-jdk" command, hence it is canonical's repo
my configuration is:
'--with-jvm-variants=server
--with-boot-jdk=/usr/lib/jvm/java-11-openjdk-amd64
--disable-precompiled-headers --with-jvm-features=zgc,shenandoahgc
--with-extra-cflags='-Wdate-time -D_FORTIFY_SOURCE=2 -g
-fdebug-prefix-map=/build/openjdk-lts-11.0.19+7=. -fstack-protector-strong
-Wformat -fno-stack-protector -Wno-deprecated-declarations -Wdate-time
-D_FORTIFY_SOURCE=2' --with-extra-cxxflags='-Wdate-time -D_FORTIFY_SOURCE=2
-g -fdebug-prefix-map=/build/openjdk-lts-11.0.19+7=.
-fstack-protector-strong -Wformat -fno-stack-protector
-Wno-deprecated-declarations -Wno-deprecated-declarations'
--with-extra-ldflags='-Xlinker -z -Xlinker relro -Xlinker
-Bsymbolic-functions' --disable-ccache --with-jtreg=/usr
--with-vendor-name=Ubuntu --with-vendor-url=https://ubuntu.com/
--with-vendor-bug-url=https://bugs.launchpad.net/ubuntu/+source/openjdk-lts
--with-vendor-vm-bug-url=
https://bugs.launchpad.net/ubuntu/+source/openjdk-lts --with-version-pre=
--with-version-build=7 --with-version-opt='post-Ubuntu-0ubuntu1~18.04.1'
--with-copyright-year=2023 --with-debug-level=release
--with-native-debug-symbols=external --enable-unlimited-crypto
--with-zlib=system --with-giflib=system --with-libpng=system
--with-libjpeg=system --with-lcms=system --with-pcsclite=system
--disable-warnings-as-errors --disable-javac-server --with-harfbuzz=system
--with-stdc++lib=dynamic --with-num-cores=4'.

On Mon, Aug 28, 2023 at 3:51 PM  wrote:

> Hello Mykhaylo Lodygin,
>
> What you describe sounds strange. If you successfully built the JDK and
> ran tests, then nothing should be rebuilt when trying to run tests again.
>
> What operating system are you running this on?
>
> Which JDK src did you clone?
>
> What was your original configure command line?
>
> /Erik
>
> On 8/28/23 04:54, Mykhaylo Lodygin wrote:
> > Hello colleagues,
> > I've build JDK locally successfully, but got several tests "FAILED".
> > Tried to run one of the failing test separately with "make test
> > TEST="".
> > Were unable to do so due to build error - the compiler was unfamiliar
> > to include path to winscard.h, fixed with configuration option:
> > bash configure --with-extra-cflags="-I/usr/include/PCSC"
> > next error was incapability of  linker to link with libjpeg - fixed with
> > adding --with-libjpeg=system to configure.
> > the issue was solved,  but a new one was added with missing libgif.
> > I was curious and tried a test that "Passed", thinking that "failure"
> > could had happen due to inability to build the test. Tried
> > sun/util/calendar/zi/Beyond2037.java but got a very similar error of
> > inability to link with liblcms2-2.
> > I'm flabbergasted, hence my questions are: does "make test" target is
> > expected to rebuild JDK's code? does my approach of adding options to
> > configure script is proper one? How come a test could be "Passed"
> > while running it separately results in inability to build the test?
> > Thank you.
> > Mykhaylo Lodygin
>


Re: RFR: 8314753: Remove support for @beaninfo, @ToDo, @since.unbundled, and @Note [v2]

2023-08-29 Thread Kevin Walls
On Tue, 22 Aug 2023 14:55:18 GMT, Pavel Rappo  wrote:

>> Please review this trivial PR.
>
> Pavel Rappo has updated the pull request with a new target base due to a 
> merge or a rebase. The pull request now contains two commits:
> 
>  - Merge branch 'master' into 8314753
>  - Initial commit

Looks good, thanks.

-

Marked as reviewed by kevinw (Committer).

PR Review: https://git.openjdk.org/jdk/pull/15385#pullrequestreview-1599820441