Skip to content

Instantly share code, notes, and snippets.

@tkf
Last active November 15, 2021 01:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tkf/9f1338506a58be4bf29f708cc162f55e to your computer and use it in GitHub Desktop.
Save tkf/9f1338506a58be4bf29f708cc162f55e to your computer and use it in GitHub Desktop.
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
{
"cells": [
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "--- Manifest.toml\t2021-11-14 18:27:40.042948978 -0500\n+++ environments/target/Manifest.toml\t2021-11-14 18:28:46.550412509 -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 = \"b85c1a72591a775679f7ef5e4b223ee5c56ffb4d\"\n+repo-rev = \"refactor-block_size\"\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": "414c8a2f7438984a32ac902b9dfa2545320781db"
},
"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": "8516f33df4efdd0fc428ff97adceb4bab3b30e42"
},
"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[1m256×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 1500 878274.0 target\n 2 │ 1 1000 121619.0 target\n 3 │ 1 500 41630.0 target\n 4 │ 1 2000 2.24199e6 target\n 5 │ 1 1500 875544.0 baseline\n 6 │ 1 1000 160869.0 baseline\n 7 │ 1 500 40569.0 baseline\n 8 │ 1 2000 2.22801e6 baseline\n ⋮ │ ⋮ ⋮ ⋮ ⋮\n 250 │ 31 1000 60999.0 target\n 251 │ 31 500 43050.0 target\n 252 │ 31 2000 289308.0 target\n 253 │ 31 1500 152829.0 baseline\n 254 │ 31 1000 64160.0 baseline\n 255 │ 31 500 43230.0 baseline\n 256 │ 31 2000 286098.0 baseline\n\u001b[36m 241 rows omitted\u001b[0m",
"text/html": [
"<div class=\"data-frame\"><p>256 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>1500</td><td>878274.0</td><td>target</td></tr><tr><th>2</th><td>1</td><td>1000</td><td>121619.0</td><td>target</td></tr><tr><th>3</th><td>1</td><td>500</td><td>41630.0</td><td>target</td></tr><tr><th>4</th><td>1</td><td>2000</td><td>2.24199e6</td><td>target</td></tr><tr><th>5</th><td>1</td><td>1500</td><td>875544.0</td><td>baseline</td></tr><tr><th>6</th><td>1</td><td>1000</td><td>160869.0</td><td>baseline</td></tr><tr><th>7</th><td>1</td><td>500</td><td>40569.0</td><td>baseline</td></tr><tr><th>8</th><td>1</td><td>2000</td><td>2.22801e6</td><td>baseline</td></tr><tr><th>9</th><td>32</td><td>1500</td><td>154749.0</td><td>target</td></tr><tr><th>10</th><td>32</td><td>1000</td><td>68349.0</td><td>target</td></tr><tr><th>11</th><td>32</td><td>500</td><td>45210.0</td><td>target</td></tr><tr><th>12</th><td>32</td><td>2000</td><td>315478.0</td><td>target</td></tr><tr><th>13</th><td>32</td><td>1500</td><td>153609.0</td><td>baseline</td></tr><tr><th>14</th><td>32</td><td>1000</td><td>64469.0</td><td>baseline</td></tr><tr><th>15</th><td>32</td><td>500</td><td>45950.0</td><td>baseline</td></tr><tr><th>16</th><td>32</td><td>2000</td><td>304488.0</td><td>baseline</td></tr><tr><th>17</th><td>16</td><td>1500</td><td>121169.0</td><td>target</td></tr><tr><th>18</th><td>16</td><td>1000</td><td>50220.0</td><td>target</td></tr><tr><th>19</th><td>16</td><td>500</td><td>36000.0</td><td>target</td></tr><tr><th>20</th><td>16</td><td>2000</td><td>285228.0</td><td>target</td></tr><tr><th>21</th><td>16</td><td>1500</td><td>119089.0</td><td>baseline</td></tr><tr><th>22</th><td>16</td><td>1000</td><td>51269.0</td><td>baseline</td></tr><tr><th>23</th><td>16</td><td>500</td><td>36800.0</td><td>baseline</td></tr><tr><th>24</th><td>16</td><td>2000</td><td>295698.0</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": 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": "\u001b[1m128×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 1500 878274.0 875544.0 0.996892\n 2 │ 1 1000 121619.0 160869.0 1.32273\n 3 │ 1 500 41630.0 40569.0 0.974514\n 4 │ 1 2000 2.24199e6 2.22801e6 0.993764\n 5 │ 32 1500 154749.0 153609.0 0.992633\n 6 │ 32 1000 68349.0 64469.0 0.943233\n 7 │ 32 500 45210.0 45950.0 1.01637\n 8 │ 32 2000 315478.0 304488.0 0.965164\n ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮\n 122 │ 30 1000 62710.0 63250.0 1.00861\n 123 │ 30 500 40770.0 41949.0 1.02892\n 124 │ 30 2000 314728.0 297368.0 0.944841\n 125 │ 31 1500 147129.0 152829.0 1.03874\n 126 │ 31 1000 60999.0 64160.0 1.05182\n 127 │ 31 500 43050.0 43230.0 1.00418\n 128 │ 31 2000 289308.0 286098.0 0.988905\n\u001b[36m 113 rows omitted\u001b[0m",
"text/html": [
"<div class=\"data-frame\"><p>128 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>1500</td><td>878274.0</td><td>875544.0</td><td>0.996892</td></tr><tr><th>2</th><td>1</td><td>1000</td><td>121619.0</td><td>160869.0</td><td>1.32273</td></tr><tr><th>3</th><td>1</td><td>500</td><td>41630.0</td><td>40569.0</td><td>0.974514</td></tr><tr><th>4</th><td>1</td><td>2000</td><td>2.24199e6</td><td>2.22801e6</td><td>0.993764</td></tr><tr><th>5</th><td>32</td><td>1500</td><td>154749.0</td><td>153609.0</td><td>0.992633</td></tr><tr><th>6</th><td>32</td><td>1000</td><td>68349.0</td><td>64469.0</td><td>0.943233</td></tr><tr><th>7</th><td>32</td><td>500</td><td>45210.0</td><td>45950.0</td><td>1.01637</td></tr><tr><th>8</th><td>32</td><td>2000</td><td>315478.0</td><td>304488.0</td><td>0.965164</td></tr><tr><th>9</th><td>16</td><td>1500</td><td>121169.0</td><td>119089.0</td><td>0.982834</td></tr><tr><th>10</th><td>16</td><td>1000</td><td>50220.0</td><td>51269.0</td><td>1.02089</td></tr><tr><th>11</th><td>16</td><td>500</td><td>36000.0</td><td>36800.0</td><td>1.02222</td></tr><tr><th>12</th><td>16</td><td>2000</td><td>285228.0</td><td>295698.0</td><td>1.03671</td></tr><tr><th>13</th><td>8</td><td>1500</td><td>116100.0</td><td>114809.0</td><td>0.98888</td></tr><tr><th>14</th><td>8</td><td>1000</td><td>40770.0</td><td>40800.0</td><td>1.00074</td></tr><tr><th>15</th><td>8</td><td>500</td><td>24229.0</td><td>23500.0</td><td>0.969912</td></tr><tr><th>16</th><td>8</td><td>2000</td><td>675645.0</td><td>674594.0</td><td>0.998444</td></tr><tr><th>17</th><td>24</td><td>1500</td><td>139379.0</td><td>135309.0</td><td>0.970799</td></tr><tr><th>18</th><td>24</td><td>1000</td><td>58869.0</td><td>56400.0</td><td>0.958059</td></tr><tr><th>19</th><td>24</td><td>500</td><td>38560.0</td><td>38140.0</td><td>0.989108</td></tr><tr><th>20</th><td>24</td><td>2000</td><td>272688.0</td><td>299117.0</td><td>1.09692</td></tr><tr><th>21</th><td>28</td><td>1500</td><td>148759.0</td><td>148519.0</td><td>0.998387</td></tr><tr><th>22</th><td>28</td><td>1000</td><td>62520.0</td><td>59879.0</td><td>0.957758</td></tr><tr><th>23</th><td>28</td><td>500</td><td>42159.0</td><td>40560.0</td><td>0.962072</td></tr><tr><th>24</th><td>28</td><td>2000</td><td>275228.0</td><td>291548.0</td><td>1.0593</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": 6
}
],
"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": 6
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "DisplayAs.Showable{MIME{Symbol(\"image/png\")}}(VegaLite.VLSpec)",
"image/png": "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U6YQExPD3LlzA16XkJCQON30KRDPO+88pk6dytdff83111/PkCFDeOihhzh+/HiPx5SWljJsmLdgqVqt9rUy7crvfvc7XnvtNS666CLmzJnD8uXLf+StSEhISPw4+hSI8+fPZ+fOnRQWFvLkk0+i0Wh4/vnnWbZsWY/HWK1WVKoTwcoqlQqLxb9UVm1tLTNnzuTvf/87v/vd7/jTn/7kK1EuISEhMRj0K3XPbreTn59PcXExRqOxz/lxcXF+8+rr64mP968M/NRTT/HXv/6VUaNGMWrUKF544QVfV7+cnBy2b98ecN6Skr6rcJxqTvc1pXs8N645GPcocQoQ+2DlKHnh0AAAHaNJREFUypViZGSkCIiCIIhz584V3333XdFisfR4zDPPPCP+7//+ryiKorh//35x7NixoiiKYktLi2g0GkVRFMWLLrpIXLFihW88IiJCNJlMPZ7z2Wef7Wupp5zi4uJz+nqDcU3pHs+da56L9Kkh5ufnI4oid955J7/5zW98TV9641e/+hUXX3wxl156qV/rgWXLllFQUMBrr73GI488wpIlS1i9ejW5ubncf//9hIaeXPl9CQkJiVNJnwLx9ttv59FHH/WzCfZFREQE3333HUVFRSQnJ6PTeUvw//znP8dm8+aXzp8/n2PHjlFcXEx8fDwxMTE/8BYkJCQkTg19CsTOloIni0wmY8SIEX5j3bNbdDpdvzROCQkJidPB6e04JCEhIXEGIwlECQkJiQ76FIg5OTm+ZjGdrF+/nry8vAFblISEhMRg0KdA/Prrr3nhhRf8xn73u9+xatWqAVuUhISExGDQq1Pl4YcfJicnB6PRyMMPPwyAxWKhtLQUjUZzWhYoISEhcbroVSA+99xzQX8GmD59+sCsSEJCQmKQ6FUgvv7663z++efs3buXp556CgClUsm4ceOYOHHiaVmghISExOmiV4F45513MmvWLMrKypDJZCgUCiZOnIjJZDpd65OQkJA4bfTpVMnKyuKf//wnl156KUuXLmXPnj1kZGRIXmYJCYlzjj4F4rp169i4cSPjx48HYOHChSQkJLBjx44BX5yEhITE6aRPgXjkyBHGjRvHNddc4xtLTk6moaFhQBcmISEhcbrpUyBGRUVRWVnpazu6a9cucnNzSUhIGPDFSUhISJxO+hSICxYswGKx8Pzzz7NmzRpm/P/27j2s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"
},
"metadata": {},
"execution_count": 7
}
],
"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": 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": [
"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": 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
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