Skip to content

Instantly share code, notes, and snippets.

@kyamagu
Created October 27, 2022 05:43
Show Gist options
  • Save kyamagu/e301b61f9931da0196afe457b4f87023 to your computer and use it in GitHub Desktop.
Save kyamagu/e301b61f9931da0196afe457b4f87023 to your computer and use it in GitHub Desktop.
sqrtm-benchmark.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyNxHH+bS4/yEcMDZopPmySU",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/kyamagu/e301b61f9931da0196afe457b4f87023/sqrtm-benchmark.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 312
},
"id": "d62TGneO9MJp",
"outputId": "911fd622-ff4b-49a4-f917-202bf817088e"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"tensorflow version = 2.9.2\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEWCAYAAABhffzLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXhV1dX48e/KHJIQIIEwSpgFIYAkjNWCpQ7Vqq9V68SoYge1ta2ttlbp9FZf39bWt9WfEwFEBYfWecABCopIwiAzMkOYCSRkHu5dvz/uAS4xQAi5OXdYn+e5T8581r65WXdnn332EVXFGGNM5IhyOwBjjDHNyxK/McZEGEv8xhgTYSzxG2NMhLHEb4wxEcYSvzHGRBhL/MacARF5T0QmNNO51ojI6OY4l4ksYv34jamfiEwFeqrqLc1wrulAgao+EOhzGWM1fmOMiTCW+E1QEZGOIvKaiBwQka0icrezvI2IFIjId535ZBHZJCLjnflzReRDETkkIhtE5Hq/YyaKyF9EZLuIFIvIp86y0SJSUOf820RkrIhcCvwa+L6IlIrIl876+SJymzMdJSIPOMfdLyIzRSTVWZcpIioiE0Rkh4gcFJHfnKTMU4CbgV8653rLPxZneqqIvCIis0SkRERWiUhvEbnfOfdOEbnY75ipIvKciOwRkV0i8kcRiW6a35IJdZb4TdAQkSjgLeBLoBPwLeCnInKJqh4CJgPPiEg74DFgharOFJEk4EPgRaAdcAPwhIj0cw79v8AQYCTQBvgl4D1VLKr6PvDfwBxVTVbVgfVsNtF5jQG6A8nAP+ps8w2gj1OWB0Wkbz3nehp4Afgf51zfPUlY3wWeB1oDy4EP8P0NdwJ+Dzzlt+10oBboCQwGLgZuO1WZTeSwxG+CSQ7QVlV/r6rVqroFeAZfIkdV5wKvAB8D3wHucPa7AtimqrmqWquqy4HXgOucL5PJwE9UdZeqelR1kapWNUG8NwN/VdUtqloK3A/cICIxftv8TlUrVPVLfF9o9X2BNNRCVf1AVWvxvQ9tgYdVtQaYDWSKSCsRycD3/vxUVctUdT++L8obzuLcJozEnH4TY5pNV6CjiBT5LYsGFvrNPw3cCfy3qhb67Teszn4x+GrH6UACsDkA8XYEtvvNb3fOm+G3bK/fdDm+/woaa5/fdAVwUFU9fvM4x+8IxAJ7ROTo9lHAzrM4twkjlvhNMNkJbFXVXvWtdNqonwZmAj8SkVxV3eTs9x9V/XY9+0QBlUAPfDVuf2VAizrHb+u3/nRd3nbj+9I56hx8zSv7gM6n2beupuxetxOoAtKd/w6MOYE19ZhgsgQoEZFfORdfo0Wkv4jkOOt/jS9BTgYeBWY6yfptoLeIjBORWOeVIyJ9VdULTAP+6lw4jhaRESISD3wFJIjI5SISCzwAxPvFsw9f88nJ/k5eAu4RkW4ikszxawKNSbb78F0nOGuqugeYC/xFRFo6F6F7iMg3m+L4JvRZ4jdBw2m2uAIYBGwFDgLPAqkiMgT4GTDe2e4RfF8C96lqCb6Llzfgq4XvddYfTeK/AFYBecAhZ12UqhYDP3LOsQvffwD+vXxecX4WisiyekKehq85aYETbyVwVyOL/xzQT0SKROT1Rh7D33ggDlgLHAZeBTo0wXFNGLAbuIwxJsJYjd8YYyKMJX5jjIkwlviNMSbCWOI3xpgIExL9+NPT0zUzM/OM9ysrKyMpKanpAwpSkVTeSCorWHnDWSDLunTp0oOq2rbu8pBI/JmZmeTn55/xfvPnz2f06NFNH1CQiqTyRlJZwcobzgJZVhHZXt9ya+oxxpgIY4nfGGMijCV+Y4yJMCHRxl+fmpoaCgoKqKysPOk2qamprFu3rhmjcldTlTchIYHOnTsTGxvbBFEZY4JNyCb+goICUlJSyMzMxG/o2ROUlJSQkpLSzJG5pynKq6oUFhZSUFBAt27dmigyY0wwCdmmnsrKStLS0k6a9E3jiAhpaWmn/E/KGBPaQjbxA5b0A8TeV2PCW0gnfmOMCVeFpVX8/q21VNZ4Tr/xGbLE30hFRUU88cQTrp3/xhtvJCsri8cee4yJEyfy6quvuhaLMaZpVdZ4uG1mPi98sZ3NB0qb/PiW+BvJrcRfW1vL3r17ycvLY+XKldxzzz3NHoMxJnC8XuWeOStYsbOIv98wmPM6pjb5OSzxN9J9993H5s2bGTRoEPfeey+PPvooOTk5ZGVl8dBDDwGwbds2+vbty+233855553HxRdfTEWF75nYjz/+OP369SMrK4sbbrgBgEOHDnH11VeTlZXF8OHDWblyJQBTp05l3LhxjBo1inHjxnHxxReza9cuBg0axMKFC0+I6+OPP2bw4MEMGDCAyZMnU1VVRV5eHtdccw0Ab7zxBomJiVRXV1NZWUn37k3ytD9jTBP583vreG/1Xh64vB+X9m8fkHOEbHdOf797aw1rdx/52nKPx0N0dHSjjtmvY0se+u55J13/8MMPs3r1alasWMHcuXN59dVXWbJkCarKlVdeyYIFCzjnnHPYuHEjL730Es888wzXX389r732GrfccgsPP/wwW7duJT4+nqKiIgAeeughBg8ezOuvv84nn3zC+PHjWbFiBQBr167l008/JTExkW3btnHFFVccW/fcc88Bvp5OEydO5OOPP6Z3796MHz+eJ598kjvvvPPYtgsXLqR///7k5eVRW1vLsGHDGvX+GGOa3szPt/HMwq1MHJnJ5FGZATuP1fibwNy5c5k7dy6DBw/m/PPPZ/369WzcuBGAbt26MWjQIACGDBnCtm3bAMjKyuLmm29m1qxZxMT4vn8//fRTxo0bB8BFF11EYWEhR474vtCuvPJKEhMTTxnHxo0b6datG7179wZgwoQJLFiwgJiYGHr06MG6detYsmQJP/vZz1iwYAELFy7kggsuaPL3wxhz5j5et4+pb65hbN92/PaKfgHtXRcWNf6T1cyb6wYuVeX+++/njjvuOGH5tm3biI+PPzYfHR19rKnnnXfeYcGCBbz11lv86U9/YtWqVac8x9kO23rhhRfy3nvvERsby9ixY5k4cSIej4dHH330rI5rjDl7qwqKufPF5fTvlMrjNw4mOiqwXaqtxt9IKSkplJSUAHDJJZcwbdo0Skt9V9937drF/v37T7qv1+tl586djBkzhkceeYTi4mJKS0u54IILeOGFFwDfUK3p6em0bNmywTH16tWLbdu2sWnTJgCef/55vvnNbwJwwQUX8Le//Y0RI0bQtm1bCgsL2bBhA/37929U+Y0xTeNghZfJM/JokxTHsxOyaREX+Pp4WNT43ZCWlsaoUaPo378/l112GTfddBMjRowAIDk5mVmzZp30+oLH4+GWW26huLgYVeXuu++mVatWTJ06lcmTJ5OVlUWLFi2YMWPGGcWUkJBAbm4u1113HbW1teTk5PCDH/wAgGHDhrFv3z4uvPBCwNfUtHfvXrtZyxgXFVfU8NjSSipro3nxtmG0S0lolvOKqjbLic5Gdna21n0Qy7p16+jbt+8p97OxehqvIe+vmyLpQR1g5Q1H1bVeJuYu4YsthTx/6zBG9kxv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\n"
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"import timeit\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import scipy.linalg\n",
"import tensorflow as tf\n",
"\n",
"print(\"tensorflow version = {}\".format(tf.__version__))\n",
"\n",
"sizes = 2 ** tf.range(1, 10) # Matrix size.\n",
"functions = [tf.linalg.sqrtm, scipy.linalg.sqrtm] # TF and scipy impl.\n",
"\n",
"# Measure time.\n",
"result = dict()\n",
"for size in sizes:\n",
" X = tf.eye(size, dtype=tf.float64) + 1e-2 * tf.random.normal((size, size), dtype=tf.float64)\n",
" X = tf.cast(X, tf.complex128)\n",
" for func in functions:\n",
" elapsed = timeit.timeit(lambda: func(X), number=3)\n",
" result.setdefault(func.__module__, []).append(elapsed)\n",
"\n",
"# Plot results.\n",
"for key in result:\n",
" plt.plot(sizes, result[key])\n",
"plt.legend([key.split(\".\")[0] for key in result.keys()])\n",
"plt.title(\"execution time\")\n",
"plt.ylabel(\"seconds\")\n",
"plt.xlabel(\"matrix size\")\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "Bf5Cyspq9Yqz"
},
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment