Newer
Older
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
376
377
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"GeForce GTX 1070 Ti\""
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"using CUDAdrv; CUDAdrv.name(CuDevice(0))"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"┌ Info: Precompiling ImageIO [82e4d734-157c-48bb-816b-45c225c6df19]\n",
"└ @ Base loading.jl:1260\n",
"┌ Info: Precompiling PNGFiles [f57f5aa1-a3ce-4bc8-8ab9-96f992907883]\n",
"└ @ Base loading.jl:1260\n",
"┌ Info: Precompiling ImageMagick [6218d12a-5da1-5696-b52f-db25d2ecc6d1]\n",
"└ @ Base loading.jl:1260\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"4051×8102 Array{RGB{Float64},2} with eltype RGB{Float64}:\n",
" RGB{Float64}(0.901428,0.971759,0.986948) … RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) … RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) … RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" ⋮ ⋱ \n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) … RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) … RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) RGB{Float64}(0.901428,0.971759,0.986948)\n",
" RGB{Float64}(0.901428,0.971759,0.986948) … RGB{Float64}(0.901428,0.971759,0.986948)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"using CuArrays, FileIO, Colors, GPUArrays, BenchmarkTools, ImageShow\n",
"using CuArrays: CuArray\n",
"\"\"\"\n",
"The function calculating the Julia set\n",
"\"\"\"\n",
"function juliaset(z0, maxiter)\n",
" c = ComplexF32(-0.5, 0.75)\n",
" z = z0\n",
" for i in 1:maxiter\n",
" abs2(z) > 4f0 && return (i - 1) % UInt8\n",
" z = z * z + c\n",
" end\n",
" return maxiter % UInt8 # % is used to convert without overflow check\n",
"end\n",
"range = 100:50:2^12\n",
"cutimes, jltimes = Float64[], Float64[]\n",
"function run_bench(in, out)\n",
" # use dot syntax to apply `juliaset` to each elemt of q_converted \n",
" # and write the output to result\n",
" out .= juliaset.(in, 16)\n",
" # all calls to the GPU are scheduled asynchronous, \n",
" # so we need to synchronize\n",
" GPUArrays.synchronize(out)\n",
"end\n",
"# store a reference to the last results for plotting\n",
"last_jl, last_cu = nothing, nothing\n",
"for N in range\n",
" w, h = N, N\n",
" q = [ComplexF32(r, i) for i=1:-(2.0/w):-1, r=-1.5:(3.0/h):1.5]\n",
" for (times, Typ) in ((cutimes, CuArray), (jltimes, Array))\n",
" # convert to Array or CuArray - moving the calculation to CPU/GPU\n",
" q_converted = Typ(q)\n",
" result = Typ(zeros(UInt8, size(q)))\n",
" for i in 1:10 # 5 samples per size\n",
" # benchmarking macro, all variables need to be prefixed with $\n",
" t = Base.@elapsed begin\n",
"\t\t\t\trun_bench(q_converted, result)\n",
" end\n",
" global last_jl, last_cu # we're in local scope\n",
" if result isa CuArray\n",
" last_cu = result\n",
" else\n",
" \tlast_jl = result\n",
" end\n",
" push!(times, t)\n",
" end\n",
" end\n",
"end\n",
"\n",
"cu_jl = hcat(Array(last_cu), last_jl)\n",
"cmap = colormap(\"Blues\", 16 + 1)\n",
"color_lookup(val, cmap) = cmap[val + 1]\n",
"color_lookup.(cu_jl, (cmap,))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n",
"\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m PNGFiles ─ v0.2.0\n",
"\u001b[32m\u001b[1m Installed\u001b[22m\u001b[39m ImageIO ── v0.2.0\n",
"\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `C:\\Users\\amira\\.julia\\environments\\v1.4\\Project.toml`\n",
" \u001b[90m [82e4d734]\u001b[39m\u001b[92m + ImageIO v0.2.0\u001b[39m\n",
"\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `C:\\Users\\amira\\.julia\\environments\\v1.4\\Manifest.toml`\n",
" \u001b[90m [82e4d734]\u001b[39m\u001b[92m + ImageIO v0.2.0\u001b[39m\n",
" \u001b[90m [f57f5aa1]\u001b[39m\u001b[92m + PNGFiles v0.2.0\u001b[39m\n",
"\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n",
"\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `C:\\Users\\amira\\.julia\\environments\\v1.4\\Project.toml`\n",
" \u001b[90m [6218d12a]\u001b[39m\u001b[92m + ImageMagick v0.7.5\u001b[39m\n",
"\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `C:\\Users\\amira\\.julia\\environments\\v1.4\\Manifest.toml`\n",
"\u001b[90m [no changes]\u001b[39m\n"
]
}
],
"source": [
"import Pkg; Pkg.add(\"ImageIO\")\n",
"import Pkg; Pkg.add(\"ImageMagick\")"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"┌ Info: Precompiling CUDA [052768ef-5323-5732-b1bb-66c8b64840ba]\n",
"└ @ Base loading.jl:1260\n"
]
}
],
"source": [
"using CUDA"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[32m\u001b[1mDownloading\u001b[22m\u001b[39m artifact: CUDNN+CUDA10.2\n",
"\u001b[?25l\u001b[1A\u001b[2K\u001b[?25h"
]
},
{
"data": {
"text/plain": [
"100-element CuArray{Float32,1,Nothing}:\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" ⋮\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0\n",
" 1.0"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"N=100\n",
"x_d = CUDA.fill(1.0f0, N)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"100-element Array{Float32,1}:\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" ⋮\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_d = fill(2.0f0, N)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"100-element CuArray{Float32,1,Nothing}:\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" ⋮\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0\n",
" 2.0"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_d=CuArray(y_d)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1×100 LinearAlgebra.Transpose{Float64,CuArray{Float64,1,Nothing}}:\n",
" 0.005 0.005 0.005 0.005 0.005 … 0.005 0.005 0.005 0.005 0.005"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"1.0/y_d"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"@webio": {
"lastCommId": null,
"lastKernelId": null
},
"kernelspec": {
"display_name": "Julia 1.4.2",
"language": "julia",
"name": "julia-1.4"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.4.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}