Hacker News new | ask | show | jobs
by vlmutolo 1127 days ago
It also seems like Clickhouse could offer runtime detection of AVX and dispatch to the optimized functions in that case.
1 comments

Yes, here is the article about the techniques: https://maksimkita.com/blog/cpu-dispatch-in-clickhouse.html
It’s considerably more onerous than just compiling to a single/multiple microarchitecture(s) though. Plus when you do this, you need to split out this code to be conditionally compiled so that you can support other architectures like ARM.
Here is an example on how to do this using github.com/google/highway: https://gcc.godbolt.org/z/zP7MYe9Yf

You write the code only once and do not have to worry about any #pragma/conditional compilation. Just copy-paste about a dozen lines of boilerplate, link with the Highway library, and done.

Disclosure: I am the main author; happy to discuss.

That’s great! Never seen this library before. It’s much neater than the other approaches I’ve seen/used.
Thanks, glad to hear :) Feedback is always welcome, do let us know via Github issue if there is anything you think can be improved.