Skip to content

Commit 4b55e73

Browse files
committed
Add in-place rand for CPU arrays.
1 parent 23325d2 commit 4b55e73

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/random.jl

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,24 @@ function Random.rand!(rng::RNG, A::AnyCuArray)
9191
A
9292
end
9393

94-
function Random.rand(rng::RNG, T::Type)
94+
# TODO: `randn!`; cannot reuse from Base or RandomNumbers, as those do scalar indexing
95+
96+
97+
# generic functionality
98+
99+
function Random.rand!(rng::Union{RNG,CURAND.RNG,GPUArrays.RNG}, A::AbstractArray{T}) where {T}
100+
B = CuArray{T}(undef, size(A))
101+
Random.rand!(rng, B)
102+
copyto!(A, B)
103+
end
104+
105+
function Random.rand(rng::Union{RNG,CURAND.RNG,GPUArrays.RNG}, T::Type)
95106
assertscalar("scalar rand")
96107
A = CuArray{T}(undef, 1)
97108
Random.rand!(rng, A)
98109
A[]
99110
end
100111

101-
# TODO: `randn!`; cannot reuse from Base or RandomNumbers, as those do scalar indexing
102-
103112

104113
# RNG-less interface
105114

0 commit comments

Comments
 (0)