rust-lang / rust-lang/rust

Tracking Issue for AVX10 target features

Open
#138,843 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-SIMD A-target-feature C-tracking-issue O-x86_32 O-x86_64 T-libs
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

Feature gate: #![feature(avx10_target_feature)]

This is a tracking issue for Intel AVX10 target features. The official reference to AVX10.1 can be found in chapter 16, Volume 1 of Intel Software Developer's Manual.

AVX10 is a "converged vector ISA", which attempts to simplify the mess that AVX512 was (21 ISAs). AVX10.1 is just a cleanup ISA, which implies the following AVX512 ISAs.

  • avx512bf16
  • avx512bitalg
  • avx512bw
  • avx512cd
  • avx512dq
  • avx512f
  • avx512fp16
  • avx512ifma
  • avx512vbmi
  • avx512vbmi2
  • avx512vl
  • avx512vnni
  • avx512vpopcntdq

Notably, the ISAs listed below, even though part of AVX512, will not be part of AVX10.1

  • avx512er, avx512pf - Deprecated ISAs, were only available in the KNL and KNM series, neither Rust/LLVM nor GCC supports them anymore
  • avx5124fmaps, avx5124vnniw - Deprecated ISAs, were only available in the KNM series, neither Rust/LLVM nor GCC supports them
  • avx512vp2intersect - Only Intel CPU to support it was TigerLake, recently AMD has added support in Zen5
  • vaes, vpclmulqdq, gfni - Intel probably wants to keep these separate from other SIMD intrinsics

AVX10.2 introduces a lot of new instructions (these have not yet been added to SDM, the latest reference is this)

This tracking issue is meant to be incremental, i.e. new target features will be added as Intel publishes new versions of AVX10, and old versions will be stabilized.

Public API

The following target features and their associated intrinsics in stdarch

  • avx10.1
  • avx10.2
Implementation History:
  • #139675
  • #145531
  • rust-lang/stdarch#2045
Unresolved Questions
  • None yet.

Related: #111137, #44839

@rustbot label O-x86-32 O-x86_64 A-target-feature A-SIMD

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the avx10_target_feature feature gate, the stdarch public API entries for avx10.1 and avx10.2, and the implementation issues #139675, #145531, and rust-lang/stdarch#2045. Review the Intel AVX10 references to determine the next incremental target feature work; done means the relevant published features are added or stabilized.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.