Skip to content
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

packed_simd requires nightly #54

Closed
alamb opened this issue Apr 26, 2021 · 7 comments · Fixed by #5184
Closed

packed_simd requires nightly #54

alamb opened this issue Apr 26, 2021 · 7 comments · Fixed by #5184
Labels
arrow Changes to the arrow crate

Comments

@alamb
Copy link
Contributor

alamb commented Apr 26, 2021

Note: migrated from original JIRA: https://issues.apache.org/jira/browse/ARROW-6718

See [https://github.com/rust-lang/rfcs/pull/2366] for more info on stabilization of this crate.

 
{code:java}
error[E0554]: #![feature] may not be used on the stable release channel
--> /home/andy/.cargo/registry/src/github.com-1ecc6299db9ec823/packed_simd-0.3.3/src/lib.rs:202:1
|
202 | / #![feature(
203 | | repr_simd,
204 | | const_fn,
205 | | platform_intrinsics,
... |
215 | | custom_inner_attributes
216 | | )]
| |__^
{code}

@alamb alamb added the arrow Changes to the arrow crate label Apr 26, 2021
@alamb
Copy link
Contributor Author

alamb commented Apr 26, 2021

Comment from Neville Dipale(nevi_me) @ 2019-12-23T04:13:36.550+0000:

If everyone's happy with the performance of arithmetic and compute kernels after the improvements to the non-SIMD functions (ARROW-7460), I'd like to propose removing packed_simd [~paddyhoran]

Comment from Paddy Horan(paddyhoran) @ 2019-12-24T13:47:15.418+0000:

I would love to get back on stable.  I added a feature to disable explicit SIMD to try and make progress toward this goal.  Although the main thing we need is specialization on stable.

 

If we can get the same level of performance then I'm all for removing packed_simd.  At the time we adopted it, the author was trying to get it adopted into std.  Since then he has stopped driving this forward until other features land.

 

I'll take a look in the next few days to compare performance, etc. 

Comment from Kyle Strand(batmanaod) @ 2020-09-30T22:58:09.616+0000:

There is now a portable-SIMD Rust language working group: https://blog.rust-lang.org/inside-rust/2020/09/29/Portable-SIMD-PG.html

Their goal is to make "a portable SIMD API available to stable Rust users." We should follow their progress and adopt their recommendations.

@velvia
Copy link
Contributor

velvia commented Apr 1, 2022

@alamb any updates on performance of stable vs nightly? I'd be surprised if the non SIMD performance was quite as good, but hey all power to it.....

@alamb
Copy link
Contributor Author

alamb commented Apr 1, 2022

I'd be surprised if the non SIMD performance was quite as good, but hey all power to it.....

I don't think 'non SIMD' is quite accurate -- it is more like "Clang produced (auto vectorized) SIMD" where the compiler generates the SIMD instructions

@jhorstmann did some work that showed several kernels were actually faster using autovectorized code: #1221

I believe @jorgecarleitao did some work in arrow2 to migrate it away from using packed_simd (and thus no longer require nightly rust): jorgecarleitao/arrow2#747

@jhorstmann
Copy link
Contributor

See also #1492 for a small discussion about packed_simd vs portable_simd

@jorgecarleitao
Copy link
Member

@alamb, note that std::simd requires nightly, as it is gated under #![feature(portable_simd)], rust-lang/rust#86656

@alamb
Copy link
Contributor Author

alamb commented Apr 2, 2022

@alamb, note that std::simd requires nightly, as it is gated under #![feature(portable_simd)], rust-lang/rust#86656

Ah -- my bad. Thanks you for the clarification

@velvia
Copy link
Contributor

velvia commented Oct 11, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arrow Changes to the arrow crate
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants