-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Most AVX/AVX2 functions not exposed #16
Comments
Yes, but there is no way to use |
cc @joshtriplett |
Gothca, maybe I Will stroll over to the FFI WG and see if I can help there. In the mean time, I can use the sse4 functions twice, I suppose! |
We can also write a C wrapper that uses double and converts from double to
long double or similar.
…On Wed 13. Nov 2019 at 21:07, Jack Mott ***@***.***> wrote:
Gothca, maybe I Will stroll over to the FFI WG and see if I can help
there. In the mean time, I can use the sse4 functions twice, I suppose!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#16?email_source=notifications&email_token=AAG43JXLZPAXNYSX6RZKYX3QTRM7HA5CNFSM4JMDGAWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED7PHLQ#issuecomment-553579438>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAG43JRAISVI7CAHINKHPG3QTRM7HANCNFSM4JMDGAWA>
.
|
Modifying sleef-sys slightly enables using, at the very least, this sleef avx function (coincidentally in a fork of @jackmott's crate). I don't know exactly how this relates the long double problem, but I thought I'd mention it anyway. |
I put it behind a feature flag here: greatest-ape@df02548 |
@jackmott Only two functions actually take long double arguments: Sleef_sincospil_u05 and Sleef_sincospil_u35 (except for some in the DFT part of sleef which isn't currently compiled). I suspect the reason you're not seeing many AVX/AVX2 functions is that they are only compiled when avx is enabled as a target feature when compiling sleef-sys. #21 should fix this issue, if @gnzlbg is interested in merging it. |
I'm sorry about the multitude of comments, but for future reference/other readers, I suspect the ABI issue is discussed in:
Progress seems to have stalled on rust-lang/rust#59238, which would implement RFC2574. In my understanding, my pull request #21 works at some platforms when used carefully, but soundness issues would occur when let's say a function taking a 256 bit wide vector is called on a CPU only supporting 128 bit wide vectors. A fix might be to somehow add
(to quote the RFC) to all relevant functions in sleef-sys, e.g. X=avx for SIMD type __m256. |
Is this because they make use of
long double
?What work needs to be done to get those added? Happy to help.
The text was updated successfully, but these errors were encountered: