-
-
Notifications
You must be signed in to change notification settings - Fork 82
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
Help mamba decide on CUDA variant #162
Comments
What happens currently is that mamba "randomly" picks cuda 11.1 (even though cuda 11.2 would probably be preffered). |
I don't think the issue is here. Mamba should be able to handle this instead. |
As long as we're not compromising on the quality of the packaging (i.e. everything works as it should), I don't see why we shouldn't accommodate mamba here. Yes, it would be nicer if it were fixed in mamba, but it's used more and more (not least in CF-CI), so keeping things knowingly suboptimal has to have a commensurate benefit for not doing it (especially as the workaround is really not painful), IMO. |
@183amir the problem in this case is that we have a variant package ( We could change this in the following ways:
Global optimization, with the amount of variant packages that exist in conda-forge, takes a looong time (because many branches have to be explored). I think it's good to make it as simple as possible for the solver to find the best solution. |
I tried to write down how the sorting and solving works here: https://mamba.readthedocs.io/en/latest/advanced_usage/package_resolution.html |
I agree.
I don't think this is a good solution because the exact dependency on tensorflow-base is there to make sure the split packages are all installed from one build. That is, tensorflow, tensorflow-estimator, etc. are installed from one build.
I am not sure what this means. Could you please explain more? Maybe you could show how the recipe would look like. |
This might be a separate topic, but do we actually need both |
So right now we have the following situation:
So here, mamba can correctly decide for If we add cudatoolkit at this level, it woudl work fine. Otherwise, we could modify it like this:
Then again we could resolve properly, because we can decide again for tensorflow-base and select the one that uses the highest cudatoolkit. I don't know if this makes sense? It's kinda hard to explain. Basically with the current setup we would need to look at all What I am proposing is to
Eliminating |
I kinda feel like we should add cuda-toolkit to |
Yes! |
I'm sorry, do we want to add :
to the host section |
cudatoolkit is the one whose version is in the variant, right? so that should be enough to help mamba decide |
I guess i don't see |
I think it's exported from |
great. makes sense. let's add that. it seems like we should be adding it to |
Ok, I've folded it in the recent migraiton. |
IIUC, we could get rid of How about we do this for 2.7.0? |
we could do that.... if downstream packages are not depending on it. There seems to be quite a few things on github that are now depending on it already. So we kinda have to carry it forward. |
If it's still needed, we could still keep it as a compatibility output that just 1:1 installs |
We had tried to keep I'm not sure there is an easy answer to this. |
If we don't need |
In your sentence, swap |
I introduced |
You said above:
Why not still add those constraints and then call it |
Maybe i'm just confused. It might be just easier if you show me in a PR. Can we agree on an order of priorities? I suggest:
|
I agree that #144 is priority number 1, and as I said I'm fine to clean up the tf-base situation together with 2.7.0. I don't think we should make these improvements dependent on windows builds, which has a large number of known & unknown unknowns. IOW, from your list, I suggest 1. -> 3. -> 2. |
has this been resolved? |
Mamba currently can't properly decide which
tensorflow
cuda package to prefer since we don't directly depend oncudatoolkit
in thetensorflow
package.Only in the
tensorflow-base
package we have acudatoolkit
dependency.However,
tensorflow-base
is connected totensorflow
via an exact dependency.If we'd also add the
cudatoolkit
to thetensorflow
package, mamba would be able to select the best version.OR we could remove the tensorflow variant completely and just have a single metapackage that depends on
tensorflow-base {{ VERSION }}
(but not exact). Then mamba could decide the tensorflow-base version more freely.The text was updated successfully, but these errors were encountered: