sroar icon indicating copy to clipboard operation
sroar copied to clipboard

Add SIMD instructions to bitmaps

Open evanoberholster opened this issue 1 year ago • 1 comments

  • Added SIMD 256-bit instructions for linux with amd64 cpus.
  • Tests written
  • Updated go.mod

Further performance improvements still possible with arrays.

Speed up of approximately x5 for the specific functions of Or, And, AndNot for Bitmaps.

name                  time/op
Bitmap/Or/Asm-12       487ns ± 2%
Bitmap/Or/Fn-12       2.58µs ± 1%
Bitmap/And/Asm-12      442ns ± 0%
Bitmap/And/Fn-12      2.58µs ± 1%
Bitmap/AndNot/Asm-12   490ns ± 0%
Bitmap/AndNot/Fn-12   3.00µs ± 0%

name                  alloc/op
Bitmap/Or/Asm-12       0.00B     
Bitmap/Or/Fn-12        0.00B     
Bitmap/And/Asm-12      0.00B     
Bitmap/And/Fn-12       0.00B     
Bitmap/AndNot/Asm-12   0.00B     
Bitmap/AndNot/Fn-12    0.00B     

name                  allocs/op
Bitmap/Or/Asm-12        0.00     
Bitmap/Or/Fn-12         0.00     
Bitmap/And/Asm-12       0.00     
Bitmap/And/Fn-12        0.00     
Bitmap/AndNot/Asm-12    0.00     
Bitmap/AndNot/Fn-12     0.00   

evanoberholster avatar Mar 29 '23 06:03 evanoberholster

CLA assistant check
All committers have signed the CLA.

CLAassistant avatar Mar 29 '23 06:03 CLAassistant