NVPTX: Drop support for old architectures and old ISAs#152443
NVPTX: Drop support for old architectures and old ISAs#152443kjetilkjeka wants to merge 1 commit intorust-lang:mainfrom
Conversation
|
Some changes occurred in src/doc/rustc/src/platform-support cc @Noratrieb |
|
r? @jackh726 rustbot has assigned @jackh726. Use Why was this reviewer chosen?The reviewer was selected based on:
|
|
r? @ZuseZ4 |
|
@rustbot label +O-NVPTX |
This comment has been minimized.
This comment has been minimized.
af90fab to
192c99f
Compare
This comment has been minimized.
This comment has been minimized.
192c99f to
a516a55
Compare
This comment has been minimized.
This comment has been minimized.
a516a55 to
5f88388
Compare
This comment has been minimized.
This comment has been minimized.
4cbf1bb to
9026a42
Compare
|
Changing a target baseline officially doesn't require a blog post: https://forge.rust-lang.org/compiler/proposals-and-stabilization.html#other-kind-of-target-changes But since it's afaik the first time that we raise it for a GPU target and since nvptx is Tier 2, would you mind to still write one, so that we could merge it simultaneously? https://blog.rust-lang.org/2023/09/25/Increasing-Apple-Version-Requirements/ and https://blog.rust-lang.org/2025/08/19/demoting-x86-64-apple-darwin-to-tier-2-with-host-tools/ are two related examples, but there are more if you want some inspiration. Just a more user-friendly, short version of your MCP. Something motivating the change, mentioning the new behaviour, and saying that we will likely raise it further in the future, would be enough. |
|
So this drops support for Pascal (10 series, P100), while keeping support for Volta (V100) and Turing (16 and 20 series)? Perhaps including that information in the docs would be helpful. |
9026a42 to
e04ea32
Compare
This comment has been minimized.
This comment has been minimized.
e04ea32 to
dc1bd5a
Compare
|
With regards to blogpost, is something like this acceptable? rust-lang/blog.rust-lang.org#1810
Yes. I linked to the document by Nvidia listing all their GPUs as it will quickly become very verbose to explicitly list a lot of GPUs. Let me know if you think it's easier to get hold of this information with these changes. Since the branch date for 1.95 was approaching I decided to instead wait for 1.96. The version is stated to be 1.96 in the docs and blogpost right now and we should have plenty of time for that branch date. |
| While the compiler accepts `#[target_feature(enable = "ptx80", enable = "sm_89")]`, it is not supported, may not behave as intended, and may become erroneous in the future. | ||
|
|
||
| ## Minimum SM and PTX support by Rust version | ||
| Old hardware architectures and PTX ISA versions are periodically dropped support for. This table shows the minimum supported versions per Rust version. |
There was a problem hiding this comment.
Nit: Might just be because I'm not native, but it reads a bit awkward to me. Does
Support for old hardware architectures and PTX ISA versions is periodically dropped.
sound better?
There was a problem hiding this comment.
Much more natural, thanks ❤️
| }, | ||
| ); | ||
|
|
||
| // This is needed to ensure that we don't use PTX ISA versions that we do not support |
There was a problem hiding this comment.
I just looked up the ptx-release-history link from this PR to verify that we don't need to handle sm_80. Can you make it slightly more explicit for the next reader by saying that sm_{70,72,75} would default to ptx60, which is unsupported, whereas sm_80 would default to ptx70, which is supported?
There was a problem hiding this comment.
I made an attempt at making the comment a bit clearer and add that piece of information. I hope it's better now
dc1bd5a to
6e0ead8
Compare
|
These commits modify compiler targets. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
6e0ead8 to
739e3a7
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
I addressed your review comments and updated the table of Rust releases to the correct set assuming this is merged before the next release. It should be ready for review |
739e3a7 to
1a8d8ae
Compare
|
Are you sure with the versions? I just checked releases.rs/docs/1.97.0/, |
Are you referring to the blogpost MR? In that case it's fixed now. I believe this one states that the new behaviour is from 1.97 |
|
Right. Thanks! @bors r+ |
…_hw_and_isa, r=ZuseZ4 NVPTX: Drop support for old architectures and old ISAs This is the implementation of [this MCP](rust-lang/compiler-team#965 (comment)) I believe it was said that no FCP was needed, but if that is incorrect then the FCP is anyway scheduled to finish in 2 days so it can in any case be merged then.
…_hw_and_isa, r=ZuseZ4 NVPTX: Drop support for old architectures and old ISAs This is the implementation of [this MCP](rust-lang/compiler-team#965 (comment)) I believe it was said that no FCP was needed, but if that is incorrect then the FCP is anyway scheduled to finish in 2 days so it can in any case be merged then.
…uwer Rollup of 9 pull requests Successful merges: - #149624 (Fix requires_lto targets needing lto set in cargo) - #152443 (NVPTX: Drop support for old architectures and old ISAs) - #155317 (`std::io::Take`: Clarify & optimize `BorrowedBuf::set_init` usage.) - #155588 (Implement more traits for FRTs) - #155682 (Add boxing suggestions for `impl Trait` return type mismatches) - #155770 (Avoid misleading closure return type note) - #155818 (Convert attribute `FinalizeFn` to fn pointer) - #155829 (rustc_attr_parsing: use a `try {}` in `or_malformed`) - #155835 (couple of `crate_name` cleanups)
|
This pull request was unapproved. This PR was contained in a rollup (#155845), which was unapproved. |
View all comments
This is the implementation of this MCP
I believe it was said that no FCP was needed, but if that is incorrect then the FCP is anyway scheduled to finish in 2 days so it can in any case be merged then.