-
Notifications
You must be signed in to change notification settings - Fork 639
Description
Related to #1205 (comment)
As proposed, the changes in #1205 would have the following top-level config fields (among others):
gpucudacudnnuse_cuda_base_image
Although they're at the same top-level of cog.yaml, they interact hierarchically:
cudaandcudnnare used to specify the CUDA base image- ...but those are ignored if
use_cuda_base_imageisfalse - ...but that's moot if
gpuisfalse
(And if we supported a custom base image, that could invalidate all of those settings)
A better solution would express these dependencies in the config structure itself. As we saw in #1010, it's possible to support advanced features in progressive way that doesn't compromise simple syntax.
Here's a rough sketch of what that might look like:
- At the top level, the user has the option to specify whether to use a specific base image or to have Cog decide
- If we let Cog decide, the next option down is whether to use CUDA base image or not
- If we choose CUDA base image, then we allow user to override CUDA and cuDNN versions.
- If we let Cog decide, the next option down is whether to use CUDA base image or not
Not at all committed to this spelling, but maybe something like:
base: nil # default, implied by omission, Cog automatically chooses base image (python/*-slim)base: <custom/image> # user-provided overridebase:
cuda: 11.8 # use CUDA base image
cudnn: 8.6We could introduce this as a minor revision to the current cog.yaml schema, deprecating but still supporting the aforementioned GPU-related fields.
Thoughts, @andreasjansson, @bfirsh, @technillogue?