JuliaRandom / JuliaRandom/RandomNumbers.jl

Xoroshiro128Plus slows down relative to Base MT with increasing sample size

Ouverte
#68 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Julia
Étoiles
100
Forks
23
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

From what I've read, Xoroshiro is often suggested as the fastest RNG with decent random properties. Using the implementation here, I do see it beating Base's MT for small samples, but getting relatively slower as the sample size passes ~100:

```
julia> r0 = Random.default_rng();

julia> r1 = RandomNumbers.Xorshifts.Xoroshiro128Plus(1);

julia> @btime rand($r0);
2.458 ns (0 allocations: 0 bytes)

julia> @btime rand($r1);
1.925 ns (0 allocations: 0 bytes)

julia> @btime rand($r0, 8);
41.771 ns (1 allocation: 144 bytes)

julia> @btime rand($r1, 8);
34.454 ns (1 allocation: 144 bytes)

julia> @btime rand($r0, 128);
171.495 ns (1 allocation: 1.14 KiB)

julia> @btime rand($r1, 128);
180.105 ns (1 allocation: 1.14 KiB)

julia> @btime rand($r0, 10^7);
6.606 ms (2 allocations: 76.29 MiB)

julia> @btime rand($r1, 10^7);
25.872 ms (2 allocations: 76.29 MiB)
```

Is this to be expected? Perhaps this information could be added to the docs.

```
julia> versioninfo()
Julia Version 1.5.0-DEV.803
Commit 8ab87d2205 (2020-05-03 08:07 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-9.0.1 (ORCJIT, skylake)
Environment:
JULIA_NUM_THREADS = 8
```

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.