Andrea Mazzoleni
|
5c24968e6d
|
Add AArch32 (ARM32) NEON SIMD support for parity generation and recovery
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
e5ca862a37
|
Correct raid_scan documentation on candidate search and return semantics
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
ecb26a6aee
|
Fix raid_selftest() parity bounds and dispatch in Vandermonde mode
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
4c51acaf29
|
Add multithreaded Cauchy matrix inversion test invtestx for Linux
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
6fa2c44caf
|
Add rec1of1 and rec2of2 benchmarks for first parity reconstruction
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
7d434954e8
|
Precalculate shuffle table pointers outside data loop in Cauchy recX
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
ac1797be96
|
Precompute affine matrix representations outside data loop in AVX2 and AVX-512 GFNI recX
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
4d61b726be
|
Unroll NEON rec2 two-disk recovery to 32-byte chunks using 25 vector registers
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
5b0e1bcd6b
|
Unroll rec1 single-disk recovery to 64-byte chunks in AVX2, SSSE3, and NEON
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
7f6ef3b4cd
|
Eliminate stack buffers, pre-split delta nibbles and and inner loop in recX
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
71ffb94019
|
Keep deltas in AVX-512 registers and unroll reconstruction with conditional jumps in recX
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
93eadd73f0
|
Preload multiplication tables and avoid repeated nibble splitting in NEON recovery
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
48d97dae31
|
Make 64-byte block alignment an explicit requirement in RAID API
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
11bf37d61b
|
Enforce mode parity limits
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
5d2f3c7b16
|
Avoid strict-aliasing and unaligned write in raid_cpu_info
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
7e2a8eab7d
|
Keep multiplication tables resident and reuse delta nibbles in AVX2 and AVX512BW REC2
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
17591ad932
|
Add GFNI affine parity generation for RAID polynomial
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
b5d507fbe9
|
Use primitive generator 3 for AES Cauchy mode
|
2026-08-21 12:06:25 +02:00 |
|
Andrea Mazzoleni
|
cc91392803
|
Replace pointer casting with safe memcpy helpers
|
2026-08-18 23:33:59 +02:00 |
|
Andrea Mazzoleni
|
24a8464fc0
|
Require AVX512BW in addition to AVX512F for AVX-512 GFNI detection
|
2026-08-18 23:33:59 +02:00 |
|
Andrea Mazzoleni
|
f09091a4e4
|
Refine RAID buffer displacement rationale
|
2026-08-18 23:33:57 +02:00 |
|
Andrea Mazzoleni
|
45833e9f1f
|
Refine RAID stride noise documentation
|
2026-08-18 23:33:57 +02:00 |
|
Andrea Mazzoleni
|
039b5c2c28
|
Add RAID library developer README
|
2026-08-18 23:33:57 +02:00 |
|
Andrea Mazzoleni
|
f3c3265116
|
Document dummy register clobbers in raid_sse_end and raid_neon_end
|
2026-08-18 23:33:56 +02:00 |
|
Andrea Mazzoleni
|
47b321d97c
|
Support dynamic runtime selection of RAID AES mode
|
2026-08-18 23:33:56 +02:00 |
|
Andrea Mazzoleni
|
49d5e685c9
|
Avoid a folding VLA warning in clang
|
2026-08-18 23:33:55 +02:00 |
|
Andrea Mazzoleni
|
8e2b9c03b5
|
Use uniform ending on files for parity implementation
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
1a3099d7f5
|
Fix building on x86 for missing AVX512 support
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
fd2dc7810f
|
Run the speed test with and without displacement
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
2dbb25acbd
|
Allow to specify the wrap size in allocation
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
e43964523f
|
Refactor and reorganize parity generation functions using inline templates
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
22495abe9e
|
Add AArch64 NEON parity generation and recovery functions
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
807f2f6690
|
Use vpternlogq in raid_gen3-6_avx512bw to fuse sequential vpxorq instructions into single 3-way XORs
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
9e1652673d
|
Gate AVX-512BW gen1/gen2 behind slow_avx512() to avoid double-pumped shuffle penalties
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
76998613da
|
Remove the unused number of data disks from the vector allocation
The same addressing rules are applied to the parity disks because
they are used as data disks during recovery operations.
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
7a7dacc6db
|
Inject variable page-offset noise to disk buffer displacement to mitigate prefetcher contention
|
2026-08-18 23:33:54 +02:00 |
|
Andrea Mazzoleni
|
5795b9706e
|
Use the optimal displacement depending on the number of disks
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
1e63403bf2
|
Change RAID AVX512/GFNI functions to use forward iterations
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
6cb3d86f66
|
Remove the special case of a single data disk when not strictly required
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
810851da37
|
Remove unused level 0 from the pshufb table
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
f8abcd666f
|
Change the AVX512BW generation to use pshufb also for Q parity
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
dd8e3bfcb0
|
Extend the pshufb table to include the Q parity coefficients
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
04df1f7b26
|
New displacement benchmarks
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
f1bc02f52a
|
Simplify GFNI implementations
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
abfa6fde28
|
Always build RAID test with USE_RAID_AES
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
108915254e
|
Assume the assembler supports all x86 SSE/AVX instructions
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
44d23c16ff
|
Extend the RAID regression test to detect unset parity
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
c08a571d88
|
Add support for AVX2 GFNI
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
557dcda9cd
|
Disable AVX512 on CPUs with narrow shuffle ports or double-pumped 256-bit datapath
|
2026-08-18 23:33:53 +02:00 |
|
Andrea Mazzoleni
|
1b8bf8dfd0
|
Revise the RAID library Makefile
|
2026-08-18 23:33:53 +02:00 |
|