Files
TomoATT/test/old_tests/solver_performance/plot_SIMD_effect.ipynb
2025-12-17 10:53:43 +08:00

164 lines
115 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# notebook for plotting the effect of SIMD on the solver performance\n",
"\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"# data is the fastest time among more than 10 iteration\n",
"# grid size is 100 x 100 x 100\n",
"\n",
"\n",
"t_local_no_simd=0.955768\n",
"t_local_avx=0.281595\n",
"t_fugaku_no_simd=5.10849\n",
"t_fugaku_avx=2.58907\n",
"t_local_cuda=0.058076\n",
"\n",
"speedup_local = t_local_no_simd / t_local_avx\n",
"speedup_fugaku = t_fugaku_no_simd / t_fugaku_avx\n",
"speedup_cuda = t_local_no_simd / t_local_cuda\n",
"\n",
"# plot\n",
"\n",
"\n",
"fig, ax = plt.subplots()\n",
"ax.set_title('Solver performance: 100x100x100 on single core')\n",
"#ax.set_xlabel('Grid size')\n",
"ax.set_ylabel('Elapsed time 1 iteration (best) [s]')\n",
"ax.set_xticks([0, 1, 2])\n",
"ax.set_xticklabels(['intel core i7', 'Fujitsu A64FX', 'NVIDIA GeForce GTX 1070'])\n",
"ax.set_ylim(0, 10)\n",
"ax.bar(0, t_local_no_simd, color='r', label='local (no SIMD)')\n",
"ax.bar(0, t_local_avx, color='b', label='local (AVX+FMA 256bits)')\n",
"ax.bar(1, t_fugaku_no_simd, color='r', label='Fugaku (no SIMD)')\n",
"ax.bar(1, t_fugaku_avx, color='b', label='Fugaku (ARM SVE+FMA 512bits)')\n",
"ax.bar(2, t_local_no_simd, color='r', label='local (no SIMD)')\n",
"ax.bar(2, t_local_cuda, color='b', label='local (CUDA NVIDIA GeForce GTX 1070)')\n",
"ax.legend()\n",
"\n",
"# add text speed up large font\n",
"ax.text(0, 1.4, 'speed up: {:.2f}x'.format(speedup_local), fontsize=15, ha='center')\n",
"ax.text(1, 5.5, 'speed up: {:.2f}x'.format(speedup_fugaku), fontsize=15, ha='center')\n",
"ax.text(2, 1.4, 'speed up: {:.2f}x'.format(speedup_cuda), fontsize=15, ha='center')\n",
"\n",
"plt.show()\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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3Lt3T6783r170jJlxo0bh9TUVOl169atDxonERERUUkptYmcg4MDrK2tceDAAaksLS0Nx44dg7u7e77r6ejowMjISO5FRERE9Ckq0Wvk0tPTce3aNel9UlIS4uPjYWpqiooVKyI4OBjTp09HtWrV4ODggAkTJsDW1hYdOnQouaCJiIiISokSTeROnjyJr776Sno/YsQIAIC/vz8iIiIwevRoZGRkoH///nj69Cm+/PJL7NmzB7q6uiUVMhEREVGpIRNCiJIO4kNKS0uDsbExUlNTeZqViIggmyIr6RBIzYlJHzZ1UiV3KbXXyBERERFRwZjIEREREakpJnJEREREaoqJHBEREZGaYiJHREREpKaYyBERERGpKSZyRERERGqKiRwRERGRmmIiR0RERKSmmMgRERERqSkmckRERERqiokcERERkZpiIkdERESkppjIEREREakpJnJEREREaoqJHBEREZGaYiJHREREpKaYyBERERGpKSZyRERERGqKiRwRERGRmmIiR0RERKSmmMgRERERqSkmckRERERqiokcERERkZpiIkdERESkprRKOgAiKr1kspKOgNSdECUdAdGnjSNyRERERGqKiRwRERGRmmIiR0RERKSmmMgRERERqSkmckRERERqiokcERERkZpiIkdERESkppjIEREREakpJnJEREREaoqJHBEREZGaYiJHREREpKaYyBERERGpKSZyRERERGqKiRwRERGRmmIiR0RERKSmmMgRERERqSkmckRERERqiokcERERkZpiIkdERESkpkp1Ijd58mTIZDK5l5OTU0mHRURERFQqaJV0AIVxdXXF/v37pfdaWqU+ZCIiIqKPotRnRVpaWrC2ti7pMIiIiIhKnVJ9ahUArl69CltbW1SuXBk9evRAcnJySYdEREREVCqU6hG5hg0bIiIiAtWrV0dKSgqmTJmCpk2b4sKFCzA0NFS6TlZWFrKysqT3aWlpHytcIiIioo+qVCdyPj4+0v/XqlULDRs2RKVKlbBt2zYEBgYqXWfWrFmYMmXKxwqRiIiIqMSU+lOrbzIxMYGjoyOuXbuWb51x48YhNTVVet26desjRkhERET08ahVIpeeno7r16/DxsYm3zo6OjowMjKSexERERF9ikp1Ijdq1ChER0fjxo0bOHLkCL799ltoamrC19e3pEMjIiIiKnGl+hq5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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot speed up for 200 200 200 grid\n",
"\n",
"t_local_no_simd=186.571/10\n",
"t_local_avx=25.903/10\n",
"t_gpu=5.45952/10\n",
"\n",
"speedup_local = 1.0\n",
"speedup_avx = t_local_no_simd / t_local_avx\n",
"speedup_cuda = t_local_no_simd / t_gpu\n",
"\n",
"\n",
"fig, ax = plt.subplots()\n",
"\n",
"ax.set_title('Speed up ratio for forward simulation with 200x200x200 grid')\n",
"\n",
"ax.set_ylabel('Speed up ratio')\n",
"ax.set_xticks([0, 1, 2])\n",
"ax.set_xticklabels(['baseline', 'intel core i7 with SIMD', 'NVIDIA GeForce GTX 1070'])\n",
"\n",
"\n",
"#ax.set_ylim(0, 10)\n",
"ax.bar(0, 1, color='r', label='baseline (intel core i7 no SIMD)') \n",
"ax.bar(1, speedup_avx, color='b', label='intel core i7 + \\nmemory relocation\\n + SIMD (AVX+FMA 256bits)')\n",
"ax.bar(2, speedup_cuda, color='g', label='memory relocation \\n+ gpu (CUDA NVIDIA GeForce GTX 1070)')\n",
"ax.legend()\n",
"\n",
"plt.tight_layout()\n",
"plt.savefig('speedup_200x200x200.png', dpi=300)"
]
},
{
"cell_type": "code",
"execution_count": null,
"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.9.13"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "1472887337ddd1717660a5ad84f7170e87aa3d39bd2f4b7d54c31e0901f516a9"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}