You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Neville Dipale (Jira)" <ji...@apache.org> on 2021/01/10 06:47:00 UTC
[jira] [Commented] (ARROW-9269) [Rust] Cargo.toml flag to disable
SIMD for targeting stable Rust
[ https://issues.apache.org/jira/browse/ARROW-9269?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17262093#comment-17262093 ]
Neville Dipale commented on ARROW-9269:
---------------------------------------
Hi [~aeshirey], the next release of arrow, parquet and datafusion will all support stable Rust, with nightly still required for SIMD. I'm closing this as it's been implemented.
> [Rust] Cargo.toml flag to disable SIMD for targeting stable Rust
> ----------------------------------------------------------------
>
> Key: ARROW-9269
> URL: https://issues.apache.org/jira/browse/ARROW-9269
> Project: Apache Arrow
> Issue Type: New Feature
> Components: Rust
> Affects Versions: 0.16.0, 0.17.0
> Environment: WSL2 w/Ubuntu 18.0.4, rustc 1.44.1 stable
> Reporter: Adam Shirey
> Priority: Minor
>
> The Parquet Rust crate requires nightly Rust, apparently due to the use of packed_simd, which [is using some nightly features.|https://github.com/rust-lang/packed_simd/blob/54b19fb5905b9a6dcdcad7019e72c9067f0af2a4/src/lib.rs#L202].
> After some digging around, I found that [PR 5269|https://github.com/apache/arrow/pull/5269/commits] / ARROW-6303 specifically calls for making SIMD optional, and it looks like this should be possible to use this crate in stable. According to [the changelog for the Cargo.toml|https://github.com/apache/arrow/pull/5269/commits/2d617e7358e2d18879a58037bfd41692392e0ce9], and based on the README for [Native Rust implementation of Apache Arrow|https://github.com/apache/arrow/blob/6299c25ffd579ba4773d7b7b4cbab9b86e0847f4/rust/arrow/README.md#simd-single-instruction-multiple-data], it looks like one can disable SIMD for Arrow.
> However, this doesn't apply to the Parquet crate. (I must admit that I'm not terribly familiar with the distinction between Arrow and Parquet - memory format vs disk format?) I tried disabling the feature in my Cargo.toml:
> {{[dependencies.parquet]}}
> {{version = "0.17"}}
> {{default-features = false}}
> And I also tried {{cargo build --no-default-features}}, but the Parquet crate seems to still require nightly. Maybe a similar change needs to be applied to the Parquet code?
> Is it possible to use the Parquet crate on stable Rust? If so, how? And by disabling SIMD, what are the (approximate) performance implications?
--
This message was sent by Atlassian Jira
(v8.3.4#803005)