-
Notifications
You must be signed in to change notification settings - Fork 53
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
Switch to PrecompileTools.jl. #601
Conversation
66952ae
to
75c2112
Compare
@vchuravy GPU methods leaking into the package image on Windows/1.11?
|
Yes but no... This is a tricky design issue/interaction. I believe this is the same issue as why I want to use the custom method table for all GPU intrinsics and it should be equivalent to adding Essentially precompilation tracking discards the CI and then uses the MI alone. |
So it would be good to confirm if this is the same as: |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #601 +/- ##
==========================================
+ Coverage 65.77% 66.27% +0.50%
==========================================
Files 24 24
Lines 3348 3339 -9
==========================================
+ Hits 2202 2213 +11
+ Misses 1146 1126 -20 ☔ View full report in Codecov by Sentry. |
Yep, just tested this out, and I can confirm it fixes the precompilation issue. |
Okay... Then we need to decide if this is the right fix... Also just reminded me of JuliaLang/julia#55072 (comment) |
It's also surprising that this only triggers on Windows, no? |
A little bit... |
75c2112
to
b9bee50
Compare
Workaround: don't build the runtime, so that the simple kernel compiled as part of the precompilation workload doesn't generate GPU-specific code. Seems to keep most of the latency advantage:
|
Testing
examples/kernel.jl
without a precompile workload at all:Current master:
Before #600:
This PR:
So still an improvement. Probably doesn't matter too much for downstream users, as the whole
@nospecialize(job::CompilerJob)
doesn't really work and I think we end up respecializing the GPUCompiler code anyway (i.e., downstream packages require their own precompile workload).