-
Couldn't load subscription status.
- Fork 217
[chore] Use sccache in builds #1156
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
Conversation
|
Auto-sync is disabled for ready for review pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
/ok to test |
This comment has been minimized.
This comment has been minimized.
|
Looking at the post action cleanup log, we don't seem to be building the cache at all. I suspect on Linux it has to do with cibuildwheel launching a manylinux container, and if so we need to mount sccache into the container. But this does not explain the Windows situation, which does not use container and instead we build wheels on the bare VM. |
|
Do we need to convince setuptools to prepend |
Yeah, it looks like this action (unlike the ccache-based one) doesn't install the symlinks. The docs have examples setting |
|
/ok to test |
|
/ok to test |
|
/ok to test |
|
/ok to test |
|
/ok to test |
|
/ok to test |
|
/ok to test |
|
/ok to test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only question is about a possibly-unused variable, but that's not blocking.
|
/ok to test 7cac30d |
|
/ok to test 6be8df7 |
|
/ok to test 1eb6a1b |
|
I am thinking we should purge all unsuccessful Windows attempts and get this merged. |
I agree. |
|
/ok to test |
@mdboom, there was an error processing your request: See the following link for more information: https://docs.gha-runners.nvidia.com/cpr/e/1/ |
|
/ok to test 6cfe70d |
|
This is working with the Windows stuff removed. However, I'm not sure how to confirm it's actually working. The stats at the end of the log (I guess) are from the host so are basically irrelevant. But I'm also not seeing any speed improvement. For example:
I think the difference is within the noise, but we aren't seeing a notable speedup? If it is really caching, maybe the remote caching overhead of large files is erasing any benefits? |
|
@mdboom Something caused cache miss in the most recent CI run: https://github.com/NVIDIA/cuda-python/actions/runs/18753688569/job/53499960916?pr=1156#step:17:1336 I dunno what happened but I see many new caches generated in the last hour or so: Let me kick off another run to ensure we get cache hits. |
|
/ok to test 6cfe70d |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1 file reviewed, no comments
Cool. Maybe the cache is somehow keyed off the contents of the |
Sounds crazy to me lol... I thought it's only relevant to compiler versions, flags, args, and .cpp file contents, if the cache can be invalidated easily due to workflow changes, it is a bit annoying. GitHub Cache space is only 10 GB and we've been managing it carefully so far. It's a scarce resource. Anyway, cache hits are back: https://github.com/NVIDIA/cuda-python/actions/runs/18755592039/job/53506633614?pr=1156#step:17:1334 |
Great. And it looks like a cuda_bindings build is now 55s vs. 220s (approx). So, around 3 minutes saved (+ the time saved on the 2 cuda_core builds). Not bad. |
|
I tinkered with sccache locally, and the remaining 55s is mostly spent in the linker, which is a whole other can of worms :) |
|
This is an alternative to #1154. Experimenting here and we should pick only one.