-
Notifications
You must be signed in to change notification settings - Fork 557
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
[finufft_jll] Optimial microarchitecture not downloaded #4252
Comments
CC @staticfloat |
Ok, talking with Elliot, it turns out the download side of the microarchitecture stuff isn't there yet. As I said, we haven't used it yet into the wild, so some things definitely need to be fleshed out. The good news is that at least we download the generic binaries by default, which is...well... no worse than before 😅 We need to "augment the platform" with the information of the microarchitecture by setting the tag For our own record, this is code to get the ISA label for the current CPU: julia> using Base.BinaryPlatforms
julia> host_arch = arch(HostPlatform())
host_isas = CPUID.ISAs_by_family[host_arch]
idx = findlast(((name, isa),) -> isa <= CPUID.cpu_isa(), host_isas)
first(host_isas[idx])
"haswell" Unfortunately it'll take still some time to make this work, but it's definitely something we want to eventually use, since we already have the infrastructure to build different microarchitectures! |
Great that you guys are working on it! We'll be ready to have it tested in the wild once you're done =) |
It took us a few iterations and few mistakes in BinaryBuilder, but we should finally be there!
Note the |
I noticed that it currently works great, but only if I force it to use the yanked release of finufft_jll. |
Yes, the problem was that on AVX512 systems the choice of the artifact was falling back on the generic one, just because the package manager chooses the last artifact in the list, matching the architecture: the artifacts are currently written out sorted alphabetically, and so |
We just added microarchitecture expansion to finufft_jll (#4249). However, when I try it out through FINUFFT.jll, it doesn't load the optimal artifact.
Specifically, it downloads
x86_64-linux-gnu-march+x86_64
even though my computer can usex86_64-linux-gnu-march+avx2
(which is faster).If I remove the x86_64 entry from Artifacts.toml, then it downloads the expected avx2 artifact and I get the expected speedup, so I know that it should work.
(ping @giordano)
The text was updated successfully, but these errors were encountered: