-
-
Notifications
You must be signed in to change notification settings - Fork 516
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
Reducing the size of the cuda_compiler zip #6967
Comments
This IMO is a bug.
This is also a bug in conda-smithy. We have
which has |
I can help you with debugging this if you have a commit I can have a look at. |
It's just regular smithy behaviour. It could probably be avoided by adding skip: true # [cuda_compiler_version == "None" and github_actions_labels == "cirun-openstack-gpu-2xlarge"]
skip: true # [cuda_compiler_version != "None" and github_actions_labels == "cirun-openstack-cpu-2xlarge"] to every single output, but that becomes another pointless thing to keep in sync.
ah, I was wondering how we got beyond 260 (conda-forge/conda-smithy#2233 uses 200), as that was not at all obvious from the error message. However, if we subtract another 24 characters (to get that path <=260), we'll lose visibility of the GHA label in the path. To be clear, I'm sure there's some halfway workable alternative to putting All in all, the zip got shorter since last November, and it'll get shorter still once we drop CUDA 11.8. I don't see how a cosmetic concern outweighs all the workarounds that become necessary otherwise. |
Here's the recipe I tried and it skipped windows just like I intended package:
name: foo-split
version: 1.0.0
build:
number: 1
skip: true # [win]
outputs:
- name: foo
- name: bar
build:
skip: true # [linux]
about:
home: asd |
You could also make a fork of conda-forge/tensorflow-feedstock#414, and figure what's necessary to get smithy to only produce one set of jobs. |
@isuruf, did you have some time to look at how to achieve this (e.g. on the tensorflow feedstock)? |
The size of the zip involving the cuda compilers is pretty unwieldy:
conda-forge-pinning-feedstock/recipe/conda_build_config.yaml
Lines 181 to 189 in ff043bb
which makes it hard to override locally. There's a general desire to keep the zip complexity down and remove entries here, rather than adding them.
And indeed we recently removed
cdt_name
(48621d1) as well asc_stdlib_version
(c7f5973), and we made it easier to override the image version without having to locally override the whole zip (#6626).#6910 now added another component (
github_action_labels
) to the zip, due to the fact that there exist feedstocks that require GPU agents (a very rare resource), and that without linking this with the zip that determines non-CUDA vs. CUDA, we're stuck with only bad options:The desire for simplity in the zip is well-founded, but it doesn't trump reality. Keeping these data apart when they are closely connected causes far more problems than a single extra zip entry (aside from the fact that only 5 feedstocks across all of conda-forge are affected and the required changes are trivial).
The CUDA zip overall is IMO a reflection of irreducible complexity that exists in our packaging constraints. However, there are some nice opportunities to further simplify this zip:
docker_image
can be removed as soon as we drop CUDA 11.8 (because then everything can just run on the alma9 images){c,cxx,fortran}_compiler_version
could be dropped if we accept being limited by the maximum GCC version supported by our lowest-supported CUDAcuda_compiler
into a constant (once we drop 11.8)So in most realistic most scenario (after we drop 11.8 but assuming we keep CUDA on PPC for the foreseeable future), things would look like
which is still 2 entries shorter than it was until last November.
If we did drop CUDA support on PPC and relied only on the latest CUDA (as well as recipes guarding their
{{ compiler("cuda") }}
correctly withcuda_compiler_version != "None"
selectors), the zip could even be reduced tobut not sure whether we have the appetite for that. IMO the longer zip is less of an issue than dropping support for a platform.
The text was updated successfully, but these errors were encountered: