Skip to content

GPUArrays seeding does not generate reproducible values past a certain array size #530

@christiangnrd

Description

@christiangnrd

Tested on main. Seems to be a Metal-specific issue as the test passes with JLArrays.

using Metal, GPUArrays, Random, Test
begin
    AT = MtlArray
    a = AT(zeros(Float32, 1000,1000))
    b = AT(zeros(Float32, 1000,1000))

    rng = GPUArrays.default_rng(AT)

    Random.seed!(rng, 1234)
    s1 = copy(rng.state)
    rand!(rng, a)
    s2 = copy(rng.state)

    Random.seed!(rng, 1234)
    s3 = copy(rng.state)
    rand!(rng, b)
    s4 = copy(rng.state)

    @show s1 != s2
    @show s3 != s4
    @show s1 == s3
    @show s2 == s4

    @show collect(a) == collect(b)
end

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions