zlacker

[return to "From slow to SIMD: A Go optimization story"]
1. koala_+1o[view] [source] 2024-01-23 19:31:46
>>rbanff+(OP)
TIL that the Go compiler still does not have autovectorization.
◧◩
2. jshear+Tt[view] [source] 2024-01-23 19:54:38
>>koala_+1o
Is it really worth the trouble if you're not building on top of something like LLVM which already has a vectorizer? We're still waiting for the mythical sufficiently-smart-vectorizer, even the better ones are still extremely brittle, and any serious high-performance work still does explicit SIMD rather than trying to coax the vectorizer into cooperating.

I'd rather see new languages focus on making better explicit SIMD abstractions a la Intels ISPC, rather than writing yet another magic vectorizer that only actually works in trivial cases.

◧◩◪
3. neonsu+uL[view] [source] 2024-01-23 21:12:40
>>jshear+Tt
C# is doing that :)

https://learn.microsoft.com/en-us/dotnet/api/system.runtime....

Examples of usage:

- https://github.com/U8String/U8String/blob/main/Sources/U8Str...

- https://github.com/nietras/1brc.cs/blob/main/src/Brc/BrcAccu...

- https://github.com/dotnet/runtime/blob/main/src/libraries/Sy...

(and many more if you search github for the uses of Vector128/256<byte> and the like!)

[go to top]