Skip to content

Instantly share code, notes, and snippets.

@tkf
Last active November 15, 2021 02:03
Show Gist options
  • Save tkf/b673ca12e76729547d0ecca568174e1d to your computer and use it in GitHub Desktop.
Save tkf/b673ca12e76729547d0ecca568174e1d to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "--- Manifest.toml\t2021-11-14 19:34:21.005693606 -0500\n+++ environments/target/Manifest.toml\t2021-11-14 20:47:12.385774246 -0500\n@@ -205,9 +205,9 @@\n \n [[Gaius]]\n deps = [\"LinearAlgebra\", \"LoopVectorization\", \"Random\", \"StructArrays\", \"UnsafeArrays\", \"VectorizationBase\"]\n-git-tree-sha1 = \"5d8c867605ca119455772381c1c3823361cb1dbf\"\n-repo-rev = \"master\"\n-repo-url = \"https://github.com/MasonProtter/Gaius.jl.git\"\n+git-tree-sha1 = \"0b53b59469903f7b367b1160de42ecb5d2fcfabf\"\n+repo-rev = \"singlethread\"\n+repo-url = \"https://github.com/tkf/Gaius.jl.git\"\n uuid = \"bffe22d1-cb55-4f4e-ac2c-f4dd4bf58912\"\n version = \"0.6.7\"\n \n"
},
"metadata": {},
"execution_count": 1
}
],
"cell_type": "code",
"source": [
"Text(read(joinpath(@__DIR__, \"manifest.patch\"), String))"
],
"metadata": {},
"execution_count": 1
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "e969a62104e5b013dad9f237cc2681c623601adf"
},
"metadata": {},
"execution_count": 2
}
],
"cell_type": "code",
"source": [
"Text(read(joinpath(@__DIR__, \"build/info/git-rev-sha1\"), String))"
],
"metadata": {},
"execution_count": 2
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "52cbcc0d039104e607a1f07c04a6a1d7019b89e0"
},
"metadata": {},
"execution_count": 3
}
],
"cell_type": "code",
"source": [
"Text(read(joinpath(@__DIR__, \"build/info/git-tree-sha1\"), String))"
],
"metadata": {},
"execution_count": 3
},
{
"outputs": [],
"cell_type": "code",
"source": [
"using BenchmarkConfigSweeps\n",
"using DataFrames\n",
"using DisplayAs\n",
"using VegaLite\n",
"\n",
"resultdir = joinpath(@__DIR__, \"result\")\n",
"mkpath(resultdir)\n",
"\n",
"saveresult(; plots...) = saveresult(:png, :svg; plots...)\n",
"function saveresult(exts::Symbol...; plots...)\n",
" for (k, v) in plots\n",
" for e in exts\n",
" save(joinpath(resultdir, \"mat_vec_mul-$k.$e\"), v)\n",
" end\n",
" end\n",
"end;"
],
"metadata": {},
"execution_count": 4
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "\u001b[1m10×3 DataFrame\u001b[0m\n\u001b[1m Row \u001b[0m│\u001b[1m n \u001b[0m\u001b[1m time_ns \u001b[0m\u001b[1m version \u001b[0m\n\u001b[1m \u001b[0m│\u001b[90m Int64 \u001b[0m\u001b[90m Float64 \u001b[0m\u001b[90m Symbol \u001b[0m\n─────┼─────────────────────────────────\n 1 │ 250 8940.0 target\n 2 │ 1500 875263.0 target\n 3 │ 1000 133089.0 target\n 4 │ 500 34789.0 target\n 5 │ 2000 2.23695e6 target\n 6 │ 250 8330.0 baseline\n 7 │ 1500 868893.0 baseline\n 8 │ 1000 107539.0 baseline\n 9 │ 500 32960.0 baseline\n 10 │ 2000 2.23768e6 baseline",
"text/html": [
"<div class=\"data-frame\"><p>10 rows × 3 columns</p><table class=\"data-frame\"><thead><tr><th></th><th>n</th><th>time_ns</th><th>version</th></tr><tr><th></th><th title=\"Int64\">Int64</th><th title=\"Float64\">Float64</th><th title=\"Symbol\">Symbol</th></tr></thead><tbody><tr><th>1</th><td>250</td><td>8940.0</td><td>target</td></tr><tr><th>2</th><td>1500</td><td>875263.0</td><td>target</td></tr><tr><th>3</th><td>1000</td><td>133089.0</td><td>target</td></tr><tr><th>4</th><td>500</td><td>34789.0</td><td>target</td></tr><tr><th>5</th><td>2000</td><td>2.23695e6</td><td>target</td></tr><tr><th>6</th><td>250</td><td>8330.0</td><td>baseline</td></tr><tr><th>7</th><td>1500</td><td>868893.0</td><td>baseline</td></tr><tr><th>8</th><td>1000</td><td>107539.0</td><td>baseline</td></tr><tr><th>9</th><td>500</td><td>32960.0</td><td>baseline</td></tr><tr><th>10</th><td>2000</td><td>2.23768e6</td><td>baseline</td></tr></tbody></table></div>"
]
},
"metadata": {},
"execution_count": 5
}
],
"cell_type": "code",
"source": [
"datadir = joinpath(@__DIR__, \"build/bench_mat_vec_mul\")\n",
"df_raw = DataFrame(BenchmarkConfigSweeps.load(datadir))\n",
"\n",
"begin\n",
" df = select(df_raw, Not(:trial))\n",
" df = select(df, Not(r\"JULIA_.*\"))\n",
" df[!, :time_ns] = map(t -> minimum(t).time, df_raw.trial)\n",
" df[!, :version] = Symbol.(basename.(df_raw.JULIA_PROJECT))\n",
" df\n",
"end"
],
"metadata": {},
"execution_count": 5
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "DisplayAs.Showable{MIME{Symbol(\"image/png\")}}(VegaLite.VLSpec)",
"image/png": "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"
},
"metadata": {},
"execution_count": 6
}
],
"cell_type": "code",
"source": [
"plt_raw_time = @vlplot(\n",
" layer = [\n",
" {\n",
" mark = {type = :line, point = true},\n",
" encoding = {\n",
" x = {field = :n, title = \"size(A, 1)\"},\n",
" y = {field = :time_ns, title = \"Time [ns]\", scale = {type = :log}},\n",
" color = {field = :version},\n",
" },\n",
" },\n",
" ],\n",
" data = df,\n",
")\n",
"saveresult(; plt_raw_time)\n",
"plt_raw_time\n",
"plt_raw_time |> DisplayAs.PNG"
],
"metadata": {},
"execution_count": 6
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "\u001b[1m5×4 DataFrame\u001b[0m\n\u001b[1m Row \u001b[0m│\u001b[1m n \u001b[0m\u001b[1m target \u001b[0m\u001b[1m baseline \u001b[0m\u001b[1m speedup \u001b[0m\n\u001b[1m \u001b[0m│\u001b[90m Int64 \u001b[0m\u001b[90m Float64? \u001b[0m\u001b[90m Float64? \u001b[0m\u001b[90m Float64 \u001b[0m\n─────┼─────────────────────────────────────────────────\n 1 │ 250 8940.0 8330.0 0.931767\n 2 │ 1500 875263.0 868893.0 0.992722\n 3 │ 1000 133089.0 107539.0 0.808023\n 4 │ 500 34789.0 32960.0 0.947426\n 5 │ 2000 2.23695e6 2.23768e6 1.00033",
"text/html": [
"<div class=\"data-frame\"><p>5 rows × 4 columns</p><table class=\"data-frame\"><thead><tr><th></th><th>n</th><th>target</th><th>baseline</th><th>speedup</th></tr><tr><th></th><th title=\"Int64\">Int64</th><th title=\"Union{Missing, Float64}\">Float64?</th><th title=\"Union{Missing, Float64}\">Float64?</th><th title=\"Float64\">Float64</th></tr></thead><tbody><tr><th>1</th><td>250</td><td>8940.0</td><td>8330.0</td><td>0.931767</td></tr><tr><th>2</th><td>1500</td><td>875263.0</td><td>868893.0</td><td>0.992722</td></tr><tr><th>3</th><td>1000</td><td>133089.0</td><td>107539.0</td><td>0.808023</td></tr><tr><th>4</th><td>500</td><td>34789.0</td><td>32960.0</td><td>0.947426</td></tr><tr><th>5</th><td>2000</td><td>2.23695e6</td><td>2.23768e6</td><td>1.00033</td></tr></tbody></table></div>"
]
},
"metadata": {},
"execution_count": 7
}
],
"cell_type": "code",
"source": [
"begin\n",
" df_wrt_baseline = unstack(df, :version, :time_ns)\n",
" df_wrt_baseline[!, :speedup] = df_wrt_baseline.baseline ./ df_wrt_baseline.target\n",
" df_wrt_baseline\n",
"end"
],
"metadata": {},
"execution_count": 7
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "DisplayAs.Showable{MIME{Symbol(\"image/png\")}}(VegaLite.VLSpec)",
"image/png": "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"
},
"metadata": {},
"execution_count": 8
}
],
"cell_type": "code",
"source": [
"plt_wrt_baseline = @vlplot(\n",
" layer = [\n",
" {\n",
" mark = {type = :line, point = true},\n",
" encoding = {\n",
" x = {field = :n, type = :ordinal, title = \"size(A, 1)\"},\n",
" y = {field = :speedup, title = \"Seedup (target vs baseline)\"},\n",
" },\n",
" },\n",
" {mark = {type = :rule}, encoding = {y = {datum = 1}}},\n",
" ],\n",
" data = df_wrt_baseline,\n",
")\n",
"saveresult(; plt_wrt_baseline)\n",
"plt_wrt_baseline\n",
"plt_wrt_baseline |> DisplayAs.PNG"
],
"metadata": {},
"execution_count": 8
},
{
"cell_type": "markdown",
"source": [
"---\n",
"\n",
"*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
],
"metadata": {}
}
],
"nbformat_minor": 3,
"metadata": {
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.6.0"
},
"kernelspec": {
"name": "julia-1.6",
"display_name": "Julia 1.6.0",
"language": "julia"
}
},
"nbformat": 4
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment