[ 
https://issues.apache.org/jira/browse/ARROW-5303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17662324#comment-17662324
 ] 

Rok Mihevc commented on ARROW-5303:
-----------------------------------

This issue has been migrated to [issue 
#21767|https://github.com/apache/arrow/issues/21767] on GitHub. Please see the 
[migration documentation|https://github.com/apache/arrow/issues/14542] for 
further details.

> [Rust] Add SIMD vectorization of numeric casts
> ----------------------------------------------
>
>                 Key: ARROW-5303
>                 URL: https://issues.apache.org/jira/browse/ARROW-5303
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: Rust
>    Affects Versions: 0.13.0
>            Reporter: Neville Dipale
>            Priority: Minor
>
> To improve the performance of cast kernels, we need SIMD support in numeric 
> casts.
> An initial exploration shows that we can't trivially add SIMD casts between 
> our Arrow T::Simd types, because `packed_simd` only supports a cast between 
> T::Simd types that have the same number of lanes.
> This means that adding casts from f64 to i64 (same lane length) satisfies the 
> bound trait `where TO::Simd : packed_simd::FromCast<FROM::Simd>`, but f64 to 
> i32 (different lane length) doesn't.
> We would benefit from investigating work-arounds to this limitation. Please 
> see 
> [github::nevi_me::arrow/\{branch:simd-cast}/../kernels/cast.rs|[https://github.com/nevi-me/arrow/blob/simd-cast/rust/arrow/src/compute/kernels/cast.rs#L601]]
>  for an example implementation that's limited by the differences in lane 
> length.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to