Uh oh!
There was an error while loading. Please reload this page.
[chore] Use sccache in builds - #1156
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. |
mdboom
commented
Oct 17, 2025
/ok to test |
This comment has been minimized.
This comment has been minimized.
leofang
commented
Oct 17, 2025
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. |
leofang
commented
Oct 17, 2025
Do we need to convince setuptools to prepend |
mdboom
commented
Oct 17, 2025
Yeah, it looks like this action (unlike the ccache-based one) doesn't install the symlinks. The docs have examples setting |
mdboom
commented
Oct 17, 2025
/ok to test |
mdboom
commented
Oct 17, 2025
/ok to test |
mdboom
commented
Oct 17, 2025
/ok to test |
mdboom
commented
Oct 17, 2025
/ok to test |
mdboom
commented
Oct 17, 2025
/ok to test |
mdboom
commented
Oct 17, 2025
/ok to test |
Uh oh!
There was an error while loading. Please reload this page.
mdboom
commented
Oct 17, 2025
/ok to test |
mdboom
commented
Oct 17, 2025
/ok to test |
Uh oh!
There was an error while loading. Please reload this page.
cpcloud
left a comment
There was a problem hiding this comment.
Only question is about a possibly-unused variable, but that's not blocking.
leofang
commented
Oct 23, 2025
/ok to test 6be8df7 |
leofang
commented
Oct 23, 2025
leofang
commented
Oct 23, 2025
/ok to test 1eb6a1b |
leofang
commented
Oct 23, 2025
I am thinking we should purge all unsuccessful Windows attempts and get this merged. |
mdboom
commented
Oct 23, 2025
I agree. |
mdboom
commented
Oct 23, 2025
/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/ |
mdboom
commented
Oct 23, 2025
/ok to test 6cfe70d |
mdboom
commented
Oct 23, 2025
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? |
leofang
commented
Oct 23, 2025
leofang
commented
Oct 23, 2025
@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. |
leofang
commented
Oct 23, 2025
/ok to test 6cfe70d |
mdboom
commented
Oct 23, 2025
Cool. Maybe the cache is somehow keyed off the contents of the |
leofang
commented
Oct 23, 2025
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 |
mdboom
commented
Oct 23, 2025
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. |
cpcloud
commented
Oct 23, 2025
I tinkered with sccache locally, and the remaining 55s is mostly spent in the linker, which is a whole other can of worms :) |
Uh oh!
There was an error while loading. Please reload this page.
|
This is an alternative to #1154. Experimenting here and we should pick only one.