-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Labels
T-libsRelevant to the libraries subteam, which will review and decide on the PR/issue.Relevant to the libraries subteam, which will review and decide on the PR/issue.project-groupAn active project groupAn active project group
Description
Summary
Produce a portable SIMD API, exposed through a new std::simd
(and core::simd
) module in the standard library in the same manner as stdarch
. The output of this project group will be the finalization of RFC 2948 and stabilization of std::simd
.
Info
- Leads: @BurntSushi @calebzulawski @hsivonen @Lokathor @workingjubilee
- Libs-team liaison: @KodrAus
- Charter
- Repository rust-lang/project-portable-simd
- Zulip stream
#project-portable-simd
What is this issue?
This issue represents an active project group. It is meant to be used for
the group to post updates to the libs team (and others) in a lightweight
fashion. Please do not use the comments here for discussion, that should be kept
in the Zulip stream (discussion comments here will be marked as off-topic).
Metadata
Metadata
Assignees
Labels
T-libsRelevant to the libraries subteam, which will review and decide on the PR/issue.Relevant to the libraries subteam, which will review and decide on the PR/issue.project-groupAn active project groupAn active project group
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
KodrAus commentedon Sep 23, 2020
Portable SIMD 2020-09-22 Meeting
tags:
Portable SIMD
Minutes
https://rust-lang.zulipchat.com/#narrow/stream/257879-project-portable-simd/topic/2020-09-21.20meeting
Summary
Where does the code live?
rust-lang/stdarch
exists independently ofrust-lang/rust
for historical reasons. It has a lot of CI infra that we'd probably also need forstd::simd
.rust-lang/rust
can be difficult to work on directly, we'd rather at least start externally.std::simd
independent ofrust-lang/rust
. It means updatingstd::simd
needs a PR to update the submodule.Announcement post
Nomenclature
Are we looking at length-agnostic APIs?
omp simd reduction
directives for vectorization hints.Outcomes
KodrAus commentedon Oct 6, 2020
Portable SIMD 2020-10-05 Meeting
tags:
Portable SIMD
Minutes
https://rust-lang.zulipchat.com/#narrow/stream/257879-project-portable-simd/topic/2020-10-05.20meeting
Summary
Testing
quickcheck
has been used in the past for sanity-checking SIMD code, but wasn't enough on its own.Contributing docs
Runtime detection
#[target_feature]
support incore::arch
.Julia
Shuffles
Portable nomenclature
Outcomes
KodrAus commentedon Oct 14, 2020
Portable SIMD 2020-10-12 Meeting
tags:
Portable SIMD
Minutes
https://rust-lang.zulipchat.com/#narrow/stream/257879-project-portable-simd/topic/2020-10-12.20meeting
Summary
Compiler bug on RISCV
nightly
until it's fixed. It's raised a few questions:stdsimd
in the mainline?For how we deal with compiler bugs:
rust-lang/rust
these kinds of issues should be caughtFor our plan for getting
stdsimd
in the mainline:crates.io
rust-lang/rust
as an unstable APIOutcomes
KodrAus commentedon Oct 26, 2020
Portable SIMD 2020-10-26 Meeting
tags:
Portable SIMD
Minutes
https://rust-lang.zulipchat.com/#narrow/stream/257879-project-portable-simd/topic/meeting.202020-10-26
Summary
What's blocking us from
nightly
?T-compiler
for portable SIMD intrinsics inrustc
to abstract us from a future Cranelift backend.riscv64gc
, but we're not sure if it's actually an issue with that target or not. It needs some more investigation work. So far we've just been checking it usingcargo cross
.Floating points
KodrAus commentedon Nov 9, 2020
Portable SIMD 2020-11-09 Meeting
tags:
Portable SIMD
Minutes
https://rust-lang.zulipchat.com/#narrow/stream/257879-project-portable-simd/topic/Meeting.202020-11-09
Summary
Masks
rust-lang/portable-simd#44
Wiring up backend-agnostic intrinsics
rust-lang/compiler-team#381
t-compiler
input.Allowing
#[repr(simd)]
onA([T; N])
rust-lang/rust#78863
packed_simd
KodrAus commentedon Nov 17, 2020
Portable SIMD 2020-11-16 Meeting
https://rust-lang.zulipchat.com/#narrow/stream/257879-project-portable-simd/topic/Meeting.202020-11-16
tags:
Portable SIMD
Minutes
Outcomes
#[repr(simd)]
with[T; N]
.floor
,ceil
,round
,truncate
intrinsics to remove direct dependency on LLVM fromcore::simd
.Summary
#[repr(simd)]
with[T; N]
has been approved and should merge soon!packed_simd
with itsSimd<T>
and type aliases. It was limited by the tools that were available at the time though.vf32<const N: usize>
instead of a genericSimd<f32, const N: usize>
or our currentf32xN
.nightly
in some form and then revisit this.KodrAus commentedon Feb 11, 2021
Portable SIMD 2021-02-08 Meeting
tags:
Portable SIMD
Minutes
Summary
Immediate Goals
core_simd_arithmetic
feature flagLater Goals