You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have spent a few minutes trying unsuccessfully to write a simd version of code that uses ndarray's zip_mut_with - is there currently a way of combining a simd_iter_mut and simd_iter with zip?
Essentially, I'd like to modify the elements of an array in place with an operation that uses the values in another array of the same shape.
I tried this:
letmut xs = ndarray::Array::from_elem((64,),0.0f32);let ys = ndarray::Array::from_elem((64,),1.0f32);(xs.as_slice_mut().unwrap().simd_iter_mut(f32s(0.0)),
ys.as_slice().unwrap().simd_iter(f32s(0.0))).zip().simd_for_each(|(x, y)| {*x += *y;// or whatever, not sure if this is correct for the closure});
and got this error:
error[E0599]: no method named `simd_for_each` found for type `faster::Zip<(faster::SIMDIter<&mut [f32]>, faster::SIMDIter<&[f32]>)>` in the current scope --> src/mlp/m3r.rs:298:26 |298 | .simd_for_each(|(z, b)| { | ^^^^^^^^^^^^^...
Any recommendations for how to proceed? First time using the library, apologies if this is an obvious question.
The text was updated successfully, but these errors were encountered:
I couldn't work this out either, FWIW. Wasted a lot of time thinking that for_each would do the job, before discovering that it creates a copy that is discarded, rather than mutating the vector in-place.
hey,
I have spent a few minutes trying unsuccessfully to write a simd version of code that uses ndarray's
zip_mut_with
- is there currently a way of combining asimd_iter_mut
andsimd_iter
withzip
?Essentially, I'd like to modify the elements of an array in place with an operation that uses the values in another array of the same shape.
I tried this:
and got this error:
Any recommendations for how to proceed? First time using the library, apologies if this is an obvious question.
The text was updated successfully, but these errors were encountered: