Open Computing Language Open CL Domagoj Stankovi Voditelj

  • Slides: 14
Download presentation
Open Computing Language (Open. CL) Domagoj Stanković Voditelj: Prof. dr. sc. Domagoj Jakobović

Open Computing Language (Open. CL) Domagoj Stanković Voditelj: Prof. dr. sc. Domagoj Jakobović

Prošlost �Ubrzanje izvođenja => brži procesor � 2004. Intelov procesor 4 GHz – gornja

Prošlost �Ubrzanje 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

Open. CL �Okvir za pisanje programa koji se izvršavaju paralelno na heterogenim platformama -

Open. CL �Okvir 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

Open. CL �Prenosivost �Khronos Group – standardizacija 4/11

Open. CL �Prenosivost �Khronos Group – standardizacija 4/11

Host & Device 5/11

Host & Device 5/11

Osnovni tok Open. CL programa 6/11

Osnovni tok Open. CL programa 6/11

Open. CL program __kernel void vector_add(__global int *A, __global int *B, __global int *C)

Open. CL 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

Usporedba brzina izvođenja Paralelno brže od slijednog • Množenje matrica Slijedno brže od paralelnog • Zbrajanje vektora 8/11

Množenje matrica Brzina izvođenja (paralelno / slijedno) 100 93, 8 90 80, 28 80

Množenje matrica Brzina izvođenja (paralelno / slijedno) 100 93, 8 90 80, 28 80 70, 05 70 62, 3 60 54, 41 50 39, 41 40 29, 27 30 20 10 12, 9 0, 29 0, 48 0, 83 1, 26 2, 34 3, 44 256 320 384 448 512 640 0 768 896 1024 1280 1536 1792 2048 2560 Broj ulaznih podataka 9/11

Brzina izvođenja (slijedno / paralelno) Zbrajanje vektora 8 7 6, 7 7, 07 5,

Brzina izvođenja (slijedno / paralelno) Zbrajanje vektora 8 7 6, 7 7, 07 5, 43 6 4, 69 5 4, 1 4 3, 64 2, 41 3 2 2, 08 1 0 8000000 18000000 28000000 38000000 48000000 58000000 68000000 78000000 88000000 98000000 Broj ulaznih podataka 10/11

Hvala na pažnji! 11/11

Hvala na pažnji! 11/11

Model memorije �Globalna memorija �Konstantna memorija �Lokalna memorija �Privatna memorija 12/11

Model memorije �Globalna memorija �Konstantna memorija �Lokalna memorija �Privatna memorija 12/11

Modeli paralelnih programa �Programski model paralelnih podataka (data parallel) �Programski model paralelnih zadataka (task

Modeli paralelnih programa �Programski model paralelnih podataka (data parallel) �Programski model paralelnih zadataka (task parallel) 13/11

Brzine prijenosa 14/11

Brzine prijenosa 14/11