conda-forge/openblas-feedstock

add alt arches for ilp64

Closed this issue · 8 comments

ngam commented

https://github.com/xianyi/OpenBLAS#supported-cpus-and-operating-systems

Issue:


Environment (conda list):
$ conda list


Details about conda and system ( conda info ):
$ conda info

ngam commented

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!

ngam commented

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 using PyCall to load numpy.

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?>
ngam commented

<how big do we expect this to be?>

probably scales with the one above, 40ish. We are interested in openblas-ilp64 tho.

ngam commented

@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.

ngam commented

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 :)

@ngam where did we leave this?