From 12bc276876ed5211ce4ae30ff151f4c09fcf8557 Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Tue, 4 May 2021 14:04:59 +0200 Subject: [PATCH 01/15] use rand(Float32) --- src/kernels.jl | 10 +++++----- src/rand_binomial.jl | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/kernels.jl b/src/kernels.jl index bec9b1e..fca2bca 100644 --- a/src/kernels.jl +++ b/src/kernels.jl @@ -32,7 +32,7 @@ end # BTRS algorithm, adapted from the tensorflow library (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/random_binomial_op.cc) -function kernel_BTRS!(A, count, prob, randstates, R1, R2, Rp, Ra, count_dim_larger_than_prob_dim) +function kernel_BTRS!(A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob_dim) i = (blockIdx().x - 1) * blockDim().x + threadIdx().x @inbounds if i <= length(A) @@ -67,7 +67,7 @@ function kernel_BTRS!(A, count, prob, randstates, R1, R2, Rp, Ra, count_dim_larg k = 0 ctr = 1 while ctr <= n - GPUArrays.gpu_rand(Float32, CUDA.CuKernelContext(), randstates) < p && (k += 1) + rand(Float32) < p && (k += 1) ctr += 1 end A[i] = k @@ -80,7 +80,7 @@ function kernel_BTRS!(A, count, prob, randstates, R1, R2, Rp, Ra, count_dim_larg geom_sum = 0f0 num_geom = 0 while true - geom = ceil(CUDA.log(GPUArrays.gpu_rand(Float32, CUDA.CuKernelContext(), randstates)) / logp) + geom = ceil(CUDA.log(rand(Float32)) / logp) geom_sum += geom geom_sum > n && break num_geom += 1 @@ -107,8 +107,8 @@ function kernel_BTRS!(A, count, prob, randstates, R1, R2, Rp, Ra, count_dim_larg m = floor((n + 1) * p) while true - usample = GPUArrays.gpu_rand(Float32, CUDA.CuKernelContext(), randstates) - 0.5f0 - vsample = GPUArrays.gpu_rand(Float32, CUDA.CuKernelContext(), randstates) + usample = rand(Float32) - 0.5f0 + vsample = rand(Float32) us = 0.5f0 - abs(usample) ks = floor((2 * a / us + b) * usample + c) diff --git a/src/rand_binomial.jl b/src/rand_binomial.jl index 6081942..f5b45c7 100644 --- a/src/rand_binomial.jl +++ b/src/rand_binomial.jl @@ -80,12 +80,12 @@ function rand_binom!(rng, A::BinomialArray, count::BinomialArray, prob::DenseCuA Rp = CartesianIndices((length(R1), length(R2))) # indices for parameters Ra = CartesianIndices((length(Rp), length(Rr))) # indices for parameters and A - kernel = @cuda name="BTRS_full" launch=false kernel_BTRS!(A, count, prob, rng.state, R1, R2, Rp, Ra, count_dim_larger_than_prob_dim) + kernel = @cuda name="BTRS_full" launch=false kernel_BTRS!(A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob_dim) config = launch_configuration(kernel.fun) threads = Base.min(length(A), config.threads, 256) # strangely seems to be faster when defaulting to 256 threads blocks = cld(length(A), threads) - kernel(A, count, prob, rng.state, R1, R2, Rp, Ra, count_dim_larger_than_prob_dim; threads=threads, blocks=blocks) + kernel(A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob_dim; threads=threads, blocks=blocks) else throw(DimensionMismatch("`count` and `prob` need have size compatible with A")) end From e1e1a3cbd36e4e5772f51ee5a2ba783feaeffb65 Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Tue, 4 May 2021 14:17:15 +0200 Subject: [PATCH 02/15] get rid of GPUArrays RNG --- Project.toml | 2 -- src/BinomialGPU.jl | 1 - src/rand_binomial.jl | 10 +++++----- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/Project.toml b/Project.toml index 0567b87..715512c 100644 --- a/Project.toml +++ b/Project.toml @@ -6,12 +6,10 @@ version = "0.2.6" [deps] BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" -GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" [compat] BenchmarkTools = "0.6, 0.7" CUDA = "2, 3.0" -GPUArrays = "6" julia = "1.5" [extras] diff --git a/src/BinomialGPU.jl b/src/BinomialGPU.jl index 5e97da6..4a949d6 100644 --- a/src/BinomialGPU.jl +++ b/src/BinomialGPU.jl @@ -1,7 +1,6 @@ module BinomialGPU using CUDA -using GPUArrays # user-level API include("rand_binomial.jl") diff --git a/src/rand_binomial.jl b/src/rand_binomial.jl index f5b45c7..00d3f58 100644 --- a/src/rand_binomial.jl +++ b/src/rand_binomial.jl @@ -1,21 +1,21 @@ ## extend the CUDA.jl functionality (rand, randn, rand_poisson, etc.) to include binomial distributions -gpuarrays_rng() = GPUArrays.default_rng(CuArray) +rng() = CUDA.RNG() const BinomialType = Union{Type{<:Integer}} const BinomialArray = DenseCuArray{<:Integer} ## exported functions: in-place -rand_binomial!(A::BinomialArray; kwargs...) = rand_binomial!(gpuarrays_rng(), A; kwargs...) +rand_binomial!(A::BinomialArray; kwargs...) = rand_binomial!(rng(), A; kwargs...) rand_binomial!(A::AnyCuArray; kwargs...) = error("BinomialGPU.jl does not support generating binomially-distributed random numbers of type $(eltype(A))") ## unexported functions: out of place -rand_binomial(T::BinomialType, dims::Dims; kwargs...) = rand_binomial(gpuarrays_rng(), T, dims; kwargs...) +rand_binomial(T::BinomialType, dims::Dims; kwargs...) = rand_binomial(rng(), T, dims; kwargs...) rand_binomial(T::BinomialType, dim1::Integer, dims::Integer...; kwargs...) = - rand_binomial(gpuarrays_rng(), T, Dims((dim1, dims...)); kwargs...) + rand_binomial(rng(), T, Dims((dim1, dims...)); kwargs...) rand_binomial(T::Type, dims::Dims; kwargs...) = rand_binomial!(CuArray{T}(undef, dims...); kwargs...) @@ -23,7 +23,7 @@ rand_binomial(T::Type, dim1::Integer, dims::Integer...; kwargs...) = rand_binomial!(CuArray{T}(undef, dim1, dims...); kwargs...) rand_binomial(dim1::Integer, dims::Integer...; kwargs...) = - rand_binomial(gpuarrays_rng(), Dims((dim1, dims...)); kwargs...) + rand_binomial(rng(), Dims((dim1, dims...)); kwargs...) ## main internal function function rand_binomial!(rng, A::BinomialArray; count, prob) From 20fe6d57b1f20262a031afaedaf89ebd9ba6c382 Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Tue, 4 May 2021 14:25:39 +0200 Subject: [PATCH 03/15] remove superfluous CUDA. --- src/kernels.jl | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/kernels.jl b/src/kernels.jl index fca2bca..8b538d4 100644 --- a/src/kernels.jl +++ b/src/kernels.jl @@ -76,11 +76,11 @@ function kernel_BTRS!(A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob # Use inversion algorithm for n*p < 10 if n * p < 10f0 - logp = CUDA.log(1f0-p) + logp = log(1f0-p) geom_sum = 0f0 num_geom = 0 while true - geom = ceil(CUDA.log(rand(Float32)) / logp) + geom = ceil(log(rand(Float32)) / logp) geom_sum += geom geom_sum > n && break num_geom += 1 @@ -121,11 +121,12 @@ function kernel_BTRS!(A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob continue end - v2 = CUDA.log(vsample * alpha / (a / (us * us) + b)) - ub = (m + 0.5f0) * CUDA.log((m + 1) / (r * (n - m + 1))) + - (n + 1) * CUDA.log((n - m + 1) / (n - ks + 1)) + - (ks + 0.5f0) * CUDA.log(r * (n - ks + 1) / (ks + 1)) + - stirling_approx_tail(m) + stirling_approx_tail(n - m) - stirling_approx_tail(ks) - stirling_approx_tail(n - ks) + v2 = log(vsample * alpha / (a / (us * us) + b)) + ub = (m + 0.5f0) * log((m + 1) / (r * (n - m + 1))) + + (n + 1) * log((n - m + 1) / (n - ks + 1)) + + (ks + 0.5f0) * log(r * (n - ks + 1) / (ks + 1)) + + stirling_approx_tail(m) + stirling_approx_tail(n - m) - + stirling_approx_tail(ks) - stirling_approx_tail(n - ks) if v2 <= ub break end From f4c6f249982b17efb29ae9173ef57398e1cd84b8 Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Tue, 4 May 2021 16:29:19 +0200 Subject: [PATCH 04/15] use different seed for each kernel launch --- Project.toml | 1 + src/BinomialGPU.jl | 1 + src/kernels.jl | 21 ++++++----- src/rand_binomial.jl | 83 +++++++++++++++++++++++++++----------------- 4 files changed, 66 insertions(+), 40 deletions(-) diff --git a/Project.toml b/Project.toml index 715512c..5da3177 100644 --- a/Project.toml +++ b/Project.toml @@ -6,6 +6,7 @@ version = "0.2.6" [deps] BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" +Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [compat] BenchmarkTools = "0.6, 0.7" diff --git a/src/BinomialGPU.jl b/src/BinomialGPU.jl index 4a949d6..f2b0910 100644 --- a/src/BinomialGPU.jl +++ b/src/BinomialGPU.jl @@ -1,6 +1,7 @@ module BinomialGPU using CUDA +using Random # user-level API include("rand_binomial.jl") diff --git a/src/kernels.jl b/src/kernels.jl index 8b538d4..97c29ce 100644 --- a/src/kernels.jl +++ b/src/kernels.jl @@ -31,10 +31,18 @@ function stirling_approx_tail(k)::Float32 end -# BTRS algorithm, adapted from the tensorflow library (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/random_binomial_op.cc) -function kernel_BTRS!(A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob_dim) +# BTRS algorithm, adapted from the tensorflow library +# (github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/random_binomial_op.cc) +function kernel_BTRS!( + A, count, prob, + R1, R2, Rp, Ra, + count_dim_larger_than_prob_dim, + seed::UInt32 +) i = (blockIdx().x - 1) * blockDim().x + threadIdx().x + @inbounds Random.seed!(seed) + @inbounds if i <= length(A) I = Ra[i] Ip = Rp[I[1]] @@ -49,10 +57,6 @@ function kernel_BTRS!(A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob p = prob[CartesianIndex(I1, I2)] end - # wrong parameter values (currently disabled) - # n < 0 && throw(ArgumentError("kernel_BTRS!: count must be a nonnegative integer.")) - # !(0 <= p <= 1) && throw(ArgumentError("kernel_BTRS!: prob must be between zero and one.")) - # edge cases if p <= 0 || n <= 0 A[i] = 0 @@ -61,7 +65,7 @@ function kernel_BTRS!(A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob A[i] = n return end - + # Use naive algorithm for n <= 17 if n <= 17 k = 0 @@ -92,7 +96,6 @@ function kernel_BTRS!(A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob # BTRS algorithm # BTRS approximations work well for p <= 0.5 (invert = p > 0.5f0) && (p = 1f0 - p) - #pp = invert ? 1-p : p r = p/(1f0-p) s = p*(1f0-p) @@ -136,7 +139,7 @@ function kernel_BTRS!(A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob invert && (ks = n - ks) A[i] = Int(ks); nothing - end + end#if return end diff --git a/src/rand_binomial.jl b/src/rand_binomial.jl index 00d3f58..ff479ef 100644 --- a/src/rand_binomial.jl +++ b/src/rand_binomial.jl @@ -1,91 +1,112 @@ -## extend the CUDA.jl functionality (rand, randn, rand_poisson, etc.) to include binomial distributions - -rng() = CUDA.RNG() +# extend the CUDA.jl functionality (rand, randn, rand_poisson, etc.) +# to include binomial distributions const BinomialType = Union{Type{<:Integer}} const BinomialArray = DenseCuArray{<:Integer} ## exported functions: in-place -rand_binomial!(A::BinomialArray; kwargs...) = rand_binomial!(rng(), A; kwargs...) - rand_binomial!(A::AnyCuArray; kwargs...) = - error("BinomialGPU.jl does not support generating binomially-distributed random numbers of type $(eltype(A))") + error("BinomialGPU.jl does not support generating + binomially-distributed random numbers of type $(eltype(A))") ## unexported functions: out of place -rand_binomial(T::BinomialType, dims::Dims; kwargs...) = rand_binomial(rng(), T, dims; kwargs...) +rand_binomial(T::BinomialType, dims::Dims; kwargs...) = rand_binomial(T, dims; kwargs...) rand_binomial(T::BinomialType, dim1::Integer, dims::Integer...; kwargs...) = - rand_binomial(rng(), T, Dims((dim1, dims...)); kwargs...) + rand_binomial(T, Dims((dim1, dims...)); kwargs...) -rand_binomial(T::Type, dims::Dims; kwargs...) = rand_binomial!(CuArray{T}(undef, dims...); kwargs...) +rand_binomial(T::Type, dims::Dims; kwargs...) = + rand_binomial!(CuArray{T}(undef, dims...); kwargs...) rand_binomial(T::Type, dim1::Integer, dims::Integer...; kwargs...) = rand_binomial!(CuArray{T}(undef, dim1, dims...); kwargs...) rand_binomial(dim1::Integer, dims::Integer...; kwargs...) = - rand_binomial(rng(), Dims((dim1, dims...)); kwargs...) + rand_binomial(Int, Dims((dim1, dims...)); kwargs...) ## main internal function -function rand_binomial!(rng, A::BinomialArray; count, prob) - return rand_binom!(rng, A, count, prob) +function rand_binomial!(A::BinomialArray; count, prob) + return rand_binom!(A, count, prob) end ## dispatching on parameter types # constant parameters -function rand_binom!(rng, A::BinomialArray, count::Integer, prob::Number) - # revert to full parameter case (this could be suboptimal, as a table-based method should in principle be faster) +function rand_binom!(A::BinomialArray, count::Integer, prob::Number) + # revert to full parameter case (this could be suboptimal, + # as a table-based method should in principle be faster) ns = CUDA.fill(Int(count), size(A)) ps = CUDA.fill(Float32(prob), size(A)) - return rand_binom!(rng, A, ns, ps) + return rand_binom!(A, ns, ps) end # arrays of parameters -function rand_binom!(rng, A::BinomialArray, count::BinomialArray, prob::Number) - # revert to full parameter case (this could be suboptimal, as a table-based method should in principle be faster) +function rand_binom!(A::BinomialArray, count::BinomialArray, prob::Number) + # revert to full parameter case (this could be suboptimal, + # as a table-based method should in principle be faster) cucount = cu(count) ps = CUDA.fill(Float32(prob), size(A)) return rand_binom!(rng, A, cucount, ps) end -function rand_binom!(rng, A::BinomialArray, count::Integer, prob::AbstractArray{<:Number}) - # revert to full parameter case (this could be suboptimal, as a table-based method should in principle be faster) +function rand_binom!(A::BinomialArray, count::Integer, prob::AbstractArray{<:Number}) + # revert to full parameter case (this could be suboptimal, + # as a table-based method should in principle be faster) ns = CUDA.fill(Int(count), size(A)) cuprob = cu(prob) return rand_binom!(rng, A, ns, cuprob) end -function rand_binom!(rng, A::BinomialArray, count::BinomialArray, prob::AbstractArray{<:Number}) +function rand_binom!(A::BinomialArray, count::BinomialArray, prob::AbstractArray{<:Number}) cucount = cu(count) cuprob = cu(prob) return rand_binom!(rng, A, cucount, cuprob) end -function rand_binom!(rng, A::BinomialArray, count::BinomialArray, prob::DenseCuArray{Float32}) +function rand_binom!(A::BinomialArray, count::BinomialArray, prob::DenseCuArray{Float32}) if ndims(count) > ndims(A) || ndims(prob) > ndims(A) - throw(DimensionMismatch("`count` and `prob` need to be scalar or have less or equal dimensions than A")) + throw(DimensionMismatch("`count` and `prob` need to be scalar + or have less or equal dimensions than A")) return A end if size(A)[1:ndims(count)] == size(count) && size(A)[1:ndims(prob)] == size(prob) count_dim_larger_than_prob_dim = ndims(count) > ndims(prob) if count_dim_larger_than_prob_dim - R1 = CartesianIndices(prob) # indices for count - R2 = CartesianIndices(size(count)[ndims(prob)+1:end]) # indices for prob that are not included in R1 - Rr = CartesianIndices(size(A)[ndims(count)+1:end]) # remaining indices in A + # indices for count + R1 = CartesianIndices(prob) + # indices for prob that are not included in R1 + R2 = CartesianIndices(size(count)[ndims(prob)+1:end]) + # remaining indices in A + Rr = CartesianIndices(size(A)[ndims(count)+1:end]) else - R1 = CartesianIndices(count) # indices for count - R2 = CartesianIndices(size(prob)[ndims(count)+1:end]) # indices for prob that are not included in R1 - Rr = CartesianIndices(size(A)[ndims(prob)+1:end]) # remaining indices in A + # indices for count + R1 = CartesianIndices(count) + # indices for prob that are not included in R1 + R2 = CartesianIndices(size(prob)[ndims(count)+1:end]) + # remaining indices in A + Rr = CartesianIndices(size(A)[ndims(prob)+1:end])# end Rp = CartesianIndices((length(R1), length(R2))) # indices for parameters Ra = CartesianIndices((length(Rp), length(Rr))) # indices for parameters and A - kernel = @cuda name="BTRS_full" launch=false kernel_BTRS!(A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob_dim) + seed = rand(UInt32) + + kernel = @cuda launch=false kernel_BTRS!( + A, count, prob, + R1, R2, Rp, Ra, + count_dim_larger_than_prob_dim, + seed + ) config = launch_configuration(kernel.fun) - threads = Base.min(length(A), config.threads, 256) # strangely seems to be faster when defaulting to 256 threads + threads = Base.min(length(A), config.threads, 256) blocks = cld(length(A), threads) - kernel(A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob_dim; threads=threads, blocks=blocks) + kernel( + A, count, prob, + R1, R2, Rp, Ra, + count_dim_larger_than_prob_dim, + seed + ) else throw(DimensionMismatch("`count` and `prob` need have size compatible with A")) end From 88e0aa6a7f4659fcbcb188887d6e5014b0cca4ac Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Tue, 4 May 2021 17:05:06 +0200 Subject: [PATCH 05/15] typos --- src/rand_binomial.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rand_binomial.jl b/src/rand_binomial.jl index ff479ef..25996a1 100644 --- a/src/rand_binomial.jl +++ b/src/rand_binomial.jl @@ -46,7 +46,7 @@ function rand_binom!(A::BinomialArray, count::BinomialArray, prob::Number) # as a table-based method should in principle be faster) cucount = cu(count) ps = CUDA.fill(Float32(prob), size(A)) - return rand_binom!(rng, A, cucount, ps) + return rand_binom!(A, cucount, ps) end function rand_binom!(A::BinomialArray, count::Integer, prob::AbstractArray{<:Number}) @@ -54,13 +54,13 @@ function rand_binom!(A::BinomialArray, count::Integer, prob::AbstractArray{<:Num # as a table-based method should in principle be faster) ns = CUDA.fill(Int(count), size(A)) cuprob = cu(prob) - return rand_binom!(rng, A, ns, cuprob) + return rand_binom!(A, ns, cuprob) end function rand_binom!(A::BinomialArray, count::BinomialArray, prob::AbstractArray{<:Number}) cucount = cu(count) cuprob = cu(prob) - return rand_binom!(rng, A, cucount, cuprob) + return rand_binom!(A, cucount, cuprob) end function rand_binom!(A::BinomialArray, count::BinomialArray, prob::DenseCuArray{Float32}) From 42390b0e5dc1735b8d72ce45cec2ba3b8debb911 Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Tue, 4 May 2021 18:23:58 +0200 Subject: [PATCH 06/15] fix bug --- src/rand_binomial.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rand_binomial.jl b/src/rand_binomial.jl index 25996a1..0b4f5bc 100644 --- a/src/rand_binomial.jl +++ b/src/rand_binomial.jl @@ -105,7 +105,8 @@ function rand_binom!(A::BinomialArray, count::BinomialArray, prob::DenseCuArray{ A, count, prob, R1, R2, Rp, Ra, count_dim_larger_than_prob_dim, - seed + seed; + threads = threads, blocks=blocks ) else throw(DimensionMismatch("`count` and `prob` need have size compatible with A")) From c1e772ea085a629214fef888e5087bae74e811d5 Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Tue, 4 May 2021 18:55:46 +0200 Subject: [PATCH 07/15] Bump version --- Project.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 5da3177..cb4bd49 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "BinomialGPU" uuid = "c5bbfde1-2136-42cd-9b65-d5719df69ebf" authors = ["Simone Carlo Surace"] -version = "0.2.6" +version = "0.3" [deps] BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" @@ -11,7 +11,7 @@ Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [compat] BenchmarkTools = "0.6, 0.7" CUDA = "2, 3.0" -julia = "1.5" +julia = "1.6" [extras] Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" From b8268548fe98962059b5223e01868bafd755fe90 Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Tue, 4 May 2021 19:05:54 +0200 Subject: [PATCH 08/15] cleanup --- README.md | 7 ++----- src/kernels.jl | 19 ------------------- 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index bf4ba98..dacdc92 100644 --- a/README.md +++ b/README.md @@ -42,8 +42,5 @@ rand_binomial!(A, count = counts, prob = probs) ## Issues -* The sampler is fast: it is about one order of magnitude faster than other samplers. But it is still an open question whether it can be made faster, whether there are other samplers with competitive speed, and it shows some non-intuitive behavior: - * The functionality to draw random numbers within CUDA.jl kernels is still under development. A new function `rand()` has recently become available, but it hasn't been tried within this package. See [issue #7](https://github.com/JuliaGPU/BinomialGPU.jl/issues/7). - * The speed is faster in Julia 1.5.4 than in the current Julia 1.6 release candidate. See [issue #8](https://github.com/JuliaGPU/BinomialGPU.jl/issues/8). - * The speed is slower when using optimal thread allocation than when defaulting to 256 threads. See [issue #2](https://github.com/JuliaGPU/BinomialGPU.jl/issues/2) - * Are there any other samplers that are comparably fast or faster? I compared the following: sample an array of size `(1024, 1024)` with `count = 128` and `prob` of size `(1024, 1024)` with uniformly drawn entries. Timings on an RTX2070 card: BinomialGPU.jl 1.4ms, PyTorch 11ms, CuPy 18ms, tensorflow 400ms. Please let me know if you know samplers that are not yet listed. +* The speed is slower when using optimal thread allocation than when defaulting to 256 threads. See [issue #2](https://github.com/JuliaGPU/BinomialGPU.jl/issues/2) +* Are there any other samplers that are comparably fast or faster? I compared the following: sample an array of size `(1024, 1024)` with `count = 128` and `prob` of size `(1024, 1024)` with uniformly drawn entries. Timings on an RTX2070 card: BinomialGPU.jl 0.8ms, PyTorch 11ms, CuPy 18ms, tensorflow 400ms. Timings for other samplers are very welcome; please open an issue if you find one. diff --git a/src/kernels.jl b/src/kernels.jl index 97c29ce..af7147d 100644 --- a/src/kernels.jl +++ b/src/kernels.jl @@ -143,23 +143,4 @@ function kernel_BTRS!( return end - -## old, unused kernels (for reference) - -#naive algorithm, full -function kernel_naive_full!(A, count, prob, randstates) - index1 = (blockIdx().x - 1) * blockDim().x + threadIdx().x - stride1 = blockDim().x * gridDim().x - - @inbounds for i in index1:stride1:length(A) - A[i] = 0 - for m in 1:count[i] - @inbounds A[i] += GPUArrays.gpu_rand(Float32, CUDA.CuKernelContext(), randstates) < prob[i] - end - end - return -end - - - ## COV_EXCL_STOP From 24b690de0e39b032f2db9739aa05b974fd2bebc2 Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Sat, 8 May 2021 13:58:05 +0200 Subject: [PATCH 09/15] add manifest, remove julia 1.5 from CI --- .buildkite/pipeline.yml | 20 -------------------- .gitignore | 1 - 2 files changed, 21 deletions(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index d5e96d2..131a630 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -1,26 +1,6 @@ steps: # Julia versions - - label: "Julia 1.5, CUDA 11.2" - plugins: - - JuliaCI/julia#v1: - version: 1.5 - - JuliaCI/julia-test#v1: - test_args: "--thorough" - - JuliaCI/julia-coverage#v1: - codecov: true - dirs: - - src - agents: - queue: "juliagpu" - cuda: "11.2" - cap: "recent" - env: - JULIA_CUDA_VERSION: '11.2' - JULIA_CUDA_USE_BINARYBUILDER: 'true' - if: build.message !~ /\[skip tests\]/ - timeout_in_minutes: 120 - - label: "Julia 1.6, CUDA 11.2" plugins: - JuliaCI/julia#v1: diff --git a/.gitignore b/.gitignore index 0ecfb73..287c938 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ *.jl.*.cov *.jl.cov *.jl.mem -/Manifest.toml test.jl From 05561b03e7e8dd5e3f075167b9d4d6f3b81f1ba3 Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Sat, 8 May 2021 14:05:00 +0200 Subject: [PATCH 10/15] include manifest --- Manifest.toml | 315 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 315 insertions(+) create mode 100644 Manifest.toml diff --git a/Manifest.toml b/Manifest.toml new file mode 100644 index 0000000..f5e3c1f --- /dev/null +++ b/Manifest.toml @@ -0,0 +1,315 @@ +# This file is machine-generated - editing it directly is not advised + +[[AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "485ee0867925449198280d4af84bdb46a2a404d0" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.0.1" + +[[Adapt]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f1b523983a58802c4695851926203b36e28f09db" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "3.3.0" + +[[ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" + +[[Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[BFloat16s]] +deps = ["LinearAlgebra", "Test"] +git-tree-sha1 = "4af69e205efc343068dc8722b8dfec1ade89254a" +uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" +version = "0.1.0" + +[[Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Statistics", "UUIDs"] +git-tree-sha1 = "068fda9b756e41e6c75da7b771e6f89fa8a43d15" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "0.7.0" + +[[CEnum]] +git-tree-sha1 = "215a9aa4a1f23fbd05b92769fdd62559488d70e9" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.4.1" + +[[CUDA]] +deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CompilerSupportLibraries_jll", "DataStructures", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "MacroTools", "Memoize", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "TimerOutputs"] +git-tree-sha1 = "ccb388138a6d124373aca6a8b61f62c6c470e1ad" +repo-rev = "master" +repo-url = "https://github.com/JuliaGPU/CUDA.jl.git" +uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" +version = "3.1.0" + +[[ChainRulesCore]] +deps = ["Compat", "LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "bd0cc939d94b8bd736dce5bbbe0d635db9f94af7" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "0.9.41" + +[[Compat]] +deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] +git-tree-sha1 = "0a817fbe51c976de090aa8c997b7b719b786118d" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "3.28.0" + +[[CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" + +[[DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "4437b64df1e0adccc3e5d1adbc3ac741095e4677" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.9" + +[[Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[DelimitedFiles]] +deps = ["Mmap"] +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" + +[[Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[Downloads]] +deps = ["ArgTools", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" + +[[ExprTools]] +git-tree-sha1 = "10407a39b87f29d47ebaca8edbc75d7c302ff93e" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.3" + +[[GPUArrays]] +deps = ["AbstractFFTs", "Adapt", "LinearAlgebra", "Printf", "Random", "Serialization"] +git-tree-sha1 = "3e10e95ddc385e1589c27b1a58f21bf3008b559c" +uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" +version = "6.3.0" + +[[GPUCompiler]] +deps = ["DataStructures", "ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "Serialization", "TimerOutputs", "UUIDs"] +git-tree-sha1 = "6eadd2321dc3ac0fc9d530ab01c2caa7fe5d74c6" +uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" +version = "0.11.4" + +[[InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[JLLWrappers]] +deps = ["Preferences"] +git-tree-sha1 = "642a199af8b68253517b80bd3bfd17eb4e84df6e" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.3.0" + +[[JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.1" + +[[LLVM]] +deps = ["CEnum", "Libdl", "Printf", "Unicode"] +git-tree-sha1 = "b616937c31337576360cb9fb872ec7633af7b194" +uuid = "929cbde3-209d-540e-8aea-75f648917ca0" +version = "3.6.0" + +[[LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" + +[[LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" + +[[LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" + +[[Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[LinearAlgebra]] +deps = ["Libdl"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "6a8a2a625ab0dea913aba95c11370589e0239ff0" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.6" + +[[Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" + +[[Memoize]] +deps = ["MacroTools"] +git-tree-sha1 = "2b1dfcba103de714d31c033b5dacc2e4a12c7caa" +uuid = "c03570c3-d221-55d1-a50c-7939bbd78826" +version = "0.4.4" + +[[Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" + +[[NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" + +[[OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "b9b8b8ed236998f91143938a760c2112dceeb2b4" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.4+0" + +[[OrderedCollections]] +git-tree-sha1 = "4fa2ba51070ec13fcc7517db714445b4ab986bdf" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.4.0" + +[[Parsers]] +deps = ["Dates"] +git-tree-sha1 = "c8abc88faa3f7a3950832ac5d6e690881590d6dc" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "1.1.0" + +[[Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" + +[[Preferences]] +deps = ["TOML"] +git-tree-sha1 = "ea79e4c9077208cd3bc5d29631a26bc0cff78902" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.2.1" + +[[Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[Random]] +deps = ["Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[Random123]] +deps = ["Libdl", "Random", "RandomNumbers"] +git-tree-sha1 = "7c6710c8198fd4444b5eb6a3840b7d47bd3593c5" +uuid = "74087812-796a-5b5d-8853-05524746bad3" +version = "1.3.1" + +[[RandomNumbers]] +deps = ["Random", "Requires"] +git-tree-sha1 = "441e6fc35597524ada7f85e13df1f4e10137d16f" +uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" +version = "1.4.0" + +[[Reexport]] +git-tree-sha1 = "57d8440b0c7d98fc4f889e478e80f268d534c9d5" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.0.0" + +[[Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "4036a3bd08ac7e968e27c203d45f5fff15020621" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.1.3" + +[[SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" + +[[Scratch]] +deps = ["Dates"] +git-tree-sha1 = "ad4b278adb62d185bbcb6864dc24959ab0627bf6" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.0.3" + +[[Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[SparseArrays]] +deps = ["LinearAlgebra", "Random"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[SpecialFunctions]] +deps = ["ChainRulesCore", "OpenSpecFun_jll"] +git-tree-sha1 = "5919936c0e92cff40e57d0ddf0ceb667d42e5902" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "1.3.0" + +[[Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" + +[[Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" + +[[Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[TimerOutputs]] +deps = ["Printf"] +git-tree-sha1 = "32cdbe6cd2d214c25a0b88f985c9e0092877c236" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.5.8" + +[[UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" + +[[nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" + +[[p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" From e9800922ef525292d3dd06173c1de59c2598fcdf Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Mon, 10 May 2021 10:18:32 +0200 Subject: [PATCH 11/15] update codecov token and badge --- .buildkite/pipeline.yml | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 131a630..05bc4bf 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -23,4 +23,4 @@ steps: env: JULIA_PKG_SERVER: "" # it often struggles with our large artifacts - CODECOV_TOKEN: "ea64fa23-14d4-4123-a7ce-b4f4208cd455" + CODECOV_TOKEN: "17a4c091-2903-476b-8609-c613436a30f8" diff --git a/README.md b/README.md index dacdc92..f073cb7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # BinomialGPU [![Build status](https://badge.buildkite.com/70a8c11259658ad6f836a4981791ed144bac80e65302291d0d.svg?branch=master)](https://buildkite.com/julialang/binomialgpu-dot-jl) -[![Coverage](https://codecov.io/gh/simsurace/BinomialGPU.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/simsurace/BinomialGPU.jl) +[![Coverage](https://codecov.io/gh/JuliaGPU/BinomialGPU.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/JuliaGPU/BinomialGPU.jl) This package provides a function `rand_binomial!` to produce `CuArrays` with binomially distributed entries, analogous to `CUDA.rand_poisson!` for Poisson-distributed ones. From 07c00bb664353051960488c27c253616ae86d55d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 20 May 2021 00:55:37 +0000 Subject: [PATCH 12/15] CompatHelper: bump compat for "BenchmarkTools" to "1.0" --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index cb4bd49..367a07f 100644 --- a/Project.toml +++ b/Project.toml @@ -9,7 +9,7 @@ CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [compat] -BenchmarkTools = "0.6, 0.7" +BenchmarkTools = "0.6, 0.7, 1.0" CUDA = "2, 3.0" julia = "1.6" From 2b9757443f21c550090bff512d448467ed85ac32 Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Fri, 5 Nov 2021 16:59:44 +0100 Subject: [PATCH 13/15] Update dependencies --- Manifest.toml | 148 ++++++++++++++++++++++++++------------------------ Project.toml | 2 +- 2 files changed, 77 insertions(+), 73 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index f5e3c1f..51f2a0a 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -8,9 +8,9 @@ version = "1.0.1" [[Adapt]] deps = ["LinearAlgebra"] -git-tree-sha1 = "f1b523983a58802c4695851926203b36e28f09db" +git-tree-sha1 = "84918055d15b3114ede17ac6a7182f68870c16f7" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.3.0" +version = "3.3.1" [[ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" @@ -19,10 +19,10 @@ uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[BFloat16s]] -deps = ["LinearAlgebra", "Test"] -git-tree-sha1 = "4af69e205efc343068dc8722b8dfec1ade89254a" +deps = ["LinearAlgebra", "Printf", "Random", "Test"] +git-tree-sha1 = "a598ecb0d717092b5539dbbe890c98bac842b072" uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" -version = "0.1.0" +version = "0.2.0" [[Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" @@ -39,35 +39,29 @@ uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" version = "0.4.1" [[CUDA]] -deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CompilerSupportLibraries_jll", "DataStructures", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "MacroTools", "Memoize", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "TimerOutputs"] -git-tree-sha1 = "ccb388138a6d124373aca6a8b61f62c6c470e1ad" +deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CompilerSupportLibraries_jll", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "SpecialFunctions", "TimerOutputs"] +git-tree-sha1 = "b703ede58945ebc836bad953d4f5aaeca2aa2114" repo-rev = "master" repo-url = "https://github.com/JuliaGPU/CUDA.jl.git" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "3.1.0" +version = "3.5.0" [[ChainRulesCore]] deps = ["Compat", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "bd0cc939d94b8bd736dce5bbbe0d635db9f94af7" +git-tree-sha1 = "f885e7e7c124f8c92650d61b9477b9ac2ee607dd" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "0.9.41" +version = "1.11.1" [[Compat]] deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] -git-tree-sha1 = "0a817fbe51c976de090aa8c997b7b719b786118d" +git-tree-sha1 = "dce3e3fea680869eaa0b774b2e8343e9ff442313" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "3.28.0" +version = "3.40.0" [[CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -[[DataStructures]] -deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "4437b64df1e0adccc3e5d1adbc3ac741095e4677" -uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.9" - [[Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" @@ -80,31 +74,48 @@ uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" +[[DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "b19534d1895d702889b219c382a6e18010797f0b" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.8.6" + [[Downloads]] deps = ["ArgTools", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" [[ExprTools]] -git-tree-sha1 = "10407a39b87f29d47ebaca8edbc75d7c302ff93e" +git-tree-sha1 = "b7e3d17636b348f005f11040025ae8c6f645fe92" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.3" +version = "0.1.6" [[GPUArrays]] -deps = ["AbstractFFTs", "Adapt", "LinearAlgebra", "Printf", "Random", "Serialization"] -git-tree-sha1 = "3e10e95ddc385e1589c27b1a58f21bf3008b559c" +deps = ["Adapt", "LinearAlgebra", "Printf", "Random", "Serialization", "Statistics"] +git-tree-sha1 = "7772508f17f1d482fe0df72cabc5b55bec06bbe0" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "6.3.0" +version = "8.1.2" [[GPUCompiler]] -deps = ["DataStructures", "ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "Serialization", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "6eadd2321dc3ac0fc9d530ab01c2caa7fe5d74c6" +deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "TimerOutputs", "UUIDs"] +git-tree-sha1 = "77d915a0af27d474f0aaf12fcd46c400a552e84c" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.11.4" +version = "0.13.7" [[InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +[[InverseFunctions]] +deps = ["Test"] +git-tree-sha1 = "f0c6489b12d28fb4c2103073ec7452f3423bd308" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.1" + +[[IrrationalConstants]] +git-tree-sha1 = "7fd44fd4ff43fc60815f8e764c0f352b83c49151" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.1.1" + [[JLLWrappers]] deps = ["Preferences"] git-tree-sha1 = "642a199af8b68253517b80bd3bfd17eb4e84df6e" @@ -113,15 +124,21 @@ version = "1.3.0" [[JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] -git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4" +git-tree-sha1 = "8076680b162ada2a031f707ac7b4953e30667a37" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "0.21.1" +version = "0.21.2" [[LLVM]] -deps = ["CEnum", "Libdl", "Printf", "Unicode"] -git-tree-sha1 = "b616937c31337576360cb9fb872ec7633af7b194" +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Printf", "Unicode"] +git-tree-sha1 = "46092047ca4edc10720ecab437c42283cd7c44f3" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "3.6.0" +version = "4.6.0" + +[[LLVMExtra_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6a2af408fe809c4f1a54d2b3f188fdd3698549d6" +uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" +version = "0.0.11+0" [[LazyArtifacts]] deps = ["Artifacts", "Pkg"] @@ -150,15 +167,15 @@ uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" deps = ["Libdl"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +[[LogExpFunctions]] +deps = ["ChainRulesCore", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "6193c3815f13ba1b78a51ce391db8be016ae9214" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.4" + [[Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" -[[MacroTools]] -deps = ["Markdown", "Random"] -git-tree-sha1 = "6a8a2a625ab0dea913aba95c11370589e0239ff0" -uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.6" - [[Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" @@ -167,12 +184,6 @@ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -[[Memoize]] -deps = ["MacroTools"] -git-tree-sha1 = "2b1dfcba103de714d31c033b5dacc2e4a12c7caa" -uuid = "c03570c3-d221-55d1-a50c-7939bbd78826" -version = "0.4.4" - [[Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" @@ -182,22 +193,21 @@ uuid = "14a3606d-f60d-562e-9121-12d972cd8159" [[NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +[[OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" + [[OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "b9b8b8ed236998f91143938a760c2112dceeb2b4" +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" -version = "0.5.4+0" - -[[OrderedCollections]] -git-tree-sha1 = "4fa2ba51070ec13fcc7517db714445b4ab986bdf" -uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.4.0" +version = "0.5.5+0" [[Parsers]] deps = ["Dates"] -git-tree-sha1 = "c8abc88faa3f7a3950832ac5d6e690881590d6dc" +git-tree-sha1 = "ae4bbcadb2906ccc085cf52ac286dc1377dceccc" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "1.1.0" +version = "2.1.2" [[Pkg]] deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] @@ -205,9 +215,9 @@ uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" [[Preferences]] deps = ["TOML"] -git-tree-sha1 = "ea79e4c9077208cd3bc5d29631a26bc0cff78902" +git-tree-sha1 = "00cfd92944ca9c760982747e9a1d0d5d86ab1e5a" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.2.1" +version = "1.2.2" [[Printf]] deps = ["Unicode"] @@ -223,20 +233,20 @@ uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [[Random123]] deps = ["Libdl", "Random", "RandomNumbers"] -git-tree-sha1 = "7c6710c8198fd4444b5eb6a3840b7d47bd3593c5" +git-tree-sha1 = "0e8b146557ad1c6deb1367655e052276690e71a3" uuid = "74087812-796a-5b5d-8853-05524746bad3" -version = "1.3.1" +version = "1.4.2" [[RandomNumbers]] deps = ["Random", "Requires"] -git-tree-sha1 = "441e6fc35597524ada7f85e13df1f4e10137d16f" +git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" -version = "1.4.0" +version = "1.5.3" [[Reexport]] -git-tree-sha1 = "57d8440b0c7d98fc4f889e478e80f268d534c9d5" +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" -version = "1.0.0" +version = "1.2.2" [[Requires]] deps = ["UUIDs"] @@ -247,12 +257,6 @@ version = "1.1.3" [[SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" -[[Scratch]] -deps = ["Dates"] -git-tree-sha1 = "ad4b278adb62d185bbcb6864dc24959ab0627bf6" -uuid = "6c6a2e73-6563-6170-7368-637461726353" -version = "1.0.3" - [[Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" @@ -268,10 +272,10 @@ deps = ["LinearAlgebra", "Random"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[SpecialFunctions]] -deps = ["ChainRulesCore", "OpenSpecFun_jll"] -git-tree-sha1 = "5919936c0e92cff40e57d0ddf0ceb667d42e5902" +deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "f0bccf98e16759818ffc5d97ac3ebf87eb950150" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "1.3.0" +version = "1.8.1" [[Statistics]] deps = ["LinearAlgebra", "SparseArrays"] @@ -290,10 +294,10 @@ deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[TimerOutputs]] -deps = ["Printf"] -git-tree-sha1 = "32cdbe6cd2d214c25a0b88f985c9e0092877c236" +deps = ["ExprTools", "Printf"] +git-tree-sha1 = "7cb456f358e8f9d102a8b25e8dfedf58fa5689bc" uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.8" +version = "0.5.13" [[UUIDs]] deps = ["Random", "SHA"] diff --git a/Project.toml b/Project.toml index cb4bd49..e3b98ff 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "BinomialGPU" uuid = "c5bbfde1-2136-42cd-9b65-d5719df69ebf" authors = ["Simone Carlo Surace"] -version = "0.3" +version = "0.3.0" [deps] BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" From 2e9ab106c02d457887064c2898754af109f51512 Mon Sep 17 00:00:00 2001 From: Simone Carlo Surace Date: Fri, 5 Nov 2021 17:09:52 +0100 Subject: [PATCH 14/15] Remove manifest --- Manifest.toml | 319 -------------------------------------------------- 1 file changed, 319 deletions(-) delete mode 100644 Manifest.toml diff --git a/Manifest.toml b/Manifest.toml deleted file mode 100644 index 51f2a0a..0000000 --- a/Manifest.toml +++ /dev/null @@ -1,319 +0,0 @@ -# This file is machine-generated - editing it directly is not advised - -[[AbstractFFTs]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "485ee0867925449198280d4af84bdb46a2a404d0" -uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" -version = "1.0.1" - -[[Adapt]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "84918055d15b3114ede17ac6a7182f68870c16f7" -uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.3.1" - -[[ArgTools]] -uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" - -[[Artifacts]] -uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" - -[[BFloat16s]] -deps = ["LinearAlgebra", "Printf", "Random", "Test"] -git-tree-sha1 = "a598ecb0d717092b5539dbbe890c98bac842b072" -uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" -version = "0.2.0" - -[[Base64]] -uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" - -[[BenchmarkTools]] -deps = ["JSON", "Logging", "Printf", "Statistics", "UUIDs"] -git-tree-sha1 = "068fda9b756e41e6c75da7b771e6f89fa8a43d15" -uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" -version = "0.7.0" - -[[CEnum]] -git-tree-sha1 = "215a9aa4a1f23fbd05b92769fdd62559488d70e9" -uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" -version = "0.4.1" - -[[CUDA]] -deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CompilerSupportLibraries_jll", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "SpecialFunctions", "TimerOutputs"] -git-tree-sha1 = "b703ede58945ebc836bad953d4f5aaeca2aa2114" -repo-rev = "master" -repo-url = "https://github.com/JuliaGPU/CUDA.jl.git" -uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "3.5.0" - -[[ChainRulesCore]] -deps = ["Compat", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "f885e7e7c124f8c92650d61b9477b9ac2ee607dd" -uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.11.1" - -[[Compat]] -deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] -git-tree-sha1 = "dce3e3fea680869eaa0b774b2e8343e9ff442313" -uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "3.40.0" - -[[CompilerSupportLibraries_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" - -[[Dates]] -deps = ["Printf"] -uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" - -[[DelimitedFiles]] -deps = ["Mmap"] -uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" - -[[Distributed]] -deps = ["Random", "Serialization", "Sockets"] -uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" - -[[DocStringExtensions]] -deps = ["LibGit2"] -git-tree-sha1 = "b19534d1895d702889b219c382a6e18010797f0b" -uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -version = "0.8.6" - -[[Downloads]] -deps = ["ArgTools", "LibCURL", "NetworkOptions"] -uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" - -[[ExprTools]] -git-tree-sha1 = "b7e3d17636b348f005f11040025ae8c6f645fe92" -uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.6" - -[[GPUArrays]] -deps = ["Adapt", "LinearAlgebra", "Printf", "Random", "Serialization", "Statistics"] -git-tree-sha1 = "7772508f17f1d482fe0df72cabc5b55bec06bbe0" -uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "8.1.2" - -[[GPUCompiler]] -deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "77d915a0af27d474f0aaf12fcd46c400a552e84c" -uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.13.7" - -[[InteractiveUtils]] -deps = ["Markdown"] -uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" - -[[InverseFunctions]] -deps = ["Test"] -git-tree-sha1 = "f0c6489b12d28fb4c2103073ec7452f3423bd308" -uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.1" - -[[IrrationalConstants]] -git-tree-sha1 = "7fd44fd4ff43fc60815f8e764c0f352b83c49151" -uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" -version = "0.1.1" - -[[JLLWrappers]] -deps = ["Preferences"] -git-tree-sha1 = "642a199af8b68253517b80bd3bfd17eb4e84df6e" -uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.3.0" - -[[JSON]] -deps = ["Dates", "Mmap", "Parsers", "Unicode"] -git-tree-sha1 = "8076680b162ada2a031f707ac7b4953e30667a37" -uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "0.21.2" - -[[LLVM]] -deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Printf", "Unicode"] -git-tree-sha1 = "46092047ca4edc10720ecab437c42283cd7c44f3" -uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "4.6.0" - -[[LLVMExtra_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6a2af408fe809c4f1a54d2b3f188fdd3698549d6" -uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.11+0" - -[[LazyArtifacts]] -deps = ["Artifacts", "Pkg"] -uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" - -[[LibCURL]] -deps = ["LibCURL_jll", "MozillaCACerts_jll"] -uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" - -[[LibCURL_jll]] -deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] -uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" - -[[LibGit2]] -deps = ["Base64", "NetworkOptions", "Printf", "SHA"] -uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" - -[[LibSSH2_jll]] -deps = ["Artifacts", "Libdl", "MbedTLS_jll"] -uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" - -[[Libdl]] -uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" - -[[LinearAlgebra]] -deps = ["Libdl"] -uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" - -[[LogExpFunctions]] -deps = ["ChainRulesCore", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "6193c3815f13ba1b78a51ce391db8be016ae9214" -uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.4" - -[[Logging]] -uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" - -[[Markdown]] -deps = ["Base64"] -uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" - -[[MbedTLS_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" - -[[Mmap]] -uuid = "a63ad114-7e13-5084-954f-fe012c677804" - -[[MozillaCACerts_jll]] -uuid = "14a3606d-f60d-562e-9121-12d972cd8159" - -[[NetworkOptions]] -uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" - -[[OpenLibm_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "05823500-19ac-5b8b-9628-191a04bc5112" - -[[OpenSpecFun_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" -uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" -version = "0.5.5+0" - -[[Parsers]] -deps = ["Dates"] -git-tree-sha1 = "ae4bbcadb2906ccc085cf52ac286dc1377dceccc" -uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.1.2" - -[[Pkg]] -deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] -uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" - -[[Preferences]] -deps = ["TOML"] -git-tree-sha1 = "00cfd92944ca9c760982747e9a1d0d5d86ab1e5a" -uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.2.2" - -[[Printf]] -deps = ["Unicode"] -uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" - -[[REPL]] -deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] -uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" - -[[Random]] -deps = ["Serialization"] -uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" - -[[Random123]] -deps = ["Libdl", "Random", "RandomNumbers"] -git-tree-sha1 = "0e8b146557ad1c6deb1367655e052276690e71a3" -uuid = "74087812-796a-5b5d-8853-05524746bad3" -version = "1.4.2" - -[[RandomNumbers]] -deps = ["Random", "Requires"] -git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" -uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" -version = "1.5.3" - -[[Reexport]] -git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" -uuid = "189a3867-3050-52da-a836-e630ba90ab69" -version = "1.2.2" - -[[Requires]] -deps = ["UUIDs"] -git-tree-sha1 = "4036a3bd08ac7e968e27c203d45f5fff15020621" -uuid = "ae029012-a4dd-5104-9daa-d747884805df" -version = "1.1.3" - -[[SHA]] -uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" - -[[Serialization]] -uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" - -[[SharedArrays]] -deps = ["Distributed", "Mmap", "Random", "Serialization"] -uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" - -[[Sockets]] -uuid = "6462fe0b-24de-5631-8697-dd941f90decc" - -[[SparseArrays]] -deps = ["LinearAlgebra", "Random"] -uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - -[[SpecialFunctions]] -deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "f0bccf98e16759818ffc5d97ac3ebf87eb950150" -uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "1.8.1" - -[[Statistics]] -deps = ["LinearAlgebra", "SparseArrays"] -uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" - -[[TOML]] -deps = ["Dates"] -uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" - -[[Tar]] -deps = ["ArgTools", "SHA"] -uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" - -[[Test]] -deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] -uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" - -[[TimerOutputs]] -deps = ["ExprTools", "Printf"] -git-tree-sha1 = "7cb456f358e8f9d102a8b25e8dfedf58fa5689bc" -uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.13" - -[[UUIDs]] -deps = ["Random", "SHA"] -uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" - -[[Unicode]] -uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" - -[[Zlib_jll]] -deps = ["Libdl"] -uuid = "83775a58-1f1d-513f-b197-d71354ab007a" - -[[nghttp2_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" - -[[p7zip_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" From 72442890613069379ae978ab0352cda0d930f9ac Mon Sep 17 00:00:00 2001 From: simsurace Date: Mon, 24 Jan 2022 13:13:52 +0100 Subject: [PATCH 15/15] Ignore Manifest file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 287c938..4381a61 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ *.jl.mem test.jl +Manifest.toml