Show HN: A SIMD-accelerated noise library in Rust
github.com
github.com
I'm glad this is an option. I feel like a lot of libraries assume you always want the widest SIMD width possible, when this is very likely to cause performance issues for many cases.
Doing SIMD accelerated 1D noise is probably pointless, as it will be so fast. I could add scalar versions of 1d though.
I'm up for 4D potentially if anyone has some use cases.
[1] https://gamedev.stackexchange.com/a/23639 [2] https://news.ycombinator.com/item?id=2419347
TBH I find assembly kernels generally more readable as long as one keep a few comments in there to explicit register allocation.
I absolutely agree that once wrapped up there are good reasons to use a language-level interface instead of asm for most things.
The compiler is aware of many of those intrinsics and can perform optimizations around them. Hand rolling all of that in Assembly would be quite the chore. Using these intrinsics is, IMO, considerably easier.
Those are the only two times I have bumped into this kind of noise but I'm sure there are a few more uses.
Some examples:
http://libnoise.sourceforge.net/examples/complexplanet/index...
There is also value noise, white noise (what you are thinking of), cellular noise. It is an interesting field!
value noise and white noise are computationally easy enough that it probably doesn't make sense to simdify them. probably!