In #196 copilot refactored the distance computations.
It is suspicious that carefully crafted implementations for L2 computations with different types ({float, float}, {float, fp16}, {float, int8}, {int8, int8}, etc.) are now all treated in the same SIMD op.
The task is to
- carefully evaluate every single line that changed and deduce if the operation it has been replaced with is identical;
- disassemble the compiled functions before and after the change and check for equivalence;
- perform unit testing with the compute primitives before and after the change and confirm they're producing the same output;
- perform benchmarking with the compute primitives before and after the change and confirm they achieve the same throughput (single-threaded).
In #196 copilot refactored the distance computations.
It is suspicious that carefully crafted implementations for L2 computations with different types (
{float, float},{float, fp16},{float, int8},{int8, int8}, etc.) are now all treated in the same SIMD op.The task is to