zig/lib/std/rand
Frank Denis 5af89b3dcc
std.crypto.chacha: support larger vectors on AVX2 and AVX512 targets (#15809)
* std.crypto.chacha: support larger vectors on AVX2 and AVX512 targets

Ryzen 7 7700, ChaCha20/8 stream, long outputs:

Generic: 3268 MiB/s
AVX2   : 6023 MiB/s
AVX512 : 8086 MiB/s

Bump the rand.chacha buffer a tiny bit to take advantage of this.
More than 8 blocks doesn't seem to make any measurable difference.

ChaChaPoly also gets a small performance boost from this, albeit
Poly1305 remains the bottleneck.

Generic:  707 MiB/s
AVX2   :  981 MiB/s
AVX512 : 1202 MiB/s

aarch64 appears to generally benefit from 4-way vectorization.

Verified on Apple Silicon, but also on a Cortex A72.
2023-05-22 20:33:35 +02:00
..
Ascon.zig Remove Gimli and Xoodoo from the standard library (#14928) 2023-03-21 04:54:10 +00:00
benchmark.zig Remove Gimli and Xoodoo from the standard library (#14928) 2023-03-21 04:54:10 +00:00
ChaCha.zig std.crypto.chacha: support larger vectors on AVX2 and AVX512 targets (#15809) 2023-05-22 20:33:35 +02:00
Isaac64.zig update codebase to use @memset and @memcpy 2023-04-28 13:24:43 -07:00
Pcg.zig std: fix bug in Pcg32 fill function (#13894) 2022-12-12 14:19:49 -05:00
RomuTrio.zig Add std.rand.RomuTrio 2022-05-24 22:48:51 -04:00
Sfc64.zig
test.zig std.rand: make weightedIndex proportions param a const slice 2022-08-30 13:02:17 +03:00
Xoroshiro128.zig rand: add pub to next/jump 2022-12-18 01:46:09 -05:00
Xoshiro256.zig cbe: enable CI for std tests 2023-04-21 16:36:10 -04:00
ziggurat.zig update std lib and compiler sources to new for loop syntax 2023-02-18 19:17:21 -07:00