-
Notifications
You must be signed in to change notification settings - Fork 5
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
[discussion] should we update our s3 sccache prefixes? #161
Comments
To be clear, that So I think the language "having a bunch of CUDA 11 artifacts available to CUDA 12 builds" is a bit misleading. Omitting CUDA version from that prefix doesn't, for example, increase the risk of a CUDA 12 builds getting CUDA 11 objects. See the rules at https://github.com/mozilla/sccache/blob/main/docs/Caching.md for what goes into the cache key... there are several inputs where CUDA version will be differentiated there, including "hash of the compiler binary" and "environment variables". Per https://github.com/mozilla/sccache/blob/main/docs/S3.md#s3
I think "yes, non-issue". But let's talk specifics. Here are some of the reasons I can think of for why you'd want to change
If we don't have any of those needs, we shouldn't change the prefixes. I wouldn't expect finer-grained prefixes to make And changing that prefix will change the keys which will impose the 1-time cost of needing full uncached rebuilds to repopulate the cache, which can be expensive. |
Thanks for all of that info @jameslamb ! Given all of that, it sounds like maybe including the I don't know that it's worth the rebuild to change that cache-key everywhere, but as I port things to |
Ah ok, I didn't know that. If you're not worried about having to rebuild the cache because you have to anyway, and you do decide to change the cache prefixes, then I'd recommend making the prefixes MORE granular, not LESS, by doing what you proposed at the top of this issue and adding CUDA major version. That'd leave open the possibility of finer-grained access patterns like the ones I mentioned above in the future. If you do that, I'd also take this opportunity to change the delimiter for keys from
That's often done by convention in S3 to make things look a little bit more like filepaths... the S3 UI will even render a directory-like structure if you use that delimiter. Docs on that: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html |
Ok, cool, I'm trying out the more granular prefix and the slash delimited in the |
@jameslamb Thanks for all the info! This helps. I agree with the decision to go with |
@bdice pointed out in
rapidsai/cuvs#751 (comment) that we usually
key our
S3_SCCACHE_KEY_PREFIX
as${library}-${arch}
, but that this mightlead to us having a bunch of CUDA 11 artifacts available to CUDA 12 builds, and
vice versa.
Should we also add
${cuda_major}
to the prefix so that we can separate outthose artifacts? Or is this a non-issue?
The text was updated successfully, but these errors were encountered: