Skip to content
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

Version 5.10.0 #129

Merged
merged 5 commits into from
Jun 13, 2024
Merged

Version 5.10.0 #129

merged 5 commits into from
Jun 13, 2024

Conversation

staticfloat
Copy link
Member

@staticfloat staticfloat commented Jun 12, 2024

This provides a flexible mechanism through which LBT's autodetection facilities can be overridden. It enables debugging strange behaviors without needing to recompile LBT from scratch to disable a certain layer of its behavior.

This also adds support for COMPLEX_RETSTYLE_FNDA for Windows x64, and fixes CI on i686.

This provides a flexible mechanism through which LBT's autodetection
facilities can be overridden.  It enables debugging strange behaviors
without needing to recompile LBT from scratch to disable a certain layer
of its behavior.
Windows x64 automatically forces return values onto the stack if they
are larger than 64 bits wide [0].  This causes return values from e.g.
`zdotc` to be pushed onto a secret first argument, but not the return
values from e.g. `cdotc`.

To address this, we add a new complex return style, "Float Normal,
Double Argument", to specify that `complex float`-returning functions
use the normal return style, whereas `complex double`-returning
functions use the argument return style.

This should fix JuliaLinearAlgebra/BLISBLAS.jl#15

[0] https://learn.microsoft.com/en-us/cpp/build/x64-calling-convention?view=msvc-170
Our new `LBT_FORCE_RETSTYLE => ARGUMENT` doesn't work so well when it's
already `ARGUMENT` on Windows x64.
If a user wants to use MKL on i686, we unfortunately need some
workarounds for certain function calls.  Until we come up with an
autodetection strategy that works on i686 as well as x86_64, we can make
use of the new environment variable-based overrides to make things work.
Let's test that on i686 on CI.
@staticfloat staticfloat changed the title Add LBT_FORCE_* environment variable overrides Version 5.10.0 Jun 12, 2024
@staticfloat staticfloat merged commit 77227d2 into main Jun 13, 2024
4 of 5 checks passed
@staticfloat staticfloat deleted the sf/env_overrides branch June 13, 2024 00:13
staticfloat added a commit to JuliaLang/julia that referenced this pull request Jun 13, 2024
This release fixes issues with complex valued returns from functions
such as `cdotc` on Windows x64.  See this discussion [0] for initial
diagnosis, and this PR [1] for the relevant fixes.

[0] JuliaLinearAlgebra/BLISBLAS.jl#15
[1] JuliaLinearAlgebra/libblastrampoline#129
staticfloat added a commit to JuliaLang/julia that referenced this pull request Jun 14, 2024
This release fixes issues with complex valued returns from functions
such as `cdotc` on Windows x64.  See this discussion [0] for initial
diagnosis, and this PR [1] for the relevant fixes.

[0] JuliaLinearAlgebra/BLISBLAS.jl#15
[1] JuliaLinearAlgebra/libblastrampoline#129
staticfloat added a commit to JuliaLang/julia that referenced this pull request Jun 14, 2024
This release fixes issues with complex valued returns from functions
such as `cdotc` on Windows x64. See this discussion [0] for initial
diagnosis, and this PR [1] for the relevant fixes.

[0] JuliaLinearAlgebra/BLISBLAS.jl#15
[1] JuliaLinearAlgebra/libblastrampoline#129
KristofferC pushed a commit to JuliaLang/julia that referenced this pull request Jul 23, 2024
This release fixes issues with complex valued returns from functions
such as `cdotc` on Windows x64. See this discussion [0] for initial
diagnosis, and this PR [1] for the relevant fixes.

[0] JuliaLinearAlgebra/BLISBLAS.jl#15
[1] JuliaLinearAlgebra/libblastrampoline#129

(cherry picked from commit 3054c00)
KristofferC pushed a commit to JuliaLang/julia that referenced this pull request Jul 24, 2024
This release fixes issues with complex valued returns from functions
such as `cdotc` on Windows x64. See this discussion [0] for initial
diagnosis, and this PR [1] for the relevant fixes.

[0] JuliaLinearAlgebra/BLISBLAS.jl#15
[1] JuliaLinearAlgebra/libblastrampoline#129

(cherry picked from commit 3054c00)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant