Ask HN: What's a good resource to get comfortable with SIMD?
6 points by sanjeetsuhag 1 year ago | 2 commentsI would like to be proficient at identifying places for and applying SIMD in my C/C++ programs. The domain is primarily centered around graphics, but I am open to resources from other domains too.
Ideally what I would like is some sort of progression for problems that may benefit from application of SIMD. From reading case studies online, it seems like there's lots of little tricks and stuff, almost like there's a different way of thinking about types, values and operations on them that you have to know.
- nivertech 1 year agoI would first learn a couple of Array Programming Languages, first a mainstream one, e.g. Julia/R/Matlab/Octave, and then one from the APL-family (APL/J/K/Q/etc.)
Lear how to write algorithms using vectorization only (without if-s and for-s).
Look into OpenCL / CUDA programming models.
Then it will be much easier to learn native SIMD programming for specific ISAs.
---
https://en.wikipedia.org/wiki/Array_programming
https://en.wikipedia.org/wiki/Category:Array_programming_lan...
- b20000 1 year agoget a profiler, pick an algorithm, and parallellize it using simd
then compare before / after using the profiler
learn about the intrinsics as you work on it