{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "e76b6794", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/ubuntu/Qwen-Image-Edit-Angles\n" ] } ], "source": [ "%cd /home/ubuntu/Qwen-Image-Edit-Angles" ] }, { "cell_type": "code", "execution_count": 2, "id": "f0f4ce28", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4\n", " warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n", "/home/ubuntu/.local/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n", "Skipping import of cpp extensions due to incompatible torch version 2.9.1+cu128 for torchao version 0.14.1 Please see https://github.com/pytorch/ao/issues/2919 for more info\n", "TMA benchmarks will be running without grid constant TMA descriptor.\n", "2025-11-19 13:40:04.606882: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", "2025-11-19 13:40:04.621091: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n", "E0000 00:00:1763559604.639099 4020977 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", "E0000 00:00:1763559604.644803 4020977 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", "W0000 00:00:1763559604.657365 4020977 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n", "W0000 00:00:1763559604.657381 4020977 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n", "W0000 00:00:1763559604.657383 4020977 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n", "W0000 00:00:1763559604.657384 4020977 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n", "2025-11-19 13:40:04.661731: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", "To enable the following instructions: AVX512F AVX512_VNNI AVX512_BF16 AVX512_FP16 AVX_VNNI, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", "/usr/lib/python3/dist-packages/sklearn/utils/fixes.py:25: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n", " from pkg_resources import parse_version # type: ignore\n", "Fetching 7 files: 100%|██████████| 7/7 [00:00<00:00, 82938.21it/s]\n" ] } ], "source": [ "from qwenimage.reporting.datamodels import ExperimentSet\n", "from qwenimage.reporting.visualize_barplot import compare_sets_with_timing" ] }, { "cell_type": "code", "execution_count": 3, "id": "226af1b2", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/ubuntu/.local/lib/python3.10/site-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n", " warnings.warn(\n", "/home/ubuntu/.local/lib/python3.10/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=AlexNet_Weights.IMAGENET1K_V1`. You can also use `weights=AlexNet_Weights.DEFAULT` to get the most up-to-date weights.\n", " warnings.warn(msg)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Setting up [LPIPS] perceptual loss: trunk [alex], v[0.1], spatial [off]\n", "Loading model from: /home/ubuntu/.local/lib/python3.10/site-packages/lpips/weights/v0.1/alex.pth\n" ] }, { "data": { "image/png": "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vip1bUztgC/M7HuWjSV/yN0nWsjQX034t33WzCYRkvHVdiZwuJlNBmYSxsRDeNDwpbvPMrNngH2B+8zsMsLY9w0I+QJOYNk9IiIiklMagy4iIrnWhjBOeDtCV+k3gMPd/ZV4+xWE4HAW0AW4D7ix1jGqgZuBiYSW042AyfG60wHc/fP4PPcRukxvTsiCPgr4dRNcV6OfMx6vvR+hW3oh4fd1wEqKv8mybukzgPHuXs2ysfqQFqDn4vdDyK7+F8KDgPmEcei/iOszntAD4ivCPTKdkHm9tgrglbiuWxKS7L1ISAg3Ky4zEriYkAl+A8JDjYnxuUc1+lWJiIisJnOvPRRLREREmpM48RnAJe4e5bIuIiIisvrUxV1EREQaVTxkoU6phIAiIiKyIgXoIiIi0th2bLiIiIiI1KYu7iIiIiIiIiJ5QEniRERERERERPKAAnQRERERERGRPKAAXURERERERCQPKEAXERERERERyQMK0EVERERERETygAJ0ERERERERkTygAF1EREREREQkDyhAFxEREREREckDCtBFRERERERE8oACdBEREREREZE8oABdREREREREJA8oQBcRERERERHJAwrQRURERERERPKAAnQRERERERGRPKAAXURERERERCQPKEAXERERERERyQNF2ThJSVnFHcD+wLTK8tIt6thuwLXAfsB84PjK8tL3GjpuQUGBt2/fvrGrKyIiIiIiInlu/vz57u4tqtE5KwE6cBdwPXD3SrbvCwyMf3YEbopf69W+fXvmzZvXSFUUERERERGR5sLMFuS6Do0tK08bKstLXwVm1lPkIODuyvJSrywvHQN0LSmrWDcbdRMRERGRZuaekXBlf3jlqhW3zfwK7tgX7iyFu/aH5JSw/q3b4O/bwrWDlpWdPzOUS/1c2gMW/JiVSxARqUu2WtAb0hv4Jm15crzu29oFzexk4GSA4uJipk+fnpUKikjmnvzoBx79YBoA5+1Zwia9Oi7dNnnWQi55diIGmMGl+21Ir85tiZ75ks9/mE+nNoV061DMnw8cCMAvH/iUqhpnwZIajt5+HUZs2pO3JyW5bXT4wjV3cTUFBv86ZsusX6eIiORGwe6XUvzN/yiY+x0Lan0X7PD6dVQPPJhFmx5K208fovCVa5i/y++wdXbHD9+fbv/Zmx/T9zngnwAUfT+ODv43Zs+rhnn6fikiuZEvAbrVsc7rKujutwK3AnTs2NF79uzZlPUSkVWUnL+Ehz74lEd/uTvfz17I2feP5aHTdlm6/ZY3P+Honftz2HZ9ePCdb3hi/Gx+v++mtG07hT8eMpAdSrovd7x/nbwrbYoKmLNwCfte+xo/330T9u3Zk3233RCAm1/5khp39FkgItKK9OwJP34ANXPoWPvzf4NtYdEcOvfsCYVV0HN9OvTsCcTlCgrr/pvx1nOw3TFh21evwQsXQZuO0HV9OPjGJr8kERHInwB9MtA3bbkPMHV1DrRkyRImT57MwoULG6VisqJ27drRp08fiouLc10VyUPvf/MjO5R0p01RAX27d2De4moWVVXTtqgQgIG9OjN7wRIAkguW0LNj26X7Xv7UJ7QpKuDYnUs4YOv1AGhTFEbiLFhczUa9Oq9wvsfHTuX247Zv6ssSEZHmov8wuOcQeO8eqF4Ev3ip4X2qq+DzZ2HPi8Lyp0/CHhfCgD2hpqZJqysiki5fAvQngDNKyiruIySHS1aWl67QvT0TkydPpnPnzpSUlGBWV8O8rAl3Z8aMGUyePJl+/frlujqSh5ILlpBov+zhTed2RSTnL2HtLiFA321AT4694y0eeOcbFlfV8NgZuwJwQemmdO/YhlnzF3PUbW+ydZ+urN+jA9U1zpG3jeGL7+dw3ohNljvX+O9m07ldEb27ajYHERGJvXBxCK43OxA+fAj+eymU/qX+fb58CfoOhradwvKuZ8Lr18C4e6HfENj22CavtogIZG+atXuBYUDPkrKKycDFQDFAZXnpzcDThCnWJhCmWTthdc+1cOFCBedNyMzo0aMHP/zwQ66rInkq0b6Y2QuXLF2es7CKRIdlAXv5M+M5Z++NGLHFujw+dgpXPfsZlx28Bd07tgGga4c27D6wJ598O5v1e3SgsMB44JSd+XHeYg684XVKt1qXLu3C8R59bwojt+md3QsUEZE859ChR3jbsWdmSd8+uB+2PmLZcvvuUHo1uMN128JmB0O7Lk1SWxGRdFkJ0CvLS49sYLsDpzfW+RScNy39fqU+2/Ttxl+e/5wl1TVMm7OIjm0Kl3Zvh5BcoluHEIz37NSWWWnd3RPti1lcVcM7X//Iodv1YUl1DYVmFBQY7ePjtI27vNfUOM9+/B1PnLFb1q9RRERy7IlfwTdvQdUimPo+DCuDiS/DrmfBkHPhyV9DQRHULIH9rwn7fPwovHMnzPkO/nkgDL8A1t8RFs2FyW/ByFuWHf+NG0KrutdA/+EKzkUka8y9zlxszULHjh299jzon376KZtuummOahR06tSJuXPnLrcuiiJuu+021lprLaqqqrjiiis48MADiaKITp06cc4553D88cfzyiuvkEgkKCgo4IYbbmDnnXdmzJgxnHXWWSxatIhFixZx+OGHE0XRcscfNWoUBx100HLdzq+++mr22muvJrnGfPg9S/564O1vuO/tSZgZFx+wGYUFxutfTOeUoRvy+fdzOP+RDyksMKpqnCtGbsnG63TmmH+8yfzF1VRV13DwNr05Ydd+fJdcyJn3vk9BASyuquG4XUo4aFBoMR89YTp3v/E1Nx+zXY6vVkRERERywczmu3vHhks2H/kyBr3JHHrUMUya8l2jHW/93uvw8H/uWa19zz77bM455xw+/fRTdt99d6ZNm7ZCmauuuorDDjuM559/nlNOOYUPPviA4447jgceeICtt96a6upqPvvsszqPv/vuu/PUU0+t9PzujrtTUFBQ5/LKVFdXU1hYWG8ZkXQ/26EvP9uh73LrNl8vAcBGvTovl9U95Z4Td1xh3TqJdjxw6s51nmOXAT3ZZYAyt4uIiIhIy9HiA/RJU75jqxOuaLTjfXDn+Wt8jE033ZSioqJ653AfMmQIEyZMAGDatGmsu+66ABQWFrLZZptlfK7Kykr23Xdfhg8fzhtvvME111zDqaeeunT5scce4/rrr+eZZ57BzLjwwgs5/PDDGTVqFJdccgnrrrsuY8eO5ZNPPlmzixapQxRFXHLJJQ2Wu/jii1foNSIiIlIf/Y0RkeaoxQfo+ejNN9+koKCAtdZaa6VlnnzySbbccksgtLxvvPHGDBs2jBEjRnDcccfRrl27FfZ57bXXGDRo0NLlhx9+mMLCQj777DPuvPNObrzxRiorK5dbfvjhhxk7dizjxo1j+vTp7LDDDgwZMgSAt956i48++kjZ2qXJRFG03JeiYcOGAWHIhoiIyJrQ3xgRaY4UoGfR3/72N/71r3/RuXNn7r///jqTrZ177rlcfvnlrLXWWvzjH/8A4KKLLuLoo4/m+eef5z//+Q/33ntvnX9c6uriXllZyQYbbMBOO+20dF368uuvv86RRx5JYWEhvXr1YujQobz99tt06dKFwYMHKzgXERERERHJEgXoWZQag16f1Bj02jbccENOO+00fvGLX7DWWmsxY8YMevTokdF5O3bsuNLl+pIE1t5PREREREREmk792cEkL1RUVCwNpL/44gsKCwvp2rVroxx7yJAh3H///VRXV/PDDz/w6quvMnjw4EY59mq7ZyRc2R9euWrFbaOvhztLw881W8JzF4T1j54GN+8W1j9wbFiXnBKW7xgB/9gbpryXvWsQERERERFZRWpBbwLz58+nT58+S5d/85vfrNHx7rnnHs4++2w6dOhAUVER//73v+vMql57DPqFF17I9ttvX++xR44cyRtvvMHWW2+NmXHllVeyzjrrMH78+DWq8xo58HqYOApmT11x2y5nhB+Afx0Gmx28bNu+V8EGaRm/23aCn94FndaCaePhqV/D/z3bdPWW1u2ekfDtONjxNBh67vLbRl8Pnz0T3icnwaYHwj5/hLdugzE3hXl2zxobb58Cj5wMXh3WjyiH3ttm9VKkFVmd+/bHr+Hx06F6MQzcG4acA/Nnwv3HLNv3mzFw7gRo3y171yIiItICtPh50PNpmrWWpMnnQX//3yFAr/2FMWXedLhzXzjj7bD86Gnww3goaguDfwFbHLp8+RlfwpNnwfFPwVevwQsXQZuO0HV9OPjGprsOWSXNOoFPcsqyB0sru28hPFga+jvouwPMnRYCmOt3WBagL0xC1WI9WJLsWJ379sETwufsBrvAPw+E/a6GtTZaVnbyu/DyH+GYR5q8+iKroln/jRGROmke9GZIwXQL9eFDsPnIZct7Xw4de4RWnLsPhPW2he5xgruaanj6XNj9t2H50ydhjwthwJ5QU5P9ukvLlOjdcJl502HW1yHIAei09opl2iWWvS8shoL4Y1oPlqQprM59+92HITgH2Ggf+Pp/ywfoH9wPWx0e3uu+FRERWSUtPkCXFurDB+CQ25Ytd4wT5nXoDv2Hw/cfLQvQnzwrfInccHhY3vVMeP0aGHcv9BsC2x6b1apLK1b7wVJ99GBJ8kXt+9bT7r92CZj7/bLl6ir4/FnY86KwrPtWRERklShJnDQ/0ycABj02XLZuwazwWrUYvnkTegwIy89fCJ3XgR1PWVa2fXcovToE+K//DRbOzlbNpbX78IFlLYsNqevB0mfPwMMnwdh/NV0dRWqrfd9a2leHhbOXH2f+5UvQd3DIAQK6b0VERFaRWtAl/zzxK/jmLahaBFPfh2FlMPFl2PWssP2D+2Grny2/z0MnwOJ5UL0kfJFce9OQtX3MTdB3p5DNvWMP+Nnd8MYN4Uuk14TW9nZdsn+N0vrU9WBpZep7sOQO120bEiTq3pWmVtd9u84WMOlNWH9HmPBCSGSY8sH9sPURy5Z130odTjzqEKZN+Trr5/1w3OcAHDB0u6yfe+3eG/CP/ygvg4g0TAG65J8Dr1tx3bpbLXu/xwUrbj/m0RXX9d4WLpqx4vqh59afDElkdazOg6WPH4V37oQ534VkW8MvCOPO9WBJsmV17ts9Lw77VS+GAT+BtTYO6xfNhclvwchblpXVfSt1mDbla548ZUDWzzvs8m8AcnLuA26ZkPVzikjz1OKzuEvT0O9ZmoIy7IqItHwHDN0uRwH6ywCMunB41s99wC0TePKVd7N+XpGWriVmcdcY9CbQqVOnJjv2yJEjGTRoEAMGDCCRSDBo0CAGDRrE6NGj2WWXXZrsvCIiIiIiItK0WnwX98Ye55TrMUSPPhq6co8aNYqrr76ap556aum20aNH56paORFFEZdcckmD5S6++GKiKGr6ColkQPetiIiIiKxMiw/QG3uc06qMIXJ3zjvvPJ555hnMjAsvvJDDDz98petHjRrFRRddRI8ePfjss88YMmQIN954IwUFmXV06NSpE3PnzmXUqFFcfPHF9OrVi7Fjx3LIIYew5ZZbcu2117JgwQIee+wxNtxwQ3744QdOPfVUJk2aBMA111zDrrvuulq/l1yIomi5AEbdo6U50H0rzZEeLImIiGRHiw/Qc+mRRx5h7NixjBs3junTp7PDDjswZMgQRo8eXed6gLfeeotPPvmEDTbYgBEjRvDII49w2GGHrfK5x40bx6effkr37t3p378/J510Em+99RbXXnst1113Hddccw1nnXUWZ599NrvtthuTJk1in3324dNPP23sX4OIiDRzerAkIiLNUpS4A9gfmEaU3KKO7ecCR8dLRcCmwFpEyZlEiUpgDlANVBElt89GlRWgN6HXX3+dI488ksLCQnr16sXQoUN5++23V7q+S5cuDB48mP79+wNw5JFH8vrrr69WgL7DDjuw7rrrArDhhhuy9957A7Dlllvy8sshScqLL77IJ598snSf2bNnM2fOHDp37rymly4iIiIiIpJrdwHXA3fXuTVKXgVcFd4nDgDO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+tO11t2c9v564PqM921iakEXERERERERyQMK0EVERERERETygAJ0ERERERERkTygAF1EREREREQkDyhAFxEREREREckDWcviXlJWMQK4FigEbq8sLy2vtf1o4Hfx4lzgtMry0nHZqp+IiIiIiIhILmWlBb2krKIQuAHYF9gMOLKkrGKzWsW+AoZWlpduBVwG3JqNuomIiIiIiIjkg2y1oA8GJlSWl04EKCmruA84CPgkVaCyvHR0WvkxQJ8s1U1ERFqAQ486hklTvsv6ecePC529dhj6k6yfe37l18CArJ9XGo/uWxERSZetAL038E3a8mRgx3rKnwg8U9cGMzsZOBmguLiY6dOnN1YdpZFUVVWzePHiXFcjq6qqqlvUvbh+7/XoXrQo19XIqjbFxbpvm70Chv3i4qyf9bs//gogJ+d++oKDdd82e7pvW4OWd9/mxpIlSwBy8rvU91vJlmwF6FbHOq+rYElZxXBCgL5bXdvd/Vbi7u8dO3b0nj17NlYdpZEUFRXSpk2bXFcjq4qKCmlJ9+KkKVPpWtU219XIqsVLlui+beZydd9WeRgtNjMH59Z92/zpvm0dWtp9myvFxcUAOfld6vutZEu2AvTJQN+05T7A1NqFSsoqtgJuB/atLC+dkaW6iYiIiIiIiORctgL0t4GBJWUV/YApwBHAUekFSsoq1gceAY6pLC/9PEv1EhEREREREckLWQnQK8tLq0rKKs4AniNMs3ZHZXnpxyVlFafG228GLgJ6ADeWlFUAVFWWl26fjfqJiIiIiEhmlNxQpOlkbR70yvLSp4Gna627Oe39ScBJ2aqPiIiIiIisuklTvmOrE67I+nknl58KkJNzv3r+Xlk/p7ROWZkHXURERERERETqpwBdREREREREJA8oQBcRERERERHJAwrQRURERERERPKAAnQRERERERGRPKAAXURERERERCQPKEAXERERERERyQMK0EVERERERETyQFGuKyAiIiIiIiLSJKLECOBaoBC4nShZXmv70cDv4qW5wGlEyXHxtkpgDlANVBElt2/q6qoFXURERERERFqeKFEI3ADsC2wGHEmU2KxWqa+AoUTJrYDLgFtrbR9OlByUjeAc1IIuIiIiIiIiLdNgYAJRciIAUeI+4CDgk6UlouTotPJjgD5ZrN8K1IIuIiIiIiIiLVFv4Ju05cnxupU5EXgmbdmB54kS7xIlTm6C+q1AAbqIiIiIiIg0R0Vm9k7aT+0g2urYx+s8UpQYTgjQf5e2dlei5LaELvKnEyWGNEal66Mu7iIiIiIiItIcVbl7fWPDJwN905b7AFNXKBUltgJuB/YlSs5Ytj45NX6dRpR4lNBl/tU1rnU9FKCLiIiIiIhIS/Q2MJAo0Q+YAhwBHLVciSixPvAIcAxR8vO09R2BAqLknPj93sClTV1hdXEXERERERGRlidKVgFnAM8BnwIPECU/JkqcSpQ4NS51EdADuJEoMZYo8U68vhfwOlFiHPAWUEGUfLapq6wWdBEREREREWmZouTTwNO11t2c9v4k4KQ69psIbN20lVuRAnQREZFV8N5jtzL28dtXWH/HCYOXWx500Else3BWEr6KiIhIC6EAXUREZBVse/DJCryl2dGDJRGR5kEBuoiIiEgLpwdLIiLNgwJ0ERERERHJO+r5Ia2RAnQREREREck76vkhrZGmWRMRERERERHJAwrQRURERERERPKAAnQRERERERGRPKAAXURERERERCQPKEAXERERERERyQMK0EVERERERETygAJ0ERERERERkTygAF1EREREREQkDyhAFxEREREREckDCtBFRERERERE8oACdBEREREREZE8oABdREREREREJA8U5boCUr8H3/mGe9+ahJlxyYGbs0XvxNJtC5dU87uHP2DqrAWs17U9fz50K9oVF/LNzPmc99AHLK6uYY9N1ub04QMAGPXZNK797xcA/HqvjRi60VoA3PDyBF4aP402hQVcedhW9O3eIfsXKiIiIiIi0sqpBT2PJecv4a7Rldx38s5cc/ggoic+Xm77Q+9OZsO1OvHgqbvQv2cnHnp3MgB/fnY8Z/9kIx4+bRdGfzmdCdPmUl3jlD8znrtOGMxdJwzmT09/SnWNM2HaXEZ/OZ2HT9uFX+81kD8/Oz4XlyoiIiIiItLqKUDPY+9/8yM7lHSnTVEBfbt3YN7iahZVVS/dPmbiDPbYZG0A9tx0bd76aiYAn3w7m8H9ugMwfOOw/qvp8+jTrQOJ9sUk2hfTp1sHvp4xjzETZzB843CMHfv34NNvZ2f5KkVERERERAQUoOe15IIlJNoXL13u3K6I5PwldW5PtC/mx/mLAXBfdowu8frkgsXLHatL+yJ+nL9khXPUpO0rIiIiIiIi2aMAPY8l2hcz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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
experimentlpips_meanlpips_stdtime_meantime_std
0qwen_base0.0000000.0000001.7520800.038048
1qwen_sageattn_qk_int8_pv_fp16_triton0.8537000.1128911.7120810.072586
2qwen_sageattn_qk_int8_pv_fp16_cuda0.2032730.0975121.7065080.074232
3qwen_sageattn_qk_int8_pv_fp8_cuda0.2016160.0985401.8168440.078809
4qwen_sageattn_qk_int8_pv_fp8_cuda_sm900.1830410.0906411.5502400.072654
\n", "
" ], "text/plain": [ " experiment lpips_mean lpips_std time_mean \\\n", "0 qwen_base 0.000000 0.000000 1.752080 \n", "1 qwen_sageattn_qk_int8_pv_fp16_triton 0.853700 0.112891 1.712081 \n", "2 qwen_sageattn_qk_int8_pv_fp16_cuda 0.203273 0.097512 1.706508 \n", "3 qwen_sageattn_qk_int8_pv_fp8_cuda 0.201616 0.098540 1.816844 \n", "4 qwen_sageattn_qk_int8_pv_fp8_cuda_sm90 0.183041 0.090641 1.550240 \n", "\n", " time_std \n", "0 0.038048 \n", "1 0.072586 \n", "2 0.074232 \n", "3 0.078809 \n", "4 0.072654 " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_all = compare_sets_with_timing(\n", " ExperimentSet.create(\n", " \"qwen_base\",\n", " \"qwen_sageattn_qk_int8_pv_fp16_triton\",\n", " \"qwen_sageattn_qk_int8_pv_fp16_cuda\",\n", " \"qwen_sageattn_qk_int8_pv_fp8_cuda\",\n", " \"qwen_sageattn_qk_int8_pv_fp8_cuda_sm90\",\n", " ),\n", " profile_target=\"loop\",\n", " sort_by=None\n", ")\n", "\n", "df_all\n" ] }, { "cell_type": "code", "execution_count": null, "id": "477d7613", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "2e99efc4", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "06c65a7a", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "31dea8be", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "4efef8a4", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "15b6d974", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 5 }