-
-
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
[0.4] Grave overall performance regression on Linux x86 with LLVM ≥ 3.4 #14191
Comments
The x86 performance regression using LLVM > 3.3 equally affects |
Duplicate of #9336. We currently only support LLVM 3.3. Most of the performance regressions have been fixed on 3.8 and we will be switching soon. |
LLVM 3.8 is better than 3.7, but still four times slower than 3.3:
|
I think many fixes are only on master, not on 0.4.x. For Fedora, I've eventually managed to ship a parallel-installable LLVM 3.3 package only for Julia. |
This is why distributions removing old versions of llvm from the archive is terrible for downstream projects and users. LLVM changes substantially from version to version and it's not a trivial drop in replacement to upgrade - major pieces of functionality get removed that take literally years of work with upstream to get back to performance parity. Keno (and Jameson and others) has done a great job so far but we're not there yet on master, much less release-0.4. |
LLVM 3.3 has not been updated since two years, and we cannot embed a copy in the julia package. It would mean a major relief for distribution packaging if Julia 0.4 (and master) were fixed to achieve the same performance on x86 as on x86_64 with LLVM > 3.3. Julia 0.3.12 is working fine with LLVM > 3.3 on Linux x86. What was changed in Julia 0.4 (and master) to degrade the performance on x86 so significantly? |
Regarding Julia’s dependency on specific LLVM versions: Have you thought about working with upstream to create long-time stable (LTS) versions that are maintained by downstream users over the span of years instead of months? |
This discussion has already happened before: #11761 I had the same position as you, but in the end I was allowed to ship LLVM 3.3 in Fedora (which has a very strict policy against bundling). |
It's a good idea, I have no idea how it would be received though. I know they had a "surviving downstream without drowning" birds-of-a-feather session at the recent LLVM dev meeting, @Keno did you go to that? |
Closing since this is a dup of a very well-trodden issue. |
While packaging Julia 0.4.1 for Debian, we experienced a build failure on x86 caused by a timeout.
I performed a series of test builds in a Debian unstable i386 chroot, building the latest
release-0.4
using various LLVM versions from 3.3 to 3.7. Please inspect the complete build and test suite logs withThese are the run-times of the test suite obtained with
time
:On x86 the Julia test suite is an order of magnitude slower using LLVM 3.7, compared to LLVM 3.3.
(Using LLVM 3.4, 3.5, or 3.6 the test suite aborts with a segmentation fault.)
For comparison I performed the same series of test builds in a Debian unstable amd64 chroot on the same machine. The test suite takes longer with LLVM versions > 3.3, but the increase is still tolerable:
Unfortunately I cannot provide more detail regarding the x86 performance regression, but it appears to affect all tests across the board. This issue is blocking Julia 0.4 from entering Debian. The Julia version currently in Debian unstable, 0.3.12, does not exhibit this issue when using LLVM ≥ 3.4.
I wish I had better news to report so shortly before the 0.4.2 release (#14186).
The text was updated successfully, but these errors were encountered: