Categorygithub.com/templexxx/xorsimd
modulepackage
0.4.3
Repository: https://github.com/templexxx/xorsimd.git
Documentation: pkg.go.dev

# README

XOR SIMD

GoDoc MIT licensed Build Status Go Report Card Sourcegraph

Introduction:

  • XOR code engine in pure Go.

  • High Performance: More than 270GB/s per physics core.

Performance

Performance depends mainly on:

  • CPU instruction extension.

  • Number of source row vectors.

Platform:

AWS c5d.xlarge (Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz)

All test run on a single Core.

I/O = (src_num + 1) * vector_size / cost

Src NumVector sizeAVX512 I/O (MB/S)AVX2 I/O (MB/S)SSE2 I/O (MB/S)
54KB270403.73142825.2574443.91
51MB26948.3426887.3726950.65
58MB17881.3217212.5616402.97
104KB190445.30102953.5953244.04
101MB26424.4426618.6526094.39
108MB15471.3114866.7213565.80

# Functions

Bytes XORs the bytes in a and b into a destination slice.
Bytes16 XORs of packed 16 Bytes.
Bytes16Align XORs of packed 16 Bytes.
Bytes8 XORs of 8 Bytes.
Bytes8Align XORs of 8 Bytes.
BytesA XORs the len(a) bytes in a and b into a destination slice.
BytesB XORs the len(b) bytes in a and b into a destination slice.
Encode encodes elements from source slice into a destination slice.

# Variables

EnableAVX512 may slow down CPU Clock (maybe not).