RFR: 8312425: [vectorapi] AArch64: Optimize vector math operations with SLEEF [v6]
Magnus Ihse Bursie
ihse at openjdk.org
Mon Dec 4 12:01:47 UTC 2023
On Fri, 1 Dec 2023 16:49:28 GMT, Andrew Haley <aph at openjdk.org> wrote:
>> Oh, and:
>>
>> If we can't trust SLEEF not to break the ABI we're using, we should not be using SLEEF.
>
>> @theRealAph You are making good points.
>>
>> You are basically saying: "we don't need any configure support for libsleef, we can just hard-code the names and dispatch to them directly to a dlopened library at runtime".
>
> Yep.
>
>> That is technically correct, but I'd still like to argue that the current setup have some merits:
>>
>> * It will check that there is no typo in the function names. I agree that the likelihood of getting this wrong is low, but it is still a good practice to use official include files to have the compiler help checking this.
>>
>> * If we would like to bundle libsleef.so with the JVM, now we have the possibility do do so easily. (Especially if it is like you say that it is not commonly installed). (If licenses allow etc)
>>
>> * If we want to incorporate/bundle the source code of libsleef into OpenJDK, and build it as part of our internal library, we will have a good starting position, compared to starting from a hard-coded assembly file in hotspot. (I thought I heard some noise about this prospect).
>>
>>
>> So at this point, I am okay with the general approach of this PR. There are still some build issues to sort out, though, I'll address them separately.
>
> I see, OK. The question in my mind is whether the common builds of OpenJDK (Oracle, Adoptium, etc.) will support running with SLEEF. If by default SLEEF is not required, support won't be built, and (to an nth order approximation) no one will use it. But I guess it's better than nothing.
>
> Or is there likely to be a plan to e.g. build Oracle's releases with SLEEF support?
@theRealAph
> Or is there likely to be a plan to e.g. build Oracle's releases with SLEEF support?
I can't say anything for sure, but I picked up some positive vibes from our internal chat. I think the idea was that libsleef could potentially cover up vector math for all platforms that the current Intel lib solution is missing (basically, everything but linux+windows x64). So I this can be seen as a bit of a trial balloon if it is worth a more complete integration of libsleef in the JDK.
And I can't say anything at all about what Oracle JDKs are going to release with, but I am fully open towards adding libsleef to the GHA builds. And I'm guessing that Adoptium has no reason not to include libsleef, but then again, I cannot of course speak for them.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16234#issuecomment-1838489588
More information about the build-dev
mailing list