Skip to content

Instantly share code, notes, and snippets.

@tkf
Last active November 15, 2021 02:03
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/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
{
"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_mat_mul-$k.$e\"), v)\n",
" end\n",
" end\n",
"end;"
],
"metadata": {},
"execution_count": 4
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "\u001b[1m8×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 │ 200 329987.0 target\n 2 │ 1200 7.87722e7 target\n 3 │ 500 5.27995e6 target\n 4 │ 800 2.23272e7 target\n 5 │ 200 330287.0 baseline\n 6 │ 1200 7.91248e7 baseline\n 7 │ 500 5.30007e6 baseline\n 8 │ 800 2.24763e7 baseline",
"text/html": [
"<div class=\"data-frame\"><p>8 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>200</td><td>329987.0</td><td>target</td></tr><tr><th>2</th><td>1200</td><td>7.87722e7</td><td>target</td></tr><tr><th>3</th><td>500</td><td>5.27995e6</td><td>target</td></tr><tr><th>4</th><td>800</td><td>2.23272e7</td><td>target</td></tr><tr><th>5</th><td>200</td><td>330287.0</td><td>baseline</td></tr><tr><th>6</th><td>1200</td><td>7.91248e7</td><td>baseline</td></tr><tr><th>7</th><td>500</td><td>5.30007e6</td><td>baseline</td></tr><tr><th>8</th><td>800</td><td>2.24763e7</td><td>baseline</td></tr></tbody></table></div>"
]
},
"metadata": {},
"execution_count": 5
}
],
"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": 5
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "DisplayAs.Showable{MIME{Symbol(\"image/png\")}}(VegaLite.VLSpec)",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAAD3CAYAAADrGWTVAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3dd3hUZfbA8e+kkwohgdBDiAaQJh1ERAxFIJGOrIAIC8gK2GjuqqDs/gTXsi7YKCoCgvSqhmKA0CEgRJBOQNIIISGkZ5L39wfLSCSTZDI9OZ/n4XmYM+89c+YqJzfvvfe9GqWUQgghhF1ysHYBQgghyk+auBBC2DFp4kIIYcekiQshhB1znD179mxTJ01LSyMiIoLNmzfj5+eHn5+f7r3z58+zYsUK0tLSCA4OLjV+P0O3tVZOIYSwFLMciW/fvp1ly5axbNkyYmJidPGzZ8/St29fnJ2d+fDDD/noo49KjN/P0G2tlVMIISxKmdGIESPUmjVrdK8nT56s/vvf/yqllEpOTla1a9dWWq1Wb/x+hm5rrZxCCGFJFp0TP3XqFG3btgXAz88PDw8PEhMT9caN2dZaOYUQwpIs2sRTU1Px8vLSvfb29iYlJUVv3JhtrZVTCCEsycmSH1atWjXS09N1r9PT06levbreuDHbWjrnvn372L9/f5H8/v7+dOvWrWw7R4hKKCgoyNol2D2LNvEWLVpw7NgxOnfuzM2bN8nMzCQgIEBvPC8vj7y8PDw9PQ3e1pI5Abp06UKXLl2KfN958+bZ9P+kly9flvqMIPUZ5/Lly9YuoVxu3ryJv78/jRs35rfffrN2OeZp4nFxcWzbto0LFy6wc+dOMjIyGD16NC+++CLh4eE4ODiwceNGXn31VRwdHfXG169fz7Jly9i8ebPB21oypxCiYtFqtTg5Fd8eq1SpwowZM/D397dwVcXTKGX6BbAuXrzI4sWLda/d3Ny4dzn6uXPniIiI4OGHH6Z37966McXF58yZQ506dRgzZozB21oyJxQ/nQIwZMiQcuxBISoHU/6m8Pzzz/Ptt98SERFBz549uX79Og0aNKBZs2acPHmSn3/+mTfffJOYmBi8vLwYOHAg8+bNIzs7G39/f4KDg+nTpw/Lly/n7bff5uDBg2zfvp2MjAxq1arFpEmTmDZtWrFH4jt27ODtt98mJiaGqlWr0rdvX+bOnUu1atV04wMDA+nbty8rV67Ex8eHxYsX0717d+O/uLUvjynJd999p3Jzc20+pz5z5861yOeU16VLl6xdQomkPuPYYn2FhUotX/G9euHtJWr0m4vViu9Wq8JC0+Teu3evAtTIkSOVUkq9//77ClDz589XZ8+eVW5ubqp9+/Zqw4YN6t1331WAmjhxokpOTlaAAtQzzzyjPv30U/W3v/1NAWry5MkqIiJCffnll2rRokVKKaUb37hxY6WUUmfOnFGurq7Kz89Pffnll+qFF15QgBo8eHCR8YCaPn26+uijjxSgWrZsaZLvbdNN3N5JEzeO1GccW6xv28b1qt/MVUX+/LB5o0lyFxYWqsaNGytPT0+VkZGhWrRooapUqaJSU1N1jfPPfwIDA3VN1sfHR3eAt2fPHqXRaFRAQIAaPHiwmjNnjrp27ZpS6sEm/uGHHypATZs2TSmlVF5ennJ1dVWurq4qPz9fN75GjRqq8H8/sRwdHZWHh4dJvrdFT2xWZPqmU2z95I3UZxypzzCHYi4DdYvEjp/9nafDjM+t0Wj461//ytSpU3n33Xc5deoUo0aNomrVqroxzz//PJMnT9a9dnD44yrrgIAAXFxcAOjatSv79u0jIiKCU6dOMXv2bL755hsuXrxY7vp8fX3RaDQAODs7U1BQUO5c95MmbiJydYrpSX3GsaX6Thw/wdpd0RTk5jzwXlVX052WGzVqFH//+9/54IMPABg3bhwAffr04e9//ztbt26lW7dueHt7s3//frKyspgzZw6ArsEC7N27lz179tCmTRuaN29OVFQUycnJqGJOId7L/fXXXxMYGMiRI0fIzc1l8ODBek+OmpKsYiiEMAttQSFRUft49V+LeXvNeU7d8kKrnKnCH428CrmEdW9jss/09/fnmWeeobCwkKZNm+oOrEJCQti2bRuNGzfm5Zdf5vnnn2fPnj106tSp2DxOTk5s2LCBESNGMGLECGrWrMlXX31VpNHf07hxY7Zs2UJwcDDTp09n586djB8/noULF5rse5XELFeniLvmzZvHjBkzrF2GXrZ0pFYcqc841qovOyePiJ9+YtOJFG7muQPgo8mgV51bhIf3Iz8vh31795Kdk0OPXr3wC2pl8RorEmniJiKXGIrKLiMzm0OHjvBzrCOZha4ABDim8GTtdNp3eRIHzwevq7blH4L2Qpq4GcmRuHGkPuNYqr4r1+LY+lMku2MdyFN3b34LcYljUCsvOjw9DAc3b6vWV9HJiU0hRLmcPn2GNT8e4PgtT5RyRoOijfs1hnYJpOkTU8BB2oslyF4WQpSZUoojhw6x+ufTnM/wArxw0+TxeNVr9A9tTf02z1q7xEpHmrgQolQ5eVoiduxm05HrJOdVAbzwdsigd+1bhIf3wafeSGuXWGnJnLiJyIlNURHdO1kZGetARqEbADUdUuheJ532jz2Bg1dNo/LLnLjxpImbkZzYNI7UZxxj6otLSGLLtu3suOxA3v9u7A5xvk5Ysyp06fccju4+Vq2vNOd/v0XUqWtcT767/n9df2+6tqzPQ3V9zfJ51iTTKUIIndNnL7D2x/1EJ7uhlIvuZOWQTnV45MnJ4Ohi7RJLlK8tZP76o0SeiMVBc3eBFIDj5xPYuO8cTz4ayOSB7XB2evA+x8TERJ5++mlOnDhh8rrS0tLo1KkTv/32W5G/m4I0cSEqOaUURw4fYfXPMZy/4wVUwVmjpZPP7wwLbUX9tsOAB+9UtEXz1x8h8sQ1AArvm2O499fIE1cBxWtDO1q8tns8PT356quvTJZPbrsXopLKydPyY8QuXnzna/65KZbzd7zw1mQwNOA8X40NYdrMmdRv2xt7aeBnr6XomrR+isgTVzl7rfhn42q1WsaPH0+bNm3o378/d+7cAaBnz560adOGZs2a8c033wB3n9EbGhrKI488QqtWrdiwYQMAa9eupX379rRu3ZqRI0eSm5tb5DMyMjJ0zzNITEykcePGvPLKKwwYMIC+ffuSk5NTpjz3yJy4iciJTWEvMrOyOXAomt1X1B8nKx1v0b32bdo91hVHrwCL1WLKOfHFW0+w5cAFCktpaQ4aDWGPPcxf+xa93T8xMZHatWtz4MABOnbsyLRp0/Dy8uLtt98mJSWF6tWrk5WVRZcuXdi9ezcbNmzg1KlTfPjhhwDcuXOHmzdvMmbMGH788Ufc3NyYNWsW/v7+jBgxotjplMTERBo0aMC5c+cIDAxkypQpdO7cmQ4dOhSbZ9KkSQ98H5lOMRFZxdD0pD7j/Lm+hMRkNm396X8nK+/eFh/knEC/Jq50D38WR49qFq/PlOJTMko8Br9HaSD+5p1i32vYsCEdO96dahkxYgRTp05FKcWnn37KTz/9RJUqVYiLi+PSpUu0bt2a2bNn4+DgwIABA+jcuTPr1q3j6tWrhIXdXVs3KyuLJ554osR6goODCQwMBO4uphUbG0tOTk6Z80gTF6KCO332Ipu3R3Eo0Y3C/52sbF3lCkPa16BZ6ERwcrV2iaajoeTZFECjoJjFCIsfq9Gwfft2Dh48SGRkJK6urvTu3Zvc3FweffRRjh49ypYtW5g6dSr9+/fHz8+PXr168fnnnxfJk5aWpvcz7q1hDnfXN9dqtRQWFhabpzgyJy5EBaSU4rezF5k292tmLo3mQII7jhTS1ecK8wf58M7bM2jWe0yFauC1/bzQlGl2WFG7ulex71y5coWDBw8CsGzZMh5//HFSU1MJCgrC1dWVpKQkDhw4AMDvv/+Ol5cXL7zwAm+88QYnTpygW7dubNq0SfdbRmpqKpcuXTL4uxiSR47EhahA8rWF7N29m9X7rxCf4wm44+WQSah/IuF9n8LvoeesXaLZPN68Hpv2nSt1XKGCLs3rFfveI488wldffcWLL75Iw4YNWbZsGY6OjixdupShQ4fi6elJmzZ31z+Pjo7mrbfeQimFm5sbS5YsISgoiM8//5wBAwaQn5+Ps7Mzn3zyCdWrVzfou+jL06hRowfGyolNM5KbfYwj9ZXd7Yxstv6wnW0xt7mjvXt0XdPhFn3rp9G7/2Cq1HzIyhU+yBz77z9rDrPreElXqGh4qnUDXhnSwaSfa01yJC6EHUtISmbTtp3svFhArnIGXGnolEBYU1eCWnWiUZPK9cCFSQPbodFo2Bl9BQeNBvW/uW+NgkKlCG0TyEsD2lq3SBOTI3ETkUsMhSVdj0tk39FTHL7pQ6FyQIOiletlngzxILBtT5Sjfcx1m+s3mYtxqUSdusbvN4redh9cx7JX4FiCNHEzkukU40h9RSmlOHLsJGt3neDs7buPPXOigM5esQzp+hCBjw0EjaPV6jOUrddnL2Q6RQgbl68tZG/UftZGXeR6tjvgjrsmh25+iQzp2xW/kL9Yu0RhRRZt4idOnOC7774jLS2Npk2bMmHCBNzd7x5R7N69m/Xr1xMSEsKLL76Io6PjA9vrG2No3Nw5hTCF9IxsforYwdZfbpGqrQK4U8PhFv3qp9ErfCDutUKsXaKwARa9TjwlJYU2bdowdOhQYmJimDBhAgCHDx/mpZdeIiwsjOjoaN54440HttU3xtC4uXMKYazE5FS++GY1Y/5vHcuOZZOqrUKgUwKTm1znyxn9GTDhDWng4g/KSk6fPq1CQkKUUkqNGTNGLVmyRCml1J07d1SNGjVUbm5ukfH6xhgaN3fO+82dO9eofWRuly5dsnYJJaps9V24FKv+vWCpembmd6rfzFUq7I2V6u+z56kDm75SKi/T6vWZmjnrK4g7rnJ3zlI5q55TOaueU7k7Z6mC+BNm+zxrsvgdmz///DMvv/wyw4YNY8qUKQCcP3+eZs2aAXeXafT19SUhIaHIdvrGGBo3d04hDKGU4vCxX/jHv5fw6qJD7LnuigZFV6+LfNLHgX+99Rqdwl8AZ3drl2ofCvLI2zyZnG/6oD2yiILLkRRcjkR7ZBE5Xz9N3ubJUJBX7KbZ2dksWbLE7CWa+nMsfmKzYcOGhIaGkpGRgavr3cug0tPTqVKlim6Mh4cH6enpRbbTN8bQuLlzClEW2oJC9uw9wNqoC/87WelJFXJ40i+OQaGtqdFSTlaWR962V9H+endJWFThA+9rf10HFOIS/ukD72VmZvKf//yHsWPHlvnzlFIopXBwKPvxcHk+pyRWaeINGzakV69eBAQE8Pzzz+Pn50dqaqpuTEpKCv7+/kW20zfG0Li5cuq7TtzUK7WZmtRnHEPry87TcvzoUXaczyNVe/dKE3+HVLrVuEGHTp1x9nucDCDDRN/b1vefKRXGHUP76/pSRim0v67Hqc0LONQpetPPv/71L2JjY+nRowedO3fmnXfeoWfPnqSkpJCbm8vUqVMZPXo0iYmJPPnkk3Tv3p3Lly/z9ddfs3z5cpYsWUK9evUIDAykadOmvPLKK6xdu5b3338frVbLI488wuLFi4v9HGNYtIkXFhbqfmIlJyej1WpxcHCgQ4cOREVF0bVrV2JjY3FwcKBmzZqkpqaSkpJCcHCw3jGGxs2RE2QpWnOoSPUl3bzNhq0R7LqQT06hE+BEoGMCYQ8X0P2Zv+DkU8uq9VmDqX/AaH/bDBqHYo/Ai9A4oP1tCy5/auL/+Mc/2LlzJzt27NDFVq5cWWQd8YEDBwJw8eJFNm7cSEhICGfOnOHbb78lOjoajUZDx44dadq0KVeuXOHTTz9l7969ujXBFy1aVOznGMOiTXz48OG4ubnh4+PD1q1befvtt3FwcGDixImEhoaSnJxMZGQkc+bM0S0BuXr1atatW6d3jKFxc+QUQp9LsdfZ+ONuoq45UoAD4ESISxyDWnnRsc8YNK7e1i6xwlC3rph0rNKzjnitWrUICgoiJOTuFUIHDhzg6aef1l0u/cwzzwCwZ88eg9cWLw+LNvGFCxdy8OBBcnNzeeWVV3RHCfXq1ePgwYMcOnSIiRMn6nbOyZMnGTFiRIljDI2bI6cQ91MKfjn1K5t3HeFYsgfgjBMFdPW6wKCuIQR1ngIOcp+d6RlwQFWGgy9964gDuoZdEn1rgt+8ebPsdZaBRf9P8vHxoXfv3sW+5+vrS58+fYrEwsLC6NChQ4ljDI2bI6cQcO9k5UHW7TvP71nugAdumhy6V73KwJ7tqdlqOPbyvEp7pPFtCGVculvj2/CBmKenJ0lJSbrX+tYR/7POnTvzySefMGvWLDQaDZs2beKFF16gW7duvPnmm0ybNo2goCBSU1O5desWderUKfI5xrLpw4FOnTrZRU5Rudy8lU7U/oOk30nHp5o/Vdzd2LFzDxuOxJGS5wa4U01zhx61k+kf1huvBs9bu+RKwalJONojC0sfqApxahz2QNjNzY1nnnmGhx9+mPDwcN59991i1xH/s6ZNmzJy5EgeffRR6tWrx6OPPoq3t3eJa4Lf/zkffPCBUd9bFsAyI1kAyzi2WN/V2FimLtxHjnIGwE2Ti5dDLskFd+e2GzglEv6QlifDnsW5Wh1rlmqT++9+5qgvb8sUtDFrKWk9cafmg3EJ+69JPzcrKwt3d3dycnLo0aMHn376KS1atDDpZ+hj0Zt9vv32Wzp37szDDz/MyJEjdXNDSineffddWrVqxcCBA0lOTn5gW31jDI2bO6eo2DZt+UnXwAFylCtVuUVL1yvM6nyH+W+Ooeeo163ewCsrlz4f4tRi2N0XGs3dq1U0Dro5cKcWw3Dp86HJP/fll1+mXbt2tGvXjrCwMIs1cLBwE9doNHz11VecPn0aPz8/pk2bBsDq1as5cOAAhw8fpk+fPowbN+6BbfWNMTRu7pyiYruVnvlAzMdV8c+3Xqdt2F/RuBb/7EZhIY7OuPT7GLcxETh3mIhjo+44NuqOc/sXcRsTgUu/j8HRufQ8Blq0aBFHjx4lJiaG6dOnmzx/iaxys79Sav/+/apTp05KKaUGDhyo1q9fr5RSSqvVKj8/P5WRkVFkvL4xhsbNnfN+snaKcWypvtx8rfry61XqrTffVv1mriry54eVC61dXrFsaf8Vx9brsxdWe9r9ypUr6dWrFwDXr1+nQYMGADg6OlKrVi3i4+OLjNc3xtC4uXOKiif2Whyvv7eULefgrLYRvascooYmhZoOKQyve5Heg0ZZu0RRiVnl6pR169Zx4MABoqKiAMjPzy+yLrejoyP5+flFttE3xtC4uXOKikMp2LTlB749lEq+8qCO401e7V6VkO4fo3LSiY2NpWFjy819ClEcizfxqKgo3nrrLXbt2qW7YD4gIICEhARatmwJQEJCArVqFb0NWd8YQ+Pmyilrp5iHtepLvX2HlT8c5lyGDxqNI929ztGvdzccq9b9oyYXT9l/wuos2sRPnTrF2LFj2bp1a5GG+vTTT7N27Vp69+5NZGQkjRo1olq1apw7d46YmBgGDx6sd4yhcXPkBFk7xRysVV/U3ig+jbhCZqEPPpoMXmqTTaeB/yjy/Epr1ldW9lCfMJ5Fm/grr7xCRkYGf/nL3WU269Wrx4YNGxg7dizDhw+nZcuW5OXlsXLlSuDuk3QiIyMZPHiw3jGGxs2RU1QMmVnZLPhqNfvi3ABXOnhcZvLIPvg0aGnt0oTQy6JNfNOmTWi1Wt3reysauru7s2nTJrKzs4us133o0CHdgyP0jTE0bo6cwv4dP3GKT9ZHc0vrThVyGNU4hX4jXgdHF2uXJkSJLNrEvbxKvob2z43x3//+Nx4eHiWOMTRujpzCfuXlF/DVinX8cL4QpdwJcYnnlUFtqNtCbpUX9sGm1075c7O11ZzCPp2/cIkPv9tNfI4nTppCBta5yl/GTMTRvaq1SxOizGy6iQthDgWFinXrN7IyOhstntR1usFrPWvz0ONvWLs0IQwmTVxUKolJN/jo6838dtsLjcaBPtUvM3bMaFyqmf7JOkJYgjRxUWns2hnJFz/HkaO88HNIY0oXFx59eiayxrewZ9LERYV3O/0OnyxZz9EbboAznbximfR8f7zryJOZhP2TJi4qtGNHjvLfzadJLaiCO9mMb57OU8++Bg6mX8lOCGuQJi4qpOzcfBYv/Z7tV5yBKrRwu8bLw7pQo7E82UlULNLERYVz9rezfLhqP4l5nrigZWj96wwd8xIaV09rlyaEyUkTFxVGQaFi1eoNrD6VS6HypL7TDV4PCyao/XPWLk0Is5EmLiqEa7/H89HSH7iU6YWDBgbUimXkC2Nx9vKzdmlCmJVFHwoRHR3NiBEjaNeuHbt27Sry3oIFC+jatSt//etfuX37drHb6xtjaNzcOYXlKAU//PAjr3/+M5cyvfB3TOPdboWMmTJDGrioFCzaxJVS9OvXjxo1apCamqqLb968mdWrV7N+/XoaN27MxIkTH9hW3xhD4+bOKSwnNfU2sz9czOdR6eQoZ7p6X2HB5B607CnTJ6ISscYz4UaMGKHWrFmjez106FC1evVqpZRSeXl5qnr16iozM7PINvrGGBo3d877yTM2jVNSfVF796pn//616jdzlfrLG4vVvjULlCrUWrA6+95/tsDW67MXVnvG5v1iY2Np1KgRAM7OzgQEBDzw7Ep9YwyNmzunMK+s7Gzmf7GUeT/Ek1FYhVbuv/PJ2NY8NvilBx7aIERlYBMnNvPy8nBy+qMUFxcXcnNzyzTG0Li5cwrzOXP6NB+tPkRSnicumnxGBN+k/6gpaJxkzW9RedlEE69ZsyZJSUm614mJiQQEBJRpjKFxc+WUZ2yax+XLl8kvKGTnz/uJiHVF4Ukj53hGdq1HtaBwrly7bvX6bJmt1yeMZxNNPDQ0lC1bttCjRw8OHz5M7dq1qV69OleuXOHcuXP07t1b7xhD4+bICfKMTXO4fPkyjg4O/Gf5Lq5ke+NIAeG1rjNy7DicPapZuzy72H+2Xp8wAUtOwEdHR6vQ0FAVEBCgWrRoofr376+UUur27dvq8ccfV127dlVBQUFq3759Simlli1bpp577rkSxxgaN0dOfeTEZvkVFir17dJv1YA3lqt+M1epsf/4XMX8vNbaZRVhy/tPKamvstAopZSlfmCkp6dz4cIF3WtHR0datWqle52QkIC/v79u3nnKlCkMHz6cTp066R1jaNwcOUH/dMqQIUNK3iniAWlpaaz88ShnM6qi0Sie9L5E36efwsmrhrVLEyZmy78p2Au9TXzLli1s3bq1xI1bt27NhAkTzFIYwJUrV2jYsKHN59Rn3rx5zJgxwyKfVR62+Ot21J7dfLr9GpmFrvhoMpjUyYGOYaOxxTW/bXH/3U/qqxz0zolHR0ezcOHCEjcePHiwWZu4OZqtpRq4MExmVhafLfmevfHugCsdPGMZENqORzp0t3ZpQti0Ek9sPv7447z99tvFvrdixQoyMjLMUpQ9kqtTyu/iuXMs3x9PaoEnVchhSGASbZ8agHJwson6SiL1CWvT28SDgoJwcHAgNDS02PeTkpK4dOmS2QqzN3J1iuHy8rWsWL6SDeedUXjysEs8rw1pT51mz9tEfaWR+owjP2BMQ28THzVqVIkbPvecrE8hyu/8uXN8tDKKuFwvnDQFDKwTx3NjJ+LgJmt+C2GIUq8Tz8vL4/r169SpU4fr16+zatUqOnfuzJNPPmmJ+kQFU1ioWLtuAyuP56DFi7pOybzeN4jgjn+xdmlC2KVSLzHctm0bAwcOJDk5mS5duhATE4OjoyMnT57kkUcesVSdNk8uMSzdrVuprPrxCOeyfNFoFN18rtKvbw+c3KtauzRhJbY83WMvSj0SP3/+PE2bNiUnJ4eYmBimT5/OokWL+Pnnn6WJ30fmxEu2M+InvtyTTI7yxc8hjSldPXm0V8mXX9rDnK7UV34yJ24apTbx3NxcnJycOHnyJACvvfYae/fu5c6dO2YvTti/22m3+eTrdRy94QG40MnrKpNGD8S7drC1SxOiQii1iTds2JDjx4/z/PPPU7t2bd0iUDVqyN1zomTHDu3nv1vPk1rggbsmh3Etsggd9rosGSuECZXaxMPDw+nbty8nT55kzpw5/P7772g0Gtq1a2eJ+uyGXCf+h/z8fH7cvptd8VUBd5q5XmN4aDM8a4dw+cpVq9dnSlKfsDaLrp1S2VSW2+5jTp5k175oNBpo2jCANYfjScj1wgUtQxvdZOjoF9E4uVqtPnOR+oxj6/XZizItRXvhwgV27NhRZB78sccee+BEnqh8Th49yFvrr6LwAGDX7+kEaHKo75zD6wOaEfSo3E8ghDmV2sRPnTpF+/btH3iCzaxZs6SJC3bsO47ij6fKKzTUcrnNm9NfwlkuHRTC7Ept4jt27KCwsJDXXnutyMnMxx57zKyFCftQUKB9IObh6SUNXAgLKbWJBwcHExISwocffmiJeoSdCaqqZV9K0VjX5rWtU4wQlVCpJzZ//fVXevbsSf/+/Xnsscdwcbn7UNqmTZvKzT73qYx3bKYk3+CDTecJcbxEgcYZRydnOjfy5OFOT1u7NGEn5MSm8Uo9El+7di0JCQl8/vnnfP7557r4rFmzpInfp7LdsanValmwIoIs5Yubuzd/n/mKya//tvWrF6Q+48jlj6ZRahNv06YN48ePLzYuKq/FS5ZyIcuXAKdUpox/Vm7gEcJKSm3iYWFhhIWFWaIWYSeORP3MD1c9cNIU8lrfYDyr17F2SUJUWg763li4cGGJN6osWbLEpm9kEeZxI/46H/90DaU0PN8knSYdi39oiBDCMvQeicfHx3Pw4EF27txZ7Pv79u2Tx7NVMlqtlnlLNpNRWJ02XvE889wUa5ckRKVX4nRKVFQUPXr00Pv+4MGDTV6QvaoMa6ds3fYT57Oq4+d4myG9O3Il1rB1UMqjIu0/a7D1+oTx9DbxLl26lDpd0rx5c5MXZK8q+tUpR6J+ZmeCL06aQqb1C6Jp605mrs4+rq6Q+spPfsCYht4mHhoaqvchyaJySU6M+988eL3b12UAABzQSURBVBVGNkmlacfh1i5JCPE/ek9sCgFQUFjIvMVbyCisQhuvBAY8N87aJQkh7mMTTXzZsmUEBwcTGBhIp06d+OWXXx4YU1BQwMsvv0zTpk3p1q0b165dK1fc3Dkrmq+/Wsq5zGpUd0jntb8ORuNYpoUvhRAWYhNNvGfPnpw+fZrY2FimTp3K3/72twfGLFu2jOvXr3P69GkmT56suwHJ0Li5c1Ykxw5EsflyFRwpYFqfOnjXqGvtkoQQf1KmJl5QUMCPP/7Ijh07SElJMfkJiZo1a+LqevehAU5OThQUFDwwZsOGDYwePRqNRsOAAQOIjo7mzp07BsfNnbOiSE5K5KMfLqGUhhEhaTzyWB9rlySEKEapTbywsJC+ffvSp08fFi5cyNGjR2nUqBGnT582aSFLliwhKCiIcePG8dlnnz3wfnx8PHXr3j0SdHBwoHbt2sTHxxscN3fOiqCgsJD3F2/gTkEVWnvEMWikzIMLYatKbeL3jsBbtWoFQO/evalVqxYHDhwwaSFjx47l0qVLfPTRR7z33nsPvK+UQqPR6F5rNBqUUgbHzZ2zIvj2m285m+FLdcd0Xhs7AI2js7VLEkLoUepZqjNnztCyZUsGDhzIyZMnAahbty43b940eTEajYYRI0YwYcIE8vLydMveAtSqVYu4uDhatWqFUor4+Hhq1aplcPx+psxZUW72OX/mFBsuuOFIAS+0cyMlW5Fixe9gb/vP1th6fcJ4pTbx6tWrc/36dd3c76FDh4iJiSn25GN5nTp1imbNmuHg4MCGDRsICAjAxcWFmJgYoqOjGT16NGFhYSxfvpy+ffuybds2mjVrho+Pj8Fxc+SEinGzz62bN1hx6BYKD4Y/lMoTz7xkxers42YVqa/85AeMiahSXL9+XXl4eChAOTg4KEB5eHio+Pj40jYts6lTp6qAgABVv3591aFDB3XkyBGllFJfffWVGjdunFJKqby8PDV69GgVHBys2rZtq86dO1euuDly6jN37lyT7SNzuHTpku7vhYUFaua/PlP9Zq5Sb835SBVqc61Y2V3312eLpD7j2Hp99qLUJq6UUj/99JNq0qSJcnZ2Vk2bNlURERHmrksppdS4cePUr7/+avM59bGnJv7NV1+rfjNXqRF/X6xSrtvGPy5b/0cu9RnH1uuzF2W6c6NXr15ER0eTk5Oji2VnZ1OlShUz/X5w18KFC+0ip707eXQ/6y+4okHxes+a+Nax3V/BhRBFlXp1SkZGBt27d8fd3R1fX1/dn3nz5lmiPmFmqSnJfLDpHIXKgeGNUmj1RD9rlySEMECpTXzFihVERkbi7e1NcHAwQUFBBAUFUa1aNZMWcv36dX755RcyMzP1jikoKODMmTMP3GBjaNzcOe2FUoV8sHANaQUeNHNPZNjzcj24EPam1OkUFxcX3N3dSU5OLnLJnymNGzeOw4cPExQUxPHjx/nuu+8euNLj1q1b9OzZk8DAQE6ePMnnn39OaGiowXFz57Qnu3bs5FR6dXwcMpk2ph8Ozub57yuEMKPSJs3T0tLUo48+qt566y0VFRWljh07po4dO6bi4uJMNjF/5coV3d+///571aNHjwfG/Otf/1LTp09XSil18uRJ1bx583LFzZ3zfrZ8YvOXI/tV+BvfqbCZK1V05BZrl1MsWz/xJfUZx9brsxelTqdkZ2eTmprKnDlzePzxx2nbti1t27Y16QnCwMBA3d99fHyKvQty9+7d9O7dG4AWLVqQlpZGcnKywXFz57QHaSnJfLjpLIXKgWFBN2ndTebBhbBXpU6nrFy5ktjYWIKDg6lfvz4ODnf7vjluItBqtcyePbvYJwrduHEDPz8/3Wt/f3+SkpIMjvv7+5s1p61TSvHvRWtJLfCliVs8w0db94YeIYRxSm3i9evXx8PDg/PnzxdZN8QcJk6cSIcOHejfv/8D77m7uxe5xDEnJwd3d3eD4+bKaS+33f+8Yzunbvvi7ZDJiN6tif39urVLKpGt7b8/k/qEtZXaxENCQqhVqxYvvPACoaGhuiVjmzZtyiOPPGKyQmbNmkV6ejpffvllse83bNiQCxcu0K5dO3Jzc0lKSqJ27doGx82V0x5uuz917BBbrvrcvR481A9P/3o2Vd+f2cNt41Jf+ckPGNMotYmvXbuWixcvcvHiRZYuXaqLz5o1y2RN/LPPPmPjxo2sWrWK2NhYnJ2dqVevHrt27WLr1q18/PHHjBo1ijfffJNHH32UFStWEBYWhpubm8Fxc+S0B2mpN/lg4xkKlQdDGibT+slJ8o9IiAqg1Cbepk2bYp9g06ZNG5MVceHCBWrUqMGUKVMAqF27NkuXLuXMmTN4e3sDd+8avXHjBjNmzODhhx/m008/LVfcHDltnVKKDxeuIbXAl6ZVEhnxwovWLkkIYSIaVdylIDbi/fffZ8yYMUVOJtpiTn3mzZtX7ElaS1u1fBkrTrvg7ZDJfyc+TvW6DwH28eu21Fd+Ul/loPdI/PTp05w5c4bGjRtz9uzZB9439Zx4caZPn24XOW3ZbyeP8f0ZJzQoXu1WVdfAhRAVg94mvmbNGt555x1mzpzJ3LlzH3jflHPiwjzupKXx7zW/oFVeDAq8Qdsek61dkhDCxPQ28Xtz4e3btzf7nLgwPaXg44XfkVxQnYfckhgx+q/WLkkIYQZ6m3hYWBhhYWEADBgwwGIFCdNYs3I5R1Or4+mQxfRRoTi5upe+kRDC7ui97X7evHn4+vqi1WotWY8wgd9ORbPyV0c0GsXkrl4ENGxq7ZKEEGait4nfWzNF2JeM22n8e80JtMqB/nWT6dxrsLVLEkKYUanXie/atQtHR8cH4vfWFRe2Qyn4aOF3JGur85DrDUaNHWvtkoQQZlZqE7+3at+fzZo1i9mzZ5u8IFF+67//jqO3quOhyWb6qKdkHlyISqDUJt66detiF7768zokwrrOnjrO8pOg0SimdPUkIEjmwYWoDEpt4ocPH8bJqUzPUxZWknknnX+viUaLN+F1kujce4q1SxJCWEipD4WwFK1WS0xMTKknUxMSEoq9YsbQuLlzWopS8PEXy7mh9SbY7QYv/FWuBxeiMtHbxENDQ5k7d67uIRDmtHr1avz9/enSpQu7du0qdsydO3fo1q0bI0aMoEmTJhw8eLBccXPntLSNa1Zy+FZ13DXZTB/ZXebBhahk9HboLl26MGPGDIs08R49epCQkEB4eLjeMQsXLqRFixbs2rWLFStWMHny5HLFzZ3Tks7FnODbE+ru9eCPe1ArSJZBEKKysYnplGrVqpW6LveOHTt0Tb59+/YkJCSQkpJicNzcOS0l8046/159DC2O9K11gy5PD7FKHUII67KJJl4WSUlJ1KhRQ/e6Zs2aJCYmGhw3d05L+c+Xy0jSehPkmszYcXI9uBCVld1cduLq6kp+fr7udW5uLm5ubgbHzZXTks/YPLg3kkMpfrhrsnk+NIRr8UnlzmXrT/eR+oxj6/UJ49lNE2/QoAGXLl2iTZs25Ofnk5SURK1atQyOmyunpZ6xefm3X1h/7u4PjkldPGjdpUf5c9n4ovxSn3HsoT5hPJuYTsnPzyc1NZW8vDwyMzNJS0sDICoqirfeeguA4cOHs2DBAhITE/n4448JDQ3F3d3d4Lg5clpKTlYG81YdJg8n+tRO5PE+Mg8uRGVnE0fiJ06c4G9/+xsA8+fP55tvviEyMpKYmBjy8vIA6N+/P9euXWPIkCE8/PDDfPnll+WKmyMnWGY6ZeXaLcTnBVDP+SZPhT5lkty2fjQk9RnH1usTxrPpZ2y+8847TJgwgYCAAJvOqY8pn7G5dcNavjxSgBu5fPR8c+o1ftTonPbw67bUV35SX+VgE0fi+syaNcsucprblXOn+fpoDuDMxE6uJmngQoiKwSbmxIV+OVmZzFuxnzzlTK+a8XQPH2btkoQQNsSmp1Psib458SFDjDv5+P3azRxIrUV952RefvYJnNw8jMonhC2R6RTj2fR0ij0xxyWGP2xaz4HUWriRy4y/dKZ+4+bGllmErc9JSn3GsYf6hPFkOsVGxZ4/zVeHMgGY0NGZ+o1bW7kiIYQtkiZug+7Og+8jFxd61Ign9Jnh1i5JCGGjZE7cREw5J7563Rb23wqgntNNXh7+OM5unqYoUQibY8vTPfZC5sRNxFRz4hFbNrD/VgBumjxm/KUjDZq0MGWZRdjDnKnUV372UJ8wnkyn2JCrF86w6EAGAOPbO9GgSRsrVySEsHXSxG1ETnYWc5fvJRcXuvvH06O/zIMLIUonc+ImYuyc+Jp1W9h3K4C6Tim8MryLzIOLSsGWp3vshcyJm4gxc+K7f9jIvv/Ng8/8SwezzoPfzx7mTKW+8rOH+oTxZDrFyq5fPstn+9IBGN9WI/PgQgiDSBO3orzcbOZ9G0m2cqVL9UR6DBxh7ZKEEHZGmrgVffbFN8Tm+lLbKZXJ40dZuxwhhB2SE5smYuiJzV+PRLHopBsuaJkaWpWaDZuYu0QhbI4tz9nbCzmxaSKGnNiMu3yWFac0AIxvW0inp/papMY/s4cTX1Jf+dlDfcJ4Mp1iYXl5OcxdFkmWcuUx3yR6DRpp7ZKEEHZMmriFffnl18Tm+BLglMbkCXIiUwhhHGniFrQ3Yhvb431xQcuMQc3x8Pa1dklCCDsnTdxC4q9e4tM9KQCMbV1AcKvOVq5ICFERSBO3gPy8XOZ+vZ0s5Urnagn0GSLz4EII05BLDE2kpEsMN27cQmRyADUdU3l9aHtcPataoUIhbI8tXz1jL6SJm9G8efPo3KYZ7+/KwFmjZd7QQB5q9Zi1y9Kxh0vQpL7yk/oqB7lO3Azy83I588sRnPLS+fznJMCDMS20NtXAhRAVg93Miefn53PkyBEiIiK4evVqkfcyMzPZu3cvcXFxZYobs21pOVOTE5n0z294c0M8u7NaUEWTSxfvq/R7Vm6rF0KYnt008c8++4x58+axbt06evTowaeffgpAUlISHTt2ZPny5fTs2ZONGzeWGL+foduWJefatRuJz/9jzvtGoS9Vvd0Bjal3iRBC2Oec+OnTpxk6dCinT59m1qxZaDQaZs+ezYULF+jXrx9nz55l9uzZxcY1mj+aqaHbliXnu/PmczStRpF621dN4q0ZUyy2f8rK1uckpT7jSH2Vg90ciQMkJCQQFRXF/PnzadHi7oMT9u/fT/fu3QF46KGHyM3N5caNG3rj9zN027LkfKim2wN1B9d0N+FeEEKIP9hVEz9x4gSLFi1i3759zJw5E4Dk5GSqVaumG+Pn58eNGzf0xu9n6LZlyTlo2HA6+iTqXneqmsigZ+V5mUII87Crq1P69OlDnz59uHbtGk899RQXLlzAy8uL7Oxs3ZjMzEy8vLz0xu9n6LYl5bz/OnEnDXTzOQ/AgCHPcT0+yYR7wbRsfSU5qc84tl6fMJ5dNfF7atWqRXx8PHl5eTRq1IjffvuN9u3bk5WVxc2bN6lVq5be+P0M3baknMY8Y9NabH1OUuozjj3UJ4xnN018wYIFBAYG4uPjw+LFi3nyySdxcXFh7NixTJo0iUaNGrFy5UqGDRuGq6ur3viPP/7I+vXrWbRokcHb6osLIYS1OM6ePXu2tYsoi6SkJDZu3Mjhw4dp2bIlc+fOxcXFhQYNGlCvXj1WrFhBw4YNeffdd3F0dNQb37p1K15eXjz++OMGb6svrs/+/fsfODq3JampqUXm+G2N1Gccqa9ysMtLDI2xYMECRo4ciY+Pj9k/a968ecyYMcPsn1Ne9vDrttRXflJf5WA30ymmMmnSJGuXIIQQJmNXlxgKIYQoym6OxK9cucLGjRtJTk6mY8eOhIeH6947fvw4mzdvJiQkhGeffVZ3B6W++P0M3bYsOYUQwlLs5kj8vffeIyMjg2bNmvHPf/6TDz74AICTJ08yfPhwmjRpwrp165gzZ06J8fsZum1ZcgohhEUpOxQVFaU6deqklFLqxRdfVF988YVSSqm0tDQVEBCg8vPz9cbvZ+i2Zcl5v7lz55r2i5vYpUuXrF1CiaQ+40h9lYPdHInf7/Tp0zRq1Ej395YtWwLg4+ODj48PCQkJeuN/zmPItmXJKYQQlmQ3c+L3XL16lffee4+dO3cCcPv2bTw9PXXve3p6kpqaqjder149XczQbcuSUwghLMmumvitW7cIDw/n888/Jzg4GIDq1auTlpamG5OWloafn5/e+P0M3baknPqesWnrtxZLfcaR+oS12U0Tz8rKIjw8nNdff52nn35aF2/dujWHDh2iS5cuJCQkkJeXR0BAgN54ZmYmd+7cKXGMoXGQtVPMQeozjj3UJ4xnN0184sSJpKenk5CQwLx586hWrRrjx49n4sSJ9O7dm6ysLH744Qf+8Y9/4ODgoDe+bds2vvvuOzZu3GjwtvriQghhLXbTxAcNGsRjj/3xoGFvb2/g7kqEu3fvJjIykk8++YQOHTqUGP/1118ZNmxYubbVFxdCCGupdGun7Ny5kyeffLLEhatMRdZOMY7UZxypr3KwmyNxUwkNDbV2CUIIYTIyoSuEEHZMmrgQQtgxaeJCCGHHpIkLIYQdkyYuhBB2TJq4EELYMWniQghhx6SJCyGEHZMmLoQQdsxu7thMS0tjz549nDt3jmeeeYaQkBDde+fPn+enn34iJCSEXr16lRq/n6HbliWnEEJYit0ciW/fvp1ly5axbNkyYmJidPGzZ8/St29fnJ2d+fDDD/noo49KjN/P0G3LklMIISzK2s+HM9SIESPUmjVrdK8nT56s/vvf/yqllEpOTla1a9dWWq1Wb/x+hm5blpz3k2dsGkfqM47UVznYzZG4PqdOnaJt27YA+Pn54eHhQWJiot64MduWJacQQliS3Tfx1NRUvLy8dK+9vb1JSUnRGzdm27LkFEIIS7KbE5v6VKtWjfT0dN3r9PR0qlevrjduzLYl5SzuGZvOzs7MmzfPNF9UiArG399f1hM3Abtv4i1atODYsWN07tyZmzdvkpmZSUBAgN54Xl4eeXl5eHp6Grytvjjof8amLT8UQuozjtRnHDnAMQ27aeJxcXFs27aNCxcusHPnTjIyMhg9ejQvvvgi4eHhODg4sHHjRl599VUcHR31xtevX8+yZcvYvHmzwdvqiwshhLXYzZx4dnY2ly9fplu3blStWpXY2FgAmjZtyrZt2ygsLGTq1KlMnTq1xPjZs2fp379/ubbVFxdCCGuxmyPx4OBg5s6dW+x7ISEhRW7+KSkeHBzMoEGDyrVtSXEhhLAGx9mzZ8+2dhGW1Lx5c4tOgdSvX99in1UeUp9xpD7j2Hp99qDSPe1eCCEqkkp3JG5pN2/eZPXq1ezatYvCwsIiRx7nz59nxYoVpKWlERwcXGq8IsrOzmbp0qXs2rUL+OPITPbNg9LS0oiIiGDz5s34+fnh5+dX7DhD911l3qcVgd2c2LRXL7/8MqdOncLV1ZUJEybwxRdfALI+C9xt4N27d+fo0aO4ubkREREByL7RR9/6QfeT9YAqIWvf91/RFRQU6P6+e/du9dhjjymljFvzpaJYsGCBGjVq1ANx2Tcl+/P6Qfcz93pAwvbIkbiZOTj8sYtjY2OpU6cOYNyaLxVFZGQkvXr1Yt26dWzevBmtVgvIvjGGrAdU+UgTt5CkpCTeeecd3nrrLcC4NV8qisTERN5//31+/fVXvvvuO8LCwlBKyb4xgqwHVPnYzXXi9iwjI4OwsDDmzp1Ls2bNAOPWfKkoqlWrRnh4ONOnT0cpRaNGjbhw4YLsGyOYcj0gYR/kSNzM8vLyGDRoECNHjmTo0KG6+L11WIBi12f5c7wiatmyJc7OzgBoNBqcnJxQSsm+MVBeXh4ZGRmA4f9fyT61f3IkbmZTpkwhMTERV1dXFi5ciLe3N88++6yszwKMGzeOvn374uLiwunTp6lduzYPPfSQ7Bs99K0ftGnTJlkPqBKTm33M7IsvvtCt8wJQvXp1pk2bBsC5c+eIiIjg4Ycfpnfv3rox+uIVUWxsLNu2bcPLy4thw4bh6uoKyL4pzsWLF1m8eLHutZubG7Nnz2bOnDnUqVOHMWPGAIbvu8q8TysCaeJC2LmVK1cyaNAgXFxcrF2KsAJp4kIIYcfkxKYQQtgxaeJCCGHHpIkLIYQdkyYuhBB2TK4TFzZpx44dHD9+nPDwcJo0aVLuPHfu3OGzzz6jY8eOPPHEE7r4zp07iY6OBmDy5Mm4u7uXOWd2djb79u0jJiaG/Px8WrduTY8ePXTvR0VFceDAASZOnIi3t3e5axeiTKy29JYQJZg0aZIC1MqVK43K8+abbypAHTp0qEi8SZMmClCAWr58uUE5d+zYoQDl7OysADVp0qQi7x87dkwBasaMGUbVLkRZyCWGwmqys7PZsmULV65cwdnZmZCQEHr06IGLi8sDR+JffPEFt2/fLrJ9nz59aN68OXFxcURERJCamkrjxo3p06cPGo2G7Oxs6tatS1BQEEePHtVtd/jwYTp27MgjjzzC6dOn6dmzp24t87K4desWqampREZGMm7cOCZNmsT8+fOLjOnUqRNnzpwhLi4OT09P43aUECWQ6RRhNcOGDWPbtm20bt0arVbLmTNnOHfuHIGBgWzevJkFCxbQoEEDmjRpwsqVK7l+/Tpw9y7PwsJC6tatS3x8PIMGDcLd3Z26dety8uRJevTowbZt24iMjOTWrVu8+uqrRT536dKlALz99tu899577Nq1i7i4ON0ywaXx9fXF19eXyMhIvWPCw8M5dOgQO3bsYMCAAeXcQ0KUTk5sCqs5efIkNWvW5P/+7//Yvn07ycnJ1K5du9ixe/bs4dKlS0yYMIHCwkL69evH0KFDefXVV8nKymL8+PEMGzaMli1bEhERwY4dOzhx4gQATZs21eXJzc1l1apV+Pj4EB4eznPPPUdBQQHLli0z6Xe795m//PKLSfMK8WfSxIXVzJkzB41GQ8+ePalRowZdunTh999/1zv+iy++YObMmXTv3p01a9bg5OTExYsX0Wg0nD9/nujoaIKDgxkyZAgajYasrCwAqlSposuxefNmUlNT8fb25uWXX+bAgQMAfPvttyb9bvc+897qgkKYizRxYTVPPfUUcXFxJCUlMX36dGJiYvj++++LHbt8+XJeeuklOnbsyKZNm3Bzc0Oj0RAcHExhYSGvvfYaq1evZvXq1YwZM4Y2bdrojuqTkpJ0ee5NpVStWpXo6GiuXbuGv78/v/32G0eOHAHuLu2ampqq+yFQHvc+s6xTNEKUm7XPrIrKq3Hjxqphw4aqY8eOqlq1asrR0VFFRkYqpR68OsXJyUkBKiAgQAUFBamgoCC1du1a9dNPPykPDw/l6uqq2rdvr2rVqqUAdeHCBRUTE6MA9eKLLyqllEpISFBOTk7K39+/yHMk58+frwD10ksvKaWU+vrrrxWgXnnllWLrPnXqlAoKClL+/v4KUN7e3iooKEh9//33ujEvvfSSAtSxY8fMsu+EuEdObAqr+f777zly5AgpKSm4u7vz1FNP6eaSQ0ND8fDw0F0j/vrrrz+wfWBgIG3atOHChQtERESQlJSEr68vnTt3Jjg4GIAOHTqwceNG5s+fT3x8PK+//jpNmjQpsmb2wIEDuX79Or6+vsDdeXO4+5Sc4lSrVo0hQ4Y8EG/YsCEAWVlZrFy5ktatW9OmTZvy7h4hykQuMRQVWmRkJN27d2fp0qWMGjWqTNuMGDGCAwcOcPLkySLPnyyrRYsWMX78eH788UdZn1uYnTRxUeGlpaXh7OyMh4dHmcZ/8MEHPPHEE7Rr165cn5eZmUleXp7eI3khTEmauBBC2DG5OkUIIeyYNHEhhLBj0sSFEMKO/T+bykKSbDSoTgAAAABJRU5ErkJggg=="
},
"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[1m4×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 │ 200 329987.0 330287.0 1.00091\n 2 │ 1200 7.87722e7 7.91248e7 1.00448\n 3 │ 500 5.27995e6 5.30007e6 1.00381\n 4 │ 800 2.23272e7 2.24763e7 1.00668",
"text/html": [
"<div class=\"data-frame\"><p>4 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>200</td><td>329987.0</td><td>330287.0</td><td>1.00091</td></tr><tr><th>2</th><td>1200</td><td>7.87722e7</td><td>7.91248e7</td><td>1.00448</td></tr><tr><th>3</th><td>500</td><td>5.27995e6</td><td>5.30007e6</td><td>1.00381</td></tr><tr><th>4</th><td>800</td><td>2.23272e7</td><td>2.24763e7</td><td>1.00668</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
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