Created
October 16, 2020 14:12
-
-
Save mwaskom/b3e633c20a51a0b9ef067e81144fdbc3 to your computer and use it in GitHub Desktop.
Comparing CPU- and GPU-based convolution and Fokker-Planck solution for fitting the drift diffusion model
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "ddm_conv.ipynb", | |
"provenance": [], | |
"collapsed_sections": [] | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
}, | |
"accelerator": "GPU" | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "NZw3Sbk3tiMA" | |
}, | |
"source": [ | |
"# Testing GPU-based convolution for fitting the DDM\n", | |
"\n", | |
"This notebook examines the use of PyTorch (on the GPU) for the computationally-heavy probability propagation involved in fitting single or multi-dimensional DDMs" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "LrVbv8bFQUaY" | |
}, | |
"source": [ | |
"import itertools\n", | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"\n", | |
"import seaborn as sns; sns.set_theme()\n", | |
"import matplotlib.pyplot as plt\n", | |
"from scipy import stats, linalg, signal\n", | |
"\n", | |
"import torch\n", | |
"from torch.nn.functional import conv1d, conv2d" | |
], | |
"execution_count": 1, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "7krFMkiveH8l" | |
}, | |
"source": [ | |
"DEVICE = torch.device(\"cuda\")" | |
], | |
"execution_count": 2, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "k9eSDdYSuCmI" | |
}, | |
"source": [ | |
"----\n", | |
"\n", | |
"## 1D Models" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "-hxapDoGuV-U" | |
}, | |
"source": [ | |
"\n", | |
"### Setup and computational functions for convolution" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "C2y1f9-equIr" | |
}, | |
"source": [ | |
"@torch.no_grad()\n", | |
"def setup_convolution(B, v, tmax, dx=.1, dt=1, margin=5, for_torch=False):\n", | |
"\n", | |
" x_mesh = np.arange(-B - margin, dx + B + margin, dx, np.float32)\n", | |
" k_mesh = np.arange(-margin, dx + margin, dx, np.float32)\n", | |
" t_mesh = np.arange(0, tmax, dt, np.float32)\n", | |
"\n", | |
" density = np.zeros((x_mesh.size, t_mesh.size), np.float32)\n", | |
"\n", | |
" kernel = dx * stats.norm.pdf(k_mesh, -v * dt, np.sqrt(dt)).astype(np.float32)\n", | |
" uinit = signal.unit_impulse(x_mesh.shape, \"mid\", np.float32)\n", | |
"\n", | |
" alive = np.abs(x_mesh) < B\n", | |
"\n", | |
" if for_torch:\n", | |
" density = torch.tensor(density, device=DEVICE)\n", | |
" kernel = torch.tensor(kernel.reshape(1, 1, -1), device=DEVICE)\n", | |
" uinit = torch.tensor(uinit.reshape(1, 1, -1), device=DEVICE)\n", | |
" alive = torch.tensor(alive.astype(np.float32), device=DEVICE)\n", | |
"\n", | |
" return dict(\n", | |
" x_mesh=x_mesh,\n", | |
" t_mesh=t_mesh,\n", | |
" density=density,\n", | |
" kernel=kernel,\n", | |
" uinit=uinit,\n", | |
" alive=alive,\n", | |
" tmax=tmax,\n", | |
" dt=dt,\n", | |
" )" | |
], | |
"execution_count": 3, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "eHyXDf9nvfvI" | |
}, | |
"source": [ | |
"def convolution_numpy(density, kernel, uinit, alive, tmax, dt, **_):\n", | |
" u = uinit\n", | |
" for i, t in enumerate(np.arange(0, tmax, dt)):\n", | |
" u = np.correlate(u * alive, kernel, mode=\"same\")\n", | |
" density[:, i] = u\n", | |
" return density" | |
], | |
"execution_count": 4, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "xzcefaw_ui6C" | |
}, | |
"source": [ | |
"@torch.no_grad()\n", | |
"def convolution_torch(density, kernel, uinit, alive, tmax, dt, **_):\n", | |
" padding = kernel.size(-1) // 2\n", | |
" u = uinit\n", | |
" for i, t in enumerate(np.arange(0, tmax, dt)):\n", | |
" u = conv1d(u * alive, kernel, padding=padding)\n", | |
" density[:, i] = u\n", | |
" return density" | |
], | |
"execution_count": 5, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "HZ8xG85GxlEa" | |
}, | |
"source": [ | |
"----\n", | |
"\n", | |
"### Setup and computation functions for Fokker-Planck solution" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "hTb_HnL4XlJp" | |
}, | |
"source": [ | |
"def setup_fokkerplank(B, v, tmax, dx=.1, dt=.1, margin=5):\n", | |
"\n", | |
" x_mesh = np.arange(-B - margin, dx + B + margin, dx, np.float32)\n", | |
" t_mesh = np.arange(0, tmax, dt, np.float32)\n", | |
"\n", | |
" density = np.zeros((x_mesh.size, t_mesh.size), np.float32)\n", | |
"\n", | |
" uinit = signal.unit_impulse(x_mesh.shape, \"mid\", np.float32)\n", | |
"\n", | |
" alive = np.abs(x_mesh) < B\n", | |
"\n", | |
" return dict(\n", | |
" dx=dx,\n", | |
" x_mesh=x_mesh,\n", | |
" t_mesh=t_mesh,\n", | |
" density=density,\n", | |
" uinit=uinit,\n", | |
" alive=alive,\n", | |
" tmax=tmax,\n", | |
" dt=dt,\n", | |
" B=B,\n", | |
" v=v,\n", | |
" )" | |
], | |
"execution_count": 6, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "F5LxONMFXVYD" | |
}, | |
"source": [ | |
"def solve_fokkerplank(density, x_mesh, uinit, alive, v, tmax, dx, dt, **_):\n", | |
" \"\"\"Fokker-Planck solution to drift diffusion.\"\"\"\n", | |
" A = _fokker_planck_coef_matrix(x_mesh, dx, dt, v)\n", | |
" u = uinit\n", | |
"\n", | |
" diag = 1, 1\n", | |
" for i, t in enumerate(np.arange(0, tmax, dt)):\n", | |
" u = linalg.solve_banded(diag, A, u * alive, check_finite=False)\n", | |
" density[:, i] = u\n", | |
"\n", | |
" return np.abs(density)\n", | |
"\n", | |
"def _fokker_planck_coef_matrix(xmesh, dx, dt, v):\n", | |
" \"\"\"Generate coefficient matrix for Chang-Cooper solution to Fokker-Planck.\"\"\"\n", | |
" Am, Bm, Cm = 1, -v, .5\n", | |
"\n", | |
" ulen = len(xmesh)\n", | |
" xmesh = np.append(xmesh, xmesh.max() + dx)\n", | |
"\n", | |
" with np.errstate(all=\"ignore\"):\n", | |
" w = np.full(xmesh.shape, Bm * dx / Cm)\n", | |
" W = np.where(w != 0, (w / 2) / np.sinh(w / 2), 1)\n", | |
" Wp = W * np.exp(+w / 2)\n", | |
" Wm = W * np.exp(-w / 2)\n", | |
"\n", | |
" A = np.zeros((3, ulen), order=\"F\")\n", | |
" A[2] = dt * Cm / (Am * dx ** 2) * Wm[1:]\n", | |
" A[1] = 1 + dt / (Am * dx) * (Cm / dx * Wp[:-1] + Cm / dx * Wm[1:])\n", | |
" A[0] = dt * Cm / (Am * dx ** 2) * Wp[:-1]\n", | |
" A[[0, -1], [0, -1]] = 0\n", | |
"\n", | |
" return A" | |
], | |
"execution_count": 7, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "wu_9TbFFJZ2x" | |
}, | |
"source": [ | |
"---\n", | |
"\n", | |
"### Comparing different approaches\n", | |
"\n", | |
"These plots compare the evolution of the density over time for each approach, showing that they are computationally comparable:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "rOOhPXLlYikd" | |
}, | |
"source": [ | |
"params = dict(\n", | |
" B=20,\n", | |
" v=.05,\n", | |
" tmax=500,\n", | |
" dx=.1,\n", | |
" dt=1,\n", | |
")" | |
], | |
"execution_count": 8, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "tLdNV93Lx97Z" | |
}, | |
"source": [ | |
"d1 = convolution_numpy(**setup_convolution(**params))\n", | |
"d2 = convolution_torch(**setup_convolution(**params, for_torch=True)).to(\"cpu\").numpy()" | |
], | |
"execution_count": 9, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "xKAJ50Tey9CZ", | |
"outputId": "579f7f09-0ff2-48ee-d684-27d73baeabb5", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 259 | |
} | |
}, | |
"source": [ | |
"f, axs = plt.subplots(1, 3, sharey=True, figsize=(9, 3), constrained_layout=True)\n", | |
"vmax = 5e-3\n", | |
"axs[0].pcolormesh(d1, vmax=vmax)\n", | |
"axs[1].pcolormesh(d2, vmax=vmax)\n", | |
"axs[2].pcolormesh(np.square(d1 - d2), vmax=vmax)" | |
], | |
"execution_count": 10, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<matplotlib.collections.QuadMesh at 0x7f52d5dcf0f0>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 10 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 648x216 with 3 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "pKzXrMqaYdti" | |
}, | |
"source": [ | |
"d3 = solve_fokkerplank(**setup_fokkerplank(**params))" | |
], | |
"execution_count": 11, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "BnmS0EMxY0Gj", | |
"outputId": "99f2c309-d283-427b-aa18-a5aa9127ea08", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 259 | |
} | |
}, | |
"source": [ | |
"f, axs = plt.subplots(1, 3, sharey=True, figsize=(9, 3), constrained_layout=True)\n", | |
"vmax = 5e-3\n", | |
"axs[0].pcolormesh(d1, vmax=vmax)\n", | |
"axs[1].pcolormesh(d3, vmax=vmax)\n", | |
"axs[2].pcolormesh(np.square(d1 - d3), vmax=vmax)" | |
], | |
"execution_count": 12, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<matplotlib.collections.QuadMesh at 0x7f52d50b1908>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 12 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 648x216 with 3 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "tLybIRo94lY7" | |
}, | |
"source": [ | |
"---\n", | |
"\n", | |
"This cell gets a timing estimate for each approach while varying bound height (`B`) and the resolution of the spatial grid (`dx`):" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "uyTWzD8H-qZc" | |
}, | |
"source": [ | |
"results = dict()\n", | |
"\n", | |
"params = dict(\n", | |
" v=.02,\n", | |
" tmax=500,\n", | |
" dt=1,\n", | |
")\n", | |
"\n", | |
"Bs = [10, 20, 40]\n", | |
"dxs = [.5, .1, .05, .01]\n", | |
"\n", | |
"for B, dx in itertools.product(Bs, dxs):\n", | |
"\n", | |
" numpy_objects = setup_convolution(B=B, dx=dx, **params)\n", | |
" numpy_timing = %timeit -oq -n5 convolution_numpy(**numpy_objects)\n", | |
" results[(\"Conv. (CPU)\", B, dx)] = numpy_timing.best\n", | |
"\n", | |
" torch_objects = setup_convolution(B=B, dx=dx, **params, for_torch=True)\n", | |
" torch_timing = %timeit -oq -n5 convolution_torch(**torch_objects)\n", | |
" results[(\"Conv. (GPU)\", B, dx)] = torch_timing.best\n", | |
"\n", | |
" fp_objects = setup_fokkerplank(B=B, dx=dx, **params)\n", | |
" fp_timing = %timeit -oq -n5 solve_fokkerplank(**fp_objects)\n", | |
" results[(\"Fokker-Planck\", B, dx)] = fp_timing.best\n", | |
"\n", | |
"results = pd.Series(results).reset_index().set_axis([\"Method\", \"Bound height\", \"dx\", \"time\"], axis=1)" | |
], | |
"execution_count": 13, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "cv9aAlWcIOGn", | |
"outputId": "031af5b7-7465-4941-e3d8-4d98d45f2096", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 428 | |
} | |
}, | |
"source": [ | |
"g = sns.relplot(\n", | |
" data=results,\n", | |
" x=results[\"dx\"].astype(\"str\"), y=\"time\", hue=\"Method\", size=\"Bound height\",\n", | |
" sizes=[1.5, 2.5, 3.5],\n", | |
" marker=\"o\", ms=8, kind=\"line\",\n", | |
")\n", | |
"g.ax.set_yscale(\"log\")\n", | |
"g.ax.set(yticks=[.001, .01, .1, 1])\n", | |
"g.ax.yaxis.grid(True, \"minor\", lw=.5)\n", | |
"g.ax.set(xlabel=\"Spatial grid resolution\", ylabel=f\"Duration of {params['tmax']} timesteps (s)\")" | |
], | |
"execution_count": 14, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"[Text(19.56502256944445, 0.5, 'Duration of 500 timesteps (s)'),\n", | |
" Text(0.5, 6.799999999999979, 'Spatial grid resolution')]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 14 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 481.975x360 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "2iOXAA83NhH1" | |
}, | |
"source": [ | |
"---\n", | |
"\n", | |
"## 2D Models\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Ac078jxyvl0i" | |
}, | |
"source": [ | |
"### Setup and computational functions" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "96ahfI3IJlWx" | |
}, | |
"source": [ | |
"@torch.no_grad()\n", | |
"def setup_convolution2d(B, v, tmax, dx=.1, dt=1, margin=5, for_torch=False):\n", | |
"\n", | |
" x_mesh = np.arange(-B - margin, dx + B + margin, dx, np.float32)\n", | |
" k_mesh = np.arange(-margin, dx + margin, dx, np.float32)\n", | |
" t_mesh = np.arange(0, tmax, dt, np.float32)\n", | |
"\n", | |
" density = np.zeros((x_mesh.size, x_mesh.size, t_mesh.size), np.float32)\n", | |
"\n", | |
" mu = dt * np.array([v, -v], np.float32)\n", | |
" cov = np.sqrt(dt) * np.eye(2, dtype=np.float32)\n", | |
"\n", | |
" if for_torch:\n", | |
" mu = mu[::-1]\n", | |
"\n", | |
" kx, ky = np.meshgrid(k_mesh, k_mesh)\n", | |
" pdf_grid = np.c_[kx.flat, ky.flat]\n", | |
" kernel = (\n", | |
" (stats.multivariate_normal(mu, cov)\n", | |
" .pdf(pdf_grid)\n", | |
" .reshape(kx.shape)\n", | |
" .astype(np.float32))\n", | |
" * dx ** 2\n", | |
" )\n", | |
"\n", | |
" uinit = signal.unit_impulse((x_mesh.size, x_mesh.size), \"mid\", np.float32)\n", | |
"\n", | |
" alive = np.outer(np.abs(x_mesh) < B, np.abs(x_mesh) < B)\n", | |
"\n", | |
" low_bound = np.argwhere(x_mesh <= -B)\n", | |
" reflected = (low_bound + low_bound.max() + 1)[::-1].copy()\n", | |
"\n", | |
" if for_torch:\n", | |
" density = torch.tensor(density, device=DEVICE)\n", | |
" kernel = torch.tensor(kernel[None, None, ...], device=DEVICE)\n", | |
" uinit = torch.tensor(uinit[None, None, ...], device=DEVICE)\n", | |
" alive = torch.tensor(alive.astype(np.float32), device=DEVICE)\n", | |
" low_bound = torch.tensor(low_bound, device=DEVICE)\n", | |
" reflected = torch.tensor(reflected, device=DEVICE)\n", | |
"\n", | |
" return dict(\n", | |
" x_mesh=x_mesh,\n", | |
" t_mesh=t_mesh,\n", | |
" density=density,\n", | |
" kernel=kernel,\n", | |
" uinit=uinit,\n", | |
" alive=alive,\n", | |
" low_bound=low_bound,\n", | |
" reflected=reflected,\n", | |
" tmax=tmax,\n", | |
" dt=dt,\n", | |
" )" | |
], | |
"execution_count": 15, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "QGBBFYIMNh6i" | |
}, | |
"source": [ | |
"def conv2d_numpy(density, kernel, uinit, alive, low_bound, reflected, tmax, dt, **_):\n", | |
" u = uinit\n", | |
" for i, t in enumerate(np.arange(0, tmax, dt)):\n", | |
" u = signal.convolve(u * alive, kernel, mode=\"same\")\n", | |
" u[reflected, :] += u[low_bound, :]\n", | |
" u[:, reflected] += u[:, low_bound]\n", | |
" density[..., i] = u\n", | |
" return density" | |
], | |
"execution_count": 16, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Ub39Fs6QRMNg" | |
}, | |
"source": [ | |
"@torch.no_grad()\n", | |
"def conv2d_torch(density, kernel, uinit, alive, low_bound, reflected, tmax, dt, **_):\n", | |
" padding = kernel.size(-2) // 2, kernel.size(-1) // 2\n", | |
" u = uinit\n", | |
" for i, t in enumerate(np.arange(0, tmax, dt)):\n", | |
" u = conv2d(u * alive, kernel, padding=padding)\n", | |
" u[..., reflected, :] += u[..., low_bound, :]\n", | |
" u[..., :, reflected] += u[..., :, low_bound]\n", | |
" density[..., i] = u\n", | |
" return density" | |
], | |
"execution_count": 17, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "WoQ9zYorvZ8h" | |
}, | |
"source": [ | |
"----\n", | |
"\n", | |
"### Comparing CPU and GPU\n", | |
"\n", | |
"First we demonstrate that the two approaches give similar results:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "ohQskARTOAPH" | |
}, | |
"source": [ | |
"params = dict(\n", | |
" B=20,\n", | |
" v=.02,\n", | |
" tmax=300,\n", | |
" dt=5,\n", | |
" dx=.5,\n", | |
")" | |
], | |
"execution_count": 18, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "2426iY6hN-DV" | |
}, | |
"source": [ | |
"d1 = conv2d_numpy(**setup_convolution2d(**params))\n", | |
"d2 = conv2d_torch(**setup_convolution2d(**params, for_torch=True)).cpu().numpy()" | |
], | |
"execution_count": 19, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "si36wR76OEU4", | |
"outputId": "4806f5a6-35a5-4b05-a428-d2d26352501a", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 259 | |
} | |
}, | |
"source": [ | |
"f, axs = plt.subplots(1, 3, sharey=True, figsize=(9, 3), constrained_layout=True)\n", | |
"vmax = 5e-4\n", | |
"axs[0].pcolormesh(d1[..., -1], vmax=vmax)\n", | |
"axs[1].pcolormesh(d2[..., -1], vmax=vmax)\n", | |
"axs[2].pcolormesh(np.square(d1 - d2)[..., -1], vmax=vmax)" | |
], | |
"execution_count": 20, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<matplotlib.collections.QuadMesh at 0x7f52d4cfc0b8>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 20 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 648x216 with 3 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "RnDM0-eTvVka" | |
}, | |
"source": [ | |
"This cell shows a timing comparison, similar to above:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "tCKRE8ryUJl_" | |
}, | |
"source": [ | |
"results = dict()\n", | |
"\n", | |
"params = dict(\n", | |
" v=.02,\n", | |
" tmax=10,\n", | |
" dt=1,\n", | |
")\n", | |
"\n", | |
"Bs = [10, 20, 40]\n", | |
"dxs = [.5, .1, .05]\n", | |
"\n", | |
"for B, dx in itertools.product(Bs, dxs):\n", | |
"\n", | |
" numpy_objects = setup_convolution2d(B=B, dx=dx, **params)\n", | |
" numpy_timing = %timeit -oq -n5 conv2d_numpy(**numpy_objects)\n", | |
" results[(\"Conv. (CPU)\", B, dx)] = numpy_timing.best\n", | |
"\n", | |
" torch_objects = setup_convolution2d(B=B, dx=dx, **params, for_torch=True)\n", | |
" torch_timing = %timeit -oq -n5 conv2d_torch(**torch_objects)\n", | |
" results[(\"Conv. (GPU)\", B, dx)] = torch_timing.best\n", | |
"\n", | |
"results = pd.Series(results).reset_index().set_axis([\"Method\", \"Bound height\", \"dx\", \"time\"], axis=1)" | |
], | |
"execution_count": 21, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "PIKbQKfvVjLZ", | |
"outputId": "8cc18b42-c6ce-4002-e74e-9b6e631c3338", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 421 | |
} | |
}, | |
"source": [ | |
"g = sns.relplot(\n", | |
" data=results,\n", | |
" x=results[\"dx\"].astype(\"str\"), y=\"time\", hue=\"Method\", size=\"Bound height\",\n", | |
" sizes=[1.5, 2.5, 3.5],\n", | |
" marker=\"o\", ms=8, kind=\"line\",\n", | |
")\n", | |
"g.ax.set_yscale(\"log\")\n", | |
"g.ax.set(yticks=[.001, .01, .1, 1])\n", | |
"g.ax.yaxis.grid(True, \"minor\", lw=.5)\n", | |
"g.ax.set(xlabel=\"Spatial grid resolution\", ylabel=f\"Duration of {params['tmax']} timesteps (s)\")" | |
], | |
"execution_count": 22, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"[Text(18.413842013888896, 0.5, 'Duration of 10 timesteps (s)'),\n", | |
" Text(0.5, 6.799999999999979, 'Spatial grid resolution')]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 22 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 470.975x360 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "9U-GC2r3eCZY" | |
}, | |
"source": [ | |
"" | |
], | |
"execution_count": null, | |
"outputs": [] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment