From 7674ea71f2de25aac07cfd915e1f97c5bc47c44e Mon Sep 17 00:00:00 2001 From: Chris Elrod Date: Mon, 3 Aug 2020 03:25:32 -0400 Subject: [PATCH] Test ZeroInitializedStridedPointer. --- Project.toml | 2 +- benchmark/Manifest.toml | 16 ++++++++-------- test/gemm.jl | 16 +++++++++++++++- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/Project.toml b/Project.toml index 09e3cd6f3..726a4206c 100644 --- a/Project.toml +++ b/Project.toml @@ -18,7 +18,7 @@ OffsetArrays = "1" SIMDPirates = "0.8.20" SLEEFPirates = "0.5.4" UnPack = "0,1" -VectorizationBase = "0.12.29" +VectorizationBase = "0.12.30" julia = "1.1" [extras] diff --git a/benchmark/Manifest.toml b/benchmark/Manifest.toml index 49f159a98..e6eb34270 100644 --- a/benchmark/Manifest.toml +++ b/benchmark/Manifest.toml @@ -154,9 +154,9 @@ version = "1.0.1" [[Distances]] deps = ["LinearAlgebra", "Statistics"] -git-tree-sha1 = "bed62cc5afcff16de797a9f38fb358b74071f785" +git-tree-sha1 = "23717536c81b63e250f682b0e0933769eecd1411" uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" -version = "0.9.0" +version = "0.8.2" [[Distributed]] deps = ["Random", "Serialization", "Sockets"] @@ -343,9 +343,9 @@ version = "0.21.0" [[Juno]] deps = ["Base64", "Logging", "Media", "Profile"] -git-tree-sha1 = "a686b0cf235fa3e491b79b4783c2d2382292b436" +git-tree-sha1 = "90976c3ab792a98d240d42f9df07420ccfc60668" uuid = "e5e0dc1b-0480-54bc-9374-aad01c23163d" -version = "0.8.2" +version = "0.8.3" [[KernelDensity]] deps = ["Distributions", "FFTW", "Interpolations", "Optim", "StatsBase", "Test"] @@ -413,17 +413,17 @@ deps = ["Libdl"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[Loess]] -deps = ["Distances", "Random", "Statistics", "Test"] -git-tree-sha1 = "0ee46caf683a422b595be4dfaed6cda28f541e25" +deps = ["Distances", "Statistics"] +git-tree-sha1 = "67b1bc5f42144fb83b065b8a8e117e56ec10e601" uuid = "4345ca2d-374a-55d4-8d30-97f9976e7612" -version = "0.5.0" +version = "0.5.1" [[Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[LoopVectorization]] deps = ["DocStringExtensions", "LinearAlgebra", "OffsetArrays", "SIMDPirates", "SLEEFPirates", "UnPack", "VectorizationBase"] -path = "/home/chriselrod/.julia/dev/LoopVectorization" +git-tree-sha1 = "695da000214847a1489c8d78ef781e0abd5b944a" uuid = "bdcacae8-1622-11e9-2a5c-532679323890" version = "0.8.21" diff --git a/test/gemm.jl b/test/gemm.jl index 90d6a3b7c..f293583d0 100644 --- a/test/gemm.jl +++ b/test/gemm.jl @@ -631,7 +631,19 @@ LoopVectorization.maybestaticsize(::LinearAlgebra.Adjoint{T,SizedMatrix{M,N,T}}, ::Val{2}) where {M,N,T} = LoopVectorization.Static{M}() LoopVectorization.maybestaticsize(::LinearAlgebra.Transpose{T,SizedMatrix{M,N,T}}, ::Val{1}) where {M,N,T} = LoopVectorization.Static{N}() LoopVectorization.maybestaticsize(::LinearAlgebra.Transpose{T,SizedMatrix{M,N,T}}, ::Val{2}) where {M,N,T} = LoopVectorization.Static{M}() - + +struct ZeroInitializedArray{T,N,A<:DenseArray{T,N}} <: DenseArray{T,N} + data::A +end +Base.size(A::ZeroInitializedArray) = size(A.data) +Base.length(A::ZeroInitializedArray) = length(A.data) +Base.axes(A::ZeroInitializedArray, i) = axes(A.data, i) +@inline Base.getindex(A::ZeroInitializedArray{T}) where {T} = zero(T) +Base.@propagate_inbounds Base.setindex!(A::ZeroInitializedArray, v, i...) = setindex!(A.data, v, i...) +function LoopVectorization.VectorizationBase.stridedpointer(A::ZeroInitializedArray) + LoopVectorization.VectorizationBase.ZeroInitializedStridedPointer(LoopVectorization.VectorizationBase.stridedpointer(A.data)) +end + for T ∈ (Float32, Float64, Int32, Int64) # let T = Int32 # exceeds_time_limit() && break @@ -684,6 +696,8 @@ @test C ≈ C2 AmuladdBavx!(C, At', Bt', 2, -1) @test C ≈ C2 + fill!(C, 9999.999); AmuladdBavx!(ZeroInitializedArray(C), At', Bt') + @test C ≈ C2 fill!(C, 9999.999); AmulB2x2avx!(C, A, B); @test C ≈ C2 fill!(C, 9999.999); AmulB2x2avx!(C, At', B);