-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Support fat binary sysimg and/or native jit with generic sysimg #18179
Comments
You'd have to rebuild the system image to enable the native instruction set, since vfmadd213sd is an FMA3 instruction and we build the mac binaries so they work on generic systems back to core2. |
Or alternatively, could we rebuild the sysimg as part of the installation process? |
That will increase the installation time by a lot and also increase the system requirement (you need to have a compatible linker) |
I realise the commenters on this thread might be the exception, but how often do you expect users to reinstall Julia? It seems like a price worth paying. (I can't comment about the linker though) |
Kind of a duplicate of #14995. You won't have a linker present if you don't have development tools installed, which will be a small percentage of OSX or Linux machines and a large percentage of Windows ones. |
This is particularly important if we want to be able to exploit all the fancy vectorized instructions that intel keeps foisting upon us. |
My (downstream) solution to this problem is to compile multiple version of julia with different instructions sets enabled (in particular I use |
I imaging that can make a difference between whether the installation process can be done in a class or not. (edit: in another word #14995 could be okay, but not by default) |
But we could at least have it as an option, or even a post-install script ( |
Yes, and that's #14995 |
Alright, I guess close this as a duplicate. |
We already have that, it's called With any of the compiled libraries that haven't gone to the length of implementing dynamic arch like openblas has, the choice is between not fully utilizing modern instruction sets, or people getting SIGILL if they try to install on older systems. I think the binaries that we provide should be as widely usable as we can make them, even if that comes with some performance cost. We could eventually move to building and distributing multiple instruction sets worth of binaries, but that's going to be a lot of release overhead for something you can get right now by building from source. |
But it should be easier for users to do ( I agree there's not much we can about binary dependencies, but that's a point in our favour. If a user can download some Julia code and find it instantly faster than some random C library simply because it can use faster instructions, then that's a huge bonus. |
Far too many times for one person to ever have to sit through. Long install times are a negative. It's also not always safe to assume that Julia was installed into a user-writable location, so this may have to be done by the same person who initially does the install. Hopefully modularization of the standard library will help allow these things to be compiled into multiple files rather than one monolithic sys.so, so things can be recompiled selectively and faster. |
On my (Broadwell) machine, using the latest rc:
The same version built from scratch on my machine:
The text was updated successfully, but these errors were encountered: