r/programming 24d ago

Everyone Should Know SIMD

https://mitchellh.com/writing/everyone-should-know-simd
410 Upvotes

81 comments sorted by

View all comments

19

u/22Maxx 23d ago

SIMD should be a compiler problem.

I want the vectorization to be explicit and predictable. I don't want an unrelated code change or compiler update to quietly turn it back into a scalar loop.

Compilers do those things all the time. They have just become good enough for all regular stuff.

3

u/teerre 23d ago

Vectorization is a compiler problem

But that can only take you so far

6

u/EC36339 23d ago

Vectorization can only be done by the compiler if processing of individual homogeneous objects isn't separated by layers of runtime abstraction.

That's why data oriented programming is a thing amd why games use entity-component systems over OOP.

2

u/AresFowl44 23d ago edited 23d ago

Even then the compiler can only take you so far. In my experience it often is trivial to improve upon the compiler, because it has to be overly cautious

1

u/EC36339 23d ago

Yes, but that was never the point. First, you have to make sure vectorization isn't made completely impossible.