Skip to content

Instantly share code, notes, and snippets.

@kevinmartinjos
Created April 20, 2025 20:18
Show Gist options
  • Save kevinmartinjos/7f398dc3e6167f9ca63a6c85d2b566a3 to your computer and use it in GitHub Desktop.
Save kevinmartinjos/7f398dc3e6167f9ca63a6c85d2b566a3 to your computer and use it in GitHub Desktop.
Matmul time: MLX vs PyTorch
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "89aabe09-6971-46b3-88ec-1477153612c6",
"metadata": {},
"outputs": [],
"source": [
"import mlx.core as mx\n",
"import numpy as np\n",
"import timeit\n",
"import torch\n",
"torch.device(\"mps\")\n",
"torch.set_default_device(\"mps\")"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "3112ed41-de8b-4895-a354-1489cbf8a7d8",
"metadata": {},
"outputs": [],
"source": [
"def mlx_init(num_rows: int, num_cols: int):\n",
" a = mx.random.normal((num_rows, num_cols), dtype=mx.float32)\n",
" b = mx.random.normal((num_rows, num_cols), dtype=mx.float32)\n",
" mx.eval(a)\n",
" mx.eval(b)\n",
" return a, b\n",
"\n",
"def torch_init(num_rows: int, num_cols: int):\n",
" a = torch.rand((num_rows, num_cols), device=\"mps\", dtype=torch.float32)\n",
" b = torch.rand((num_rows, num_cols), device=\"mps\", dtype=torch.float32)\n",
"\n",
" return a, b\n",
"\n",
"def np_init(num_rows: int, num_cols: int):\n",
" a = np.random.random((num_rows, num_cols))\n",
" b = np.random.random((num_rows, num_cols))\n",
" return a, b\n",
"\n",
"\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 67,
"id": "729e336e-3fd5-4a23-92cd-cba95794aab7",
"metadata": {},
"outputs": [],
"source": [
"from typing import List, Tuple\n",
"from functools import partial\n",
"\n",
"import timeit \n",
"\n",
"def numpy_matmul(a, b):\n",
" return np.matmul(a, b)\n",
"\n",
"def mlx_matmul(a, b):\n",
" return mx.matmul(a, b)\n",
"\n",
"def torch_matmul(a, b):\n",
" return torch.matmul(a, b)\n",
"\n",
"\n",
"\n",
"def run_tests(matrix_sizes: List[Tuple[int, int]], func_init, func_matmul, compile=False):\n",
" init_times = {}\n",
" matmul_times = {}\n",
" \n",
" for num_rows, num_cols in matrix_sizes:\n",
" a, b = func_init(num_rows, num_cols)\n",
" if compile:\n",
" compiled_init_partial = partial(mx.compile(func_init), num_rows, num_cols)\n",
" compiled_matmul_partial = partial(mx.compile(func_matmul), a, b)\n",
" def func_init_partial():\n",
" return mx.eval(compiled_init_partial())\n",
" def func_matmul_partial():\n",
" return mx.eval(compiled_matmul_partial())\n",
" else:\n",
" init_partial = partial(func_init, num_rows, num_cols)\n",
" matmul_partial = partial(func_matmul, a, b)\n",
" \n",
" def func_init_partial():\n",
" return mx.eval(init_partial())\n",
" \n",
" def func_matmul_partial():\n",
" return mx.eval(matmul_partial())\n",
" \n",
" init_times[(num_rows, num_cols)] = timeit.timeit(func_init_partial, number=100)\n",
" matmul_times[(num_rows, num_cols)] = timeit.timeit(func_matmul_partial, number=100)\n",
" \n",
" \n",
"\n",
" return init_times, matmul_times\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "9cfa9ad9-3358-4bb1-b139-5082319fcccc",
"metadata": {},
"outputs": [],
"source": [
"test_sizes = [(2, 2), (8, 8), (32, 32), (256, 256), (1024, 1024), (2048, 2048), (4096, 4096), (6144, 6144), (8192, 8192)]"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "abb3f9af-22ed-40fe-8ae1-0e0ce1cd0732",
"metadata": {},
"outputs": [],
"source": [
"torch_results = run_tests(test_sizes, torch_init, torch_matmul)"
]
},
{
"cell_type": "code",
"execution_count": 68,
"id": "caba0505-2c89-4fc4-b70e-7fbe661ee94e",
"metadata": {},
"outputs": [],
"source": [
"mlx_results = run_tests(test_sizes, mlx_init, mlx_matmul)"
]
},
{
"cell_type": "code",
"execution_count": 69,
"id": "e845bee0-20f1-4731-b0f8-05cb864fce62",
"metadata": {},
"outputs": [],
"source": [
"mlx_compiled_results = run_tests(test_sizes, mlx_init, mlx_matmul, compile=True)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "20e93f1f-0c1e-4886-8a8c-38e6b27bbc07",
"metadata": {},
"outputs": [],
"source": [
"np_results = run_tests(test_sizes, np_init, numpy_matmul)"
]
},
{
"cell_type": "code",
"execution_count": 76,
"id": "7938cd27-4e24-4ee3-85ad-5dfaecb81b72",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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vn1dlWq7JSYmqmnTpnr44YeVkZFRYMDre15+t2XLlhXZ6wAAAABQck2ct07Dfl2mu0fP0T9rtykaEGQXY6eeeqrWrFmjhQsX6rbbbtODDz6oIUOG7PM5F154oXuO73bUUUfpyiuvzDGvfv36AZchLS0tCK8EAAAAQEmzeUeaC67NFcc2Uos6FRUNCLKLsVKlSql27dpq2LChrr32Wp188sn65JNPVLFiRX366ac5lh07dqzKlSvnMt32HN/NsuDWk7fvvgXN5513nsqXL+/Wc8EFF2jdunXZ67FAvn379nrrrbfUqFEjlS5d2s23odCuvvpq1apVy81r3bq1vvrqqxxlmDBhglq0aOHW7btAAAAAAKDk8Xg8um/s39q4PVWH1Cyv27odqmhRosfJzutA70rPDMu2yyTEHXCP2ja+dGxsrC666CINGzZM559/fvZjvvsVKlTI9/lZWVk6++yzXRA8efJkF5APHDjQZb8nTZqUvdyiRYv02WefafTo0W4Ma3veaaedpm3btumDDz5QkyZNNG/evBzjW+/cuVNPP/203n//fVfG3r176/bbb9eIESMO6DUDAAAAKH6+mLVaX89Zo/jYGD17QXuVTtgTOxR3BNl+LMBuef+EsGx73sPdVTYxfr8vDnz//fcuU3zDDTeoV69eOvroo12muE6dOlq/fr2++eYbTZw4cZ/rsXXMmTNHS5cuza4y/t5776lVq1b6448/dMQRR7h5lu22+TVq1HD3v/32W02bNk3z589Xs2bN3LzGjRvnWLeNd/3aa6+5ANxcf/31rg05AAAAgJJlXXKK7v98rpu+/sSmalOvkqIJ1cWLMauObVlnq55tmWTLOFt17k6dOrnA+N1333XLWXbZqpR36dJln+uzINmCa/822S1btnQ9g9tjPrYuX4BtZs6cqXr16mUH2HmxKum+ANv4gn8AAAAAJYfH49Gdn85W0q50tTmokgZ2bapoQyY7V5VtyyiHa9uF1bVrV7366quuXXXdunUVH7/ncF5xxRV6+eWXdffdd7uq4v369Tvg6ug+1rY7R9nLlCnwOQkJCTnuW1mipYt+AAAAAIH5cNpKTf53gxLjY/XsBe2UEBd9eV+C7FyB3/5W2Q4HC3Zt6K68WJvnO++8Uy+++KJrH92nT58C12edkq1cudLdfNlse651amYZ7fy0bdtW//33n/79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4mJj9PKlh+mYpkU/XDCQl1iFwC233KL4+HitWLFCZcvu6XDAAu/x48eHYpMAAAAAosWC8dKrR3sD7Pgy0hnPSRd+4AJsM2TCAr33+3JZJdlnL2inU1rWCneJgdBmsr/99ltNmDBB9erVyzH/kEMO0fLly0OxSQAAAADFXfou6bv7pWlveO/XaiOd/7ZU49DsRV6dtFivTFrsph89p7XObn9QuEoLFF2QvWPHjhwZbJ/NmzerVKlSodgkAAAAgOJs3TzpswHS+nne+0cOlE5+QIrfEz+8//syPTn+Hzc96LTmurRzw3CVFija6uLHHXec3nvvvez71i47KytLTz31lLp27Rrwel599VW1bdtWFStWdLejjjpK48aNC0WRAQAAAISDxyNNfUN64wRvgF2upnTpZ9Kpj+cIsMf89Z/u+3yum76+a1NdfXyTMBYaKOJMtgXTJ510kqZPn660tDTdeeedmjt3rstk//rrrwGvx6qbP/HEE66auXVu8O677+rss8/WX3/9pVatWoWi6AAAAACKyvYN0ucDpYUTvPcP6Sad/YpUvkaOxSbMXavbR812032PPli3dWsWjtICAYnxWPQaAklJSRo6dKhmzZql7du367DDDtPAgQNVp06dA1pv1apVNWTIENdTeSCSk5NVqVIlVx7LhgMAAACIAIsmSmOulXasl+JKSd0ekTpdZdVgcyz288INGjB8utIys3T+4fX0VM+2io1lWGAUvUBjy5CNk20b/9///he09WVmZmrUqFGuvbdVGwcAAABQDGWkSt8/LP0+1Hu/RnOp59tS7dZ7LTpj+WZd9d4MF2Cf1rq2njivDQE2Il7IguyUlBTNnj1b69evd+2x/Z111lkBr2fOnDkuqLb1lS9fXmPGjFHLli3zXT41NdXd/K82AAAAAIgAGxZ4OzdbO8d7/4grvRnshDJ7LTp3dZL6DvtDu9Iz1aVZDT1/UXvFx4WkSykg8oNsGwv78ssv18aNG/d6zDpBs6x0oA499FDNnDnTpeQ//fRT9enTR5MnT8430B48eLAeeuihAyo/AAAAgCCyFqozhknj75Eydkllq0lnvywdelqeiy9av12Xvz1N21IydMTBVfR678NVKj6uyIsNREybbOuorFu3brr//vtVq1ZwB4Y/+eST1aRJE73++usBZ7Lr169Pm2wAAAAgHHZulr64Qfrn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2rUBrQP7r0ePHp7+/fvnmHfeeed5Lr30Ujc9f/58T5kyZTwjRozIfvzjjz/2lC5d2jN37lx3f+DAgZ4TTzwxxzpuvfVWzzHHHFMkryHaVKlSxfPWW2/l+dgnn3ziSUxM9KSnp7v7Dz30kKdOnTqejRs3Zi9z+umne0444QRPZmZmnuuYNWuW+/wsWrQo3zJcd911nq5du3pKkry+V44//njPTTfdlO9zNm/e7D4fEydOzHeZfv36edq0aeNJSUlx91NTUz3t27f3XHbZZfk+56mnnvI0atQo+/7SpUtd2f766698n/Pqq696Gjdu7ElLS/MUR/b6xowZk30/KyvLU7t2bc+QIUOy523dutVTqlQpz4cffhjwvvO58847Pb179/YMGzbMU6lSpez5u3bt8rRs2dJz5ZVXZs+zz0b58uU9b7/99l7r6dOnj+fss8/Oc/2tWrXKMe/CCy/0dO/ePd+y5vdbZsf5oIMO8qxZs2av/RIuuctqx8J+u0eNGpW9jP1e2DK///57jue+8sor7rP0/fffu8e3bNmS/ZgdX3vf+nvxxRfd69+f4+P/PWifPZ8LLrjA/d7569y5s+fqq6/OMe+///5z2/777789DRs29Dz33HPZj23YsMGV3/98JTk52c377rvvPOGwbds2zyGHHOK27/99FcjxGTRokKdjx4451vfFF1+433d7XWbevHme+Ph4zz///JPn9u1zetJJJ3m6devmps2mTZvcPrzvvvsCfh8U9PnZuXOnJy4uzvPVV1/lWOawww7z/O9//8vxHPucR4K77rrLc+yxxwa0bEHf8YF8J+S3fwM5RoH8lgXyPeh/HO69917PAw884GnXrl3A79tIOv8N5PhMmDDBExsb60lKSsqeZ5+9mJiYfX4nPJXrd6qg84TCfvfkt98vvvhiz/nnn7/X9229evWy3xt5se9gO9/cH2Syi5CvqmvVqlWzq2PaFcvLLrvMPWZXSuyqo101rVWrVkDrwP6z6lZWXcyqofiubP/yyy+uSpKxq8F29fq6665z1a3+++8/dwXMruq1bNkyex12tcuyD2bJkiXuCphdIUfg7CrxRx995K6MWvWc/N77Vn3HqmAZu+p88MEHuyv8xjKClrF59913FRu791ebrduy2lZtyaqH58e2U9I+X/l9r1i1U6ue1bp1a5fh37lzZ/ZjllWxK9SW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I444wk3369cv+3XY68tv/9jxvu2221wzA9vuoYce6t4r1vQgd5mvv/5615SgdevWblnLPI8fP16hbJNt5bWmD/baOnbs6N67tg98x2b06NHuvgXv9p7+66+/9lrvP//842pnVK1a1S1n6/niiy9yLJOenu5qAFgTBVvGPif2/vb/jAEAIgNBNgAg6CzwOOqoo1yW12fcuHFKSkpy1W3z8sILL6hDhw56+OGHXbBrmWcLLL/++uvsZd5//30XPB133HFu2m5XX311jvXYcyzItXVceeWVeW7LAjwLjG699dbsoHPOnDkuiLFA0jLxgbBgfs2aNdkBlS9bf9JJJ6lmzZoKli5duujGG2900xY0+167f3XmvDz22GNu/911113u+RaQnXzyya46eGGreFu2/qOPPtKFF17oMr2XXXaZq/5v+9osWbLEBbi2X5999lndcccdbp8ef/zx7vnGymvH11x11VXZr8NeX14skLYLA88995xOPfVUt14Lsm3dduxys34ArrvuOvcee+qpp1ytgp49e7oLPqFkzQbsvXDmmWdq8ODB2rJli5u2ZgO33HKLevfu7d5bixcvdhdf/C/KzJ07V0ceeaTmz5/vmjQ888wz7oKINYewGhE+dtHD1mEXWYYOHeqquTdo0EB//vlnSF8bAGA/eAAACJJhw4ZZetHzxx9/eIYOHeqpUKGCZ+fOne6xXr16ebp27eqmGzZs6OnRo0eO5/qW80lLS/O0bt3ac+KJJ+aYX65cOU+fPn322vYDDzzgtn3xxRfn+5i/NWvWeKpWreo55ZRTPKmpqZ4OHTp4GjRo4ElKSirwdR5//PGeVq1auemOHTt6BgwY4Ka3bNniSUxM9Lz77rueH3/80W1z1KhR2c+zcttrD6R8tpz/67T12DK23rzKYzcf37YPOuggT3Jycvb8Tz75xM1/4YUX9lkmW8bK5HP55Zd7YmNj3XHNLSsry/1PSUnxZGZm5nhs6dKlnlKlSnkefvjh7Hm2Dlu/vVdyy12WsWPHumUfffTRHMudf/75npiYGM+iRYtylNn2vf+8WbNmufkvvfSSJ1D72s++97e9Lh8rr8377bffsudNmDDBzStTpoxn+fLl2fNff/31vdZ90kknedq0aeP2n/8+Pfrooz2HHHJI9rx27drt9ZkBAEQmMtkAgJCwjJ1lTL/66itt27bN/c+v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+3Xq1Al3kQAAAAAgYPElvYq4L8CuVq1auIuD3cqUKeP+W6Btx4aq4wAAAACKixLd8ZmvDbZlsBFZfMeEdvIAAAAAipMSHWT7UEU88nBMAAAAABRHBNkIueHDh7uOzAAAAABgL+vmSekpihZhDbJfffVVtW3bVhUrVnS3o446SuPGjct+PCUlRQMHDnTtpcuXL6+ePXtq3bp14SxyxOjbt6/L9totMTFRTZs21cMPP6yMjIwCA17f8/K7LVu2rMheBwAAAIASLHWb9P650qtHSRsXKRqENciuV6+ennjiCc2YMUPTp0/XiSeeqLPPPltz5851j99yyy368ssvNWrUKE2ePFmrV6/WeeedF84iR5RTTz1Va9as0cKFC3XbbbfpwQcf1JAhQ/b5nAsvvNA9x3ezCxtXXnlljnn169cPuAxpaWlBeCUAAAAASqRJT0jb13qnKwceh0SysAbZZ555pk4//XQdcsghatasmR577DGXsZ4yZYqSkpL09ttv69lnn3XB9+GHH65hw4bpt99+c49DKlWqlBtLumHDhrr22mt18skn65NPPnG1Aj799NMcy44dO1blypVzmW57ju9mWXDrZMx334Jmu5Bhx8HWc8EFF+SoPWCBfPv27fXWW2+pUaNGKl26tJtvvbRfffXVqlWrlpvXunVrffXVVznKMGHCBLVo0cKt23eBAAAAAEAJriY+5VXv9GlDpPhSigbxkTSclmWsd+zY4bKrlt22nqUtcPRp3ry5GjRooN9//11HHnlknutJTU11N5/k5ORCjdG8Kz1T4VAmIe6AO/uyoa9iY2N10UUXuQsS559/fvZjvvsVKlTI9/lZWVmuJoEFwVZzwAJyq65v2e9JkyZlL7do0SJ99tlnGj16tBtey5532mmnadu2bfrggw/UpEkTzZs3L8fQWzb29dNPP63333/flbF37966/fbbNWLEiAN6zQAAAACKIY9H+uZ2yZMptThTOmRP3FfchT3InjNnjguqrf21BXdjxoxRy5YtNXPmTJdlzd1hlmVK167dXZ0gD4MHD9ZDDz20X2WxALvl/RMUDvMe7q6yift3OOziwPfff+8yxTfccIN69eqlo48+2mWK69Sp48ab/uabbzRx4sR9rsfWYcdj6dKl2VXG33vvPbVq1Up//PGHjjjiCDfPst02v0aNGu7+t99+q2nTpmn+/Pmu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L7xQGzZs0L333qu1a9eqU6dOGjFixAGdoQEAAAAA4LWIf072oeI52QAAAACAwxVbRnSbbAAAAAAAoglBNgAAAAAAYUKQDQAAAABAmBBkAwAAAAAQJgTZAAAAAACECUE2AAAAAABhQpANAAAAAECYlFOMCzwG3J5pBgAAAABASQRiykCMWWaD7B07drh/09LSvC4KAAAAACAGYszU1NRCP4/zFRWGR7ns7GytXr1aKSkpiouLUyTfFbEbAStWrFCVKlW8Lg7yYf1ENtZP5GMdRTbWT+RjHUU21k/kYx1Ftu1Rsn4sdLYAu379+oqPjy+7Ndn24xs2bKhoYRtVJG9YZR3rJ7KxfiIf6yiysX4iH+sosrF+Ih/rKLJFw/o5WA12AB2fAQAAAAAQJgTZAAAAAACECUF2hEhKStJ9993n/kXkYf1ENtZP5GMdRTbWT+RjHUU21k/kYx1FtqQYWz8x3/EZAAAAAACHCzXZAAAAAACECUE2AAAAAABhQpANAAAAAECYEGSXomHDhunoo49WSkqKateurbPPPlvz5s077PNAwbKysnTPPfeoadOmqlChgpo3b65//vOf7iHzxfHss8+qdevWbh5paWm6+eablZ6eXmrljhUvv/yyjjzyyJznIR533HH69ttv3WebN2/W4MGDc5Zro0aNdMMNN2jbtm3F+o6///3vbr3aPGrVqqWzzjpLc+fOzfl8+vTp+stf/uLWm03Ttm1b/etf/1KsC+W40qtXL8XFxeV5XX311QfM6+2333brMTk52c3ruuuuC7kcS5cu1aBBg/Lsg9bpSUZGRp5p8pfDXhMnTswzr61bt7rvrlevnus0pVWrVvrmm28UqX766SedccYZql+/vvs9w4cPz/O5HYfuvfde93ts2fTp00cLFiwo1rILtnDhQre+q1atWqxy2rFs4MCB6tChg8qVK+e2lYKMHTtWRx11lFv2LVq0cNtFSc9l9ttPO+20ApfL4RBKWW252PZWo0YNVa5cWeeee67WrVtX4Pw2bdqkhg0but9j22mwd999Vx07dlTFihXdur7iiivc9KGy5W7HNfvbSpUqqVOnTm6e+X300Udq06aN209tXR5s37D93Mpq57Zg8+fPd99Vs2ZNd8zu0aOHfvjhB3nt0UcfdeW96aabirV+xowZo+7du7v1XLduXd1xxx3KzMw8YFt88skn3fHEtu0GDRro4YcfLlE5D7YdFLX/7Nixw/2+xo0bu/3dyv3bb78d8B1z5szRmWee6Z7ha9uDbcfLly+XF1atWqVLLrnErQMrs213kydPzvn8008/1amnnuo+t2Uybdq0QucVyjHhYMs3FAc7l4V6HAz4+eef3XS2PxZnu42k699Q1s+iRYt0zjnnuOsrOyZccMEFefazpcU8TxUmlGOPXSN26dLF7UOFLff//e9/7jM73tq+9MQTT+T53H7zKaeckvN77Lp05MiRKimC7FL0448/up3ULgZHjRqlffv2uQ12165dh3UeKNhjjz3mAr0XXnjBnZjs/eOPP67nn38+5Hm89957Gjp0qDto2DzeeOMNffjhh7rrrrtKteyxwE6GdpKZMmWKO/GedNJJ7iD6xx9/aPXq1e5lFzezZs1yJ78RI0a4g3Vx2AH3rbfecuvGDpR2ArH9x04wxr7bTqb/93//57737rvv1p133um2iVgW6nHlyiuv1Jo1a3Jetn8Ee/rpp90ys33Alt/o0aPVt2/fkMthNzyys7P16quvur9/5pln9MorrxS4/9i8g8ti6zbATth2YrQT+scff+wCotdee81dEEcqW9YWXL344osFfm7L+rnnnnPLY9KkSe6C2ZZt4AZecZadrV+7mdSzZ89il9P2Fbs4sgsYC/QLsmTJEp1++unq3bu3uxCzi8a//e1veS5OinMus+DOLuq8EkpZ7Wbql19+6YJXm96OVwMGDChwfnbcsov3gi7EL730Uve5rUOb16+//ur2u1D98ssvbt6ffPKJZsyYocsvv9zN86uvvsozja1/+56pU6e6AMFedmzN77PPPnO/227+5PenP/3JBaHff/+9O3ba9mvj1q5dK69YoGn7QP7lW9T6sRus/fv3V79+/dwysfP2F1984Y5lwW688Ua9/vrr7lxk+5xNc8wxx5SorIVtB6HsP/betsX//ve/mjlzptsebX+0QDY44LHgw26mWNBu24MFUhY0Hm5btmzR8ccfr8TERHfzfPbs2XrqqadUrVq1nGlsf7Ly2rVXUUI5JhS2fENR1LkslONggAX4tg+efPLJxd5uI+n6t6j1Y5/bdmjrxY4Jdjyzc7HdPLZzU3HPUwcT6rHHblJeeOGFBc7DtsOLL77Y3US0Y99LL73kyhN8vWc3v+1awm5C2vfYPmm/x44RJWK9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GwAAj1xxxRV666238tQQX3755QdMZ8HmkCFDNHnyZI0ZM0bx8fE655xzlJ2d7T7/9ddf3b+jR4/WmjVr8gTuNv28efM0atQoffXVVwfM2wJdq5X+61//qm3btmnq1Km655579Prrr6tOnToFlrtu3bqaOHGili1bFtLvtKDZyhV42XfYzYITTjjBfW43DPr166dzzz1XM2bM0IcffuiC7uuvvz6k+QMAEEnifD6fz+tCAABQllgt79atW127ZgtALQg2bdq00YoVK/S3v/3N1VoX1qZ548aNLuV75syZat++vaspttpsC147deqU53usFnz58uWutjrAarItsLZXII28W7duatWqlWbNmqXjjz9e//73vwstvwXKAwYMcIG2/c1xxx2n/v3767zzznM3AIJ/4/Dhw/P8raXEW2Bv5f/888/d9PZ7ExIS9Oqrr+ZMZ0H2iSee6G4wJCcnl3hZAwBwuFGTDQCARyzQPP30010wbTXaNlyzZs0DpluwYIFLx27WrJmqVKnigmRjwXNROnTokCfALoh9/u677+qTTz5xQfAzzzxz0Onr1aunCRMmuCD/xhtvVGZmpi677DJXGx2oXT9Y7f2OHTtc2/NAQD59+nS3DKwTtcCrb9++bl5Lliwp8jcCABBJynldAAAAyjILOgNp0S+++GKB05xxxhlq3Lixq/m2ttUWfFoNdqAjs4OpVKlSSOX45Zdf3L+bN292r1D+zspgr2uvvdb1lG5tqn/88Uf17t27wOkfeughjRw50qW3p6Sk5Iy3DtP+/ve/u3bY+ZVWJ3AAAJQWgmwAADxktb8WLFtHYFZ7m9+mTZtcOrkF2BbEBlKpgwVqqrOyskpUBmsTffPNN7vvsPbQVitt7bsDNc2haNeunfu3sM7KrJb8wQcf1LfffqvmzZsf0Anc7NmzXSdqAABEO4JsAAA8ZG2R58yZkzOcX7Vq1VwnYdZG2tK0LUV86NCheaaxnsCtV25rf92wYUPXhtkeoRUKC8wvueQSF+Bbp2sW9FuK+VNPPaXbbrutwL+55pprXI36SSed5L7P2mhbLbWlv1v77Pysnfell16qO+64w/VEvnbt2pybA9WrV3fjjz32WFejb+2zrRbdgm7rrO2FF14I6XcAABApaJMNAIDHrJ21vQpitcn2PO0pU6a41GyrcX7iiSfyTFOuXDk999xzruMwC37POuuskL/bHrtlvYQHOh2zQN4C+n/84x+urXRB+vTp4zo9O//8813HZ9YruAX21pO53RDIz3pF3717twvEbf6Bl3WeZo488kiXZj5//nxXW2+PIrv33nvdbwEAINrQuzgAAAAAAGFCTTYAAAAAAGFCkA0AAAAAQJgQZAMAAAAAECYE2QAAAAAAhAlBNgAAAAAAYUKQDQAAAABAmBBkAwAAAAAQJgTZAAAAAACECUE2AAAAAABhQpANAAAAAECYEGQDAAAAABAmBNkAAAAAACg8/h8QxuWiNsQBJwAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1000x800 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"# Extract init times and matmul times from the results\n",
"torch_init_times, torch_matmul_times = torch_results\n",
"mlx_init_times, mlx_matmul_times = mlx_results\n",
"np_init_times, np_matmul_times = np_results\n",
"\n",
"# Create a figure with two subplots\n",
"fig, axs = plt.subplots(2, figsize=(10, 8))\n",
"\n",
"# Plot init times on the first subplot\n",
"axs[0].plot([f\"{size[0]}x{size[1]}\" for size in test_sizes], [torch_init_times[size] for size in test_sizes], label='PyTorch')\n",
"axs[0].plot([f\"{size[0]}x{size[1]}\" for size in test_sizes], [mlx_init_times[size] for size in test_sizes], label='MLX')\n",
"# axs[0].plot([f\"{size[0]}x{size[1]}\" for size in test_sizes], [np_init_times[size] for size in test_sizes], label='NumPy')\n",
"axs[0].set_title('Matrix Initialization Times')\n",
"axs[0].set_xlabel('Matrix Size')\n",
"axs[0].set_ylabel('Time (seconds)')\n",
"axs[0].legend()\n",
"\n",
"# Plot matmul times on the second subplot\n",
"axs[1].plot([f\"{size[0]}x{size[1]}\" for size in test_sizes], [torch_matmul_times[size] for size in test_sizes], label='PyTorch')\n",
"axs[1].plot([f\"{size[0]}x{size[1]}\" for size in test_sizes], [mlx_matmul_times[size] for size in test_sizes], label='MLX')\n",
"# axs[1].plot([f\"{size[0]}x{size[1]}\" for size in test_sizes], [np_matmul_times[size] for size in test_sizes], label='NumPy')\n",
"axs[1].set_title('Matrix Multiplication Times')\n",
"axs[1].set_xlabel('Matrix Size')\n",
"axs[1].set_ylabel('Time (seconds)')\n",
"axs[1].legend()\n",
"\n",
"# Layout so plots do not overlap\n",
"fig.tight_layout()\n",
"plt.savefig('mlx.png')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7badac89-221c-4cbb-bade-3c9827da712d",
"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",
"version": "3.13.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment