add alt arches for ilp64
Closed this issue · 8 comments
https://github.com/xianyi/OpenBLAS#supported-cpus-and-operating-systems
- I read the conda-forge documentation and could not find the solution for my problem there.
Issue:
Environment (
conda list
):
$ conda list
Details about
conda
and system ( conda info
):
$ conda info
This is way too complicated for me to attempt on my own, so please help: @isuruf @h-vetinari. We would like alt arches (arm64, aarch64) support for julia for ilp64 variants. Thanks!
My starting point would be to take the conditions out in https://github.com/conda-forge/openblas-feedstock/blob/master/recipe/conda_build_config.yaml and hope for the best lol
I was wondering why Julia needs ILP64
. Found the following (excerpt):
Note that Julia's choice to use ILP64 or LP64 is still a compile-time decision, and that even if you load
OpenBLAS32_jll
to provide LP64 symbols, Julia will still use ILP64 on 64-bit platforms by default. The main reason to support LP64 on 64-bit platforms at all is to provide the symbols for other programs that may be linked into Julia's namespace, such as usingPyCall
to loadnumpy
.
I don't pretend to understand the problem space very well, but I don't see immediately why julia in conda-forge needs ILP64? At least, I believe we control enough that "other programs that may be linked into Julia's namespace" have all the symbols they'd need.
You can also see how little ilp64 is used in conda-forge with the download numbers of this feedstock (last x86 builds):
linux-x86 | osx-x86 | osx-arm64 | |
---|---|---|---|
libopenblas-0.3.18* |
1'138'070 | 175'901 | 17'968 |
libopenblas-ilp64-0.3.18* |
3'536 | 423 | <how big do we expect this to be?> |
<how big do we expect this to be?>
probably scales with the one above, 40ish. We are interested in openblas-ilp64 tho.
@h-vetinari don't overthink it. I certainly did not. Currently, we depend on openblas-ilp64 in julia (btw, are you interested in working on julia with us? We are making a lot of progress), and we want to support more arches (this is going to be a pretty long process, so no rush).
I don't see immediately why julia in conda-forge needs ILP64
See this comment: conda-forge/julia-feedstock#181 (comment)
See this comment: conda-forge/julia-feedstock#181 (comment)
Ah, I wasn't aware of that. Happy to defer to Isuru on this.
Found the following (excerpt)
Btw... thank you for this. I ended up watching this Youtube video (https://www.youtube.com/watch?v=t6hptekOR7s) and now I understand this a little bit better.
Also, the issue with cross-compile seems easy enough (for osx-arm64 it is failing because objconv needs to be called --- if not in host reqs, it would be missing; if in host reqs, it would be wrong CPU type; I have no idea how to reconcile this), and I am sure @isuruf (or you!) would be able to fix it in no time :)