Skip to content

Stabilize the avx512 target features #138940

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

Merged
merged 2 commits into from
May 18, 2025
Merged

Conversation

sayantn
Copy link
Contributor

@sayantn sayantn commented Mar 25, 2025

This PR stabilizes the AVX512 target features - see this comment.

Tracking Issue - #44839

The target feature UI tests have been changed to x87 (chosen because this is very unlikely to stablize ever, please comment if some other feature will be better)

related: #111137

@rustbot
Copy link
Collaborator

rustbot commented Mar 25, 2025

r? @davidtwco

rustbot has assigned @davidtwco.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot
Copy link
Collaborator

rustbot commented Mar 25, 2025

⚠️ Warning ⚠️

  • These commits modify submodules.

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Mar 25, 2025
@rust-log-analyzer

This comment has been minimized.

@sayantn

This comment was marked as resolved.

@sayantn sayantn force-pushed the stabilize-avx512 branch 2 times, most recently from 1be9f75 to 94d0e36 Compare March 25, 2025 19:51
@rustbot
Copy link
Collaborator

rustbot commented Mar 25, 2025

The Miri subtree was changed

cc @rust-lang/miri

@rust-log-analyzer

This comment has been minimized.

@Amanieu Amanieu added the I-lang-nominated Nominated for discussion during a lang team meeting. label Mar 25, 2025
@Amanieu
Copy link
Member

Amanieu commented Mar 25, 2025

Nominating for T-lang FCP. This stabilizes the AVX512 target features which is a per-requisite for stabilizing the AVX-512 intrinsics tracked in #111137.

@Amanieu Amanieu added T-lang Relevant to the language team, which will review and decide on the PR/issue. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue. and removed T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Mar 25, 2025
@ehuss
Copy link
Contributor

ehuss commented Mar 26, 2025

Can you also send a PR to update https://github.com/rust-lang/reference/blob/master/src/attributes/codegen.md#x86-or-x86_64?

@rust-log-analyzer

This comment has been minimized.

Copy link
Member

@Amanieu Amanieu left a comment

Choose a reason for hiding this comment

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

These features are for the various AVX512 sub-features. We have already stabilized some of these names in is_x86_feature_detected! so the language level name should match.

@rustbot
Copy link
Collaborator

rustbot commented Apr 10, 2025

⚠️ Warning ⚠️

  • Some commits in this PR modify submodules.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rustbot
Copy link
Collaborator

rustbot commented May 17, 2025

Reminder, once the PR becomes ready for a review, use @rustbot ready.

@sayantn
Copy link
Contributor Author

sayantn commented May 17, 2025

@traviscross @Amanieu is the feature detection part of T-lang or T-libs-api.

@Amanieu
Copy link
Member

Amanieu commented May 17, 2025

rust-lang/stdarch#1760 can land as soon as this FCP is complete. Then you can update the stdarch submodule in this PR and it can itself be merged.

@sayantn
Copy link
Contributor Author

sayantn commented May 17, 2025

@Amanieu the FCP on this PR is complete, so stdarch#1760 can be merged now, right?

@sayantn sayantn force-pushed the stabilize-avx512 branch from 2a8cf18 to 2898680 Compare May 18, 2025 05:44
@sayantn
Copy link
Contributor Author

sayantn commented May 18, 2025

@traviscross finally this PR is ready for merge, just waiting for CI

@traviscross
Copy link
Contributor

Thanks for pushing this along.

@bors r=Amanieu,traviscross rollup

@bors
Copy link
Collaborator

bors commented May 18, 2025

📌 Commit 2898680 has been approved by Amanieu,traviscross

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 18, 2025
fmease added a commit to fmease/rust that referenced this pull request May 18, 2025
…u,traviscross

Stabilize the avx512 target features

This PR stabilizes the AVX512 target features - see [this comment](rust-lang#111137 (comment)).

Tracking Issue - rust-lang#44839

The target feature UI tests have been changed to `x87` (chosen because this is very unlikely to stablize ever, please comment if some other feature will be better)

related: rust-lang#111137
bors added a commit to rust-lang-ci/rust that referenced this pull request May 18, 2025
Rollup of 10 pull requests

Successful merges:

 - rust-lang#127013 (Add `f16` formatting and parsing)
 - rust-lang#138940 (Stabilize the avx512 target features)
 - rust-lang#140154 (Cygwin support in rustc)
 - rust-lang#140490 (split `asm!` parsing and validation)
 - rust-lang#140628 (std: stop using TLS in signal handler)
 - rust-lang#140746 (name resolution for guard patterns)
 - rust-lang#140926 (Return value of coroutine_layout fn changed to Result with LayoutError)
 - rust-lang#141127 (bump windows crate for compiler,bootstrap and tools)
 - rust-lang#141214 (Miri subtree update)
 - rust-lang#141218 (gvn: avoid creating overlapping assignments)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request May 18, 2025
Rollup of 8 pull requests

Successful merges:

 - rust-lang#138940 (Stabilize the avx512 target features)
 - rust-lang#140490 (split `asm!` parsing and validation)
 - rust-lang#140628 (std: stop using TLS in signal handler)
 - rust-lang#140746 (name resolution for guard patterns)
 - rust-lang#140926 (Return value of coroutine_layout fn changed to Result with LayoutError)
 - rust-lang#141127 (bump windows crate for compiler,bootstrap and tools)
 - rust-lang#141214 (Miri subtree update)
 - rust-lang#141218 (gvn: avoid creating overlapping assignments)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 2f6811e into rust-lang:master May 18, 2025
6 checks passed
@rustbot rustbot added this to the 1.89.0 milestone May 18, 2025
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request May 18, 2025
Rollup merge of rust-lang#138940 - sayantn:stabilize-avx512, r=Amanieu,traviscross

Stabilize the avx512 target features

This PR stabilizes the AVX512 target features - see [this comment](rust-lang#111137 (comment)).

Tracking Issue - rust-lang#44839

The target feature UI tests have been changed to `x87` (chosen because this is very unlikely to stablize ever, please comment if some other feature will be better)

related: rust-lang#111137
@Kobzol
Copy link
Contributor

Kobzol commented May 20, 2025

@rust-timer build 327d736

@rust-timer

This comment has been minimized.

@sayantn sayantn deleted the stabilize-avx512 branch May 20, 2025 07:10
@sayantn
Copy link
Contributor Author

sayantn commented May 20, 2025

@traviscross do I need to do anything for the relnotes PR?

@traviscross
Copy link
Contributor

traviscross commented May 20, 2025

do I need to do anything for the relnotes PR?

Good question. If you think it could warrant a brief section in the release blog post, it'd be worth writing up something in a comment there for the release team. Otherwise, there's not anything I see to do on this one.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (327d736): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @rustbot label: +perf-regression-triaged along with sufficient written justification. If you cannot justify the regressions please fix the regressions and do another perf run. If the next run shows neutral or positive results, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
2.0% [1.1%, 3.0%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.0% [-1.0%, -1.0%] 3
All ❌✅ (primary) 2.0% [1.1%, 3.0%] 2

Max RSS (memory usage)

Results (primary -0.5%, secondary -2.4%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.5% [-0.5%, -0.5%] 1
Improvements ✅
(secondary)
-2.4% [-5.3%, -0.4%] 6
All ❌✅ (primary) -0.5% [-0.5%, -0.5%] 1

Cycles

Results (primary 3.0%, secondary -3.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
3.0% [3.0%, 3.0%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.0% [-5.1%, -0.5%] 6
All ❌✅ (primary) 3.0% [3.0%, 3.0%] 1

Binary size

Results (primary 1.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
1.1% [1.1%, 1.1%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.1% [1.1%, 1.1%] 1

Bootstrap: 776.543s -> 777.319s (0.10%)
Artifact size: 365.45 MiB -> 365.33 MiB (-0.03%)

@rustbot rustbot added the perf-regression Performance regression. label May 20, 2025
@sayantn
Copy link
Contributor Author

sayantn commented May 21, 2025

@traviscross I definitely think that this would deserve a place in the relnotes, but only after the stabilization of intrinsics. I don't think the stabilization of target features by themselves are too important, but the intrinsics have been a major demand from user for quite some time.

github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request May 21, 2025
…u,traviscross

Stabilize the avx512 target features

This PR stabilizes the AVX512 target features - see [this comment](rust-lang#111137 (comment)).

Tracking Issue - rust-lang#44839

The target feature UI tests have been changed to `x87` (chosen because this is very unlikely to stablize ever, please comment if some other feature will be better)

related: rust-lang#111137
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. finished-final-comment-period The final comment period is finished for this PR / Issue. I-lang-radar Items that are on lang's radar and will need eventual work or consideration. perf-regression Performance regression. relnotes Marks issues that should be documented in the release notes of the next release. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-lang Relevant to the language team, which will review and decide on the PR/issue. to-announce Announce this issue on triage meeting
Projects
None yet
Development

Successfully merging this pull request may close these issues.