Skip to content

Latest commit

 

History

232 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SIMD toolkit

Collection of various vectorised functions. Currently supported functions:

  • Bitwise - various bitwise operations over arrays of 64-bit unsigned integers or bytes
  • Popcnt - count number of set bits in arrays of 64-bit unsigned integers or bytes
  • Memclr - clear arrays of 64-bit unsigned integers or bytes
  • Memcpy - copy arrays of 64-bit unsigned integers or bytes
  • Memset - fill arrays of 64-bit unsigned integers or bytes
  • Memequal - check equality of arrays of 64-bit unsigned integers or bytes
  • Hamming - calculate Hamming distance of 64-bit unsigned integers or bytes
  • SkipLine - find end of line in multi-line bytes slice
  • Indexbyte - find position of given byte in bytes slice
  • Indextoken - find position of next token in bytes slice
  • Xorkey - apply XOR operation over data using given key
  • ...

Supported architectures/instructions

Currently supported arch and instructions sets:

  • AMD64
    • SSE2-SSE4.2
    • AVX2
    • AVX512

All AMD64 solutions supports fallback mode - checks at init supported instructions sets and choose the optimal:

  • use AVX512 if possible
  • use AVX2 if possible and not possible AVX512
  • use SSE2-SSE4.2 if not possible AVX2/AVX512
  • use generic (pure Go) if not possible SSE2-SSE4.2

About

SIMD toolkit library.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages