Skip to content

Instantly share code, notes, and snippets.

@tkf
Last active November 5, 2021 21:59
Show Gist options
  • Save tkf/2b95055b67db0bbccecbc99d078c4514 to your computer and use it in GitHub Desktop.
Save tkf/2b95055b67db0bbccecbc99d078c4514 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"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_mat_mul-$k.$e\"), v)\n",
" end\n",
" end\n",
"end;"
],
"metadata": {},
"execution_count": 1
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "\u001b[1m192×4 DataFrame\u001b[0m\n\u001b[1m Row \u001b[0m│\u001b[1m nthreads \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 Int64 \u001b[0m\u001b[90m Float64 \u001b[0m\u001b[90m Symbol \u001b[0m\n─────┼───────────────────────────────────────────\n 1 │ 1 1200 7.54762e7 target\n 2 │ 1 500 5.37959e6 target\n 3 │ 1 800 2.21351e7 target\n 4 │ 1 1200 8.47988e7 baseline\n 5 │ 1 500 5.67894e6 baseline\n 6 │ 1 800 2.41516e7 baseline\n 7 │ 32 1200 4.12003e6 target\n 8 │ 32 500 503416.0 target\n ⋮ │ ⋮ ⋮ ⋮ ⋮\n 186 │ 30 800 1.99843e6 baseline\n 187 │ 31 1200 4.02406e6 target\n 188 │ 31 500 490347.0 target\n 189 │ 31 800 1.30001e6 target\n 190 │ 31 1200 5.91028e6 baseline\n 191 │ 31 500 792095.0 baseline\n 192 │ 31 800 2.0313e6 baseline\n\u001b[36m 177 rows omitted\u001b[0m",
"text/html": [
"<div class=\"data-frame\"><p>192 rows × 4 columns</p><table class=\"data-frame\"><thead><tr><th></th><th>nthreads</th><th>n</th><th>time_ns</th><th>version</th></tr><tr><th></th><th title=\"Int64\">Int64</th><th title=\"Int64\">Int64</th><th title=\"Float64\">Float64</th><th title=\"Symbol\">Symbol</th></tr></thead><tbody><tr><th>1</th><td>1</td><td>1200</td><td>7.54762e7</td><td>target</td></tr><tr><th>2</th><td>1</td><td>500</td><td>5.37959e6</td><td>target</td></tr><tr><th>3</th><td>1</td><td>800</td><td>2.21351e7</td><td>target</td></tr><tr><th>4</th><td>1</td><td>1200</td><td>8.47988e7</td><td>baseline</td></tr><tr><th>5</th><td>1</td><td>500</td><td>5.67894e6</td><td>baseline</td></tr><tr><th>6</th><td>1</td><td>800</td><td>2.41516e7</td><td>baseline</td></tr><tr><th>7</th><td>32</td><td>1200</td><td>4.12003e6</td><td>target</td></tr><tr><th>8</th><td>32</td><td>500</td><td>503416.0</td><td>target</td></tr><tr><th>9</th><td>32</td><td>800</td><td>1.26783e6</td><td>target</td></tr><tr><th>10</th><td>32</td><td>1200</td><td>6.03376e6</td><td>baseline</td></tr><tr><th>11</th><td>32</td><td>500</td><td>852233.0</td><td>baseline</td></tr><tr><th>12</th><td>32</td><td>800</td><td>2.08737e6</td><td>baseline</td></tr><tr><th>13</th><td>16</td><td>1200</td><td>6.01806e6</td><td>target</td></tr><tr><th>14</th><td>16</td><td>500</td><td>672995.0</td><td>target</td></tr><tr><th>15</th><td>16</td><td>800</td><td>1.84808e6</td><td>target</td></tr><tr><th>16</th><td>16</td><td>1200</td><td>7.96742e6</td><td>baseline</td></tr><tr><th>17</th><td>16</td><td>500</td><td>738855.0</td><td>baseline</td></tr><tr><th>18</th><td>16</td><td>800</td><td>2.25665e6</td><td>baseline</td></tr><tr><th>19</th><td>8</td><td>1200</td><td>1.01909e7</td><td>target</td></tr><tr><th>20</th><td>8</td><td>500</td><td>912063.0</td><td>target</td></tr><tr><th>21</th><td>8</td><td>800</td><td>2.94753e6</td><td>target</td></tr><tr><th>22</th><td>8</td><td>1200</td><td>1.28303e7</td><td>baseline</td></tr><tr><th>23</th><td>8</td><td>500</td><td>1.02976e6</td><td>baseline</td></tr><tr><th>24</th><td>8</td><td>800</td><td>3.63203e6</td><td>baseline</td></tr><tr><th>&vellip;</th><td>&vellip;</td><td>&vellip;</td><td>&vellip;</td><td>&vellip;</td></tr></tbody></table></div>"
]
},
"metadata": {},
"execution_count": 2
}
],
"cell_type": "code",
"source": [
"datadir = joinpath(@__DIR__, \"build/bench_mat_mat_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": 2
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "\u001b[1m96×5 DataFrame\u001b[0m\n\u001b[1m Row \u001b[0m│\u001b[1m nthreads \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 Int64 \u001b[0m\u001b[90m Float64? \u001b[0m\u001b[90m Float64? \u001b[0m\u001b[90m Float64 \u001b[0m\n─────┼──────────────────────────────────────────────────────────\n 1 │ 1 1200 7.54762e7 8.47988e7 1.12352\n 2 │ 1 500 5.37959e6 5.67894e6 1.05565\n 3 │ 1 800 2.21351e7 2.41516e7 1.0911\n 4 │ 32 1200 4.12003e6 6.03376e6 1.4645\n 5 │ 32 500 503416.0 852233.0 1.6929\n 6 │ 32 800 1.26783e6 2.08737e6 1.64641\n 7 │ 16 1200 6.01806e6 7.96742e6 1.32392\n 8 │ 16 500 672995.0 738855.0 1.09786\n ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮\n 90 │ 29 800 1.35267e6 2.0132e6 1.48831\n 91 │ 30 1200 4.16416e6 5.98721e6 1.43779\n 92 │ 30 500 490606.0 791154.0 1.61261\n 93 │ 30 800 1.33211e6 1.99843e6 1.50019\n 94 │ 31 1200 4.02406e6 5.91028e6 1.46873\n 95 │ 31 500 490347.0 792095.0 1.61538\n 96 │ 31 800 1.30001e6 2.0313e6 1.56252\n\u001b[36m 81 rows omitted\u001b[0m",
"text/html": [
"<div class=\"data-frame\"><p>96 rows × 5 columns</p><table class=\"data-frame\"><thead><tr><th></th><th>nthreads</th><th>n</th><th>target</th><th>baseline</th><th>speedup</th></tr><tr><th></th><th title=\"Int64\">Int64</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>1</td><td>1200</td><td>7.54762e7</td><td>8.47988e7</td><td>1.12352</td></tr><tr><th>2</th><td>1</td><td>500</td><td>5.37959e6</td><td>5.67894e6</td><td>1.05565</td></tr><tr><th>3</th><td>1</td><td>800</td><td>2.21351e7</td><td>2.41516e7</td><td>1.0911</td></tr><tr><th>4</th><td>32</td><td>1200</td><td>4.12003e6</td><td>6.03376e6</td><td>1.4645</td></tr><tr><th>5</th><td>32</td><td>500</td><td>503416.0</td><td>852233.0</td><td>1.6929</td></tr><tr><th>6</th><td>32</td><td>800</td><td>1.26783e6</td><td>2.08737e6</td><td>1.64641</td></tr><tr><th>7</th><td>16</td><td>1200</td><td>6.01806e6</td><td>7.96742e6</td><td>1.32392</td></tr><tr><th>8</th><td>16</td><td>500</td><td>672995.0</td><td>738855.0</td><td>1.09786</td></tr><tr><th>9</th><td>16</td><td>800</td><td>1.84808e6</td><td>2.25665e6</td><td>1.22108</td></tr><tr><th>10</th><td>8</td><td>1200</td><td>1.01909e7</td><td>1.28303e7</td><td>1.259</td></tr><tr><th>11</th><td>8</td><td>500</td><td>912063.0</td><td>1.02976e6</td><td>1.12905</td></tr><tr><th>12</th><td>8</td><td>800</td><td>2.94753e6</td><td>3.63203e6</td><td>1.23223</td></tr><tr><th>13</th><td>24</td><td>1200</td><td>4.69932e6</td><td>6.56888e6</td><td>1.39784</td></tr><tr><th>14</th><td>24</td><td>500</td><td>549396.0</td><td>714284.0</td><td>1.30013</td></tr><tr><th>15</th><td>24</td><td>800</td><td>1.46671e6</td><td>2.02838e6</td><td>1.38295</td></tr><tr><th>16</th><td>28</td><td>1200</td><td>4.22378e6</td><td>6.17131e6</td><td>1.46109</td></tr><tr><th>17</th><td>28</td><td>500</td><td>510526.0</td><td>773135.0</td><td>1.51439</td></tr><tr><th>18</th><td>28</td><td>800</td><td>1.36064e6</td><td>2.01456e6</td><td>1.4806</td></tr><tr><th>19</th><td>20</td><td>1200</td><td>5.21505e6</td><td>6.87004e6</td><td>1.31735</td></tr><tr><th>20</th><td>20</td><td>500</td><td>587236.0</td><td>699655.0</td><td>1.19144</td></tr><tr><th>21</th><td>20</td><td>800</td><td>1.60687e6</td><td>2.09438e6</td><td>1.30339</td></tr><tr><th>22</th><td>12</td><td>1200</td><td>7.31627e6</td><td>9.19858e6</td><td>1.25728</td></tr><tr><th>23</th><td>12</td><td>500</td><td>777455.0</td><td>841534.0</td><td>1.08242</td></tr><tr><th>24</th><td>12</td><td>800</td><td>2.27498e6</td><td>2.81486e6</td><td>1.23731</td></tr><tr><th>&vellip;</th><td>&vellip;</td><td>&vellip;</td><td>&vellip;</td><td>&vellip;</td><td>&vellip;</td></tr></tbody></table></div>"
]
},
"metadata": {},
"execution_count": 3
}
],
"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": 3
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "DisplayAs.Showable{MIME{Symbol(\"image/png\")}}(VegaLite.VLSpec)",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAUQAAADyCAYAAAA1DrwaAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdd3xUVfr48c+dkplJJj0hnRQIhABSpXdhgyCgYFn7d3WXta1td2273wW//qy7uLu6zYq6iAXEAkpHQRCUCISQ0JKQkJDey/SZ+/tjwsBkJkxQMoF43q8Xvpw7d+aeG8njuec85zmSLMsygiAIAoqeboAgCMLFQgREQRCEdiIgCoIgtBMBURAEoZ2qpxvQVWvXrmXw4ME93QxBuGilpaX1dBMuffIl4rnnnvP7NQsLC3v19XrimuIeL91r1tTUyICckZHxo7/riiuukGNjY2Wz2ew6dvjwYRmQAfnaa6897+98/PHH5ZSUFNd31NTUuN6zWCxyQkKCPHXq1HN+h3hkFgShS3Q6HY8++ii//OUvf9T3bNu2ja1bt7J48WICAgJcx99++20AlEola9eupb6+/ry+12w2c8MNNxAeHu7xnlqt5te//jXbt29nw4YNnX6HCIiCILi0trby85//nIiICAICAkhOTubPf/4zAEajkeeff57XX38dgLfeegtJktz+pKamAs6gN2HCBIKDg4mPj+e+++6jra0NgDfeeAPALbDa7XZWrFiBTqfj4Ycfxmw288EHH5xX25ctW8Zzzz1HUFCQ1/fvvPNOAF577bVOv0MEREEQXD766CM++OADbrnlFtatW8cf/vAHrz0ugGnTpvHhhx/y4YcfMmnSJADGjx/P0aNHmTt3Lna7nf/+97/cfffd/POf/+T3v/894AyWSUlJJCUlub5r69atlJWVsWDBAu666y4kSXL1GC+U+Ph4UlJS+PLLLzs9RwREQRBcUlNTkSSJVatW8dprr1FdXU1WVpbXc1NSUrjuuusoLy9n586dZGVlsXz5cr744gtMJhPfffcd11xzDX/6058AWL9+PRaLhcrKSuLi4ty+63Twmzp1KgBDhgzh22+/5ciRIxf0/uLi4mhoaKClpcXr+5fMLLMgCN1vypQp7Ny5k40bN3Lw4EGWLl3KW2+9RUFBgdfz33zzTR566CEmT57MmjVr0Gg0rvduv/12fvOb37heKxQK1Go1KpUKs9nsOt7U1MTHH38MwN133+32/e+88w7PPPPMBbs/s9mMJElotVqv74seoiAILjt27GDr1q2MGjWKm2++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"
},
"metadata": {},
"execution_count": 4
}
],
"cell_type": "code",
"source": [
"plt_wrt_baseline = @vlplot(\n",
" layer = [\n",
" {\n",
" mark = {type = :line, point = true},\n",
" encoding = {\n",
" x = {field = :nthreads},\n",
" y = {field = :speedup, title = \"Seedup (target vs baseline)\"},\n",
" color = {field = :n, type = :ordinal, title = \"size(A, 1)\"},\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": 4
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "DisplayAs.Showable{MIME{Symbol(\"image/png\")}}(VegaLite.VLSpec)",
"image/png": "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vn9CiF/NZRg582jvfffdx759++jcuTP//Oc/vfZor6JAevc40rvHeeX4QjRn8v0TQrjDRT3aO2rUKHJzc6/IAffs2cO3335Lp06dGkTjNCGEEEJ4V71Nz1RVpaysDJPJBEBBQQGPPvoof/nLX9i9e3d9u13Qrl27GDduHEajkQULFvCPf/zj8qoWQgghRJNRbxhZv3494eHhfPPNN2iaxrhx43jmmWd4+umn6d+/PyUlJZd8sJdffpnZs2dzzz338N5777FgwQJsNtuvOgEhhBBCNG71hpHs7GwAhg8fzrZt28jKyqJ79+7Mnj2b8vJyvvrqq0s+WFZWFn369AGgZcuWBAYGcuzYscssXQghhBBNQb1hpLS0FIPBQHBwMGvXrgXgkUce4ZlnnkGn01FYeOldF8vKyggODra/DgkJuawrLEIIIYRoOuqdwBoREYHVauW9997jvffeQ6fTMWzYMGpra1FVldA2IGdrAAAgAElEQVTQ0Es+WFhYGBUVFfbXFRUVREREALBmzRp76DkjLu7sjH1vPMvt6WPKOTaNYzbFvgPy99Y0jinnKBqqesPI2LFj8fX15bbbbgNg5MiRREVF2W/PJCcnX/LBunfvzubNmxk0aBAnTpygqqqK6OhoANLT00lPTz/vfp5uYiOEOEu+f0IId6s3jMTFxZGRkcF///tfAgMD+ctf/gLAwYMHmTZtGoMGDbrkg919991MmDABnU7H559/zn333Yder7/86oUQQgjR6CmapmmePODu3bv57rvv6NixI6NHj/bkoYUQQgjRAHk8jAghhBBCnKvep2mEEEIIITxBwogQQgghvErCiBBCCCG8SsKIEEIIIbxKwogQQgghvErCiBBCCCG8SsKIEEIIIbxKwogQQgghvErCiBBCCCG8SsKIEEIIIbxKwogQQgghvErCiBBCCCG8SsKIEEIIIbxKwogQQgghvErCiBBCCCG8SsKIEEIIIbxKwogQQgghvErCiADglltuoVWrVnTr1s0+dvjwYUaMGEGbNm1ISkrixRdftL+3YcMGevbsSZcuXXj66addjgshhBD1kTAiALjzzjv55ptvnMYfe+wxCgoKWL9+Pc8++yy5ubmoqsrNN9/MO++8Q1ZWFl988QVr166td1wIIYS4EIO3CxANw1VXXcW+ffscxuLi4oiLiwMgMjKSzp07U1hYiMlkIjw83H4V5eabb+azzz7D39//vONpaWmePRkhhBCNilwZERclNzeX/Px8BgwYQGFhIbGxsfb34uLiOHLkSL3jQgghxIVIGBEulZWVceONN/Lyyy8TFBTk7XKEEEI0MRJGxAXV1NQwceJE7r33XkaPHg1A69atKSgosG9z6NAhYmNj6x0XQgghLkTCiKiX1Wpl+vTpjB49mt/+9rf28dTUVEpLS8nKysJisbB48WImTpxY77gQQghxIYqmaZq3ixDeN23aNNavX09RURFt2rRhzpw5xMfHM2LECBISEuzb/eMf/+C6665j/fr13H333dTU1HDbbbcxZ84cgHrHhRBCiPpIGBFCCCGEV8ltGiGEEEJ4lYQRIYQQQniVhBEhhBBCeJWEESGEEEJ4lYQRIYQQQniVhBEhhBBCeJWEESGEEEJ4lYQRIYQQQniVhBEhhBBCeJXB1QanTp1i+fLlbN++naqqKmJjYxkyZAh9+vTxRH1CCCGEaOLqDSMVFRU89dRTvPrqq1RUVDi937NnT55++mn7Sq5CCCGEEJej3rVp5s2bx+OPP86AAQO47rrrSE5Oxt/fn6NHj7Jx40bef/99SktLqaysJCgoyC3FrVmzhvT0dPLz893y+UI0FYmJid4uQQghLlu9V0aGDBnC5s2b6d27t9N7t912G/Pnz+e9997DaDS6rbi1a9eSnp4OeP6HbX5+vkeP6enjeeOYco7uO6YQQjRm9YaR4cOHX3DHgIAA7rzzzitekBBCCCGal8t6mmbx4sVs2bLlStcihBBCiGbossLIww8/zNKlS690LUIIIYRohuq9TbN06VK++uqr875XVlbmtoKEaFo01GPZaLWn0Mf2AoOftwsSQogGp94wsmXLFl5//XVP1iJE02IzU/vBTdgOrgVACY7B96aP0EW093JhQgjRsNQbRgICAjAajfznP/9BURSH9x5++GG3FyZEY2fN+tAeRAC0yqNYfngK3ykLvViVEEI0PPWGkV69emGxWBgxYgRJSUkO7z355JNuL0yIxk4rdX7kVivZ64VKhBCiYas3jKSlpZGRkUFYWJjTe9988w0RERFuLUyIRs/f+bujlR9BPfwzurj+XihICCEapnrDiL+/PyNGjDjve926dXNbQUI0BVr5Yayb3jr9SgE08A1Bq63AtHgKunbpUHMSxTcYQ7+Z6Nuf/7smhBDN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"
},
"metadata": {},
"execution_count": 5
}
],
"cell_type": "code",
"source": [
"df_wrt_nthreads1 = let\n",
" df1 = select(df, [:n, :version, :nthreads, :time_ns])\n",
" df2 = combine(groupby(df1, [:n])) do g\n",
" t1 = only(g[(g.nthreads.==1).&(g.version.==:baseline), :]).time_ns\n",
" (; g.nthreads, g.version, speedup = t1 ./ g.time_ns)\n",
" end\n",
"end\n",
"\n",
"plt_wrt_nthreads1 = @vlplot(\n",
" facet = {field = :n, type = :ordinal, title = \"size(A, 1)\"},\n",
" columns = 2,\n",
" spec = {\n",
" layer = [\n",
" {\n",
" mark = {type = :line, point = true},\n",
" x = :nthreads,\n",
" y = {:speedup, title = \"Seedup (vs baseline nthreads=1)\"},\n",
" color = :version,\n",
" },\n",
" {mark = {type = :rule}, encoding = {y = {datum = 1}}},\n",
" ],\n",
" },\n",
" data = df_wrt_nthreads1,\n",
")\n",
"saveresult(; plt_wrt_nthreads1)\n",
"plt_wrt_nthreads1\n",
"plt_wrt_nthreads1 |> DisplayAs.PNG"
],
"metadata": {},
"execution_count": 5
},
{
"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
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
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
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
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
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