Skip to content

Instantly share code, notes, and snippets.

@KristofferC
Created May 16, 2017 14:55
Show Gist options
  • Save KristofferC/61a6752025255ec0b5a4510c2e83263e to your computer and use it in GitHub Desktop.
Save KristofferC/61a6752025255ec0b5a4510c2e83263e to your computer and use it in GitHub Desktop.

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results that indicate possible regressions or improvements - are shown below (thus, an empty table means that all benchmark results remained invariant between builds).

ID time ratio memory ratio
["basic-operations", "Float32 * SymmetricTensor{2, 3, Float32}"] 0.88 (5%) ✅ 1.00 (1%)
["basic-operations", "Float32 * Tensor{2, 3, Float32}"] 0.86 (5%) ✅ 1.00 (1%)
["basic-operations", "Float32 * Vec{3, Float32}"] 0.86 (5%) ✅ 1.00 (1%)
["basic-operations", "Float64 * Tensor{2, 3, Float64}"] 1.14 (5%) ❌ 1.00 (1%)
["basic-operations", "Float64 * Tensor{4, 3, Float64}"] 0.93 (5%) ✅ 1.00 (1%)
["basic-operations", "SymmetricTensor{4, 3, Float32} - SymmetricTensor{4, 3, Float32}"] 1.11 (5%) ❌ 1.00 (1%)
["basic-operations", "SymmetricTensor{4, 3, Float64} * Float64"] 1.13 (5%) ❌ 1.00 (1%)
["basic-operations", "SymmetricTensor{4, 3, Float64} + SymmetricTensor{4, 3, Float64}"] 1.50 (5%) ❌ 1.00 (1%)
["basic-operations", "SymmetricTensor{4, 3, Float64} - SymmetricTensor{4, 3, Float64}"] 1.51 (5%) ❌ 1.00 (1%)
["basic-operations", "Tensor{4, 3, Float32} * Float32"] 0.94 (5%) ✅ 1.00 (1%)
["basic-operations", "Tensor{4, 3, Float64} * Float64"] 0.93 (5%) ✅ 1.00 (1%)
["basic-operations", "Vec{3, Float64} + Vec{3, Float64}"] 0.88 (5%) ✅ 1.00 (1%)
["constructors", "SymmetricTensor{2, 3}(A::Array)"] 0.11 (5%) ✅ 1.00 (1%)
["constructors", "SymmetricTensor{2, 3}(f::Function)"] 0.01 (5%) ✅ 1.00 (1%)
["constructors", "SymmetricTensor{4, 3}(A::Array)"] 0.11 (5%) ✅ 1.00 (1%)
["constructors", "SymmetricTensor{4, 3}(f::Function)"] 0.01 (5%) ✅ 1.00 (1%)
["constructors", "Tensor{1, 3}(A::Array)"] 0.11 (5%) ✅ 1.00 (1%)
["constructors", "Tensor{2, 3}(A::Array)"] 0.12 (5%) ✅ 1.00 (1%)
["constructors", "Tensor{2, 3}(f::Function)"] 0.01 (5%) ✅ 1.00 (1%)
["constructors", "Tensor{4, 3}(A::Array)"] 0.11 (5%) ✅ 1.00 (1%)
["constructors", "Tensor{4, 3}(f::Function)"] 0.02 (5%) ✅ 1.00 (1%)
["constructors", "Vec{3}(f::Function)"] 0.01 (5%) ✅ 1.00 (1%)
["constructors", "one(SymmetricTensor{4, 3, Float32})"] 1.19 (5%) ❌ 1.00 (1%)
["constructors", "one(SymmetricTensor{4, 3, Float64})"] 0.74 (5%) ✅ 1.00 (1%)
["constructors", "one(Tensor{2, 3, Float64})"] 0.80 (5%) ✅ 1.00 (1%)
["constructors", "ones(SymmetricTensor{2, 3, Float32})"] 1.15 (5%) ❌ 1.00 (1%)
["constructors", "rand(SymmetricTensor{2, 3, Float32})"] 0.95 (5%) ✅ 1.00 (1%)
["constructors", "rand(SymmetricTensor{4, 3, Float32})"] 1.09 (5%) ❌ 1.00 (1%)
["constructors", "rand(SymmetricTensor{4, 3, Float64})"] 0.90 (5%) ✅ 1.00 (1%)
["constructors", "rand(Tensor{4, 3, Float64})"] 0.90 (5%) ✅ 1.00 (1%)
["constructors", "rand(Vec{3, Float64})"] 0.90 (5%) ✅ 1.00 (1%)
["constructors", "zero(SymmetricTensor{4, 3, Float64})"] 0.90 (5%) ✅ 1.00 (1%)
["constructors", "zero(Tensor{2, 3, Float64})"] 0.86 (5%) ✅ 1.00 (1%)
["constructors", "zero(Tensor{4, 3, Float32})"] 1.05 (5%) ❌ 1.00 (1%)
["dcontract", "SymmetricTensor{2, 3, Float32} ⊡ SymmetricTensor{2, 3, Float32}"] 0.94 (5%) ✅ 1.00 (1%)
["dcontract", "Tensor{4, 3, Float32} ⊡ Tensor{4, 3, Float32}"] 1.28 (5%) ❌ 1.00 (1%)
["dcontract", "Tensor{4, 3, Float64} ⊡ Tensor{2, 3, Float64}"] 0.74 (5%) ✅ 1.00 (1%)
["dcontract", "Tensor{4, 3, Float64} ⊡ Tensor{4, 3, Float64}"] 0.93 (5%) ✅ 1.00 (1%)
["dot", "SymmetricTensor{2, 3, Float32} ⋅ SymmetricTensor{2, 3, Float32}"] 1.47 (5%) ❌ 1.00 (1%)
["dot", "SymmetricTensor{2, 3, Float32} ⋅ Vec{3, Float32}"] 1.39 (5%) ❌ 1.00 (1%)
["dot", "SymmetricTensor{2, 3, Float64} ⋅ SymmetricTensor{2, 3, Float64}"] 1.44 (5%) ❌ 1.00 (1%)
["dot", "SymmetricTensor{2, 3, Float64} ⋅ Vec{3, Float64}"] 1.12 (5%) ❌ 1.00 (1%)
["dot", "SymmetricTensor{2, 3, ForwardDiff.Dual{4,Float64}} ⋅ SymmetricTensor{2, 3, ForwardDiff.Dual{4,Float64}}"] 0.67 (5%) ✅ 1.00 (1%)
["dot", "SymmetricTensor{2, 3, ForwardDiff.Dual{4,Float64}} ⋅ Vec{3, ForwardDiff.Dual{4,Float64}}"] 0.60 (5%) ✅ 1.00 (1%)
["dot", "Tensor{2, 3, ForwardDiff.Dual{4,Float64}} ⋅ Tensor{2, 3, ForwardDiff.Dual{4,Float64}}"] 0.68 (5%) ✅ 1.00 (1%)
["dot", "Tensor{2, 3, ForwardDiff.Dual{4,Float64}} ⋅ Vec{3, ForwardDiff.Dual{4,Float64}}"] 0.59 (5%) ✅ 1.00 (1%)
["dot", "Vec{3, Float32} ⋅ SymmetricTensor{2, 3, Float32}"] 1.29 (5%) ❌ 1.00 (1%)
["dot", "Vec{3, Float32} ⋅ Tensor{2, 3, Float32}"] 1.17 (5%) ❌ 1.00 (1%)
["dot", "Vec{3, Float64} ⋅ SymmetricTensor{2, 3, Float64}"] 1.25 (5%) ❌ 1.00 (1%)
["dot", "Vec{3, Float64} ⋅ Tensor{2, 3, Float64}"] 1.20 (5%) ❌ 1.00 (1%)
["dot", "Vec{3, ForwardDiff.Dual{4,Float64}} ⋅ SymmetricTensor{2, 3, ForwardDiff.Dual{4,Float64}}"] 0.61 (5%) ✅ 1.00 (1%)
["dot", "Vec{3, ForwardDiff.Dual{4,Float64}} ⋅ Tensor{2, 3, ForwardDiff.Dual{4,Float64}}"] 0.59 (5%) ✅ 1.00 (1%)
["dot", "Vec{3, ForwardDiff.Dual{4,Float64}} ⋅ Vec{3, ForwardDiff.Dual{4,Float64}}"] 0.51 (5%) ✅ 1.00 (1%)
["gradient", "∇S(SymmetricTensor{2, 3, Float32})"] 2.71 (5%) ❌ Inf (1%) ❌
["gradient", "∇S(SymmetricTensor{2, 3, Float64})"] 3.06 (5%) ❌ Inf (1%) ❌
["gradient", "∇S(Tensor{2, 3, Float32})"] 2.70 (5%) ❌ Inf (1%) ❌
["gradient", "∇S(Tensor{2, 3, Float64})"] 3.07 (5%) ❌ Inf (1%) ❌
["gradient", "∇Ψ(SymmetricTensor{2, 3, Float32})"] 5.81 (5%) ❌ Inf (1%) ❌
["gradient", "∇Ψ(SymmetricTensor{2, 3, Float64})"] 8.08 (5%) ❌ Inf (1%) ❌
["gradient", "∇Ψ(Tensor{2, 3, Float32})"] 5.80 (5%) ❌ Inf (1%) ❌
["gradient", "∇Ψ(Tensor{2, 3, Float64})"] 8.03 (5%) ❌ Inf (1%) ❌
["hessian", "ΔΨ(SymmetricTensor{2, 3, Float32})"] 4.39 (5%) ❌ Inf (1%) ❌
["hessian", "ΔΨ(SymmetricTensor{2, 3, Float64})"] 3.85 (5%) ❌ Inf (1%) ❌
["hessian", "ΔΨ(Tensor{2, 3, Float32})"] 4.09 (5%) ❌ Inf (1%) ❌
["hessian", "ΔΨ(Tensor{2, 3, Float64})"] 3.78 (5%) ❌ Inf (1%) ❌
["other", "Tensors.skew(SymmetricTensor{2, 3, ForwardDiff.Dual{4,Float64}})"] 1.85 (5%) ❌ 1.00 (1%)
["other", "Tensors.skew(Tensor{2, 3, ForwardDiff.Dual{4,Float64}})"] 0.93 (5%) ✅ 1.00 (1%)
["other", "Tensors.symmetric(SymmetricTensor{2, 3, Float32})"] 0.84 (5%) ✅ 1.00 (1%)
["other", "Tensors.symmetric(SymmetricTensor{2, 3, Float64})"] 1.32 (5%) ❌ 1.00 (1%)
["other", "Tensors.symmetric(SymmetricTensor{2, 3, ForwardDiff.Dual{4,Float64}})"] 0.63 (5%) ✅ 1.00 (1%)
["other", "Tensors.symmetric(SymmetricTensor{4, 3, Float32})"] 0.66 (5%) ✅ 1.00 (1%)
["other", "Tensors.symmetric(SymmetricTensor{4, 3, Float64})"] 0.25 (5%) ✅ 1.00 (1%)
["other", "Tensors.symmetric(SymmetricTensor{4, 3, ForwardDiff.Dual{4,Float64}})"] 1.69 (5%) ❌ 1.00 (1%)
["other", "Tensors.symmetric(Tensor{4, 3, Float32})"] 0.94 (5%) ✅ 1.00 (1%)
["other", "Tensors.vol(Tensor{2, 3, Float32})"] 1.07 (5%) ❌ 1.00 (1%)
["other", "det(Tensor{2, 3, Float32})"] 1.05 (5%) ❌ 1.00 (1%)
["other", "mean(SymmetricTensor{2, 3, Float64})"] 1.05 (5%) ❌ 1.00 (1%)
["other", "norm(SymmetricTensor{2, 3, ForwardDiff.Dual{4,Float64}})"] 0.88 (5%) ✅ 1.00 (1%)
["other", "norm(SymmetricTensor{4, 3, ForwardDiff.Dual{4,Float64}})"] 0.91 (5%) ✅ 1.00 (1%)
["other", "norm(Tensor{2, 3, ForwardDiff.Dual{4,Float64}})"] 0.90 (5%) ✅ 1.00 (1%)
["other", "trace(SymmetricTensor{2, 3, Float64})"] 1.19 (5%) ❌ 1.00 (1%)
["other", "trace(Tensor{2, 3, Float32})"] 1.06 (5%) ❌ 1.00 (1%)
["other", "trace(Tensor{2, 3, Float64})"] 0.82 (5%) ✅ 1.00 (1%)
["other", "transpose(SymmetricTensor{2, 3, Float64})"] 1.29 (5%) ❌ 1.00 (1%)
["other", "transpose(SymmetricTensor{2, 3, ForwardDiff.Dual{4,Float64}})"] 0.63 (5%) ✅ 1.00 (1%)
["other", "transpose(Tensor{2, 3, ForwardDiff.Dual{4,Float64}})"] 1.42 (5%) ❌ 1.00 (1%)
["otimes", "SymmetricTensor{2, 3, Float32} ⊗ SymmetricTensor{2, 3, Float32}"] 0.37 (5%) ✅ 1.00 (1%)
["promotion", "SymmetricTensor{2, 3, Float32} -> SymmetricTensor{2, 3, Float64}"] 0.30 (5%) ✅ 1.00 (1%)
["promotion", "SymmetricTensor{2, 3} -> Tensor{2, 3}"] 0.15 (5%) ✅ 1.00 (1%)
["promotion", "SymmetricTensor{4, 3, Float32} -> SymmetricTensor{4, 3, Float64}"] 0.28 (5%) ✅ 1.00 (1%)
["promotion", "SymmetricTensor{4, 3} -> Tensor{4, 3}"] 0.57 (5%) ✅ 1.00 (1%)
["promotion", "Tensor{2, 3, Float32} -> Tensor{2, 3, Float64}"] 0.18 (5%) ✅ 1.00 (1%)
["promotion", "Tensor{4, 3, Float32} -> Tensor{4, 3, Float64}"] 0.18 (5%) ✅ 1.00 (1%)
["promotion", "Vec{dim, Float32} -> Vec{3, Float64}"] 0.27 (5%) ✅ 1.00 (1%)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment