Open vyasr opened 8 months ago
possibly relevant discussion: https://discuss.python.org/t/dependency-constraints-for-setuptools/21897
My initial thought on this topic is that users should not be directly specifying the -cuXY
part themselves at all. There should be a detection tool that fills that in for users, such that they only ever specify something like cudf
. I'm working on one such tool that's presently internal at NVIDIA. The tool could potentially get out of alignment with the environment if the user updated CUDA version, though, so that's not a slam-dunk. Perhaps some environment recording/inspection that strips any -cuXY
modifications when considering specs to solve for, then re-adds them as needed. That's not at all how pip works, though. That kind of idea is more declarative - you tell the tool what you want in the environment, and it figures out how to meet that.
I'm really not sure there is a good way to do this without more general metadata support, but I'm glad people are thinking about it.
Yeah I'm not sure that there's a great solution to this. I agree that it would be ideal if we could avoid the -cu*
suffixes altogether, but short of upstream work in pip itself I don't see a way to do that.
This also looks relevant
Currently we have a cuda-version metapackage in conda that can be used in install commands to select the appropriate version of other packages. Ideally such a package would facilitate something like the following:
with the appropriate cudf/cuml packages being pulled for us. The major caveat with pip vs conda is that we do not have a single package across CUDA versions for a given RAPIDS package, but instead separate packages by major version. That is because wheels do not offer any way of encoding arbitrary extra tag information to distinguish wheels that are identical according to the standard information that wheels support (platform, Python version).
In lieu of the latter being feasible, we would at minimum like to support a package that would serve to constrain our environment and prevent inconsistent installations, e.g.
That is a more tractable problem for which the solution should be achieved by adding the appropriate cuda-version constraint to each
*-cu*
package.