-
Notifications
You must be signed in to change notification settings - Fork 46
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
Adding SIMD support #48
Comments
Hi Jack, |
I see. It is too bad that RyuJIT doesn't do any automatic vectorizing, it would be quite nice to get the same kind of auto vectorizing that C compilers do, but at runtime so it can target the available instruction sets. |
I'm been going through the Streams code trying to figure out how to add SIMD support. For example this SIMD enhanced fold performs very well compared to an inlined version of the core library fold.
Adding support to streams has a few considerations:
Ideally, say we had an Array of floats -
values
We would want to be able to do something like
This would people could mix and match SIMD operations with scalar ones as sometimes has to be done.
I'm going through the streams code trying to see how this could be done, and it isn't entirely clear. Some parts of the composed function would need to operator on a Vector while others would need to iterate Vector.Count times to operate on individual elements of the array?
If there is interest in this I'd love to contribute but need some guidance as I don't fully understand how the streams work yet.
The text was updated successfully, but these errors were encountered: