Skip to content

Sampling benches in rand* 0.9.0-alpha.0 #1409

@Thell

Description

@Thell

Hello! I was pretty excited to see the alpha release because of all the hype regarding Canon's method but either I did something wrong or, ..., well 🤷

The first bench is from dba696e on Feb 15 and then the alpha release.

The command used was

rustup run nightly cargo criterion --bench uniform --features small_rng

samplei32

Alpha Rng single distr
SmallRng 3.30 ns (✅ 1.00x) 2.01 ns (✅ 1.00x)
=> SmallRng 3.31 ns (✅ 1.00x) 2.07 ns (✅ 1.00x)
ChaCha8Rng 3.59 ns (✅ 1.09x slower) 2.48 ns (❌ 1.23x slower)
=> ChaCha8Rng 3.62 ns (✅ 1.09x slower) 2.66 ns (❌ 1.29x slower)
Pcg32 2.85 ns (✅ 1.16x faster) 2.25 ns (❌ 1.12x slower)
=> Pcg32 2.93 ns (✅ 1.13x faster) 2.28 ns (✅ 1.10x slower)
Pcg64 3.88 ns (❌ 1.18x slower) 2.66 ns (❌ 1.32x slower)
=> Pcg64 3.86 ns (❌ 1.17x slower) 2.72 ns (❌ 1.32x slower)

samplei64

Alpha Rng single distr
SmallRng 4.63 ns (✅ 1.00x) 1.90 ns (✅ 1.00x)
=> SmallRng 4.58 ns (✅ 1.00x) 1.91 ns (✅ 1.00x)
ChaCha8Rng 5.97 ns (❌ 1.29x slower) 3.60 ns (❌ 1.89x slower)
=> ChaCha8Rng 5.90 ns (❌ 1.29x slower) 3.63 ns (❌ 1.90x slower)
Pcg32 5.29 ns (❌ 1.14x slower) 3.12 ns (❌ 1.64x slower)
=> Pcg32 5.25 ns (❌ 1.15x slower) 3.12 ns (❌ 1.63x slower)
Pcg64 5.00 ns (✅ 1.08x slower) 2.68 ns (❌ 1.40x slower)
=> Pcg64 5.05 ns (✅ 1.10x slower) 2.70 ns (❌ 1.41x slower)

As you can see, no gains. At least things didn't get worse. I also tested with feature unbiased and I didn't see anything change but if I understand correctly that shouldn't alter single samples.

So did I miss something?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions