Skip to content

Conversation

@jarmak-nv
Copy link
Contributor

@jarmak-nv jarmak-nv commented Jul 21, 2023

closes #413

This PR contains the updates to the release selector required for the conda-forge CUDA 12.0 work as well as the docker overhaul.

To do:

  • CUDA 12 conda-forge updates
  • Docker Overhaul updates to the selector
  • Docker overhaul updates to the install page
  • 23.08 release updates

This PR updates:

  • Selector
    • Enables CUDA 12.0 for conda packages
    • Disables CUDA 12.0 for arm conda packages
    • Disables cuSignal from conda CUDA 12.0
    • Removes the note on cuSignal for conda CUDA 12.0
    • Removes PyCaret as a conda additional package, it's now only available on pip for the newest versions
    • Updated to new docker setup
      • Much simpler, only base and notebooks
      • No OS selection
      • Same CUDA 12 restrictions as Conda
  • Install page
    • Adds 2 troubleshooting steps about conda CUDA 12
      • No ARM
      • PyTorch CUDA version compatibilities
    • Expands the CUDA version compatibility section and breaks it up into docker/conda and pip

I've also merged in #412 to simplify merging at release.

@jarmak-nv jarmak-nv changed the title Conda CUDA 12.0 doc updates 23.08 Release Selector and Install Page Updates Jul 21, 2023
@jarmak-nv
Copy link
Contributor Author

jarmak-nv commented Jul 24, 2023

I think this is good to review. I was initially holding back to consider adding the docker changes to the install page, but I'll do that in a separate PR to open this to review now.

Selector changes are updated for Docker since CUDA 12 update impacts that as well.

Because arm isn't yet supported in CUDA 12, I've left 11.8 as the default. Happy to discuss/change.

@jarmak-nv jarmak-nv marked this pull request as ready for review July 24, 2023 21:27
@jarmak-nv jarmak-nv requested a review from a team as a code owner July 24, 2023 21:27
@jarmak-nv
Copy link
Contributor Author

@raydouglass would also appreciate your eyes on the selector when you find a moment to make sure I set up the Docker changes correctly - thanks! (I can't add you as a reviewer otherwise I'd just do that.)

Copy link
Contributor

@bdice bdice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments attached.

@jarmak-nv
Copy link
Contributor Author

Oh one other question I had for the group: with libmamba being a default installed solver now, thoughts on adding

--solver=libmamba to all conda commands?

@bdice
Copy link
Contributor

bdice commented Jul 25, 2023

Oh one other question I had for the group: with libmamba being a default installed solver now, thoughts on adding

--solver=libmamba to all conda commands?

We've wanted to stay in line with conda defaults as much as possible. I am not sure that updated versions of conda are widespread enough to recommend this to all users. However, I'm very eager for it to become the default and recommend that all users update their conda versions...

@jarmak-nv
Copy link
Contributor Author

We've wanted to stay in line with conda defaults as much as possible. I am not sure that updated versions of conda are widespread enough to recommend this to all users. However, I'm very eager for it to become the default and recommend that all users update their conda versions...

Yeah this is a good point, conda installs do often feel like a "set and forget" thing. It's not beautiful, but we could do:

conda create -n rapids-23.06 -c rapidsai -c conda-forge -c nvidia rapids=23.06 python=3.10 cuda-version=11.8 --solver=libmamba || \
conda create -n rapids-23.06 -c rapidsai -c conda-forge -c nvidia rapids=23.06 python=3.10 cuda-version=11.8

Not strongly attached to this, but think it's worth bringing up just because mamba is so much faster and if people can use it, they should.

@mmccarty
Copy link
Contributor

We discussed this a while back and agreed to recommend libmamba where possible.

cc @jakirkham @raydouglass for viz

@jarmak-nv
Copy link
Contributor Author

💯 to recommending it, the challenge is when to assume it. If we include --solver=libmamba in the base command we provide from the selector, we're assuming users already have that solver available which is only true if you're on the newest conda install, or are on a late 2022 install + performed the steps to install the libmamba solver.

However, the error you get from conda is very clear if you try to use --solver=libmamba and you don't have it installed. I don't think it's too much of a blocker, but it isn't a perfectly clean "we should do this" imo.

(My weak pref is we do include it and add a troubleshooting step in the docs for when libmamba isn't installed.)

@mmccarty
Copy link
Contributor

Well yes, we also need to add / link to instructions on how to install it. I don't suppose we want yet another options in the selector.

@bdice
Copy link
Contributor

bdice commented Jul 25, 2023

(My weak pref is we do include it and add a troubleshooting step in the docs for when libmamba isn't installed.)

I like this proposal! Let’s add it “always” in our commands and then give clear troubleshooting instructions on how to fix it if their conda version is too old. Include a copy of the error message so it’s easy to find. Maybe add a note at the bottom of the conda selector like “We add --solver=libmamba for speeding up the environment solving process. This requires conda>=X.Y.Z. Alternatively, use mamba to install.”

Copy link
Member

@ajschmidt8 ajschmidt8 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

almost there! there are a lot of changes in this release 🙂

@ajschmidt8
Copy link
Member

@jarmak-nv et all, this is looking good. Great tool we have here.

Very minor thing but in the css for the "command" text id make it match so the command label stays to the top:

.cmd-label {
    color: white;
    width: 6em;
    text-transform: uppercase;
    font-weight: 600;
    margin-top: 1rem;
    margin-right: 0.6em;
    vertical-align: top;
}

I think this should also include text-align: right.

It looks like the other labels have that property, but not the command label.

Copy link
Member

@jakirkham jakirkham left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Ben! 🙏

Looks good from my perspective. Will defer to others on JS, etc.

Copy link
Member

@ajschmidt8 ajschmidt8 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is awesome.

the release selector is sooo much simpler as a result of the Docker image changes.

Copy link
Contributor

@bdice bdice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few remaining comments, but otherwise LGTM!

var py_cuda_pkgs = [this.highlightPkgOrImg("python") + "=" + python_version, this.highlightPkgOrImg("cuda-version") + "=" + cuda_version].join(" ");
var conda_channels = [rapids_channel, "conda-forge", "nvidia"]
.map(ch => this.highlightFlag("-c") + " " + ch + " ")
.map(ch => "-" + this.highlightFlag("c") + " " + ch + " ")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the dashes are usually highlighted the same way as the flag name?

Suggested change
.map(ch => "-" + this.highlightFlag("c") + " " + ch + " ")
.map(ch => this.highlightFlag("-c") + " " + ch + " ")

My vim highlighting looks like:

image

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

interesting. okay. I will update in a bit. I just made them match the existing highlights.

var all_pkgs = pkgs_vers + py_cuda_pkgs;

var conda_create_ln = this.highlightCmd('conda') + " create " + this.highlightFlag("-n") + " rapids-" + rapids_version + " " + conda_channels;
var conda_create_ln = this.highlightCmd('conda') + " create --" + this.highlightFlag("solver") + "=libmamba " + this.highlightFlag("-n") + " rapids-" + rapids_version + " " + conda_channels;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
var conda_create_ln = this.highlightCmd('conda') + " create --" + this.highlightFlag("solver") + "=libmamba " + this.highlightFlag("-n") + " rapids-" + rapids_version + " " + conda_channels;
var conda_create_ln = this.highlightCmd('conda') + " create " + this.highlightFlag("--solver") + "=libmamba " + this.highlightFlag("-n") + " rapids-" + rapids_version + " " + conda_channels;

var pip_install = "pip install ";
var index_url = " --extra-index-url=https://pypi.nvidia.com";
var pip_install = `${this.highlightCmd("pip")} install`;
var index_url = `--${this.highlightFlag("extra-index-url")}=https://pypi.nvidia.com`;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
var index_url = `--${this.highlightFlag("extra-index-url")}=https://pypi.nvidia.com`;
var index_url = `${this.highlightFlag("--extra-index-url")}=https://pypi.nvidia.com`;


var indent = " ";
var cmd = this.highlightCmd("docker") + " run --" + this.highlightFlag("gpus") + " all --pull always --" + this.highlightFlag("rm") + " -" + this.highlightFlag("it") + " \\\n" +
var cmd = this.highlightCmd("docker") + " run --" + this.highlightFlag("gpus") + " all --" + this.highlightFlag("pull") + " always --" + this.highlightFlag("rm") + " -" + this.highlightFlag("it") + " \\\n" +
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
var cmd = this.highlightCmd("docker") + " run --" + this.highlightFlag("gpus") + " all --" + this.highlightFlag("pull") + " always --" + this.highlightFlag("rm") + " -" + this.highlightFlag("it") + " \\\n" +
var cmd = this.highlightCmd("docker") + " run " + this.highlightFlag("--gpus") + " all " + this.highlightFlag("--pull") + " always " + this.highlightFlag("--rm") + " " + this.highlightFlag("-it") + " \\\n" +

var indent = " ";
var cmd = this.highlightCmd("docker") + " run --" + this.highlightFlag("gpus") + " all --pull always --" + this.highlightFlag("rm") + " -" + this.highlightFlag("it") + " \\\n" +
var cmd = this.highlightCmd("docker") + " run --" + this.highlightFlag("gpus") + " all --" + this.highlightFlag("pull") + " always --" + this.highlightFlag("rm") + " -" + this.highlightFlag("it") + " \\\n" +
indent + "--" + this.highlightFlag("shm-size") + "=1g --" + this.highlightFlag("ulimit") + " memlock=-1 --" + this.highlightFlag("ulimit") + " stack=67108864" + " \\\n" +
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
indent + "--" + this.highlightFlag("shm-size") + "=1g --" + this.highlightFlag("ulimit") + " memlock=-1 --" + this.highlightFlag("ulimit") + " stack=67108864" + " \\\n" +
indent + this.highlightFlag("--shm-size") + "=1g " + this.highlightFlag("--ulimit") + " memlock=-1 " + this.highlightFlag("--ulimit") + " stack=67108864" + " \\\n" +

@jarmak-nv
Copy link
Contributor Author

Somewhat perplexed why the deploy preview isn't showing the cuProj updates. My local preview shows fine, but it's like they're not there at all in netlify.

@ajschmidt8
Copy link
Member

Somewhat perplexed why the deploy preview isn't showing the cuProj updates. My local preview shows fine, but it's like they're not there at all in netlify.

Must've been a hiccup on Netlify's end. I reran the build from our admin dashboard and it looks like it's showing now.

@jakirkham
Copy link
Member

Is there anything else needed here?

@jarmak-nv
Copy link
Contributor Author

jarmak-nv commented Aug 4, 2023

@jakirkham It's all good - @ajschmidt8 just wants a moment to verify/modify highlighting per #414 (comment) but otherwise no concerns.

Edit to add: it's not super high prio on his radar since the link above is the last thing before merge and lots else going on so movement might not happen until closer to release day.

@jakirkham
Copy link
Member

Maybe let's do final reviews. Think we can punt on smaller stylistic changes

@ajschmidt8
Copy link
Member

Maybe let's do final reviews. Think we can punt on smaller stylistic changes

+1.

Bradley, I don't want to merge your suggestions without reviewing them first, but I don't have time to check them all for consistency at the moment. We can address them in a future PR.

@raydouglass raydouglass merged commit 509f416 into rapidsai:main Aug 14, 2023
@jakirkham
Copy link
Member

Thanks all! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CUDA 12 on conda Install Docs/Selector updates

7 participants