zlacker

[return to "From slow to SIMD: A Go optimization story"]
1. carboc+Yt[view] [source] 2024-01-23 19:55:00
>>rbanff+(OP)
I wonder whether avo could have been useful here?[1] I mention it because it came up the last time we were talking about AVX operations in go.[2, 3]

1 = https://github.com/mmcloughlin/avo

2 = >>34465297

3 = https://www.reddit.com/r/golang/comments/10hmh07/how_to_use_...

◧◩
2. camden+8z[view] [source] 2024-01-23 20:18:26
>>carboc+Yt
I did consider Avo! I even went as far as to implement a version using Avo since it has a nice dot product example I could use as a starting point. But ultimately, for as small as these functions are, I felt that Avo was an unnecessary extra layer to grok. Additionally, it's x86-only, and I knew in advance I'd want to implement an ARM version as well since we also do some embeddings stuff locally.

If I were to ever take this further and add loop unrolling or something, I'd absolutely reach for Avo

[go to top]