JuliaGPU / CUDA.jl

CUDA programming in Julia.
https://juliagpu.org/cuda/
Other
1.2k stars 218 forks source link

`StatsBase.transform` fails on `CuArray` #426

Closed sdewaele closed 4 years ago

sdewaele commented 4 years ago

The following code fails on a CuArray:

using CUDA
using StatsBase

A = 5randn(2,4).+2
t = fit(ZScoreTransform,A;dims=2)
Ac = cu(A)
Ag = StatsBase.transform(t,Ac)
Error message

``` ┌ Warning: CUDA.jl only supports CUDNN 7.6 to 8.0 └ @ CUDA C:\Users\userid\.julia\packages\CUDA\dZvbp\src\initialization.jl:122 ERROR: GPU compilation of kernel broadcast_kernel(CUDA.CuKernelContext, LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}}, Base.Broadcast.Broadcasted{Nothing,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}},StatsBase.var"#186#187",Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}}}, Int64) failed KernelError: passing and using non-bitstype argument Argument 4 to your kernel function is of type Base.Broadcast.Broadcasted{Nothing,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}},StatsBase.var"#186#187",Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}}}, which is not isbits: .args is of type Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}} which is not isbits. .2 is of type Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}} which is not isbits. .x is of type LinearAlgebra.Adjoint{Float64,Array{Float64,1}} which is not isbits. .parent is of type Array{Float64,1} which is not isbits. .3 is of type Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}} which is not isbits. .x is of type LinearAlgebra.Adjoint{Float64,Array{Float64,1}} which is not isbits. .parent is of type Array{Float64,1} which is not isbits. Passing non-isbits types is only allowed if they they are unused by the kernel. Stacktrace: [1] check_invocation(::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}, ::LLVM.Function) at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\validation.jl:75 [2] macro expansion at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\driver.jl:240 [inlined] [3] macro expansion at C:\Users\userid\.julia\packages\TimerOutputs\dVnaw\src\TimerOutput.jl:206 [inlined] [4] codegen(::Symbol, ::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, strip::Bool, validate::Bool, only_entry::Bool) at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\driver.jl:239 [5] compile(::Symbol, ::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, strip::Bool, validate::Bool, only_entry::Bool) at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\driver.jl:39 [6] compile at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\driver.jl:35 [inlined] [7] _cufunction(::GPUCompiler.FunctionSpec{GPUArrays.var"#broadcast_kernel#18",Tuple{CUDA.CuKernelContext,LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Base.Broadcast.Broadcasted{Nothing,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}},StatsBase.var"#186#187",Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}}},Int64}}; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\userid\.julia\packages\CUDA\dZvbp\src\compiler\execution.jl:310 [8] _cufunction at C:\Users\userid\.julia\packages\CUDA\dZvbp\src\compiler\execution.jl:304 [inlined] [9] check_cache(::typeof(CUDA._cufunction), ::GPUCompiler.FunctionSpec{GPUArrays.var"#broadcast_kernel#18",Tuple{CUDA.CuKernelContext,LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Base.Broadcast.Broadcasted{Nothing,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}},StatsBase.var"#186#187",Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}}},Int64}}, ::UInt64; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\cache.jl:24 [10] broadcast_kernel at C:\Users\userid\.julia\packages\GPUArrays\eVYIC\src\host\broadcast.jl:60 [inlined] [11] cached_compilation(::typeof(CUDA._cufunction), ::GPUCompiler.FunctionSpec{GPUArrays.var"#broadcast_kernel#18",Tuple{CUDA.CuKernelContext,LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Base.Broadcast.Broadcasted{Nothing,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}},StatsBase.var"#186#187",Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}}},Int64}}, ::UInt64; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\cache.jl:0 [12] cached_compilation at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\cache.jl:44 [inlined] [13] cufunction(::GPUArrays.var"#broadcast_kernel#18", ::Type{Tuple{CUDA.CuKernelContext,LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Base.Broadcast.Broadcasted{Nothing,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}},StatsBase.var"#186#187",Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}}},Int64}}; name::Nothing, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\userid\.julia\packages\CUDA\dZvbp\src\compiler\execution.jl:298 [14] cufunction at C:\Users\userid\.julia\packages\CUDA\dZvbp\src\compiler\execution.jl:293 [inlined] [15] #launch_heuristic#838 at C:\Users\userid\.julia\packages\CUDA\dZvbp\src\gpuarrays.jl:19 [inlined] [16] launch_heuristic at C:\Users\userid\.julia\packages\CUDA\dZvbp\src\gpuarrays.jl:17 [inlined] [17] copyto! at C:\Users\userid\.julia\packages\GPUArrays\eVYIC\src\host\broadcast.jl:66 [inlined] [18] copyto! at .\broadcast.jl:864 [inlined] [19] materialize!(::LinearAlgebra.Adjoint{Float32,CuArray{Float32,2}}, ::Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2},Nothing,StatsBase.var"#186#187",Tuple{LinearAlgebra.Adjoint{Float32,CuArray{Float32,2}},LinearAlgebra.Adjoint{Float64,Array{Float64,1}},LinearAlgebra.Adjoint{Float64,Array{Float64,1}}}}) at .\broadcast.jl:823 [20] broadcast!(::StatsBase.var"#186#187", ::LinearAlgebra.Adjoint{Float32,CuArray{Float32,2}}, ::LinearAlgebra.Adjoint{Float32,CuArray{Float32,2}}, ::LinearAlgebra.Adjoint{Float64,Array{Float64,1}}, ::LinearAlgebra.Adjoint{Float64,Array{Float64,1}}) at .\broadcast.jl:797 [21] transform!(::LinearAlgebra.Adjoint{Float32,CuArray{Float32,2}}, ::ZScoreTransform{Float64}, ::LinearAlgebra.Adjoint{Float32,CuArray{Float32,2}}) at C:\Users\userid\.julia\packages\StatsBase\ZxhK8\src\transformations.jl:166 [22] transform!(::CuArray{Float32,2}, ::ZScoreTransform{Float64}, ::CuArray{Float32,2}) at C:\Users\userid\.julia\packages\StatsBase\ZxhK8\src\transformations.jl:171 [23] transform(::ZScoreTransform{Float64}, ::CuArray{Float32,2}) at C:\Users\userid\.julia\packages\StatsBase\ZxhK8\src\transformations.jl:21 [24] top-level scope at C:\Users\userid\.julia\dev\MigrateAI\scripts\cu-norm-issue.jl:9 [25] include(::String) at .\client.jl:439 [26] top-level scope at REPL[1]:1 ```

This condensed reproduction of the transform! code may facilitate debugging:

x = Ag
y = similar(x)
y = y' # ' because t.dims == 2
x = x' # ' because t.dims == 2
t_ = ZScoreTransform(t.len, 1, t.mean, t.scale)
m = t_.mean
s = t_.scale
broadcast!((x,m,s)->(x-m)/s, y, x, m', s')

The error occurs on this line in StatsBase.transform!.

I know that it is not too hard to write code from scratch for this type of normalisation. For example, see Flux.normalise does something similar, although I do want to use precomputed mean and scale, that is why I tried StatsBase. However:

  1. Doing controlled data normalization is common in machine learning so it would be nice to have something working out of the box.
  2. This problem may point at something more fundamental in CUDA.jl. Or perhaps, StatsBase?
Manifest.toml

``` # This file is machine-generated - editing it directly is not advised [[AbstractFFTs]] deps = ["LinearAlgebra"] git-tree-sha1 = "051c95d6836228d120f5f4b984dd5aba1624f716" uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" version = "0.5.0" [[AbstractTrees]] deps = ["Markdown"] git-tree-sha1 = "33e450545eaf7699da1a6e755f9ea65f14077a45" uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" version = "0.3.3" [[Adapt]] deps = ["LinearAlgebra"] git-tree-sha1 = "0fac443759fa829ed8066db6cf1077d888bb6573" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" version = "2.0.2" [[ArnoldiMethod]] deps = ["DelimitedFiles", "LinearAlgebra", "Random", "SparseArrays", "StaticArrays", "Test"] git-tree-sha1 = "2b6845cea546604fb4dca4e31414a6a59d39ddcd" uuid = "ec485272-7323-5ecc-a04f-4719b315124d" version = "0.0.4" [[ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra"] git-tree-sha1 = "951c3fc1ff93497c88fb1dfa893f4de55d0b38e3" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" version = "0.3.8" [[AxisAlgorithms]] deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] git-tree-sha1 = "a4d07a1c313392a77042855df46c5f534076fab9" uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" version = "1.0.0" [[AxisArrays]] deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] git-tree-sha1 = "f31f50712cbdf40ee8287f0443b57503e34122ef" uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" version = "0.4.3" [[Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[BinaryProvider]] deps = ["Libdl", "Logging", "SHA"] git-tree-sha1 = "ecdec412a9abc8db54c0efc5548c64dfce072058" uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232" version = "0.5.10" [[Blosc]] deps = ["Blosc_jll"] git-tree-sha1 = "84cf7d0f8fd46ca6f1b3e0305b4b4a37afe50fd6" uuid = "a74b3585-a348-5f62-a45c-50e91977d574" version = "0.7.0" [[Blosc_jll]] deps = ["Libdl", "Lz4_jll", "Pkg", "Zlib_jll", "Zstd_jll"] git-tree-sha1 = "aa9ef39b54a168c3df1b2911e7797e4feee50fbe" uuid = "0b7ba130-8d10-5ba8-a3d6-c5182647fed9" version = "1.14.3+1" [[Bzip2_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "03a44490020826950c68005cafb336e5ba08b7e8" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" version = "1.0.6+4" [[CEnum]] git-tree-sha1 = "215a9aa4a1f23fbd05b92769fdd62559488d70e9" uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" version = "0.4.1" [[CUDA]] deps = ["AbstractFFTs", "Adapt", "BinaryProvider", "CEnum", "DataStructures", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "Libdl", "LinearAlgebra", "Logging", "MacroTools", "NNlib", "Pkg", "Printf", "Random", "Reexport", "Requires", "SparseArrays", "Statistics", "TimerOutputs"] git-tree-sha1 = "83bfd180e2f842f6d4ee315a6db8665e9aa0c19b" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" version = "1.3.3" [[CatIndices]] deps = ["CustomUnitRanges", "OffsetArrays"] git-tree-sha1 = "0c91e4fcda51bbd881c5d49ef784460750abcac0" uuid = "aafaddc9-749c-510e-ac4f-586e18779b91" version = "0.2.1" [[ChainRules]] deps = ["ChainRulesCore", "LinearAlgebra", "Random", "Reexport", "Requires", "Statistics"] git-tree-sha1 = "6e7424bc42e222570cc8d588c501349070802b3f" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" version = "0.7.18" [[ChainRulesCore]] deps = ["LinearAlgebra", "MuladdMacro"] git-tree-sha1 = "ac64a416997ae87eb86550020d0607ff608253d1" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" version = "0.9.10" [[Clustering]] deps = ["Distances", "LinearAlgebra", "NearestNeighbors", "Printf", "SparseArrays", "Statistics", "StatsBase"] git-tree-sha1 = "b11c8d607af357776a046889a7c32567d05f1319" uuid = "aaaa29a8-35af-508c-8bc3-b662a17a0fe5" version = "0.14.1" [[CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.0" [[ColorSchemes]] deps = ["ColorTypes", "Colors", "FixedPointNumbers", "Random", "StaticArrays"] git-tree-sha1 = "7a15e3690529fd1042f0ab954dff7445b1efc8a5" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" version = "3.9.0" [[ColorTypes]] deps = ["FixedPointNumbers", "Random"] git-tree-sha1 = "4bffea7ed1a9f0f3d1a131bbcd4b925548d75288" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" version = "0.10.9" [[ColorVectorSpace]] deps = ["ColorTypes", "Colors", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "StatsBase"] git-tree-sha1 = "2ae827d936fa9d8e00dd5166563499c07c5672c5" uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" version = "0.8.6" [[Colors]] deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Reexport"] git-tree-sha1 = "5639e44833cfcf78c6a73fbceb4da75611d312cd" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" version = "0.12.3" [[CommonSubexpressions]] deps = ["MacroTools", "Test"] git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" version = "0.3.0" [[CompilerSupportLibraries_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "7c4f882c41faa72118841185afc58a2eb00ef612" uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" version = "0.3.3+0" [[ComputationalResources]] git-tree-sha1 = "52cb3ec90e8a8bea0e62e275ba577ad0f74821f7" uuid = "ed09eef8-17a6-5b46-8889-db040fac31e3" version = "0.3.2" [[ConstructionBase]] git-tree-sha1 = "a2a6a5fea4d6f730ec4c18a76d27ec10e8ec1c50" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" version = "1.0.0" [[Contour]] deps = ["StaticArrays"] git-tree-sha1 = "d05a3a25b762720d40246d5bedf518c9c2614ef5" uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" version = "0.5.5" [[CoordinateTransformations]] deps = ["LinearAlgebra", "StaticArrays"] git-tree-sha1 = "c230b1d94db9fdd073168830437e64b9db627fcb" uuid = "150eb455-5306-5404-9cee-2592286d6298" version = "0.6.0" [[CpuId]] deps = ["Markdown", "Test"] git-tree-sha1 = "f0464e499ab9973b43c20f8216d088b61fda80c6" uuid = "adafc99b-e345-5852-983c-f28acb93d879" version = "0.2.2" [[CustomUnitRanges]] git-tree-sha1 = "0d42a23be3acfb3c58569b28ed3ab8bd67af5ced" uuid = "dc8bdbbb-1ca9-579f-8c36-e416f6a65cce" version = "1.0.0" [[DataAPI]] git-tree-sha1 = "176e23402d80e7743fc26c19c681bfb11246af32" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" version = "1.3.0" [[DataStructures]] deps = ["InteractiveUtils", "OrderedCollections"] git-tree-sha1 = "88d48e133e6d3dd68183309877eac74393daa7eb" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" version = "0.17.20" [[DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" version = "1.0.0" [[Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" [[DelimitedFiles]] deps = ["Mmap"] uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" [[DiffResults]] deps = ["StaticArrays"] git-tree-sha1 = "da24935df8e0c6cf28de340b958f6aac88eaa0cc" uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" version = "1.0.2" [[DiffRules]] deps = ["NaNMath", "Random", "SpecialFunctions"] git-tree-sha1 = "eb0c34204c8410888844ada5359ac8b96292cfd1" uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" version = "1.0.1" [[DimensionalData]] deps = ["ConstructionBase", "Dates", "LinearAlgebra", "RecipesBase", "SparseArrays", "Statistics"] git-tree-sha1 = "073856bd60f6468dcd8f6e5bf43057748195b4f5" uuid = "0703355e-b756-11e9-17c0-8b28908087d0" version = "0.12.1" [[Distances]] deps = ["LinearAlgebra", "Statistics"] git-tree-sha1 = "23717536c81b63e250f682b0e0933769eecd1411" uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" version = "0.8.2" [[Distributed]] deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[Distributions]] deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns"] git-tree-sha1 = "9c41285c57c6e0d73a21ed4b65f6eec34805f937" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" version = "0.23.8" [[DocStringExtensions]] deps = ["LibGit2", "Markdown", "Pkg", "Test"] git-tree-sha1 = "c5714d9bcdba66389612dc4c47ed827c64112997" uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" version = "0.8.2" [[EllipsisNotation]] git-tree-sha1 = "65dad386e877850e6fce4fc77f60fe75a468ce9d" uuid = "da5c29d0-fa7d-589e-88eb-ea29b0a81949" version = "0.4.0" [[ExprTools]] git-tree-sha1 = "7fce513fcda766962ff67c5596cb16c463dfd371" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" version = "0.1.2" [[FFMPEG]] deps = ["FFMPEG_jll", "x264_jll"] git-tree-sha1 = "9a73ffdc375be61b0e4516d83d880b265366fe1f" uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" version = "0.4.0" [[FFMPEG_jll]] deps = ["Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "LAME_jll", "LibVPX_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "Pkg", "Zlib_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] git-tree-sha1 = "13a934b9e74a8722bf1786c989de346a9602e695" uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" version = "4.3.1+2" [[FFTViews]] deps = ["CustomUnitRanges", "FFTW"] git-tree-sha1 = "70a0cfd9b1c86b0209e38fbfe6d8231fd606eeaf" uuid = "4f61f5a4-77b1-5117-aa51-3ab5ef4ef0cd" version = "0.3.1" [[FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "IntelOpenMP_jll", "Libdl", "LinearAlgebra", "MKL_jll", "Reexport"] git-tree-sha1 = "8b7c16b56936047ca41bf25effa137ae0b381ae8" uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" version = "1.2.4" [[FFTW_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "6c975cd606128d45d1df432fb812d6eb10fee00b" uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" version = "3.3.9+5" [[FileIO]] deps = ["Pkg"] git-tree-sha1 = "1e7e88a949b52e6f7f589041bd60928322414997" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" version = "1.4.1" [[FillArrays]] deps = ["LinearAlgebra", "Random", "SparseArrays"] git-tree-sha1 = "4863cbb7910079369e258dee4add9d06ead5063a" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" version = "0.8.14" [[FixedPointNumbers]] deps = ["Statistics"] git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" version = "0.8.4" [[Flux]] deps = ["AbstractTrees", "Adapt", "CUDA", "CodecZlib", "Colors", "DelimitedFiles", "Functors", "Juno", "LinearAlgebra", "MacroTools", "NNlib", "Pkg", "Printf", "Random", "Reexport", "SHA", "Statistics", "StatsBase", "Test", "ZipFile", "Zygote"] git-tree-sha1 = "ceb09ce8510ef31fd86a791bbd0e1d72a60f27d7" uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" version = "0.11.1" [[ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "NaNMath", "Random", "SpecialFunctions", "StaticArrays"] git-tree-sha1 = "1d090099fb82223abc48f7ce176d3f7696ede36d" uuid = "f6369f11-7733-5829-9624-2563aa707210" version = "0.10.12" [[FreeType2_jll]] deps = ["Bzip2_jll", "Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "720eee04e3b496c15e5e2269669c2532fb5005c0" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" version = "2.10.1+4" [[FriBidi_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "cfc3485a0a968263c789e314fca5d66daf75ed6c" uuid = "559328eb-81f9-559d-9380-de523a88c83c" version = "1.0.5+5" [[Functors]] deps = ["MacroTools"] git-tree-sha1 = "f40adc6422f548176bb4351ebd29e4abf773040a" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" version = "0.1.0" [[Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" [[GPUArrays]] deps = ["AbstractFFTs", "Adapt", "LinearAlgebra", "Printf", "Random", "Serialization"] git-tree-sha1 = "600f45500060894487832c2f00c203fe3e0cb264" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" version = "5.1.0" [[GPUCompiler]] deps = ["DataStructures", "InteractiveUtils", "LLVM", "Libdl", "TimerOutputs", "UUIDs"] git-tree-sha1 = "05097d81898c527e3bf218bb083ad0ead4378e5f" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" version = "0.6.1" [[GR]] deps = ["Base64", "DelimitedFiles", "HTTP", "JSON", "LinearAlgebra", "Printf", "Random", "Serialization", "Sockets", "Test", "UUIDs"] git-tree-sha1 = "e26c513329675092535de20cc4bb9c579c8f85a0" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" version = "0.51.0" [[GeometryBasics]] deps = ["IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] git-tree-sha1 = "119f32f9c2b497b49cd3f7f513b358b82660294c" uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" version = "0.2.15" [[GeometryTypes]] deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "StaticArrays"] git-tree-sha1 = "34bfa994967e893ab2f17b864eec221b3521ba4d" uuid = "4d00f742-c7ba-57c2-abde-4428a4b178cb" version = "0.8.3" [[GraphRecipes]] deps = ["AbstractTrees", "GeometryTypes", "InteractiveUtils", "Interpolations", "LightGraphs", "LinearAlgebra", "NaNMath", "NetworkLayout", "PlotUtils", "RecipesBase", "SparseArrays", "Statistics"] git-tree-sha1 = "a8619f8715d92cfc9d56a549a0d459bb655ae113" uuid = "bd48cda9-67a9-57be-86fa-5b3c104eda73" version = "0.5.4" [[Graphics]] deps = ["Colors", "LinearAlgebra", "NaNMath"] git-tree-sha1 = "45d684ead5b65c043ad46bd5be750d61c39d7ef8" uuid = "a2bd30eb-e257-5431-a919-1863eab51364" version = "1.0.2" [[HDF5]] deps = ["Blosc", "HDF5_jll", "Libdl", "Mmap", "Random"] git-tree-sha1 = "8f096f0820429f7865f6ecf6857cd81028a26230" uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" version = "0.13.3" [[HDF5_jll]] deps = ["Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "85bd2e586a10ae0eab856125bf5245e0d36384a7" uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" version = "1.10.5+5" [[HTTP]] deps = ["Base64", "Dates", "IniFile", "MbedTLS", "Sockets"] git-tree-sha1 = "2ac03263ce44be4222342bca1c51c36ce7566161" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" version = "0.8.17" [[IRTools]] deps = ["InteractiveUtils", "MacroTools", "Test"] git-tree-sha1 = "a8d88c05a23b44b4da6cf4fb5659e13ff95e0f47" uuid = "7869d1d1-7146-5819-86e3-90919afe41df" version = "0.4.1" [[IdentityRanges]] deps = ["OffsetArrays"] git-tree-sha1 = "be8fcd695c4da16a1d6d0cd213cb88090a150e3b" uuid = "bbac6d45-d8f3-5730-bfe4-7a449cd117ca" version = "0.3.1" [[ImageAxes]] deps = ["AxisArrays", "ImageCore", "MappedArrays", "Reexport", "SimpleTraits"] git-tree-sha1 = "6f6e8be05a46733c69209c8b5828c4e463ccd5f5" uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" version = "0.6.5" [[ImageContrastAdjustment]] deps = ["ColorVectorSpace", "ImageCore", "ImageTransformations", "MappedArrays", "Parameters"] git-tree-sha1 = "d22d89e03c8f617e0ae31886ca60e291b548cf59" uuid = "f332f351-ec65-5f6a-b3d1-319c6670881a" version = "0.3.5" [[ImageCore]] deps = ["Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport", "Requires"] git-tree-sha1 = "8628794375a87e8006e489a8575ddbb98b779370" uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" version = "0.8.16" [[ImageDistances]] deps = ["ColorVectorSpace", "Distances", "ImageCore", "LinearAlgebra", "MappedArrays", "Statistics"] git-tree-sha1 = "cf9b02b9f5e33c768c223de6d8f7d1b6d0cf4136" uuid = "51556ac3-7006-55f5-8cb3-34580c88182d" version = "0.2.7" [[ImageFiltering]] deps = ["CatIndices", "ColorVectorSpace", "ComputationalResources", "DataStructures", "FFTViews", "FFTW", "ImageCore", "ImageMetadata", "LinearAlgebra", "MappedArrays", "OffsetArrays", "Requires", "StaticArrays", "Statistics", "TiledIteration"] git-tree-sha1 = "0ba209ea8f3f1c4b2f9f3ba6b9f4355098d6ddfe" uuid = "6a3955dd-da59-5b1f-98d4-e7296123deb5" version = "0.6.14" [[ImageIO]] deps = ["FileIO", "PNGFiles"] git-tree-sha1 = "c4ac89fbc5e653ca2f6863df774247305bdadcc0" uuid = "82e4d734-157c-48bb-816b-45c225c6df19" version = "0.3.0" [[ImageMagick]] deps = ["FileIO", "ImageCore", "ImageMagick_jll", "InteractiveUtils", "Libdl", "Pkg", "Random"] git-tree-sha1 = "318342a5099a9c952b4de087344a2db831458c87" uuid = "6218d12a-5da1-5696-b52f-db25d2ecc6d1" version = "1.1.5" [[ImageMagick_jll]] deps = ["JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pkg", "Zlib_jll", "libpng_jll"] git-tree-sha1 = "1c0a2295cca535fabaf2029062912591e9b61987" uuid = "c73af94c-d91f-53ed-93a7-00f77d67a9d7" version = "6.9.10-12+3" [[ImageMetadata]] deps = ["AxisArrays", "ColorVectorSpace", "ImageAxes", "ImageCore", "IndirectArrays"] git-tree-sha1 = "c899f9bc8e4dc30da95628c88356355dd34f6108" uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" version = "0.9.2" [[ImageMorphology]] deps = ["ColorVectorSpace", "ImageCore", "LinearAlgebra", "TiledIteration"] git-tree-sha1 = "64ce92e15cc7750e8b4aa7500f80add029288cb2" uuid = "787d08f9-d448-5407-9aad-5290dd7ab264" version = "0.2.8" [[ImageQualityIndexes]] deps = ["ColorVectorSpace", "ImageCore", "ImageDistances", "ImageFiltering", "MappedArrays", "Statistics"] git-tree-sha1 = "3af30042a8fe85612a6a106cb20ca2fa1eb67bd6" uuid = "2996bd0c-7a13-11e9-2da2-2f5ce47296a9" version = "0.1.4" [[ImageSegmentation]] deps = ["Clustering", "DataStructures", "Distances", "ImageFiltering", "Images", "LightGraphs", "LinearAlgebra", "RegionTrees", "SimpleWeightedGraphs", "StaticArrays", "Statistics"] git-tree-sha1 = "3837584c12ac9170f2431c3423c2df430c386214" uuid = "80713f31-8817-5129-9cf8-209ff8fb23e1" version = "1.4.5" [[ImageShow]] deps = ["Base64", "FileIO", "ImageCore", "Requires"] git-tree-sha1 = "c9df184bc7c2e665f971079174aabb7d18f1845f" uuid = "4e3cecfd-b093-5904-9786-8bbb286a6a31" version = "0.2.3" [[ImageTransformations]] deps = ["AxisAlgorithms", "ColorVectorSpace", "CoordinateTransformations", "IdentityRanges", "ImageCore", "Interpolations", "OffsetArrays", "Rotations", "StaticArrays"] git-tree-sha1 = "5a0207dafba64650268bb5718875c0eea441e1ee" uuid = "02fcd773-0e25-5acc-982a-7f6622650795" version = "0.8.6" [[Images]] deps = ["AxisArrays", "Base64", "ColorVectorSpace", "FileIO", "Graphics", "ImageAxes", "ImageContrastAdjustment", "ImageCore", "ImageDistances", "ImageFiltering", "ImageMetadata", "ImageMorphology", "ImageQualityIndexes", "ImageShow", "ImageTransformations", "IndirectArrays", "MappedArrays", "OffsetArrays", "Random", "Reexport", "SparseArrays", "StaticArrays", "Statistics", "StatsBase", "TiledIteration"] git-tree-sha1 = "e070bf8f53739d9754cf51a8373a4319fbc7b696" uuid = "916415d5-f1e6-5110-898d-aaa5f9f070e0" version = "0.22.4" [[IndirectArrays]] git-tree-sha1 = "c2a145a145dc03a7620af1444e0264ef907bd44f" uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" version = "0.5.1" [[Inflate]] git-tree-sha1 = "f5fc07d4e706b84f72d54eedcc1c13d92fb0871c" uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" version = "0.1.2" [[IniFile]] deps = ["Test"] git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8" uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" version = "0.5.0" [[IntelOpenMP_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "fb8e1c7a5594ba56f9011310790e03b5384998d6" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" version = "2018.0.3+0" [[InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" [[Interpolations]] deps = ["AxisAlgorithms", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] git-tree-sha1 = "2b7d4e9be8b74f03115e64cf36ed2f48ae83d946" uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" version = "0.12.10" [[IntervalSets]] deps = ["Dates", "EllipsisNotation", "Statistics"] git-tree-sha1 = "3b1cef135bc532b3c3401b309e1b8a2a2ba26af5" uuid = "8197267c-284f-5f27-9208-e0e47529a953" version = "0.5.1" [[IterTools]] git-tree-sha1 = "05110a2ab1fc5f932622ffea2a003221f4782c18" uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" version = "1.3.0" [[IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" [[JLD2]] deps = ["CodecZlib", "DataStructures", "FileIO", "Mmap", "Pkg", "Printf", "UUIDs"] git-tree-sha1 = "9353b717ee4e27beab4e902c92a06bb5f160d2cf" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" version = "0.1.14" [[JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" version = "0.21.1" [[JpegTurbo_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "76e28bf35d0c179531b11e254f66bbcc1fd268ca" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" version = "2.0.1+2" [[Juno]] deps = ["Base64", "Logging", "Media", "Profile"] git-tree-sha1 = "90976c3ab792a98d240d42f9df07420ccfc60668" uuid = "e5e0dc1b-0480-54bc-9374-aad01c23163d" version = "0.8.3" [[LAME_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "a7999edc634307964d5651265ebf7c2e14b4ef91" uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" version = "3.100.0+2" [[LLVM]] deps = ["CEnum", "Libdl", "Printf", "Unicode"] git-tree-sha1 = "a662366a5d485dee882077e8da3e1a95a86d097f" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" version = "2.0.0" [[LibGit2]] deps = ["Printf"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" [[LibVPX_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "e02378f5707d0f94af22b99e4aba798e20368f6e" uuid = "dd192d2f-8180-539f-9fb4-cc70b1dcf69a" version = "1.9.0+0" [[Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" [[Libtiff_jll]] deps = ["JpegTurbo_jll", "Libdl", "Pkg", "Zlib_jll", "Zstd_jll"] git-tree-sha1 = "84ad722d8b9c6d3b3ca3a067d1da12b641352584" uuid = "89763e89-9b03-5906-acba-b20f662cd828" version = "4.1.0+1" [[LightGraphs]] deps = ["ArnoldiMethod", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] git-tree-sha1 = "6f85a35d2377cb2db1bc448ed0d6340d2bb1ea64" uuid = "093fc24a-ae57-5d10-9952-331d41423f4d" version = "1.3.3" [[LinearAlgebra]] deps = ["Libdl"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[LoopVectorization]] deps = ["DocStringExtensions", "LinearAlgebra", "OffsetArrays", "SIMDPirates", "SLEEFPirates", "UnPack", "VectorizationBase"] git-tree-sha1 = "3242a8f411e19eda9adc49d0b877681975c11375" uuid = "bdcacae8-1622-11e9-2a5c-532679323890" version = "0.8.26" [[Lz4_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "51b1db0732bbdcfabb60e36095cc3ed9c0016932" uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" version = "1.9.2+2" [[MKL_jll]] deps = ["IntelOpenMP_jll", "Libdl", "Pkg"] git-tree-sha1 = "eb540ede3aabb8284cb482aa41d00d6ca850b1f8" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" version = "2020.2.254+0" [[MacroTools]] deps = ["Markdown", "Random"] git-tree-sha1 = "f7d2e3f654af75f01ec49be82c231c382214223a" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" version = "0.5.5" [[MappedArrays]] git-tree-sha1 = "e2a02fe7ee86a10c707ff1756ab1650b40b140bb" uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" version = "0.2.2" [[Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[MbedTLS]] deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"] git-tree-sha1 = "426a6978b03a97ceb7ead77775a1da066343ec6e" uuid = "739be429-bea8-5141-9913-cc70e7f3736d" version = "1.0.2" [[MbedTLS_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "c0b1286883cac4e2b617539de41111e0776d02e8" uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" version = "2.16.8+0" [[Measures]] git-tree-sha1 = "e498ddeee6f9fdb4551ce855a46f54dbd900245f" uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" version = "0.3.1" [[Media]] deps = ["MacroTools", "Test"] git-tree-sha1 = "75a54abd10709c01f1b86b84ec225d26e840ed58" uuid = "e89f7d12-3494-54d1-8411-f7d8b9ae1f27" version = "0.5.0" [[MetaGraphs]] deps = ["JLD2", "LightGraphs", "Random"] git-tree-sha1 = "8900d368fa44bd61c7e598d6a0f577e347f3cf67" uuid = "626554b9-1ddb-594c-aa3c-2596fe9399a5" version = "0.6.5" [[Missings]] deps = ["DataAPI"] git-tree-sha1 = "ed61674a0864832495ffe0a7e889c0da76b0f4c8" uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" version = "0.4.4" [[Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" [[MosaicViews]] deps = ["MappedArrays", "OffsetArrays", "PaddedViews"] git-tree-sha1 = "29d121f9e7a6cf081278029121ed90e1f3b33de8" uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389" version = "0.2.3" [[MuladdMacro]] git-tree-sha1 = "c6190f9a7fc5d9d5915ab29f2134421b12d24a68" uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" version = "0.2.2" [[NNlib]] deps = ["Libdl", "LinearAlgebra", "Pkg", "Requires", "Statistics"] git-tree-sha1 = "8ec4693a5422f0b064ce324f59351f24aa474893" uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" version = "0.7.4" [[NaNMath]] git-tree-sha1 = "c84c576296d0e2fbb3fc134d3e09086b3ea617cd" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" version = "0.3.4" [[NearestNeighbors]] deps = ["Distances", "StaticArrays"] git-tree-sha1 = "8bc6180f328f3c0ea2663935db880d34c57d6eae" uuid = "b8a86587-4115-5ab1-83bc-aa920d37bbce" version = "0.4.4" [[NetworkLayout]] deps = ["DelimitedFiles", "GeometryTypes", "LinearAlgebra", "SparseArrays", "Test"] git-tree-sha1 = "adde9ad01842a4f62c3724b8707bed90293f0f3f" uuid = "46757867-2c16-5918-afeb-47bfcb05e46a" version = "0.2.0" [[OffsetArrays]] git-tree-sha1 = "663d3402efa943c95f4736fa7b462e9dd97be1a9" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" version = "1.2.0" [[Ogg_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "4c3275cda1ba99d1244d0b82a9d0ca871c3cf66b" uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" version = "1.3.4+1" [[OpenSSL_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "997359379418d233767f926ea0c43f0e731735c0" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" version = "1.1.1+5" [[OpenSpecFun_jll]] deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"] git-tree-sha1 = "d51c416559217d974a1113522d5919235ae67a87" uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.3+3" [[Opus_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "cc90a125aa70dbb069adbda2b913b02cf2c5f6fe" uuid = "91d4177d-7536-5919-b921-800302f37372" version = "1.3.1+2" [[OrderedCollections]] git-tree-sha1 = "293b70ac1780f9584c89268a6e2a560d938a7065" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.3.0" [[PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse", "Test"] git-tree-sha1 = "b3405086eb6a974eba1958923d46bc0e1c2d2d63" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" version = "0.10.0" [[PNGFiles]] deps = ["CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] git-tree-sha1 = "2252a42725b28193740fdbed5d85578ac642a074" uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" version = "0.3.1" [[PaddedViews]] deps = ["OffsetArrays"] git-tree-sha1 = "100195a79b577d5747db98bf1732c3686285fa1e" uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" version = "0.5.5" [[Parameters]] deps = ["OrderedCollections", "UnPack"] git-tree-sha1 = "38b2e970043613c187bd56a995fe2e551821eb4a" uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" version = "0.12.1" [[Parsers]] deps = ["Dates", "Test"] git-tree-sha1 = "8077624b3c450b15c087944363606a6ba12f925e" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" version = "1.0.10" [[Pkg]] deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" [[PlotThemes]] deps = ["PlotUtils", "Requires", "Statistics"] git-tree-sha1 = "c6f5ea535551b3b16835134697f0c65d06c94b91" uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" version = "2.0.0" [[PlotUtils]] deps = ["ColorSchemes", "Colors", "Dates", "Printf", "Random", "Reexport", "Statistics"] git-tree-sha1 = "8d23333aee2e2733a5cd4e1985462df8203f47f7" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" version = "1.0.6" [[Plots]] deps = ["Base64", "Contour", "Dates", "FFMPEG", "FixedPointNumbers", "GR", "GeometryBasics", "GeometryTypes", "JSON", "LinearAlgebra", "Measures", "NaNMath", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "Requires", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs"] git-tree-sha1 = "0a9119948a55993312c46d40b3f26387e4dd35e9" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" version = "1.5.9" [[Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" [[Profile]] deps = ["Printf"] uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" [[ProgressMeter]] deps = ["Distributed", "Printf"] git-tree-sha1 = "2de4cddc0ceeddafb6b143b5b6cd9c659b64507c" uuid = "92933f4c-e287-5a05-a399-4b506db050ca" version = "1.3.2" [[QuadGK]] deps = ["DataStructures", "LinearAlgebra"] git-tree-sha1 = "12fbe86da16df6679be7521dfb39fbc861e1dc7b" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" version = "2.4.1" [[REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[Random]] deps = ["Serialization"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [[RangeArrays]] git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" version = "0.3.2" [[Ratios]] git-tree-sha1 = "37d210f612d70f3f7d57d488cb3b6eff56ad4e41" uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" version = "0.4.0" [[RecipesBase]] git-tree-sha1 = "6ee6c35fe69e79e17c455a386c1ccdc66d9f7da4" uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" version = "1.1.0" [[RecipesPipeline]] deps = ["Dates", "NaNMath", "PlotUtils", "RecipesBase"] git-tree-sha1 = "4a325c9bcc2d8e62a8f975b9666d0251d53b63b9" uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" version = "0.1.13" [[Reexport]] deps = ["Pkg"] git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0" uuid = "189a3867-3050-52da-a836-e630ba90ab69" version = "0.2.0" [[RegionTrees]] deps = ["IterTools", "LinearAlgebra", "StaticArrays"] git-tree-sha1 = "c103368232a786cc6f73480842bc471eb24c8fed" uuid = "dee08c22-ab7f-5625-9660-a9af2021b33f" version = "0.3.1" [[Requires]] deps = ["UUIDs"] git-tree-sha1 = "8c08d0c7812169e438a8478dae2a529377ad13f7" uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.0.2" [[Rmath]] deps = ["Random", "Rmath_jll"] git-tree-sha1 = "86c5647b565873641538d8f812c04e4c9dbeb370" uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" version = "0.6.1" [[Rmath_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "d76185aa1f421306dec73c057aa384bad74188f0" uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" version = "0.2.2+1" [[Rotations]] deps = ["LinearAlgebra", "StaticArrays", "Statistics"] git-tree-sha1 = "445b72242dbdecba9bfc42034daafdd901bbf6a9" uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc" version = "1.0.1" [[SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" [[SIMDPirates]] deps = ["VectorizationBase"] git-tree-sha1 = "450d163d3279a1d35e3aad3352a5167ef21b84a4" uuid = "21efa798-c60a-11e8-04d3-e1a92915a26a" version = "0.8.25" [[SLEEFPirates]] deps = ["Libdl", "SIMDPirates", "VectorizationBase"] git-tree-sha1 = "67ae90a18aa8c22bf159318300e765fbd89ddf6e" uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" version = "0.5.5" [[SegyIO]] deps = ["Distributed", "Printf", "Test"] git-tree-sha1 = "4292ac6643d8a21a9f9b7c099b9c92df06572178" uuid = "157a0f19-4d44-4de5-a0d0-07e2f0ac4dfa" version = "0.7.3" [[Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" [[SharedArrays]] deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" [[Showoff]] deps = ["Dates"] git-tree-sha1 = "e032c9df551fb23c9f98ae1064de074111b7bc39" uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" version = "0.3.1" [[SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] git-tree-sha1 = "daf7aec3fe3acb2131388f93a4c409b8c7f62226" uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" version = "0.9.3" [[SimpleWeightedGraphs]] deps = ["LightGraphs", "LinearAlgebra", "Markdown", "SparseArrays", "Test"] git-tree-sha1 = "f3f7396c2d5e9d4752357894889a87340262f904" uuid = "47aef6b3-ad0c-573a-a1e2-d07658019622" version = "1.1.1" [[Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" [[SortingAlgorithms]] deps = ["DataStructures", "Random", "Test"] git-tree-sha1 = "03f5898c9959f8115e30bc7226ada7d0df554ddd" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" version = "0.3.1" [[SparseArrays]] deps = ["LinearAlgebra", "Random"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[SpecialFunctions]] deps = ["OpenSpecFun_jll"] git-tree-sha1 = "d8d8b8a9f4119829410ecd706da4cc8594a1e020" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" version = "0.10.3" [[StaticArrays]] deps = ["LinearAlgebra", "Random", "Statistics"] git-tree-sha1 = "016d1e1a00fabc556473b07161da3d39726ded35" uuid = "90137ffa-7385-5640-81b9-e52037218182" version = "0.12.4" [[Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" [[StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"] git-tree-sha1 = "d72a47c47c522e283db774fc8c459dd5ed773710" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" version = "0.33.1" [[StatsFuns]] deps = ["Rmath", "SpecialFunctions"] git-tree-sha1 = "04a5a8e6ab87966b43f247920eab053fd5fdc925" uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" version = "0.9.5" [[StructArrays]] deps = ["Adapt", "DataAPI", "Tables"] git-tree-sha1 = "8099ed9fb90b6e754d6ba8c6ed8670f010eadca0" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" version = "0.4.4" [[SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" [[TableTraits]] deps = ["IteratorInterfaceExtensions"] git-tree-sha1 = "b1ad568ba658d8cbb3b892ed5380a6f3e781a81e" uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" version = "1.0.0" [[Tables]] deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "TableTraits", "Test"] git-tree-sha1 = "b7f762e9820b7fab47544c36f26f54ac59cf8abf" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" version = "1.0.5" [[Test]] deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[TiledIteration]] deps = ["OffsetArrays"] git-tree-sha1 = "98693daea9bb49aba71eaad6b168b152d2310358" uuid = "06e1c1a7-607b-532d-9fad-de7d9aa2abac" version = "0.2.4" [[TimerOutputs]] deps = ["Printf"] git-tree-sha1 = "f458ca23ff80e46a630922c555d838303e4b9603" uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.6" [[TranscodingStreams]] deps = ["Random", "Test"] git-tree-sha1 = "7c53c35547de1c5b9d46a4797cf6d8253807108c" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" version = "0.9.5" [[UUIDs]] deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" [[UnPack]] git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" version = "1.0.2" [[Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" [[VectorizationBase]] deps = ["CpuId", "Libdl", "LinearAlgebra"] git-tree-sha1 = "03e2fbb479a1ea350398195b6fbf439bae0f8260" uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" version = "0.12.33" [[WoodburyMatrices]] deps = ["LinearAlgebra", "SparseArrays"] git-tree-sha1 = "28ffe06d28b1ba8fdb2f36ec7bb079fac81bac0d" uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" version = "0.5.2" [[ZipFile]] deps = ["Libdl", "Printf", "Zlib_jll"] git-tree-sha1 = "254975fef2fc526583bb9b7c9420fe66ffe09f2f" uuid = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea" version = "0.9.2" [[Zlib_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "fdd89e5ab270ea0f2a0174bd9093e557d06d4bfa" uuid = "83775a58-1f1d-513f-b197-d71354ab007a" version = "1.2.11+16" [[Zstd_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "4de91f4313d9e88162d461e282fe3066ab3a3c09" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" version = "1.4.5+1" [[Zygote]] deps = ["AbstractFFTs", "ArrayLayouts", "ChainRules", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "Future", "IRTools", "InteractiveUtils", "LinearAlgebra", "LoopVectorization", "MacroTools", "NNlib", "NaNMath", "Random", "Requires", "SpecialFunctions", "Statistics", "ZygoteRules"] git-tree-sha1 = "0079d92995b0fbcffd5d475d49ec8ca49375c471" uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" version = "0.5.4" [[ZygoteRules]] deps = ["MacroTools"] git-tree-sha1 = "b3b4882cc9accf6731a08cc39543fbc6b669dca8" uuid = "700de1a5-db45-46bc-99cf-38207098b444" version = "0.2.0" [[libass_jll]] deps = ["Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "f02d0db58888592e98c5f4953cef620ce9274eee" uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" version = "0.14.0+3" [[libfdk_aac_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "e17b4513993b4413d31cffd1b36a63625ebbc3d3" uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" version = "0.1.6+3" [[libpng_jll]] deps = ["Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "0a93f3eae5b80f08dc789e549657c199f1da6417" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" version = "1.6.37+5" [[libvorbis_jll]] deps = ["Libdl", "Ogg_jll", "Pkg"] git-tree-sha1 = "8014e1c1033009edcfe820ec25877a9f1862ba4c" uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" version = "1.3.6+5" [[x264_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "e496625b900df1b02ab0e02fad316b77446616ef" uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" version = "2020.7.14+1" [[x265_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "ac7d44fa1639a780d0ae79ca1a5a7f4181131825" uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" version = "3.0.0+2" ```

Version information:

CUDA 1.3.3
StatsBase v0.33.1

julia> versioninfo()
Julia Version 1.4.0
Commit b8e9a9ecc6 (2020-03-21 16:36 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
Environment:
  JULIA_CUDA_USE_BINARYBUILDER = false
  JULIA_NUM_THREADS = 5

Cuda version information:

CUDA toolkit 10.1.243, local installation
CUDA driver 10.1.0
NVIDIA driver 426.0.0

Libraries:
- CUBLAS: 10.2.1
- CURAND: 10.1.1
- CUFFT: 10.1.1
- CUSOLVER: 10.2.0
- CUSPARSE: 10.3.0
- CUPTI: 12.0.0
- NVML: 10.0.0+426.0
- CUDNN: 7.0.5 (for CUDA 9.1.0)
- CUTENSOR: missing

Toolchain:
- Julia: 1.4.0
- LLVM: 8.0.1
- PTX ISA support: 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 6.0, 6.1, 6.3
- Device support: sm_30, sm_32, sm_35, sm_37, sm_50, sm_52, sm_53, sm_60, sm_61, sm_62, sm_70, sm_72, sm_75

Environment:
- JULIA_CUDA_USE_BINARYBUILDER: false

1 device:
  0: Quadro P2000 (sm_61, 3.867 GiB / 4.000 GiB available)

NOTE: I have also reproduced the issue in Julia 1.5.0 on Linux, on a system where the CUDA.jl warning below does not occur and CUDA binaries were downloaded with binarybuilder.

sdewaele commented 4 years ago

I figured it out myself - the issue is caused by the fact that the transform mean and scale are on the CPU. When I transfer them to the GPU with cu, it works.

lorrp1 commented 3 years ago

@sdewaele could you please post how did you used cu() to transfer transform mean and scale?

sdewaele commented 3 years ago

I actually created a type similar to ZScoreTransform that supports CuArrays. The issue is that the StatsBase.ZScoreTransform does not support CuArrays because the type definition is limited to Vector{T}. A better solution would be to update the StatsBase to directly support it of course.

sdewaele commented 3 years ago

Using this zscore-transform.jl, the following seems to do the job:

using CUDA
using StatsBase

include("zscore-transform.jl")

# Generic version
Ac = cu(5randn(3,4).+2)
tc = fit(ZScoreTransformGeneric,Ac;dims=2)
Agc = StatsBase.transform(tc,Ac)

# Compare to original ZScoreTransform result
using Test
A = collect(Ac)
t = fit(ZScoreTransform,A;dims=2)
Ag = StatsBase.transform(t,A)

@test collect(Agc)≈Ag

I may submit a PR to StatsBase for this. The changes with respect to the current ZScoreTransform version are not that many. There is a quite some code duplication in the gist just to make ZScoreTransformGeneric work.

Note that there is also Flux.normalize. It works for CuArrays. However, Flux.normalize cannot be used if you want to apply the normalization parameters from a training dataset on a test dataset, which is typical for machine learning.

sdewaele commented 3 years ago

When completed, this PR will resolve this issue: https://github.com/JuliaStats/StatsBase.jl/pull/622

sdewaele commented 3 years ago

@lorrp1 The PR was merged into the master of StatsBase.

lorrp1 commented 3 years ago

@lorrp1 The PR was merged into the master of StatsBase.

Thanks I’m going to check it

@sdewaele