-
Notifications
You must be signed in to change notification settings - Fork 645
[AOCL-BLAS] Add version 5.1.0 as an initial attempt #11896
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
base: master
Are you sure you want to change the base?
Conversation
|
You can build this for every target, and maybe we should just so the package is downloadable everywhere (not sure about riscv but aarch64 for sure) |
I believe the JLL package should still be downloadable/installable on all the platforms, but it just will return |
|
I think it would be better to build a folder structure of: |
That makes sense. I also wish to get AOCL_LAPACK work but that will require AOCL_BLAS as a dependency so started with the BLAS first. Let me rename the outer folder to AOCL. |
|
@giordano Somehow buildkite is not rebuilding the artifacts? I guess I am otherwise done with the recipe unless new issue is captured. |
|
#11896 (comment). See https://github.com/JuliaPackaging/Yggdrasil/blob/78cffa5f0f85ce86a7cc72512162df210646e1b7/CONTRIBUTING.md#understanding-build-cache-on-yggdrasil for the explanation. Basically if you edit only the |
I specified the "amdzen" option to build the AMD customized version of BLIS. From what I understood, the other configuration options are just directly coming from the original BLIS. Hence, I am leaving these non-AMD options to |
@giordano Thank you! I wasn't aware that it's already explained there. Would you also think it's fine to set |
In my opinion, it is perfectly fine to not build the other platforms here, and as I said in my previous comment, that won't cause any problems for users.
The Looking at the logic here: https://github.com/amd/blis/blob/16f852a065e76e824d77bc39e2baa82ac19ed419/config/zen5/make_defs.mk#L80, there is some fallback logic to still try and compile the Zen5 kernels on older compilers, but it is just that GCC 14 adds the native support for |
|
@imciner2 Thank you for the explanations! I just witched to The remaining issue would mostly be about getting the Windows version works. After patching the |
So, I think we should be putting the trailing underscore on all of these for the Linux builds. That forms part of the Fortran calling convention technically (Linux compilers generally append an I'll have to dive into their build system a bit more tomorrow to make sense of what they are doing, because they have some logic already in there for doing this (at least in the CMake build system), but it doesn't fully work. |
4271208 to
e010f90
Compare
|
@giordano @imciner2 I think this recipe is ready for final review (at least from my aspect things are done).
|
|
@imciner2 Sorry to bother you again. But is there any chance that this PR can be merged soon? |
|
Any chance for the PR to get merged so that things can move on with the next AOCL components? |
|
I believe @imciner2 wanted to have a chance to have another look, maybe didn't have the time for it yet (but a gentle bump is good). |
|
@giordano Thank you for the reply. Just wanted to make sure this PR wasn't forgotten, as people suddenly became quite (even though I thought things are already working). |
|
Yea, @junyuan-chen I need to think a bit more about the library naming and symbol naming. I am actually starting to think we shouldn't be renaming the actual 32-bit library (we don't do that for OpenBLAS actually, so I think it is just a vestigial thing that BLIS has kept), and I want to do some experiments to see if we can correctly load both the 64-bit and 32-bit symbols into LBT correctly. |
Sounds good. In case it's relevant, AOCL-LAPACK may call BLAS with special internal API (introduced by AMD instead of BLIS) when it is built with AOCL-BLAS instead of standard BLAS symbols. So, this seems to suggest that |
|
What do we need to do to get this merged? |
|
I think we want to go with https://github.com/amd/AOCL_jll.jl instead. |
|
@ViralBShah Just a short while after this PR, both AOCL_jll.jl and AOCL.jl become available directly from AMD for Linux with ILP64 interface, covering the BLAS and LAPACK functions. They are not registered with Julia General registry though. Considering that someone from AMD is now aware of the need of such packages for Julia, I guess this PR would serve as a reference point without being merged. |
|
I think it is perhaps better to see this one through and have a source build - since the other one is repackaging precompiled binaries. The big thing that would need to be confirmed is that these built from source binaries have the same performance. |
I am trying to build AOCL-BLAS (a customized version of BLIS from AMD).
Update: After some trial and errors on my local machine, it seems that the_64suffix is finally attached to the function names in the generated output for Linux build. However, the Windows build fails with the patches for_64suffix for reasons that's not obvious to me.Update2: Ideally I would wish to have someone who understandslibblastramponlineto take a look at the way how the_64suffix is hanlded as I cannot tell for sure whether my hack would work withlibblastramponline.Update: After some local tests, I believe that the patches for
_64suffix is unnecessary and a misunderstanding of what thelibblastramponlineREADME says. I followed what was done with blis_jll.jl earlier and suspect the_64_suffix appended there was also unnecessary.