cpu_vs_gpu.ipynb 58.7 KB
Newer Older
chenzk's avatar
v1.0  
chenzk committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 35
    },
    "colab_type": "code",
    "id": "1ddgCM_qEHZa",
    "outputId": "9df5f286-0b1c-40a7-bc07-17a765c861b7"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: kmeans-pytorch in /usr/local/lib/python3.6/dist-packages (0.1)\n"
     ]
    }
   ],
   "source": [
    "!pip install kmeans-pytorch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "R8_IiKZZEU9i"
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from time import time\n",
    "from kmeans_pytorch import kmeans, kmeans_predict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "iyoljrh1FCxJ"
   },
   "outputs": [],
   "source": [
    "# set random seed\n",
    "np.random.seed(123)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "tcnoTA16FHbJ"
   },
   "outputs": [],
   "source": [
    "# dimensions, num clusters\n",
    "dims, num_clusters = 2, 3\n",
    "\n",
    "# data sizes\n",
    "data_sizes = [100000, 1000000, 5000000, 10000000]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000
    },
    "colab_type": "code",
    "id": "Ar-lcW3OFTXI",
    "outputId": "056052bc-899e-45d9-f0f4-243eaac69764"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "data size: 100000\n",
      "running k-means on cuda:0..\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[running kmeans]: 6it [00:00, 19.37it/s, center_shift=0.000058, iteration=6, tol=0.000100]\n",
      "[running kmeans]: 3it [00:00, 25.17it/s, center_shift=0.001187, iteration=4, tol=0.000100]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "gpu time: 9.147990465164185\n",
      "running k-means on cpu..\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[running kmeans]: 7it [00:00, 24.08it/s, center_shift=0.000048, iteration=7, tol=0.000100]\n",
      "[running kmeans]: 0it [00:00, ?it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cpu time: 0.2962355613708496\n",
      "\n",
      "data size: 1000000\n",
      "running k-means on cuda:0..\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[running kmeans]: 7it [00:02,  2.70it/s, center_shift=0.000070, iteration=7, tol=0.000100]\n",
      "[running kmeans]: 0it [00:00, ?it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "gpu time: 2.6448638439178467\n",
      "running k-means on cpu..\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[running kmeans]: 6it [00:02,  2.66it/s, center_shift=0.000054, iteration=6, tol=0.000100]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cpu time: 2.287574052810669\n",
      "\n",
      "data size: 5000000\n",
      "running k-means on cuda:0..\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[running kmeans]: 5it [00:09,  1.82s/it, center_shift=0.000037, iteration=5, tol=0.000100]\n",
      "[running kmeans]: 0it [00:00, ?it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "gpu time: 9.346906185150146\n",
      "running k-means on cpu..\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[running kmeans]: 6it [00:10,  1.79s/it, center_shift=0.000051, iteration=6, tol=0.000100]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cpu time: 10.929628849029541\n",
      "\n",
      "data size: 10000000\n",
      "running k-means on cuda:0..\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "[running kmeans]: 0it [00:00, ?it/s]\u001b[A\n",
      "[running kmeans]: 0it [00:03, ?it/s, center_shift=0.108101, iteration=1, tol=0.000100]\u001b[A\n",
      "[running kmeans]: 1it [00:03,  3.58s/it, center_shift=0.108101, iteration=1, tol=0.000100]\u001b[A\n",
      "[running kmeans]: 1it [00:07,  3.58s/it, center_shift=0.007211, iteration=2, tol=0.000100]\u001b[A\n",
      "[running kmeans]: 2it [00:07,  3.58s/it, center_shift=0.007211, iteration=2, tol=0.000100]\u001b[A\n",
      "[running kmeans]: 2it [00:10,  3.58s/it, center_shift=0.001613, iteration=3, tol=0.000100]\u001b[A\n",
      "[running kmeans]: 3it [00:10,  3.58s/it, center_shift=0.001613, iteration=3, tol=0.000100]\u001b[A\n",
      "[running kmeans]: 3it [00:14,  3.58s/it, center_shift=0.000406, iteration=4, tol=0.000100]\u001b[A\n",
      "[running kmeans]: 4it [00:14,  3.58s/it, center_shift=0.000406, iteration=4, tol=0.000100]\u001b[A\n",
      "[running kmeans]: 4it [00:17,  3.58s/it, center_shift=0.000130, iteration=5, tol=0.000100]\u001b[A\n",
      "[running kmeans]: 5it [00:17,  3.57s/it, center_shift=0.000130, iteration=5, tol=0.000100]\u001b[A\n",
      "[running kmeans]: 5it [00:21,  3.57s/it, center_shift=0.000044, iteration=6, tol=0.000100]\u001b[A\n",
      "[running kmeans]: 6it [00:21,  3.56s/it, center_shift=0.000044, iteration=6, tol=0.000100]\u001b[A"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "gpu time: 21.879725694656372\n",
      "running k-means on cpu..\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      "[running kmeans]: 0it [00:00, ?it/s]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 0it [00:03, ?it/s, center_shift=0.170225, iteration=1, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 1it [00:03,  3.54s/it, center_shift=0.170225, iteration=1, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 1it [00:07,  3.54s/it, center_shift=0.013261, iteration=2, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 2it [00:07,  3.57s/it, center_shift=0.013261, iteration=2, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 2it [00:10,  3.57s/it, center_shift=0.003844, iteration=3, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 3it [00:10,  3.59s/it, center_shift=0.003844, iteration=3, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 3it [00:14,  3.59s/it, center_shift=0.001250, iteration=4, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 4it [00:14,  3.59s/it, center_shift=0.001250, iteration=4, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 4it [00:18,  3.59s/it, center_shift=0.000416, iteration=5, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 5it [00:18,  3.60s/it, center_shift=0.000416, iteration=5, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 5it [00:21,  3.60s/it, center_shift=0.000139, iteration=6, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 6it [00:21,  3.61s/it, center_shift=0.000139, iteration=6, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 6it [00:25,  3.61s/it, center_shift=0.000047, iteration=7, tol=0.000100]\u001b[A\u001b[A\n",
      "\n",
      "[running kmeans]: 7it [00:25,  3.63s/it, center_shift=0.000047, iteration=7, tol=0.000100]\u001b[A\u001b[A"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cpu time: 25.7757887840271\n"
     ]
    }
   ],
   "source": [
    "gpu_times = []\n",
    "cpu_times = []\n",
    "\n",
    "for data_size in data_sizes:\n",
    "    print(f'\\ndata size: {data_size}')\n",
    "\n",
    "    # data\n",
    "    x = np.random.randn(data_size, dims) / 6\n",
    "    x = torch.from_numpy(x)\n",
    "\n",
    "    # gpu\n",
    "    start_gpu = time()\n",
    "    kmeans_gpu = kmeans(X=x, num_clusters=num_clusters, device=torch.device('cuda:0'))\n",
    "    gpu_time = time() - start_gpu\n",
    "    gpu_times.append(gpu_time)\n",
    "    print(f'gpu time: {gpu_time}')\n",
    "    \n",
    "    # cpu\n",
    "    start_cpu = time()\n",
    "    kmeans_cpu = kmeans(X=x, num_clusters=num_clusters, device=torch.device('cpu'))\n",
    "    cpu_time = time() - start_cpu\n",
    "    cpu_times.append(cpu_time)\n",
    "    print(f'cpu time: {cpu_time}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 484
    },
    "colab_type": "code",
    "id": "5V0vxpaUEnFd",
    "outputId": "27b8d6ed-07b3-4c8f-af8b-19d24f542378"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nVUkBWqNRr+dJwc43gGPzuXpB1kDSflP11oJ1CJAkjSAFjPVSjy8GzgIeJaU/X6aOVknaAlimz3XM\nAUZExL016plI/SDrg2tdMCMi+tZoZ3VgDCmtfCtp6+cCA/LaPTOzjwxPFzQzs1JExCWkDXx/Qxqd\nWQS8ThoNOgvYKSKeaaGexcAhpE0m7891LCbtU/VX4NvADhHxWIv9ejr362JSlr55dEyI0bn8taTN\nLa8mBUDvkTa5fIY0NXLniLiwlbZb6NsMYEtgJGmEbSrp/S4BFpKyN44nTRfcqlaAtSJFxMKIOAX4\nFHA+6ecxm/QZLSSNaE0CLgQGA5s6wDKzjyKPZJmZmZmZmZXII1lmZmZmZmYlcpBlZmZmZmZWIgdZ\nZmZmZmZmJXKQZWZmZmZmViIHWWZmZmZmZiVykGVmZmZmZlYiB1lmZmZmZmYlcpBlZmZmZmZWIgdZ\nZmZmZmZmJXKQZWZmZmZmViIHWWZmZmZmZiVykGVmZmZmZlYiB1lmZmZmZmYlcpBlZmZmZmZWIgdZ\nZmZmZmZmJXKQZWZmZmZmViIHWWZmZmZmZiVykGVmZmZmZlYiB1lmZmZmZmYlcpBlZmZmZmZWov8B\nBjDvLG2pwEUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 960x480 with 1 Axes>"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot\n",
    "plt.figure(figsize=(6, 3), dpi=160)\n",
    "plt.plot(data_sizes, gpu_times, marker='o', label='gpu', color='xkcd:vermillion')\n",
    "plt.plot(data_sizes, cpu_times, marker='o', label='cpu', color='xkcd:neon blue')\n",
    "plt.xticks(data_sizes)\n",
    "plt.legend(fontsize=12)\n",
    "plt.grid(alpha=0.2)\n",
    "plt.xlabel('data size', fontsize=14)\n",
    "plt.ylabel('time (s)', fontsize=14)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "BHkQ-zw9EnsN"
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "collapsed_sections": [],
   "name": "cpu_vs_gpu.ipynb",
   "provenance": []
  },
  "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.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}