[RFC-ANN] SystemBenchmark.jl

In trying to get to the bottom of slow performance on some resource-limited systems, I started up SystemBenchmark.jl for running a quick series of basic representative tests on a system to quantify performance across a few different areas. The whole test suite takes ~1.5 mins to run.

The package includes baked-in results from a standard 2019 9th gen i7 laptop with a nvidia GPU running 1.4.1 on Linux, for easy comparison.

Here’s a 2018 macbook pro (no nvidia gpu) compared to the reference, highlighting some surprisingly slow performance, particularly the SSD IO.

pkg>add https://github.com/ianshmean/SystemBenchmark.jl
julia> using SystemBenchmark
julia> res = comparetoref();
[ Info: CuArrays.functional() == false. No usable GPU detected
[ Info: Printing of results may be truncated. To view the full results use `show(res, allrows=true)`
julia> show(res, allrows=true, allcols=true)
25Γ—5 DataFrames.DataFrame
β”‚ Row β”‚ cat         β”‚ testname          β”‚ ref_res                                  β”‚ test_res                                 β”‚ factor    β”‚
β”‚     β”‚ String      β”‚ String            β”‚ Any                                      β”‚ Any                                      β”‚ Any       β”‚
β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 1   β”‚ info        β”‚ SysBenchVer       β”‚ 0.2.0                                    β”‚ 0.2.0                                    β”‚ Equal     β”‚
β”‚ 2   β”‚ info        β”‚ JuliaVer          β”‚ 1.4.1                                    β”‚ 1.4.1                                    β”‚ Equal     β”‚
β”‚ 3   β”‚ info        β”‚ OS                β”‚ Linux (x86_64-pc-linux-gnu)              β”‚ macOS (x86_64-apple-darwin18.7.0)        β”‚ Not Equal β”‚
β”‚ 4   β”‚ info        β”‚ CPU               β”‚ Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz β”‚ Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz β”‚ Not Equal β”‚
β”‚ 5   β”‚ info        β”‚ WORD_SIZE         β”‚ 64                                       β”‚ 64                                       β”‚ Equal     β”‚
β”‚ 6   β”‚ info        β”‚ LIBM              β”‚ libopenlibm                              β”‚ libopenlibm                              β”‚ Equal     β”‚
β”‚ 7   β”‚ info        β”‚ LLVM              β”‚ libLLVM-8.0.1 (ORCJIT, skylake)          β”‚ libLLVM-8.0.1 (ORCJIT, skylake)          β”‚ Equal     β”‚
β”‚ 8   β”‚ info        β”‚ GPU               β”‚ GeForce GTX 1650 with Max-Q Design       β”‚ missing                                  β”‚ Not Equal β”‚
β”‚ 9   β”‚ cpu         β”‚ FloatMul          β”‚ 1.159e-6                                 β”‚ 1.766e-6                                 β”‚ 1.52373   β”‚
β”‚ 10  β”‚ cpu         β”‚ FusedMulAdd       β”‚ 1.7e-8                                   β”‚ 3.8e-8                                   β”‚ 2.23529   β”‚
β”‚ 11  β”‚ cpu         β”‚ FloatSin          β”‚ 4.0540000000000005e-6                    β”‚ 5.722e-6                                 β”‚ 1.41145   β”‚
β”‚ 12  β”‚ cpu         β”‚ VecMulBroad       β”‚ 2.9813065326633165e-5                    β”‚ 4.89347e-5                               β”‚ 1.64138   β”‚
β”‚ 13  β”‚ cpu         β”‚ CPUMatMul         β”‚ 0.018634                                 β”‚ 0.037384                                 β”‚ 2.00623   β”‚
β”‚ 14  β”‚ cpu         β”‚ MatMulBroad       β”‚ 0.0043675                                β”‚ 0.0224699                                β”‚ 5.14481   β”‚
β”‚ 15  β”‚ cpu         β”‚ 3DMulBroad        β”‚ 0.0010295999999999999                    β”‚ 0.0018749                                β”‚ 1.821     β”‚
β”‚ 16  β”‚ cpu         β”‚ peakflops         β”‚ 1.7255522888933444e11                    β”‚ 2.08563e11                               β”‚ 1.20867   β”‚
β”‚ 17  β”‚ cpu         β”‚ FFMPEGH264Write   β”‚ 107.505687                               β”‚ 153.187                                  β”‚ 1.42492   β”‚
β”‚ 18  β”‚ mem         β”‚ DeepCopy          β”‚ 0.00018644988864142538                   β”‚ 0.000212379                              β”‚ 1.13907   β”‚
β”‚ 19  β”‚ diskio      β”‚ DiskWrite1KB      β”‚ 0.0318615                                β”‚ 0.145938                                 β”‚ 4.5804    β”‚
β”‚ 20  β”‚ diskio      β”‚ DiskWrite1MB      β”‚ 0.928177                                 β”‚ 0.737279                                 β”‚ 0.794331  β”‚
β”‚ 21  β”‚ diskio      β”‚ DiskRead1KB       β”‚ 0.006769                                 β”‚ 0.068964                                 β”‚ 10.1882   β”‚
β”‚ 22  β”‚ diskio      β”‚ DiskRead1MB       β”‚ 0.14344                                  β”‚ 0.591229                                 β”‚ 4.12179   β”‚
β”‚ 23  β”‚ loading     β”‚ JuliaLoad         β”‚ 91.214667                                β”‚ 216.426                                  β”‚ 2.37271   β”‚
β”‚ 24  β”‚ compilation β”‚ compilecache      β”‚ 207.988182                               β”‚ 348.355                                  β”‚ 1.67488   β”‚
β”‚ 25  β”‚ compilation β”‚ create_expr_cache β”‚ 0.84871                                  β”‚ 13.9177                                  β”‚ 16.3987   β”‚

RFC:
Before this is released and versioned, I’m sure the tests could be improved & added to. I’d love to cover all the important factors that affects how fast a system is, and in particular how fast Julia is on that system. Feedback, PR’s and contributors very welcome!

25 Likes

It worked for me without issue. Very neat.

1 Like

Great! Please feel free to post results. It would be good to get samples to start to identify platform issues

Didn’t know if you wanted this to turn into a comparison thread haha

julia> comparison_df = compareToRef()
[ Info: CuArrays.functional() == false. No usable GPU detected
Compilation tests100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| Time: 0:01:06
Reference system ----------------------
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
  GPU: GeForce GTX 1650 with Max-Q Design

Test system ---------------------------
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, skylake)


12Γ—5 DataFrames.DataFrame
β”‚ Row β”‚ cat         β”‚ testname        β”‚ ref_ms      β”‚ test_ms     β”‚ factor   β”‚
β”‚     β”‚ String      β”‚ String          β”‚ Float64     β”‚ Float64     β”‚ Float64  β”‚
β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 1   β”‚ cpu         β”‚ FloatMul        β”‚ 1.134e-6    β”‚ 1.308e-6    β”‚ 1.15344  β”‚
β”‚ 2   β”‚ cpu         β”‚ FloatSin        β”‚ 4.051e-6    β”‚ 4.295e-6    β”‚ 1.06023  β”‚
β”‚ 3   β”‚ cpu         β”‚ VecMulBroad     β”‚ 2.99025e-5  β”‚ 3.24276e-5  β”‚ 1.08444  β”‚
β”‚ 4   β”‚ cpu         β”‚ CPUMatMul       β”‚ 0.018874    β”‚ 0.020791    β”‚ 1.10157  β”‚
β”‚ 5   β”‚ cpu         β”‚ MatMulBroad     β”‚ 0.00413388  β”‚ 0.00278917  β”‚ 0.67471  β”‚
β”‚ 6   β”‚ cpu         β”‚ 3DMulBroad      β”‚ 0.0010365   β”‚ 0.0011558   β”‚ 1.1151   β”‚
β”‚ 7   β”‚ cpu         β”‚ FFMPEGH264Write β”‚ 105.757     β”‚ 113.865     β”‚ 1.07667  β”‚
β”‚ 8   β”‚ mem         β”‚ DeepCopy        β”‚ 0.000177074 β”‚ 0.000155921 β”‚ 0.880542 β”‚
β”‚ 9   β”‚ diskio      β”‚ TempdirWrite    β”‚ 0.024308    β”‚ 0.028252    β”‚ 1.16225  β”‚
β”‚ 10  β”‚ diskio      β”‚ TempdirRead     β”‚ 0.0049865   β”‚ 0.00573367  β”‚ 1.14984  β”‚
β”‚ 11  β”‚ loading     β”‚ JuliaLoad       β”‚ 91.921      β”‚ 103.476     β”‚ 1.1257   β”‚
β”‚ 12  β”‚ compilation β”‚ compilecache    β”‚ 118.46      β”‚ 157.12      β”‚ 1.32635  β”‚
1 Like

I’m gonna try this out on my wife’s old 2005 MacBook that I use as a garage shop computer. Wish me luck.

4 Likes

VideoIO dependency of SystemBenchmark.jl could not be built.

(base) sari@laptop:/tmp$ julia 
 Activating environment at `~/.julia/environments/dev-env/Project.toml`
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.4.1 (2020-04-14)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

(@dev-env) pkg> add https://github.com/ianshmean/SystemBenchmark.jl
   Updating git-repo `https://github.com/ianshmean/SystemBenchmark.jl`
   Updating registry at `~/.julia/registries/General`
   Updating git-repo `https://github.com/JuliaRegistries/General.git`
  Resolving package versions...
   Updating `~/.julia/environments/dev-env/Project.toml`
  [30cdaa97] + SystemBenchmark v0.1.0 #master (https://github.com/ianshmean/SystemBenchmark.jl)
   Updating `~/.julia/environments/dev-env/Manifest.toml`
  [fa961155] + CEnum v0.2.0
  [3895d2a7] + CUDAapi v4.0.0
  [c5f51814] + CUDAdrv v6.3.0
  [be33ccc6] + CUDAnative v3.0.4
  [f68482b8] + Cthulhu v1.0.2
  [3a865a2d] + CuArrays v2.1.0
  [e2ba6199] + ExprTools v0.1.1
  [b22a6f82] ↑ FFMPEG_jll v4.1.0+2 β‡’ v4.1.0+3
  [559328eb] ↑ FriBidi_jll v1.0.5+2 β‡’ v1.0.5+3
  [0c68f7d7] + GPUArrays v3.2.0
  [c1c5ebd0] ↑ LAME_jll v3.100.0+0 β‡’ v3.100.0+1
  [929cbde3] + LLVM v1.4.1
  [872c559c] + NNlib v0.6.6
  [30cdaa97] + SystemBenchmark v0.1.0 #master (https://github.com/ianshmean/SystemBenchmark.jl)
  [a759f4b9] + TimerOutputs v0.5.5
  [d6d074c3] + VideoIO v0.6.7
  [0ac62f75] ↑ libass_jll v0.14.0+1 β‡’ v0.14.0+2
  [f638f0a6] ↑ libfdk_aac_jll v0.1.6+1 β‡’ v0.1.6+2
  [f27f6e37] ↑ libvorbis_jll v1.3.6+3 β‡’ v1.3.6+4
  [1270edf5] ↑ x264_jll v2019.5.25+1 β‡’ v2019.5.25+2
  [dfaa095f] ↑ x265_jll v3.0.0+0 β‡’ v3.0.0+1

julia> using SystemBenchmark
[ Info: Precompiling SystemBenchmark [30cdaa97-48ad-4abc-9688-3a7175b8083d]
Deps path: /home/sari/.julia/packages/VideoIO/AZ2p0/src/../deps/deps.jl
ERROR: LoadError: LoadError: VideoIO not installed properly, run `] build VideoIO`, restart Julia and try again
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] top-level scope at /home/sari/.julia/packages/VideoIO/AZ2p0/src/init.jl:8
 [3] include(::Module, ::String) at ./Base.jl:377
 [4] include(::String) at /home/sari/.julia/packages/VideoIO/AZ2p0/src/VideoIO.jl:1
 [5] top-level scope at /home/sari/.julia/packages/VideoIO/AZ2p0/src/VideoIO.jl:17
 [6] include(::Module, ::String) at ./Base.jl:377
 [7] top-level scope at none:2
 [8] eval at ./boot.jl:331 [inlined]
 [9] eval(::Expr) at ./client.jl:449
 [10] top-level scope at ./none:3
in expression starting at /home/sari/.julia/packages/VideoIO/AZ2p0/src/init.jl:6
in expression starting at /home/sari/.julia/packages/VideoIO/AZ2p0/src/VideoIO.jl:17
ERROR: LoadError: Failed to precompile VideoIO [d6d074c3-1acf-5d4c-9a43-ef38773959a2] to /home/sari/.julia/compiled/v1.4/VideoIO/tZxJ7_ZwCM6.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
 [3] _require(::Base.PkgId) at ./loading.jl:1029
 [4] require(::Base.PkgId) at ./loading.jl:927
 [5] require(::Module, ::Symbol) at ./loading.jl:922
 [6] include(::Module, ::String) at ./Base.jl:377
 [7] top-level scope at none:2
 [8] eval at ./boot.jl:331 [inlined]
 [9] eval(::Expr) at ./client.jl:449
 [10] top-level scope at ./none:3
in expression starting at /home/sari/.julia/packages/SystemBenchmark/7SQzh/src/SystemBenchmark.jl:9
ERROR: Failed to precompile SystemBenchmark [30cdaa97-48ad-4abc-9688-3a7175b8083d] to /home/sari/.julia/compiled/v1.4/SystemBenchmark/GSlI1_ZwCM6.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
 [3] _require(::Base.PkgId) at ./loading.jl:1029
 [4] require(::Base.PkgId) at ./loading.jl:927
 [5] require(::Module, ::Symbol) at ./loading.jl:922
 [6] eval(::Module, ::Any) at ./boot.jl:331
 [7] eval_user_input(::Any, ::REPL.REPLBackend) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/REPL/src/REPL.jl:86
 [8] run_backend(::REPL.REPLBackend) at /home/sari/.julia/packages/Revise/Pcs5V/src/Revise.jl:1073
 [9] top-level scope at none:0

(@dev-env) pkg> build VideoIO
   Building VideoIO β†’ `~/.julia/packages/VideoIO/AZ2p0/deps/build.log`
β”Œ Error: Error building `VideoIO`: 
β”‚ ERROR: LoadError: LoadError: LibraryProduct(nothing, ["libbz2"], :libbzip2, "Prefix(/home/sari/.julia/packages/VideoIO/AZ2p0/deps/usr)") is not satisfied, cannot generate deps.jl!
β”‚ Stacktrace:
β”‚  [1] error(::String) at ./error.jl:33
β”‚  [2] write_deps_file(::String, ::Array{LibraryProduct,1}; verbose::Bool, isolate::Bool) at /home/sari/.julia/packages/BinaryProvider/GeAtj/src/Products.jl:419
β”‚  [3] top-level scope at /home/sari/.julia/packages/VideoIO/AZ2p0/deps/build_Bzip2.v1.0.6.jl:48
β”‚  [4] include(::Module, ::String) at ./Base.jl:377
β”‚  [5] include(::String) at /home/sari/.julia/packages/VideoIO/AZ2p0/deps/build.jl:52
β”‚  [6] top-level scope at /home/sari/.julia/packages/VideoIO/AZ2p0/deps/build.jl:53
β”‚  [7] include(::String) at ./client.jl:439
β”‚  [8] top-level scope at none:5
β”‚ in expression starting at /home/sari/.julia/packages/VideoIO/AZ2p0/deps/build_Bzip2.v1.0.6.jl:48
β”‚ in expression starting at /home/sari/.julia/packages/VideoIO/AZ2p0/deps/build.jl:45
β”” @ Pkg.Operations /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:892

julia> versioninfo()
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, skylake)

Can you file an issue on the VideoIO repo? Include your versioninfo(). Thanks!

1 Like

Here’s a run on a fairly big machine:

Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: AMD EPYC 7702P 64-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, znver1)

  GPU: Tesla V100-PCIE-32GB

13Γ—3 DataFrames.DataFrame
β”‚ Row β”‚ cat         β”‚ testname        β”‚ ms          β”‚
β”‚     β”‚ String      β”‚ String          β”‚ Float64     β”‚
β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 1   β”‚ cpu         β”‚ FloatMul        β”‚ 1.52e-6     β”‚
β”‚ 2   β”‚ cpu         β”‚ FloatSin        β”‚ 3.92e-6     β”‚
β”‚ 3   β”‚ cpu         β”‚ VecMulBroad     β”‚ 3.38431e-5  β”‚
β”‚ 4   β”‚ cpu         β”‚ CPUMatMul       β”‚ 0.04103     β”‚
β”‚ 5   β”‚ cpu         β”‚ MatMulBroad     β”‚ 0.00326222  β”‚
β”‚ 6   β”‚ cpu         β”‚ 3DMulBroad      β”‚ 0.001306    β”‚
β”‚ 7   β”‚ cpu         β”‚ FFMPEGH264Write β”‚ 135.54      β”‚
β”‚ 8   β”‚ gpu         β”‚ GPUMatMul       β”‚ 0.010631    β”‚
β”‚ 9   β”‚ mem         β”‚ DeepCopy        β”‚ 0.000208309 β”‚
β”‚ 10  β”‚ diskio      β”‚ TempdirWrite    β”‚ 0.01806     β”‚
β”‚ 11  β”‚ diskio      β”‚ TempdirRead     β”‚ 0.00413137  β”‚
β”‚ 12  β”‚ loading     β”‚ JuliaLoad       β”‚ 192.236     β”‚
β”‚ 13  β”‚ compilation β”‚ compilecache    β”‚ 114.833     β”‚

Nice package, @ianshmean!

2 Likes

Mmm, if we’re going to collect disk IO, it might be helpful to collect what disk it’s writing to, etc… that number should be very, very, hardware-dependent. :slight_smile:

4 Likes

True. Is there a function for that? or would it need some JLL-ed lib for cross-platform use?

A few more multi-threaded benchmarks would be fun, for high-cored systems.

Mmm, if we’re going to collect disk IO, it might be helpful to collect […]

Yes, and benchmarking disk-IO is tricky anyway, with caching, etc.

Here is my case.

Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, skylake)

12Γ—3 DataFrames.DataFrame
β”‚ Row β”‚ cat         β”‚ testname        β”‚ ms          β”‚
β”‚     β”‚ String      β”‚ String          β”‚ Float64     β”‚
β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 1   β”‚ cpu         β”‚ FloatMul        β”‚ 1.343e-6    β”‚
β”‚ 2   β”‚ cpu         β”‚ FloatSin        β”‚ 4.795e-6    β”‚
β”‚ 3   β”‚ cpu         β”‚ VecMulBroad     β”‚ 3.44346e-5  β”‚
β”‚ 4   β”‚ cpu         β”‚ CPUMatMul       β”‚ 0.0235135   β”‚
β”‚ 5   β”‚ cpu         β”‚ MatMulBroad     β”‚ 0.00472     β”‚
β”‚ 6   β”‚ cpu         β”‚ 3DMulBroad      β”‚ 0.0012303   β”‚
β”‚ 7   β”‚ cpu         β”‚ FFMPEGH264Write β”‚ 145.311     β”‚
β”‚ 8   β”‚ mem         β”‚ DeepCopy        β”‚ 0.000199598 β”‚
β”‚ 9   β”‚ diskio      β”‚ TempdirWrite    β”‚ 0.03236     β”‚
β”‚ 10  β”‚ diskio      β”‚ TempdirRead     β”‚ 0.00647875  β”‚
β”‚ 11  β”‚ loading     β”‚ JuliaLoad       β”‚ 111.799     β”‚
β”‚ 12  β”‚ compilation β”‚ compilecache    β”‚ 181.517     β”‚

1 Like

my laptop

Julia Version 1.4.0
Commit b8e9a9ecc6 (2020-03-21 16:36 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: AMD Ryzen 3 2200U with Radeon Vega Mobile Gfx
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, znver1)

12Γ—3 DataFrames.DataFrame
β”‚ Row β”‚ cat         β”‚ testname        β”‚ ms          β”‚
β”‚     β”‚ String      β”‚ String          β”‚ Float64     β”‚
β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 1   β”‚ cpu         β”‚ FloatMul        β”‚ 1.502e-6    β”‚
β”‚ 2   β”‚ cpu         β”‚ FloatSin        β”‚ 3.877e-6    β”‚
β”‚ 3   β”‚ cpu         β”‚ VecMulBroad     β”‚ 4.31855e-5  β”‚
β”‚ 4   β”‚ cpu         β”‚ CPUMatMul       β”‚ 0.052929    β”‚
β”‚ 5   β”‚ cpu         β”‚ MatMulBroad     β”‚ 0.006578    β”‚
β”‚ 6   β”‚ cpu         β”‚ 3DMulBroad      β”‚ 0.0018525   β”‚
β”‚ 7   β”‚ cpu         β”‚ FFMPEGH264Write β”‚ 229.939     β”‚
β”‚ 8   β”‚ mem         β”‚ DeepCopy        β”‚ 0.000287719 β”‚
β”‚ 9   β”‚ diskio      β”‚ TempdirWrite    β”‚ 0.0258485   β”‚
β”‚ 10  β”‚ diskio      β”‚ TempdirRead     β”‚ 0.00469157  β”‚
β”‚ 11  β”‚ loading     β”‚ JuliaLoad       β”‚ 151.288     β”‚
β”‚ 12  β”‚ compilation β”‚ compilecache    β”‚ 211.8       β”‚
1 Like
Julia Version 1.4.1
Commit 381693d3df (2020-04-14 17:20 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: AMD Ryzen Threadripper 2950X 16-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, znver1)
Environment:
  JULIA_NUM_THREADS = 16

12Γ—3 DataFrames.DataFrame
β”‚ Row β”‚ cat         β”‚ testname        β”‚ ms          β”‚
β”‚     β”‚ String      β”‚ String          β”‚ Float64     β”‚
β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 1   β”‚ cpu         β”‚ FloatMul        β”‚ 1.173e-6    β”‚
β”‚ 2   β”‚ cpu         β”‚ FloatSin        β”‚ 3.086e-6    β”‚
β”‚ 3   β”‚ cpu         β”‚ VecMulBroad     β”‚ 3.03688e-5  β”‚
β”‚ 4   β”‚ cpu         β”‚ CPUMatMul       β”‚ 0.0548195   β”‚
β”‚ 5   β”‚ cpu         β”‚ MatMulBroad     β”‚ 0.00393119  β”‚
β”‚ 6   β”‚ cpu         β”‚ 3DMulBroad      β”‚ 0.0013556   β”‚
β”‚ 7   β”‚ cpu         β”‚ FFMPEGH264Write β”‚ 160.176     β”‚
β”‚ 8   β”‚ mem         β”‚ DeepCopy        β”‚ 0.000175691 β”‚
β”‚ 9   β”‚ diskio      β”‚ TempdirWrite    β”‚ 0.014507    β”‚
β”‚ 10  β”‚ diskio      β”‚ TempdirRead     β”‚ 0.003717    β”‚
β”‚ 11  β”‚ loading     β”‚ JuliaLoad       β”‚ 138.079     β”‚
β”‚ 12  β”‚ compilation β”‚ compilecache    β”‚ 115.095     β”‚
1 Like

A roughly 10 year old hp Elitebook 2560p:

Test system ---------------------------
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, sandybridge)


12Γ—5 DataFrames.DataFrame
β”‚ Row β”‚ cat         β”‚ testname        β”‚ ref_ms      β”‚ test_ms     β”‚ factor   β”‚
β”‚     β”‚ String      β”‚ String          β”‚ Float64     β”‚ Float64     β”‚ Float64  β”‚
β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 1   β”‚ cpu         β”‚ FloatMul        β”‚ 1.134e-6    β”‚ 1.8e-6      β”‚ 1.5873   β”‚
β”‚ 2   β”‚ cpu         β”‚ FloatSin        β”‚ 4.051e-6    β”‚ 5.933e-6    β”‚ 1.46458  β”‚
β”‚ 3   β”‚ cpu         β”‚ VecMulBroad     β”‚ 2.99025e-5  β”‚ 9.58453e-5  β”‚ 3.20526  β”‚
β”‚ 4   β”‚ cpu         β”‚ CPUMatMul       β”‚ 0.018874    β”‚ 0.065538    β”‚ 3.4724   β”‚
β”‚ 5   β”‚ cpu         β”‚ MatMulBroad     β”‚ 0.00413388  β”‚ 0.00546733  β”‚ 1.32257  β”‚
β”‚ 6   β”‚ cpu         β”‚ 3DMulBroad      β”‚ 0.0010365   β”‚ 0.0017305   β”‚ 1.66956  β”‚
β”‚ 7   β”‚ cpu         β”‚ FFMPEGH264Write β”‚ 105.757     β”‚ 225.935     β”‚ 2.13636  β”‚
β”‚ 8   β”‚ mem         β”‚ DeepCopy        β”‚ 0.000177074 β”‚ 0.000612061 β”‚ 3.45653  β”‚
β”‚ 9   β”‚ diskio      β”‚ TempdirWrite    β”‚ 0.024308    β”‚ 0.022627    β”‚ 0.930846 β”‚
β”‚ 10  β”‚ diskio      β”‚ TempdirRead     β”‚ 0.0049865   β”‚ 0.0108317   β”‚ 2.1722   β”‚
β”‚ 11  β”‚ loading     β”‚ JuliaLoad       β”‚ 91.921      β”‚ 158.841     β”‚ 1.72802  β”‚
β”‚ 12  β”‚ compilation β”‚ compilecache    β”‚ 118.46      β”‚ 249.303     β”‚ 2.10453  β”‚
1 Like
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: AMD Ryzen Threadripper 3970X 32-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, znver1)
  GPU: GeForce RTX 2080 SUPER
13Γ—3 DataFrames.DataFrame
β”‚ Row β”‚ cat         β”‚ testname        β”‚ ms          β”‚
β”‚     β”‚ String      β”‚ String          β”‚ Float64     β”‚
β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 1   β”‚ cpu         β”‚ FloatMul        β”‚ 1.31e-6     β”‚
β”‚ 2   β”‚ cpu         β”‚ FloatSin        β”‚ 5.27e-6     β”‚
β”‚ 3   β”‚ cpu         β”‚ VecMulBroad     β”‚ 4.05241e-5  β”‚
β”‚ 4   β”‚ cpu         β”‚ CPUMatMul       β”‚ 0.110252    β”‚
β”‚ 5   β”‚ cpu         β”‚ MatMulBroad     β”‚ 0.00562     β”‚
β”‚ 6   β”‚ cpu         β”‚ 3DMulBroad      β”‚ 0.001837    β”‚
β”‚ 7   β”‚ cpu         β”‚ FFMPEGH264Write β”‚ 130.607     β”‚
β”‚ 8   β”‚ gpu         β”‚ GPUMatMul       β”‚ 0.00592143  β”‚
β”‚ 9   β”‚ mem         β”‚ DeepCopy        β”‚ 0.000259325 β”‚
β”‚ 10  β”‚ diskio      β”‚ TempdirWrite    β”‚ 0.0259005   β”‚
β”‚ 11  β”‚ diskio      β”‚ TempdirRead     β”‚ 0.00472013  β”‚
β”‚ 12  β”‚ loading     β”‚ JuliaLoad       β”‚ 186.623     β”‚
β”‚ 13  β”‚ compilation β”‚ compilecache    β”‚ 128.309     β”‚

3 Likes

Thanks for the reports. I’m keen to get more MacOS and Linux ARM results, especially newer models :pray:t2:

Speaking of the devil, here’s mine (macOS), 2 years old this year.

Reference system ----------------------
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
  GPU: GeForce GTX 1650 with Max-Q Design

Test system ---------------------------
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin18.7.0)
  CPU: Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, skylake)


12Γ—5 DataFrames.DataFrame
β”‚ Row β”‚ cat         β”‚ testname        β”‚ ref_ms      β”‚ test_ms     β”‚ factor  β”‚
β”‚     β”‚ String      β”‚ String          β”‚ Float64     β”‚ Float64     β”‚ Float64 β”‚
β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 1   β”‚ cpu         β”‚ FloatMul        β”‚ 1.134e-6    β”‚ 1.669e-6    β”‚ 1.47178 β”‚
β”‚ 2   β”‚ cpu         β”‚ FloatSin        β”‚ 4.051e-6    β”‚ 4.667e-6    β”‚ 1.15206 β”‚
β”‚ 3   β”‚ cpu         β”‚ VecMulBroad     β”‚ 2.99025e-5  β”‚ 4.62495e-5  β”‚ 1.54668 β”‚
β”‚ 4   β”‚ cpu         β”‚ CPUMatMul       β”‚ 0.018874    β”‚ 0.03248     β”‚ 1.72089 β”‚
β”‚ 5   β”‚ cpu         β”‚ MatMulBroad     β”‚ 0.00413388  β”‚ 0.0177087   β”‚ 4.2838  β”‚
β”‚ 6   β”‚ cpu         β”‚ 3DMulBroad      β”‚ 0.0010365   β”‚ 0.001631    β”‚ 1.57356 β”‚
β”‚ 7   β”‚ cpu         β”‚ FFMPEGH264Write β”‚ 105.757     β”‚ 172.66      β”‚ 1.63262 β”‚
β”‚ 8   β”‚ mem         β”‚ DeepCopy        β”‚ 0.000177074 β”‚ 0.000186826 β”‚ 1.05508 β”‚
β”‚ 9   β”‚ diskio      β”‚ TempdirWrite    β”‚ 0.024308    β”‚ 0.191835    β”‚ 7.89185 β”‚
β”‚ 10  β”‚ diskio      β”‚ TempdirRead     β”‚ 0.0049865   β”‚ 0.666844    β”‚ 133.73  β”‚
β”‚ 11  β”‚ loading     β”‚ JuliaLoad       β”‚ 91.921      β”‚ 171.811     β”‚ 1.86911 β”‚
β”‚ 12  β”‚ compilation β”‚ compilecache    β”‚ 118.46      β”‚ 150.962     β”‚ 1.27437 β”‚
1 Like

Interesting… your diskio results are slow too. What model mac? I’m assuming your tempdir is on an SSD, like mine?