Post on 23-Feb-2016
description
transcript
Open Computing Language
(OpenCL)
Domagoj Stanković
Voditelj: Prof. dr. sc. Domagoj Jakobović
ProšlostUbrzanje izvođenja => brži procesor
2004. Intelov procesor 4 GHz – gornja
granica
Višejezgreni procesori – paralelni programi
Različite platforme – različiti programi
2/11
OpenCLOkvir za pisanje programa koji se izvršavaju
paralelno na heterogenim platformama - CPU, GPU, DSP
CPU (central processing unit) – procesor opće namjene, mali broj jezgri
GPU (graphics processing unit) – procesor za grafičko računanje, veliki broj jezgri
DSP (digital signal processor) – procesor za obradu digitalnog signala 3/11
OpenCLPrenosivostKhronos Group – standardizacija
4/11
Host & Device
5/11
Osnovni tok OpenCL programa
6/11
OpenCL program
__kernel void vector_add(__global int *A, __global int *B, __global int *C) { // Nađi indeks trenutnog elementa int i = get_global_id(0); // Obavi operaciju C[i] = A[i] + B[i];
}
7/11
Usporedba brzina izvođenja
Paralelno brže od slijednog
• Množenje matrica
Slijedno brže od paralelnog• Zbrajanje vektora
8/11
Množenje matrica
256 320 384 448 512 640 768 896 1024 1280 1536 1792 2048 25600
10
20
30
40
50
60
70
80
90
100
0.29 0.48 0.83 1.26 2.34 3.44
12.9
29.27
39.41
54.41
62.3
70.05
80.28
93.8
Broj ulaznih podataka
Brz
ina
izvo
đenj
a (p
aral
elno
/ sl
ijedn
o)
9/11
Zbrajanje vektora
8000000 28000000 48000000 68000000 880000000
1
2
3
4
5
6
7
8
2.08
6.77.07
5.43
4.694.1
3.64
2.41
Broj ulaznih podataka
Brz
ina
izvo
đenj
a (s
lijed
no /
para
leln
o)
10/11
Hvala na pažnji!
11/11
Model memorijeGlobalna memorija
Konstantna
memorija
Lokalna memorija
Privatna memorija
12/11
Modeli paralelnih programa
Programski model paralelnih podataka (data
parallel)
Programski model paralelnih zadataka (task
parallel)
13/11
Brzine prijenosa
14/11