{ "cells": [ { "cell_type": "markdown", "id": "0b8bb637-7b10-45bf-82d7-b679bae18f75", "metadata": {}, "source": [ "# CPU vs. GPU for neural networks" ] }, { "cell_type": "markdown", "id": "b3dc2999-a210-4e66-a5cc-be78d39e38e6", "metadata": {}, "source": [ "**System Specifications**\n", "- CPU/Host: AMD 7950X3D 16-core, 64 GiB RAM, WSL 2 Ubuntu 22.04.3 LTS\n", "- GPU: RTX 4090, CUDA 12.3" ] }, { "cell_type": "code", "execution_count": null, "id": "c687ed59-1409-41ad-a885-7f83349b6529", "metadata": {}, "outputs": [], "source": [ "import gc\n", "import time\n", "import sys\n", "\n", "import matplotlib.pyplot as plt\n", "import torch\n", "import torch.nn as nn" ] }, { "cell_type": "code", "execution_count": null, "id": "dc756189-176d-4873-9f2a-1ec41c630177", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using default precision: torch.float32\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Defaults\n", "print(f'Using default precision: {torch.get_default_dtype()}')\n", "#device = 'cuda' if torch.cuda.is_available() else 'cpu'\n", "d_model_default = 128\n", "n_layers_default = 128\n", "batch_size_default = 1\n", "iterations_default = 8\n", "\n", "torch.manual_seed(1337)" ] }, { "cell_type": "code", "execution_count": null, "id": "d09a54ef-94c1-414c-b002-c3e6e9d353c8", "metadata": {}, "outputs": [], "source": [ "# Model Definition: A bunch of FeedForward layers with residual connections\n", "class DumbBlock(nn.Module):\n", "\n", " def __init__(self, d_model):\n", " super().__init__()\n", " self.net = nn.Sequential(\n", " nn.Linear(d_model, d_model, bias=False),\n", " nn.ReLU(),\n", " )\n", "\n", " def forward(self, x):\n", " return self.net(x) + x # Residual connection\n", "\n", "class DumbModel(nn.Module):\n", "\n", " def __init__(self, d_model, n_layers):\n", " super().__init__()\n", " self.blocks = nn.Sequential(*[DumbBlock(d_model) for _ in range(n_layers)])\n", "\n", " def forward(self, x):\n", " return self.blocks(x)" ] }, { "cell_type": "code", "execution_count": null, "id": "eb151a2e-5918-46e8-8f59-9ecc130b7a65", "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "model\n", "\n", "\n", "\n", "0\n", "\n", "\n", "input-tensor\n", "depth:0\n", "\n", "(1, 128)\n", "\n", "\n", "\n", "1\n", "\n", "\n", "Linear\n", "depth:4\n", "\n", "input:\n", "\n", "(1, 128) \n", "\n", "output: \n", "\n", "(1, 128) \n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "\n", "\n", "\n", "3\n", "\n", "\n", "add\n", "depth:3\n", "\n", "input:\n", "\n", "2 x (1, 128) \n", "\n", "output: \n", "\n", "(1, 128) \n", "\n", "\n", "\n", "0->3\n", "\n", "\n", "\n", "\n", "\n", "2\n", "\n", "\n", "ReLU\n", "depth:4\n", "\n", "input:\n", "\n", "(1, 128) \n", "\n", "output: \n", "\n", "(1, 128) \n", "\n", "\n", "\n", "1->2\n", "\n", "\n", "\n", "\n", "\n", "2->3\n", "\n", "\n", "\n", "\n", "\n", "4\n", "\n", "\n", "Linear\n", "depth:4\n", "\n", "input:\n", "\n", "(1, 128) \n", "\n", "output: \n", "\n", "(1, 128) \n", "\n", "\n", "\n", "3->4\n", "\n", "\n", "\n", "\n", "\n", "6\n", "\n", "\n", "add\n", "depth:3\n", "\n", "input:\n", "\n", "2 x (1, 128) \n", "\n", "output: \n", "\n", "(1, 128) \n", "\n", "\n", "\n", "3->6\n", "\n", "\n", "\n", "\n", "\n", "5\n", "\n", "\n", "ReLU\n", "depth:4\n", "\n", "input:\n", "\n", "(1, 128) \n", "\n", "output: \n", "\n", "(1, 128) \n", "\n", "\n", "\n", "4->5\n", "\n", "\n", "\n", "\n", "\n", "5->6\n", "\n", "\n", "\n", "\n", "\n", "7\n", "\n", "\n", "output-tensor\n", "depth:0\n", "\n", "(1, 128)\n", "\n", "\n", "\n", "6->7\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Visualize network: https://github.com/mert-kurttutan/torchview\n", "from torchview import draw_graph\n", "# device='meta' -> no memory is consumed for visualization\n", "graph = draw_graph(\n", " DumbModel(d_model=d_model_default, n_layers=2), \n", " input_size=(1, d_model_default), \n", " depth=4,\n", " device='meta')\n", "graph.resize_graph(scale=1.5) # > 1.0 makes it smaller?\n", "graph.visual_graph" ] }, { "cell_type": "code", "execution_count": null, "id": "65311eb6-3af6-410f-9edb-decf0d1a62d2", "metadata": {}, "outputs": [], "source": [ "# Test Harness\n", "def run_tests(device, d_models=None, n_layers=None, batch_sizes=None, iterations=iterations_default):\n", " d_models = [] if d_models is None else d_models\n", " n_layers = [] if n_layers is None else n_layers\n", " batch_sizes = [] if batch_sizes is None else batch_sizes\n", " l = max(len(d_models), len(n_layers), len(batch_sizes))\n", " if l == 0:\n", " return []\n", " d_models += [d_model_default] * (l-len(d_models))\n", " n_layers += [n_layers_default] * (l-len(n_layers))\n", " batch_sizes += [batch_size_default] * (l-len(batch_sizes))\n", "\n", " params = zip(d_models, n_layers, batch_sizes)\n", " results = []\n", " for p in params:\n", " results.append((p, test_model(device, *p, iterations=iterations)))\n", " return results\n", "\n", "@torch.no_grad() # Disable gradients since only doing forward pass\n", "def test_model(device, \n", " d_model=d_model_default, \n", " n_layers=n_layers_default, \n", " batch_size=batch_size_default, \n", " iterations=iterations_default):\n", " # Create, move to device, set eval model since don't need to train\n", " model = DumbModel(d_model=d_model, n_layers=n_layers).to(device)\n", " model.eval()\n", " #model = torch.compile(model, mode=\"reduce-overhead\")\n", " num_params = sum(p.numel() for p in model.parameters() if p.requires_grad)\n", " print(f'Test: {device=}, {num_params=}, {d_model=}, {n_layers=}, {batch_size=}, {iterations=}')\n", " timings = []\n", " for _ in range(iterations):\n", " x = torch.randn(batch_size, d_model, requires_grad=False).to(device)\n", " fn = lambda: model(x)\n", " out, duration_ms = time_gpu(fn) if device == 'cuda' else time_cpu(fn)\n", " \n", " #print(f'{input[0][0].item()=}')\n", " #print(f'Input shape: {input.shape}')\n", " #print(f'Output shape: {out.shape}')\n", " #print(f'Output: {out[0][0].item()=}')\n", " #print(f'Time taken: {duration_ms:.2f} ms')\n", " timings.append(duration_ms)\n", " \n", " # Reclaim memory\n", " del model\n", " gc.collect()\n", " torch.cuda.empty_cache()\n", " \n", " # Simply taken the median of the trials as our \"result\".\n", " return torch.tensor(timings).median().item()\n", "\n", "def time_gpu_old(fn):\n", " start = time.time()\n", " res = fn()\n", " torch.cuda.synchronize() # Needed for accurate CUDA timing.\n", " duration_ms = (time.time() - start) * 1000\n", " return res, duration_ms\n", "\n", "def time_gpu(fn):\n", " # Based on: https://pytorch.org/tutorials/intermediate/torch_compile_tutorial.html#demonstrating-speedups \n", " start = torch.cuda.Event(enable_timing=True)\n", " end = torch.cuda.Event(enable_timing=True)\n", " start.record()\n", " res = fn()\n", " end.record()\n", " torch.cuda.synchronize() # Needed for accurate CUDA timing.\n", " return res, start.elapsed_time(end) # Time is in ms\n", "\n", "def time_cpu(fn):\n", " # NOTE: torch.cpu.synchronize() is a noop:\n", " # https://pytorch.org/docs/stable/_modules/torch/cpu.html#synchronize\n", " start = time.time()\n", " res = fn()\n", " duration_ms = (time.time() - start) * 1000\n", " return res, duration_ms" ] }, { "cell_type": "code", "execution_count": null, "id": "0f990168-20ae-4fb3-b502-47cfab3da30b", "metadata": {}, "outputs": [], "source": [ "# For plotting results\n", "def plot_results(title, cpu_results=None, gpu_results=None, log_x=True, log_y=False, labelsize=None):\n", " plt.figure(figsize=(8, 6))\n", " if cpu_results:\n", " plt.plot(*zip(*cpu_results), label='cpu', marker='o')\n", " if gpu_results:\n", " plt.plot(*zip(*gpu_results), label='gpu', marker='x')\n", " plt.xlabel(title + (' (log)' if log_x else ''))\n", " if labelsize is not None:\n", " plt.tick_params(axis='x', labelsize=labelsize)\n", " plt.ylabel('inference time (ms)' + (' (log)' if log_y else ''))\n", " plt.title(f'{title}: CPU and GPU')\n", " if log_x:\n", " plt.xscale('log') # Using a logarithmic scale for x-axis to better visualize the data\n", " if log_y:\n", " plt.yscale('log')\n", " plt.legend() # Adding a legend to distinguish the sequences\n", " plt.grid(True) # Adding a grid for better readability" ] }, { "cell_type": "markdown", "id": "6851b3a4-fa1e-43db-8a23-595f7b2ad3a3", "metadata": {}, "source": [ "# Batch Size tests" ] }, { "cell_type": "code", "execution_count": null, "id": "fb8e88de-d400-4e2f-bd62-07a1cfe112e7", "metadata": {}, "outputs": [], "source": [ "batch_sizes = [2**k for k in range(12)]" ] }, { "cell_type": "code", "execution_count": null, "id": "2c2df78f-2920-41e8-a71b-6097ba84f15f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=2, iterations=8\n", "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=4, iterations=8\n", "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=8, iterations=8\n", "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=16, iterations=8\n", "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=32, iterations=8\n", "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=64, iterations=8\n", "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=128, iterations=8\n", "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=256, iterations=8\n", "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=512, iterations=8\n", "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=1024, iterations=8\n", "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=2048, iterations=8\n" ] }, { "data": { "text/plain": [ "[((128, 128, 1), 1.9664764404296875),\n", " ((128, 128, 2), 2.740621566772461),\n", " ((128, 128, 4), 2.1305084228515625),\n", " ((128, 128, 8), 2.8972625732421875),\n", " ((128, 128, 16), 2.764463424682617),\n", " ((128, 128, 32), 2.536773681640625),\n", " ((128, 128, 64), 3.345966339111328),\n", " ((128, 128, 128), 5.095005035400391),\n", " ((128, 128, 256), 7.009267807006836),\n", " ((128, 128, 512), 10.668754577636719),\n", " ((128, 128, 1024), 17.67444610595703),\n", " ((128, 128, 2048), 27.715206146240234)]" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpu_batch_size_results = run_tests('cpu', batch_sizes=batch_sizes)\n", "cpu_batch_size_results" ] }, { "cell_type": "code", "execution_count": null, "id": "b9191311-f41c-47fb-8ded-20e4dcf6ca4e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=2, iterations=8\n", "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=4, iterations=8\n", "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=8, iterations=8\n", "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=16, iterations=8\n", "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=32, iterations=8\n", "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=64, iterations=8\n", "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=128, iterations=8\n", "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=256, iterations=8\n", "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=512, iterations=8\n", "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=1024, iterations=8\n", "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=2048, iterations=8\n" ] }, { "data": { "text/plain": [ "[((128, 128, 1), 2.20579195022583),\n", " ((128, 128, 2), 2.1135358810424805),\n", " ((128, 128, 4), 2.1729280948638916),\n", " ((128, 128, 8), 2.0940799713134766),\n", " ((128, 128, 16), 2.2507519721984863),\n", " ((128, 128, 32), 2.4340479373931885),\n", " ((128, 128, 64), 2.4747838973999023),\n", " ((128, 128, 128), 2.1430718898773193),\n", " ((128, 128, 256), 2.1073920726776123),\n", " ((128, 128, 512), 2.1934080123901367),\n", " ((128, 128, 1024), 2.3797760009765625),\n", " ((128, 128, 2048), 2.1616640090942383)]" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cuda_batch_size_results = run_tests('cuda', batch_sizes=batch_sizes)\n", "cuda_batch_size_results" ] }, { "cell_type": "code", "execution_count": null, "id": "02be2723-95d6-4fd0-94e6-60bccff7a92d", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAq4AAAIoCAYAAACoFmnDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB5xUlEQVR4nO3dd3xT5f4H8E92997QRcsqBWQVkC1bL4jidSEXBAf+QFRUvIrKEBdexXEVN6iIA1zgRSx776XQskrL7KB7pxnn90ea0NCVtElPkn7er1debc45Sb5NH8onz3nO80gEQRBAREREROTgpGIXQERERERkCQZXIiIiInIKDK5ERERE5BQYXImIiIjIKTC4EhEREZFTYHAlIiIiIqfA4EpEREREToHBlYiIiIicAoMrERERETkFBlciqtOCBQsgkUiQm5srdikAgG3btkEikWDNmjUt8nrGn58cg/H3v23bNrFLISIRMbgSUYv56KOPsGLFCrHLcEo6nQ7Lly/H0KFDERAQAJVKhZiYGDz44IM4dOiQ6bgVK1ZAIpGYbm5ubujQoQNmzZqF7OzsWsfVfGxN//jHPxATE2PvH8tu0tPTMWvWLHTo0AEeHh7w8PBAQkICZs6cib/++svsWOOHFOPNeOyLL76I4uLiWsfV92EuMTERQ4cOteePRdTqycUugIhaj48++ghBQUGYOnWq2KU06sUXX8S///1vscsAAFRUVODOO+/Ehg0bMHjwYLzwwgsICAhARkYGfvzxR3z11Ve4ePEi2rZta3rMokWLEBsbi8rKSuzatQvLli3D+vXrceLECXh4eIj409jf77//jnvuuQdyuRyTJk1C9+7dIZVKcerUKfz8889YtmwZ0tPTER0dbfa4ZcuWwcvLC6WlpUhOTsarr76KLVu2YPfu3ex9J3IQDK5ERHWQy+WQyx3jT+Szzz6LDRs2YOnSpXjyySfN9s2fPx9Lly6t9ZixY8eid+/eAICHHnoIgYGBeOedd/Dbb7/hvvvua4myRZGWloZ7770X0dHR2Lx5M8LDw832v/nmm/joo48gldY+4XjXXXchKCgIADBjxgxMnDgRP//8M/bt24f+/fu3SP1E1DAOFSCiBuXm5uLuu++Gj48PAgMD8cQTT6CystLsmOXLl+OWW25BSEgIVCoVEhISsGzZMrNjYmJicPLkSWzfvt10SrbmadXCwkI89dRTiImJgUqlQtu2bfGvf/2r1mlZvV6PV199FW3btoWbmxuGDx+Oc+fOWfUzaTQaLFy4EO3bt4ebmxsCAwMxcOBAbNy40XTMjWNcp06danY6ueZtwYIFpuPUajXmz5+P+Ph4qFQqREZGYu7cuVCr1bXe11OnTqG8vLzBWi9fvoxPPvkEI0eOrBVaAUAmk+GZZ54x622tyy233ALAcArdln777TfcdtttiIiIgEqlQlxcHF555RXodDqz44YOHYrExESkpKRg2LBh8PDwQJs2bbBkyZJaz3n58mVMmDABnp6eCAkJwVNPPVXr/avPkiVLUFZWhuXLl9cKrYDhA8ns2bMRGRnZ6HPZ6z0joqZzjO4EInJYd999N2JiYvD6669j3759eP/991FQUICvv/7adMyyZcvQpUsXjB8/HnK5HOvWrcP//d//Qa/XY+bMmQCAd999F48//ji8vLwwb948AEBoaCgAoLS0FIMGDUJqaiqmTZuGnj17Ijc3F2vXrsXly5dNvWAA8MYbb0AqleKZZ55BUVERlixZgkmTJmH//v0W/0wLFizA66+/joceeghJSUkoLi7GoUOHcOTIEYwcObLOxzz66KMYMWKE2bYNGzbg22+/RUhICABDqB4/fjx27dqFRx55BJ07d8bff/+NpUuX4syZM/j1119Nj/3vf/+LhQsXYuvWrQ2Oi/zjjz+g1WoxefJki3++uqSlpQEAAgMDm/U8N1qxYgW8vLwwZ84ceHl5YcuWLXj55ZdRXFyMt956y+zYgoICjBkzBnfeeSfuvvturFmzBs899xy6du2KsWPHAjAMixg+fDguXryI2bNnIyIiAt988w22bNliUT2///474uPj0bdv32b/bPZ6z4ioGQQiojrMnz9fACCMHz/ebPv//d//CQCE48ePm7aVl5fXevzo0aOFdu3amW3r0qWLMGTIkFrHvvzyywIA4eeff661T6/XC4IgCFu3bhUACJ07dxbUarVp/3vvvScAEP7++2+Lf7bu3bsLt912W4PHGH/++pw9e1bw9fUVRo4cKWi1WkEQBOGbb74RpFKpsHPnTrNjP/74YwGAsHv37lrPv3Xr1gbreOqppwQAwtGjRxv+oaotX75cACBs2rRJuHbtmnDp0iXh+++/FwIDAwV3d3fh8uXLZscdPHiwzue57bbbhOjo6EZfr67f/aOPPip4eHgIlZWVpm1DhgwRAAhff/21aZtarRbCwsKEiRMnmra9++67AgDhxx9/NG0rKysT4uPjG32/ioqKBADChAkTau0rKCgQrl27ZrrVrNv4uzh9+rRw7do1IT09Xfjkk08ElUolhIaGCmVlZWbHXbt2rc7Xr699E5HtcKgAETXI2GNq9PjjjwMA1q9fb9rm7u5u+r6oqAi5ubkYMmQIzp8/j6KiokZf46effkL37t1xxx131Np340UxDz74IJRKpen+oEGDAADnz5+34Kcx8PPzw8mTJ3H27FmLH1NTWVkZ7rjjDvj7++O7776DTCYDAKxevRqdO3dGp06dkJuba7oZTzlv3brV9BwLFiyAIAiNXoVuvKrd29vbqhpHjBiB4OBgREZG4t5774WXlxd++eUXtGnTxqrnaUzN331JSQlyc3MxaNAglJeX49SpU2bHenl54YEHHjDdVyqVSEpKMvvdrV+/HuHh4bjrrrtM2zw8PPDII480WovxvfLy8qq1b+jQoQgODjbdPvzww1rHdOzYEcHBwYiNjcWjjz6K+Ph4/O9//3P5i9mInAmHChBRg9q3b292Py4uDlKpFBkZGaZtu3fvxvz587F3795aYzaLiorg6+vb4GukpaVh4sSJFtUTFRVldt/f3x+A4TS0pRYtWoTbb78dHTp0QGJiIsaMGYPJkyejW7duFj3+4YcfRlpaGvbs2WN2Gvns2bNITU1FcHBwnY/LycmxuEYjHx8fAIZQaI0PP/wQHTp0gFwuR2hoKDp27FjnBUkNseRK+pMnT+LFF1/Eli1bzKaOAlDrQ0vbtm1rPae/v7/Z9FQXLlxAfHx8reM6duzYaC3GcF9aWlpr3yeffIKSkhJkZ2ebheeafvrpJ/j4+EChUKBt27aIi4tr9DVvxNkHiOyLwZWIrHLjf8xpaWkYPnw4OnXqhHfeeQeRkZFQKpVYv349li5dCr1eb9PXN/Zu3kgQBIufY/DgwUhLS8Nvv/2G5ORkfP7551i6dCk+/vhjPPTQQw0+9r333sN3332HlStX4qabbjLbp9fr0bVrV7zzzjt1PtaSC4Ju1KlTJwDA33//Xev1GpKUlGSaVaAubm5uAAxjSutSXl5uOqY+hYWFGDJkCHx8fLBo0SLExcXBzc0NR44cwXPPPVfrd2+L311DfH19ER4ejhMnTtTaZxzzWvMD140GDx5sNp76RrZ4z4ioeRhciahBZ8+eRWxsrOn+uXPnoNfrTZPTr1u3Dmq1GmvXrjXrDa15Wtyovt6ouLi4OsOGPQUEBODBBx/Egw8+iNLSUgwePBgLFixoMLju3LkTzzzzDJ588klMmjSp1v64uDgcP34cw4cPt1nP29ixYyGTybBy5cpmX6BVk3EO09OnT5uGW9R05swZJCYmNvgc27ZtQ15eHn7++WcMHjzYtL05V+FHR0fjxIkTEATB7D08ffq0RY+/7bbb8Pnnn+PAgQNISkpqch311Was5cYPIeXl5bh06RJGjRpl09ckInMc40pEDbpxLOAHH3wAAKarwI29aDV7zYqKirB8+fJaz+Xp6YnCwsJa2ydOnIjjx4/jl19+qbXPVr1xNeXl5Znd9/LyQnx8fINTLmVmZuLuu+/GwIEDa10tb3T33XfjypUr+Oyzz2rtq6ioQFlZmem+pdNhRUZG4uGHH0ZycrLpva9Jr9fj7bffxuXLlxt8nhv16tULISEh+Pzzz2v93L/++iuuXLli+h3Xp67ffVVVFT766COraqnp1ltvxdWrV82W9i0vL8enn35q0ePnzp0LDw8PTJs2zWylMKPmtKfhw4dDqVRi2bJltXqTP/30U2i12kbfMyJqHva4ElGD0tPTMX78eIwZMwZ79+7FypUrcf/996N79+4AgFGjRkGpVGLcuHF49NFHUVpais8++wwhISHIzMw0e65evXph2bJlWLx4MeLj4xESEoJbbrkFzz77LNasWYN//vOfmDZtGnr16oX8/HysXbsWH3/8sem1bCUhIQFDhw5Fr169EBAQgEOHDmHNmjWYNWtWvY+ZPXs2rl27hrlz5+L7778329etWzd069YNkydPxo8//ogZM2Zg69atGDBgAHQ6HU6dOoUff/wRf/75p+n0vaXTYQHA22+/jbS0NMyePRs///wz/vGPf8Df3x8XL17E6tWrcerUKdx7771WvQdKpRL/+c9/MGXKFPTp0wf33HMPAgMDcfToUXz55Zfo1q1boxdE3XzzzfD398eUKVMwe/ZsSCQSfPPNN80Khw8//DD++9//4l//+hcOHz6M8PBwfPPNNxZfINW+fXusWrUK9913Hzp27GhaOUsQBKSnp2PVqlWQSqWNzntbl5CQELz88st48cUXMXjwYIwfPx4eHh7Ys2cPvvvuO4wa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k3J5V7FZ3eMKAIMGDcLGjRttXQsRERGRw9icmo2MvHL4uMlxd+9IscshNDG4GpWWlkKv15tt8/HxaVZBRERERI7AOAXW/X2j4alqVmQiG7F6qEB6ejpuu+02eHp6wtfXF/7+/vD394efnx/8/XmlHRERETm/45cKcSAjH3KpBFNvjhG7HKpm9ceHBx54AIIg4Msvv0RoaCgkEo73ICIiItdiXN51fPcIhPm6iVwNGVkdXI8fP47Dhw+jY8eO9qiHiIiISFSXC8rxx4ksAMD0QVze1ZFYPVSgT58+uHTpkj1qISIiIhLdit0Z0OkF3BwXiC4RvmKXQzVY3eP6+eefY8aMGbhy5QoSExOhUCjM9nfr1s1mxRERERG1pOJKDb4/aOig44IDjsfq4Hrt2jWkpaXhwQcfNG2TSCQQBAESiQQ6nc6mBRIRERG1lB8OXEKpWov4EC8M6RAsdjl0A6uD67Rp09CjRw989913vDiLiIiIXIZGp8fy3YYpsB4aGAspFxxwOFYH1wsXLmDt2rWIj4+3Rz1EREREolj/dyauFlUi0FOJCT3aiF0O1cHqi7NuueUWHD9+3B61EBEREYlCEK4v7zq5fzTcFDKRK6K6WN3jOm7cODz11FP4+++/0bVr11oXZ40fP95mxRERERG1hAPp+fjrchFUcikm94sWuxyqh9XBdcaMGQCARYsW1drHi7OIiIjIGX1WvbzrnT3bItBLJXI1VB+rg6ter7dHHURERESiOH+tFJtPZQMApg/kggOOzOoxrkRERESu5Mvd6RAE4JZOIYgP8RK7HGqART2u77//Ph555BG4ubnh/fffb/DY2bNn26QwIiIiInsrKKvCmsOXAQAPcXlXh2dRcF26dCkmTZoENzc3LF26tN7jJBKJVcF1x44deOutt3D48GFkZmbil19+wYQJE0z7p06diq+++srsMaNHj8aGDRssfg0iIiKi+qzcdwGVGj26RPigf7tAscuhRlgUXNPT0+v8vrnKysrQvXt3TJs2DXfeeWedx4wZMwbLly833VepOGCaiIiImq9So8NXey8AMCzvykWVHJ/VY1wXLVqE8vLyWtsrKirqnGmgIWPHjsXixYtxxx131HuMSqVCWFiY6ebv729tyURERES1rD12FbmlaoT5uOG2buFil0MWsHpWgYULF2LGjBnw8PAw215eXo6FCxfi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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_results('batch_size', \n", " [(p[2], t) for p, t in cpu_batch_size_results], \n", " [(p[2], t) for p, t in cuda_batch_size_results],\n", " )" ] }, { "cell_type": "markdown", "id": "ea66d36c-003a-47b1-8d9f-fc653e6b2db6", "metadata": {}, "source": [ "# `d_model` tests" ] }, { "cell_type": "code", "execution_count": null, "id": "98fd154b-d92c-4d80-a4cd-5ea9bf7c219b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test: device='cpu', num_params=524288, d_model=64, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=8388608, d_model=256, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=33554432, d_model=512, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=134217728, d_model=1024, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=536870912, d_model=2048, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=2147483648, d_model=4096, n_layers=128, batch_size=1, iterations=8\n" ] }, { "data": { "text/plain": [ "[((64, 128, 1), 1.0273456573486328),\n", " ((128, 128, 1), 1.308441162109375),\n", " ((256, 128, 1), 3.2432079315185547),\n", " ((512, 128, 1), 8.677959442138672),\n", " ((1024, 128, 1), 20.72596549987793),\n", " ((2048, 128, 1), 71.60234069824219),\n", " ((4096, 128, 1), 259.4563903808594)]" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d_models = [2**k for k in range(6, 13)] # Largest models taking 8G at FP32\n", "cpu_d_model_results = run_tests('cpu', d_models=d_models)\n", "cpu_d_model_results" ] }, { "cell_type": "code", "execution_count": null, "id": "bab5e135-bb53-4c6a-9310-ffe7337446fb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test: device='cuda', num_params=524288, d_model=64, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=8388608, d_model=256, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=33554432, d_model=512, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=134217728, d_model=1024, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=536870912, d_model=2048, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=2147483648, d_model=4096, n_layers=128, batch_size=1, iterations=8\n" ] }, { "data": { "text/plain": [ "[((64, 128, 1), 5.138432025909424),\n", " ((128, 128, 1), 3.87174391746521),\n", " ((256, 128, 1), 3.9731199741363525),\n", " ((512, 128, 1), 9.81503963470459),\n", " ((1024, 128, 1), 2.181119918823242),\n", " ((2048, 128, 1), 3.1938560009002686),\n", " ((4096, 128, 1), 11.603679656982422)]" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cuda_d_model_results = run_tests('cuda', d_models=d_models)\n", "cuda_d_model_results" ] }, { "cell_type": "code", "execution_count": null, "id": "5ba6ce67-c473-4c46-8275-8b4495cc5529", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_results('d_model', \n", " [(p[0], t) for p, t in cpu_d_model_results], \n", " [(p[0], t) for p, t in cuda_d_model_results],\n", " log_x=False\n", " )" ] }, { "cell_type": "markdown", "id": "8aa9842b-d9d9-4ce4-9066-2fc12b088d1b", "metadata": {}, "source": [ "# `n_layers` tests" ] }, { "cell_type": "code", "execution_count": null, "id": "8d1e1292-9494-4c31-876c-5136b811afcb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test: device='cpu', num_params=2097152, d_model=128, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=4194304, d_model=128, n_layers=256, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=6291456, d_model=128, n_layers=384, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=8388608, d_model=128, n_layers=512, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=10485760, d_model=128, n_layers=640, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=12582912, d_model=128, n_layers=768, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=14680064, d_model=128, n_layers=896, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=16777216, d_model=128, n_layers=1024, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=18874368, d_model=128, n_layers=1152, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=20971520, d_model=128, n_layers=1280, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=23068672, d_model=128, n_layers=1408, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=25165824, d_model=128, n_layers=1536, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=27262976, d_model=128, n_layers=1664, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=29360128, d_model=128, n_layers=1792, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=31457280, d_model=128, n_layers=1920, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=33554432, d_model=128, n_layers=2048, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=35651584, d_model=128, n_layers=2176, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=37748736, d_model=128, n_layers=2304, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=39845888, d_model=128, n_layers=2432, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=41943040, d_model=128, n_layers=2560, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=44040192, d_model=128, n_layers=2688, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=46137344, d_model=128, n_layers=2816, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=48234496, d_model=128, n_layers=2944, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=50331648, d_model=128, n_layers=3072, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=52428800, d_model=128, n_layers=3200, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=54525952, d_model=128, n_layers=3328, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=56623104, d_model=128, n_layers=3456, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=58720256, d_model=128, n_layers=3584, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=60817408, d_model=128, n_layers=3712, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=62914560, d_model=128, n_layers=3840, batch_size=1, iterations=8\n" ] }, { "data": { "text/plain": [ "[((128, 128, 1), 1.1947154998779297),\n", " ((128, 256, 1), 2.569913864135742),\n", " ((128, 384, 1), 5.827903747558594),\n", " ((128, 512, 1), 7.930755615234375),\n", " ((128, 640, 1), 9.775638580322266),\n", " ((128, 768, 1), 11.796236038208008),\n", " ((128, 896, 1), 14.448404312133789),\n", " ((128, 1024, 1), 17.14038848876953),\n", " ((128, 1152, 1), 17.837047576904297),\n", " ((128, 1280, 1), 19.883394241333008),\n", " ((128, 1408, 1), 22.61638641357422),\n", " ((128, 1536, 1), 24.13654327392578),\n", " ((128, 1664, 1), 26.167631149291992),\n", " ((128, 1792, 1), 27.997732162475586),\n", " ((128, 1920, 1), 30.0445556640625),\n", " ((128, 2048, 1), 31.66508674621582),\n", " ((128, 2176, 1), 36.531211853027344),\n", " ((128, 2304, 1), 37.75358200073242),\n", " ((128, 2432, 1), 40.39263916015625),\n", " ((128, 2560, 1), 40.8885498046875),\n", " ((128, 2688, 1), 42.360782623291016),\n", " ((128, 2816, 1), 43.692588806152344),\n", " ((128, 2944, 1), 46.01097106933594),\n", " ((128, 3072, 1), 48.29430389404297),\n", " ((128, 3200, 1), 53.447723388671875),\n", " ((128, 3328, 1), 52.81543731689453),\n", " ((128, 3456, 1), 59.15117263793945),\n", " ((128, 3584, 1), 56.112525939941406),\n", " ((128, 3712, 1), 62.42704391479492),\n", " ((128, 3840, 1), 64.33367919921875)]" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n_layers = [128*k for k in range(1, 31)]\n", "cpu_n_layer_results = run_tests('cpu', n_layers=n_layers)\n", "cpu_n_layer_results" ] }, { "cell_type": "code", "execution_count": null, "id": "94a8ffda-08eb-40be-a25d-b9be74487f48", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test: device='cuda', num_params=2097152, d_model=128, n_layers=128, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=4194304, d_model=128, n_layers=256, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=6291456, d_model=128, n_layers=384, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=8388608, d_model=128, n_layers=512, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=10485760, d_model=128, n_layers=640, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=12582912, d_model=128, n_layers=768, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=14680064, d_model=128, n_layers=896, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=16777216, d_model=128, n_layers=1024, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=18874368, d_model=128, n_layers=1152, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=20971520, d_model=128, n_layers=1280, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=23068672, d_model=128, n_layers=1408, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=25165824, d_model=128, n_layers=1536, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=27262976, d_model=128, n_layers=1664, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=29360128, d_model=128, n_layers=1792, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=31457280, d_model=128, n_layers=1920, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=33554432, d_model=128, n_layers=2048, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=35651584, d_model=128, n_layers=2176, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=37748736, d_model=128, n_layers=2304, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=39845888, d_model=128, n_layers=2432, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=41943040, d_model=128, n_layers=2560, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=44040192, d_model=128, n_layers=2688, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=46137344, d_model=128, n_layers=2816, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=48234496, d_model=128, n_layers=2944, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=50331648, d_model=128, n_layers=3072, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=52428800, d_model=128, n_layers=3200, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=54525952, d_model=128, n_layers=3328, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=56623104, d_model=128, n_layers=3456, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=58720256, d_model=128, n_layers=3584, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=60817408, d_model=128, n_layers=3712, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=62914560, d_model=128, n_layers=3840, batch_size=1, iterations=8\n" ] }, { "data": { "text/plain": [ "[((128, 128, 1), 2.4494080543518066),\n", " ((128, 256, 1), 5.06163215637207),\n", " ((128, 384, 1), 7.590879917144775),\n", " ((128, 512, 1), 13.605888366699219),\n", " ((128, 640, 1), 14.659584045410156),\n", " ((128, 768, 1), 13.579263687133789),\n", " ((128, 896, 1), 17.448959350585938),\n", " ((128, 1024, 1), 18.24460792541504),\n", " ((128, 1152, 1), 23.946239471435547),\n", " ((128, 1280, 1), 23.45267105102539),\n", " ((128, 1408, 1), 28.328960418701172),\n", " ((128, 1536, 1), 29.010944366455078),\n", " ((128, 1664, 1), 33.071903228759766),\n", " ((128, 1792, 1), 34.79347229003906),\n", " ((128, 1920, 1), 40.77772903442383),\n", " ((128, 2048, 1), 44.69657516479492),\n", " ((128, 2176, 1), 46.77222442626953),\n", " ((128, 2304, 1), 48.52937698364258),\n", " ((128, 2432, 1), 48.26121520996094),\n", " ((128, 2560, 1), 55.66156768798828),\n", " ((128, 2688, 1), 58.80012893676758),\n", " ((128, 2816, 1), 56.55039978027344),\n", " ((128, 2944, 1), 64.96358489990234),\n", " ((128, 3072, 1), 61.690879821777344),\n", " ((128, 3200, 1), 69.3780517578125),\n", " ((128, 3328, 1), 65.93033599853516),\n", " ((128, 3456, 1), 77.50857543945312),\n", " ((128, 3584, 1), 76.67609405517578),\n", " ((128, 3712, 1), 80.45465850830078),\n", " ((128, 3840, 1), 76.8174057006836)]" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cuda_n_layer_results = run_tests('cuda', n_layers=n_layers)\n", "cuda_n_layer_results" ] }, { "cell_type": "code", "execution_count": null, "id": "bce27f05-b988-43a5-bbcd-71e53b66edee", "metadata": {}, "outputs": [ { "data": { "image/png": "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ZRmJ/fDDD0lNTeWGG2647DXc7X9X3HjjjaxevZq1a9emHztx4gRffPGFS68fPXo0DoeDe+65J9upDbkZTU7rj3fffTfLualTp2ZqIyKFj0Z4RaRA6t69O35+fvTp04eHH36YhIQEPvroI8LDw4mJicnSvly5cvTs2ZO5c+cSFhZGr169Mp2vWbMmr776KqNGjWLfvn3ccsstBAcHEx0dzXfffcdDDz10xeTys88+47333uPWW2+lZs2axMfH89FHHxESEsKNN96Y3s7VsmQAM2fOpHv37vTt25c+ffrQpUsXgoKC2LVrF3PmzCEmJsalWrwZhYeHM3r0aF544QXat2/PTTfdRIkSJVi5ciVffvkl3bt3p0+fPpe9hrv974qRI0fy+eef07NnT4YPH55elqxatWr8/fffV3x9u3btePfdd3nssceoXbt2+kprKSkp7Ny5ky+++AI/Pz8iIiLcju2aa67hwQcf5K233mLXrl1069YNgMWLF/PTTz/x4IMP0qRJE7evKyIFhFdqQ4hIkZBT+asZM2a4VJYru2tlNG/ePKNx48ZGQECAUb16dWPChAnGJ598kuO1v/76awMwHnrooRzv88033xjXX3+9ERQUZAQFBRn16tUzhg4dauzYsSO9TYcOHYwGDRpkee3GjRuNu+++26hatarh7+9vhIeHG7179zbWr1+fqZ2rZcnSJCYmGm+88YbRsmVLo2TJkoafn59Ru3Zt47HHHjN2796dpY9yKjd2qVmzZhmtW7c2goKCDH9/f6NevXrG2LFjjaSkJJde72r/V6tWzejVq1eW13fo0CFL+bO///7b6NChgxEQEGBUqlTJeOWVV4zp06e71V+bNm0y7rvvPqNq1aqGn5+fERQUZDRu3Nh46qmnMvWXYVy53FhGDofDeOutt4wmTZoYAQEBRkBAgNGkSRPj7bffNhwOh0vXEJGCyWIYHnqiQETEy3744QduueUW/vjjD4/OiRURkcJNCa+IFBm9e/dm27Zt7N69WyWkREQknebwikieio2NzbE8VpqrmXOZ0Zw5c/j7779ZsGABb731lpJdERHJRCO8IpKn7r//fj777LPLtsntH0MWi4WSJUty55138v777+dYj1VERIonJbwikqe2bt3KkSNHLtvmSosCiIiI5IYSXhEREREp0rTwhIiIiIgUaUV+opvT6eTIkSME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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_results('n_layers', \n", " [(p[1], t) for p, t in cpu_n_layer_results], \n", " [(p[1], t) for p, t in cuda_n_layer_results],\n", " log_x=False)" ] }, { "cell_type": "markdown", "id": "a0f31927-8382-4bee-b10c-87035df5dadf", "metadata": {}, "source": [ "# Fixed parameter count, trading off between `d_model` and `n_layers`" ] }, { "cell_type": "code", "execution_count": null, "id": "9915f80d-ef61-4dd4-b34e-d6a5bf372723", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test: device='cpu', num_params=2147483648, d_model=128, n_layers=131072, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=2147483648, d_model=256, n_layers=32768, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=2147483648, d_model=512, n_layers=8192, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=2147483648, d_model=1024, n_layers=2048, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=2147483648, d_model=2048, n_layers=512, batch_size=1, iterations=8\n", "Test: device='cpu', num_params=2147483648, d_model=4096, n_layers=128, batch_size=1, iterations=8\n" ] }, { "data": { "text/plain": [ "[((128, 131072, 1), 2051.66357421875),\n", " ((256, 32768, 1), 929.3504028320312),\n", " ((512, 8192, 1), 556.9703369140625),\n", " ((1024, 2048, 1), 364.705322265625),\n", " ((2048, 512, 1), 313.9002380371094),\n", " ((4096, 128, 1), 288.2447204589844)]" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "max_n_params = 2**31 # Fix number of parameters at ~2B\n", "d_models = [2**k for k in range(7, 13)]\n", "n_layers = [max_n_params // d**2 for d in d_models] # NOTE: A ridiculous number of layers for smaller `d_model`\n", "cpu_fixed_n_param_results = run_tests('cpu', d_models=d_models, n_layers=n_layers)\n", "cpu_fixed_n_param_results" ] }, { "cell_type": "code", "execution_count": null, "id": "a209b133-cb4e-4be9-88cb-0bb001c13f54", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test: device='cuda', num_params=2147483648, d_model=128, n_layers=131072, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=2147483648, d_model=256, n_layers=32768, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=2147483648, d_model=512, n_layers=8192, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=2147483648, d_model=1024, n_layers=2048, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=2147483648, d_model=2048, n_layers=512, batch_size=1, iterations=8\n", "Test: device='cuda', num_params=2147483648, d_model=4096, n_layers=128, batch_size=1, iterations=8\n" ] }, { "data": { "text/plain": [ "[((128, 131072, 1), 2785.88818359375),\n", " ((256, 32768, 1), 733.1295166015625),\n", " ((512, 8192, 1), 187.72787475585938),\n", " ((1024, 2048, 1), 41.631744384765625),\n", " ((2048, 512, 1), 13.029984474182129),\n", " ((4096, 128, 1), 9.997952461242676)]" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cuda_fixed_n_param_results = run_tests('cuda', d_models=d_models, n_layers=n_layers)\n", "cuda_fixed_n_param_results" ] }, { "cell_type": "code", "execution_count": null, "id": "da51a093-88a3-48f0-b4c3-ff9fb89e92c0", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtMAAAIxCAYAAACPeDS4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC0aUlEQVR4nOzdd3gU5d7G8e/upgeSECAkFEPohC5IUXoJINLBAoodC7wKHpHDUUGwIGD3qNjRIzbsIAKRDlKU3mvohE4CCQkp8/6xZGFJgGzYkk3uz3Xtld2ZZ2d+k9nAnckzz2MyDMNAREREREQcZvZ0ASIiIiIi3kphWkRERESkgBSmRUREREQKSGFaRERERKSAFKZFRERERApIYVpEREREpIAUpkVERERECkhhWkRERESkgBSmRUREREQKSGFaPOKFF17AZDJ5ugyHLFiwAJPJxIIFCxx+75QpUzCZTOzZs8fpdTnieo7Bmx05coR+/fpRunRpTCYTb7311nV9L9q2bUvbtm2dXqeIuIfJZOKFF17wdBlSRChMi0iRN3z4cGbPns2oUaP43//+R5cuXTxdknihuXPn8sADD1CjRg2CgoKoUqUKDz30EIcPH87X+7dt28bw4cO5+eabCQgIuOov2CaTye4RHBxMbGwsL730Eqmpqdd9LAsWLKBPnz5ERkbi5+dHREQE3bt356effrK12bNnj10NFouFG264gd69e7N27dpc7V577bU89/Xaa68ViosJBZWcnMzLL79MkyZNCA0Nxd/fn+joaO644w5+//13u7Y5v6TnPHx9falSpQqDBg1i9+7dudr98MMPee5z6NChXnfBqTjz8XQBIiKuNm/ePHr27MnTTz9tW1ajRg3OnTuHn5+fw9ubM2eOM8sTLzFy5EhOnjxJ//79qV69Ort37+a///0vM2bMYO3atURGRl71/cuWLeOdd94hNjaW2rVr2wXSvHTq1IlBgwYBcPbsWRYvXszzzz/PunXrmDZtWoGPY8yYMYwbN47q1avzyCOPEB0dzYkTJ5g5cyZ9+/Zl6tSpDBgwwNb+rrvu4tZbbyUrK4stW7bwwQcf8Mcff7B8+XIaNmxY4Dq8wc6dO+ncuTN79+6ld+/eDBo0iBIlSrB//35mzpzJbbfdxpdffsk999xj974nnniCm266iYyMDFavXs1HH33E77//zoYNGyhfvryHjkZcRWFaRAqNlJQUgoODnb7do0ePEhYWZrfMbDYTEBBQoO0VJIAXV646p57wxhtv0LJlS8zmi3/U7dKlC23atOG///0vL7300lXf36NHD06fPk3JkiV57bXXrhmma9Sowd133217/eijj3L+/Hl++ukn0tLSCvT5/eGHHxg3bhz9+vXj66+/xtfX17ZuxIgRzJ49m4yMDLv33HjjjXZ13HLLLfTo0YMPPviADz/80OEavEVmZia9e/fmyJEjLFy4kFtuucVu/ZgxY5gzZw5ZWVm53tuqVSv69esHwP3330+NGjV44okn+OKLLxg1apRb6hf3UTcPcbklS5Zw0003ERAQQNWqVQv8j+99991HiRIl2LdvH7fddhslSpSgQoUKvPfeewBs2LCB9u3bExwcTHR0NF9//XWubezevZv+/fsTHh5OUFAQzZs3z/VnOoADBw7Qq1cvgoODiYiIYPjw4aSnp+dZ14oVK+jSpQuhoaEEBQXRpk0bli5dWqBjzEvOnwO///57Xn75ZSpWrEhAQAAdOnRg586d1739xYsX079/f2644Qb8/f2pVKkSw4cP59y5c7Y2n3/+OSaTiTVr1uR6/yuvvILFYuHgwYO2Zfn5nuT0m9+8eTMDBgygVKlStGzZEoDExETuv/9+KlasiL+/P1FRUfTs2dPhPxPn9FU3DIP33nvP9qdXyN1/fMuWLQQGBtquBOZYsmQJFouFkSNH2pZd3mfa0XP03nvvUaVKFQIDA2natCmLFy/Odz9sk8nE0KFD+eWXX6hbty7+/v7UqVOHWbNmOfS9ufRP82+++SbR0dEEBgbSpk0bNm7caNd2/fr13HfffVSpUoWAgAAiIyN54IEHOHHihF27q51TR7exfft27r77bkJDQylbtizPP/88hmGwf/9+evbsSUhICJGRkbz++uu5ju3dd9+lTp06BAUFUapUKZo0aZLnvweOat26tV2QzlkWHh7Oli1brvn+8PBwSpYseV01REZGYjKZ8PG5eC0sNTWVrVu3cvz48Wu+//nnnyc8PJzPPvvMLkjn6Ny5M7fddttVt9G+fXsAEhISHKz+6hz9jOzcuZP77ruPsLAwQkNDuf/++3N1gUlPT2f48OGULVuWkiVL0qNHDw4cOJCveqZNm8bGjRt5/vnncwXpHHFxcXTt2vWa23LV90wKB12ZFpfasGEDcXFxlC1blhdeeIHMzEzGjBlDuXLlCrS9rKwsunbtSuvWrZk4cSJTp05l6NChBAcH8+yzzzJw4ED69OnD5MmTGTRoEC1atCAmJgaw3oR28803k5qayhNPPEHp0qX54osv6NGjBz/88AO9e/cG4Ny5c3To0IF9+/bxxBNPUL58ef73v/8xb968XPXMmzePrl270rhxY8aMGYPZbObzzz+nffv2LF68mKZNmxb8m3eZV199FbPZzNNPP01SUhITJ05k4MCBrFix4rq2O23aNFJTU3nssccoXbo0K1eu5N133+XAgQO2PyX369ePIUOGMHXqVBo1amT3/qlTp9K2bVsqVKgAOP49yfmT+SuvvIJhGAD07duXTZs28X//939UrlyZo0ePEh8fz759+6hcuXK+j61169b873//45577rH7k3leateuzYsvvsiIESPo168fPXr0ICUlhfvuu49atWoxbty4a+4vP+fogw8+YOjQobRq1Yrhw4ezZ88eevXqRalSpahYsWK+jmvJkiX89NNPPP7445QsWZJ33nmHvn37sm/fPkqXLp2vbeT48ssvOXPmDEOGDCEtLY23336b9u3bs2HDBtvPaXx8PLt37+b+++8nMjKSTZs28dFHH7Fp0yaWL1+eq29nXufU0W3ccccd1K5dm1dffZXff/+dl156ifDwcD788EPat2/PhAkTmDp1Kk8//TQ33XQTrVu3BuDjjz/miSeeoF+/fjz55JOkpaWxfv16VqxYYeu6kJGRQVJSUr6+P+Hh4bkC9KXOnj3L2bNnKVOmTP6+4Q5IS0uzBeSUlBSWLl3KF198wYABA+zC9MqVK2nXrh1jxoy56k11O3bsYOvWrTzwwAPXFep37doF4PBn7Voc/YzcfvvtxMTEMH78eFavXs0nn3xCREQEEyZMsLV56KGH+OqrrxgwYAA333wz8+bNo1u3bvmqZ/r06QB2V+ULylXfMykkDBEX6tWrlxEQEGDs3bvXtmzz5s2GxWIxHP343XvvvQZgvPLKK7Zlp06dMgIDAw2TyWR8++23tuVbt241AGPMmDG2ZcOGDTMAY/HixbZlZ86cMWJiYozKlSsbWVlZhmEYxltvvWUAxvfff29rl5KSYlSrVs0AjPnz5xuGYRjZ2dlG9erVjc6dOxvZ2dm2tqmpqUZMTIzRqVMn27LPP//cAIyEhASHjtkwDGP+/PkGYNSuXdtIT0+3LX/77bcNwNiwYYPD28o5hpx6Lzd+/HjDZDLZnbe77rrLKF++vO37ZBiGsXr1agMwPv/8c8MwHPuejBkzxgCMu+66y27fp06dMgBj0qRJ+T6uawGMIUOG2C3L63uRlZVltGzZ0ihXrpxx/PhxY8iQIYaPj4/x999/2723TZs2Rps2bXJt61rnKD093ShdurRx0003GRkZGbZ2U6ZMMQC7bV7tWPz8/IydO3falq1bt84AjHfffTc/3w7DMAwjISHBAIzAwEDjwIEDtuUrVqwwAGP48OG2ZXl9Rr755hsDMBYtWmRbdqVzWpBtDB482LYsMzPTqFixomEymYxXX33Vtjzn5//ee++1LevZs6dRp06dqx57zvnKz+NaP7MvvviiARhz5869arvLTZo06arbv1I9vXr1MtLS0vI8nkv/vcvLr7/+agDGm2++ma8acz4jY8eONY4dO2YkJiYaCxYsMBo1amQAxo8//mjX7ko/s9c61hyOfkYeeOABu7a9e/c2SpcubXu9du1aAzAef/xxu3YDBgzI1/erUaNGRlhYWK7lZ8+eNY4dO2Z7JCUl2dblnIvPPvvMOHbsmHHo0CHj999/NypXrmyYTCbbvyU57aZNm5bnvocMGeLw/5HiOermIS6TlZXF7Nmz6dWrFzfccINtee3atencuXOBt/vQQw/ZnoeFhVGzZk2Cg4O5/fbbbctr1qxJWFiY3d3TM2fOpGnTprY/OwOUKFGCwYMHs2fPHjZv3mxrFxUVZevvBhAUFMTgwYPt6li7di07duxgwIABnDhxguPHj3P8+HFSUlLo0KEDixYtIjs7u8DHebn777/frq9uq1atAOyOsSACAwNtz1NSUjh+/Dg333wzhmHYdesYNGgQhw4dYv78+bZlU6dOJTAwkL59+wIF+548+uijuerx8/NjwYIFnDp16rqOzVFms5kpU6Zw9uxZunbtyvvvv8+oUaNo0qRJvt5/rXP0zz//cOLECR5++GG7K4sDBw6kVKlS+a6zY8eOVK1a1fa6fv36hISEFOiz0KtXL9tfFQCaNm1Ks2bNmDlzpm3ZpZ+RnKulzZs3B2D16tW5tnn5OS3INi79ObdYLDRp0gTDMHjwwQdty3N+/i897rCwMA4cOMDff/99xWNu0KAB8fHx+Xpc7abCRYsWMXbsWG6//Xbbn/GdqWfPnrY6fv31V0aNGsWsWbMYMGCA7Yo/WLsdGYZxzaHekpOTARy+Kj1mzBjKli1LZGQkbdu2ZdeuXUyYMIE+ffo4fExXc72fs1atWnHixAnbceZ8hp944gm7dsOGDctXPcnJyZQoUSLX8meffZayZcvaHpferJnjgQceoGzZspQvX55u3bqRkpLCF198ke9/S8S7qJuHuMyxY8c4d+4c1atXz7WuZs2adv9Z51dAQABly5a1WxYaGkrFihVz/QkwNDTULozt3buXZs2a5dpm7dq1bevr1q3L3r17qVatWq7t1axZ0+71jh07ALj33nuvWG9SUpJDIelqLv2FBLBt93oD5759+xg9ejS//fZbrm1d+qfwTp06ERUVxdSpU+nQoQPZ2dl888039OzZ0/afc0G+JzndcHL4+/szYcIE/vWvf1GuXDmaN2/ObbfdxqBBg645WoIzVK1alRdeeIERI0ZQt25dnn/++Xy/91rnaO/evQBUq1bNrp2Pj49D3Vcu30/OvgryWcjr57NGjRp8//33ttcnT55k7NixfPvttxw9etSubV7dJS4/pwXZxuXHGBoaSkBAQK7uFKGhoXZ9akeOHMmff/5J06ZNqVatGnFxcQwYMMCuz2upUqXo2LFjrn06YuvWrfTu3Zu6devyySefXNe2rqRixYp2dfbo0YPSpUvz9NNPM2PGDLp37+7Q9kJCQgA4c+aMQ+8bPHgw/fv3x2w2ExYWRp06dfD393doG8A1h3q73s/IpT9vISEh7N27F7PZbPeLJ+T+t/xKSpYsmau/NsDjjz9u61d+pS4go0ePplWrVlgsFsqUKUPt2rXtfoGWokVnVryKxWJxaPmlV2+cLecK66RJk644PFReVzUKyhXHmJWVRadOnTh58iQjR46kVq1aBAcHc/DgQe677z67q8gWi4UBAwbw8ccf8/7777N06VIOHTpk959JQb4nl16NyjFs2DC6d+/OL7/8wuzZs3n++ecZP3488+bNy9Vn2xVyhr47dOgQJ06cyHeId9fn0N2f99tvv52//vqLESNG0LBhQ0qUKEF2djZdunTJ868veZ1TR7eR1zHm57hr167Ntm3bmDFjBrNmzeLHH3/k/fffZ/To0YwdOxaA8+fPc/LkyXwde9myZXPtd//+/cTFxREaGsrMmTOv+6ZCR3To0AGwXhV3NEzXqlUL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runFRURERK6LwnRxlDOqx+ZfNb24iIiIyHVQmC6OKjWHsBvg/BnYNtPT1YiIiIh4LYXp4shsvuRGRHX1EBERESkoheniKidM75wLZ496thYRERERL6UwXVyVqQ7lbwQjS9OLi4iIiBSQwnRxZpteXF09RERERApCYbo4q9vXOr34oTVwbLunqxERERHxOgrTxVlwGajW0fpc04uLiIiIOExhurizjerxvaYXFxEREXGQwnRxV7Mr+IdA0n7Y95enqxERERHxKgrTxZ1vIMT2tD5fp64eIiIiIo5QmBb76cUzznm2FhEREREvojAtcMPNEFoJ0pNh2x+erkZERETEayhMy4XpxW+3PteY0yIiIiL5pjAtVrbpxf+ElOOerUVERETESyhMi1XZmhDVELIzNb24iIiISD4pTMtFOTcialQPERERkXxRmJaL6vYDkwUOrYbjOzxdjYiIiEihpzAtF5UoC9U6WJ/rRkQRERGRa1KYFnu26cW/0/TiIiIiItegMC32anUDv5Jweh/sX+7pakREREQKNYVpsafpxUVERETyTWFacmtwoavHpl8gI82jpYiIiIgUZgrTklt0SwipCOlJsH2Wp6sRERERKbQUpiU3sxnq97c+16geIiIiIlekMC15q39hApcdcyDlhGdrERERESmkFKYlbxG1IKqBdXrxTT95uhoRERGRQklhWq4sZ8xpjeohIiIikieFabmyuv3AZIaD/8DxnZ6uRkRERKTQUZiWKytZDqq2tz7f8L1naxEREREphBSm5epybkRc/x0YhmdrERERESlkFKbl6mp1A78ScGoP7F/h6WpEREREChWFabk6vyCo3cP6XDciioiIiNhRmJZrs00v/jNkpnu2FhEREZFCRGFarq1yKyhZHtJOw/bZnq5GREREpNBQmJZrM1s0vbiIiIhIHhSmJX9yRvXYPhtST3q2FhEREZFCQmFa8qdcLETWg+wMTS8uIiIicoHCtORfztXpderqISIiIgIK0+KIehemFz+wEk7s8nQ1IiIiIh6nMF0IZWUbrEg4yarjJlYknCQru5DMPFgyEqq0tT5fr+nFRURERHw8XYDYm7XxMGOnb+ZwUhpg4csd/xAVGsCY7rF0qRvl6fKsXT12zbOO6tH232AyeboiEREREY/RlelCZNbGwzz21eoLQfqixKQ0HvtqNbM2HvZQZZeo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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_results(f'd_model, n_layers, fixing n_params={(max_n_params / 10**9):.1f}B',\n", " [(f'd_model={p[0]}\\nn_layers={p[1]}', t) for p, t in cpu_fixed_n_param_results], \n", " [(f'd_model={p[0]}\\nn_layers={p[1]}', t) for p, t in cuda_fixed_n_param_results],\n", " log_x=False,\n", " labelsize=9)" ] }, { "cell_type": "code", "execution_count": null, "id": "ce8e0aaa-db04-409c-9f15-648b2beee8f0", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3" } }, "nbformat": 4, "nbformat_minor": 5 }