GPGPU programazioa: Txartel grafikoa erabiliz programatu
-
Upload
mikel-iturbe -
Category
Technology
-
view
1.008 -
download
4
description
Transcript of GPGPU programazioa: Txartel grafikoa erabiliz programatu
![Page 1: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/1.jpg)
GPGPU programazioaTxartel grafikoa erabiliz programatu
Mikel Iturbe Urretxa
UniEncounter, 2013ko Martxoak 21
Irudiaren egiletza: CC-BY 2.5 Christian Prade (cprade@Flickr)
![Page 2: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/2.jpg)
Edukiak
Sarrera: GPUak
GPGPU
Plataforma desberdinakOpenMP & OpenACCCUDAOpenCL
Non erabiltzen da?
2
![Page 3: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/3.jpg)
<sarrera>
3
![Page 4: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/4.jpg)
zer da txartel grafikoa?
4
![Page 5: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/5.jpg)
“oinarrizko plakako zirrikituetako batean
konektatzen den barruko osagaia da. Bere
helburu nagusia monitoreari azaldu behar
diren datuak zuzen bidaltzea da.”
Iturria: CC-BY-SA 3.0 Euskarazko Wikipedia. http://eu.wikipedia.org/wiki/Txartel grafiko
5
![Page 6: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/6.jpg)
zer da GPUa?
6
![Page 7: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/7.jpg)
“a specialized electronic circuit designed to
rapidly manipulate and alter memory to
accelerate the building of images in a frame
buffer intended for output to a display”
Iturria: CC-BY-SA 3.0 Ingelesezko Wikipedia. http://en.wikipedia.org/wiki/Graphics processing unit
7
![Page 8: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/8.jpg)
zerekin lotzen ditugu?
8
![Page 9: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/9.jpg)
eboluzio handia
9
![Page 10: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/10.jpg)
Jatorrizkoaren egiletza: GPLv3 Gang Garrison 2
10
![Page 11: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/11.jpg)
Jatorrizkoaren egiletza: GPLv2 Xonotic
11
![Page 12: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/12.jpg)
grafikoak+
fisika
12
![Page 13: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/13.jpg)
paraleloan aritzeko egokiak
13
![Page 14: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/14.jpg)
</sarrera>
14
![Page 15: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/15.jpg)
<gpgpu?>
15
![Page 16: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/16.jpg)
denok ezagutzen dugunadibidea
16
![Page 17: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/17.jpg)
17
![Page 18: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/18.jpg)
Jatorrizkoaren egiletza: CC-BY-ND Pavol Davorsky (˜PAulie-SVK@devianART)
18
![Page 19: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/19.jpg)
Jatorrizkoaren egiletza: CC-BY-SA 3.0 OpenStreetMap & Euskalmapa.com
19
![Page 20: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/20.jpg)
Jatorrizkoaren egiletza: CC-BY-SA 3.0 OpenStreetMap, Euskalmapa.com & Amazon Web Services
20
![Page 21: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/21.jpg)
Jatorrizkoaren egiletza: CC-BY-SA 3.0 Janine Arriaga
21
![Page 22: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/22.jpg)
(3)
22
![Page 23: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/23.jpg)
(1)
23
![Page 24: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/24.jpg)
Jatorrizkoaen egiletza: CC-BY-SA 3.0 Janine Arriaga & Guudmorning!@Flickr
24
![Page 25: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/25.jpg)
(2)
25
![Page 26: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/26.jpg)
Jatorrizkoaren egiletza: CC-BY-SA 3.0 Janine Arriaga, Angelica Castillo & Chris Covarrubias
26
![Page 27: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/27.jpg)
(3)
27
![Page 28: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/28.jpg)
Jatorrizkoaren egiletza: CC-BY-SA 3.0 Nikki Ibanez
28
![Page 29: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/29.jpg)
Jatorrizkoaren egiletza: CC-BY-SA 3.0 Christophe Dang Ngoc Chan & PD Charles B. King
29
![Page 30: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/30.jpg)
(1)
30
![Page 31: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/31.jpg)
Moore-ren legea
31
![Page 32: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/32.jpg)
“bi urterik behin, zirkuitu integratuetako
transistore kopurua bikoiztu egiten da”
32
![Page 33: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/33.jpg)
Jatorrizkoaren egiletza: CC-BY-SA 3.0 Wgsimon@Wikimedia Commons
33
![Page 34: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/34.jpg)
eta erlojuaren maiztasuna?
34
![Page 35: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/35.jpg)
Jatorrizkoaren egiletza: CPU DB. http://cpudb.stanford.edu/visualize/clock frequency
35
![Page 36: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/36.jpg)
36
![Page 37: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/37.jpg)
zergatik?
37
![Page 38: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/38.jpg)
Jatorrizkoaren egiletza: CC-BY-SA 3.0 RRZEicons@Wikimedia Commons & PD Clker.com
38
![Page 39: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/39.jpg)
(2) & (3)
39
![Page 40: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/40.jpg)
40
![Page 41: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/41.jpg)
Jatorrizkoaren egiletza: CC-BY 3.0 NVIDIA CUDA Programming Guide version 3.0
41
![Page 42: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/42.jpg)
bakoitza bere lanerako egokia
42
![Page 43: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/43.jpg)
GPGPU
hau baliatzen duenprogramazio eredua
43
![Page 44: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/44.jpg)
general-purpose computing ongraphics processing units
44
![Page 45: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/45.jpg)
orotariko konputazioa grafikoakprozesatzeko unitateetan
45
![Page 46: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/46.jpg)
46
![Page 47: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/47.jpg)
</gpgpu?>
47
![Page 48: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/48.jpg)
<arkitekturak>
48
![Page 49: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/49.jpg)
(2)
49
![Page 50: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/50.jpg)
(1)
50
![Page 51: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/51.jpg)
begiztetanzentratua
Jatorrizkoaren egiletza: CC-BY 2.5 Val Kerry (art makes me smile@Flickr)
51
![Page 52: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/52.jpg)
<OpenMP & OpenACC>
52
![Page 53: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/53.jpg)
industri-estandarrak
53
![Page 54: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/54.jpg)
54
![Page 55: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/55.jpg)
adibidea
55
![Page 56: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/56.jpg)
1 int main(int argc , char *argv []) {
const int N = 500;
3 int i, a[N];
//a[N] bete
5
for (i = 0; i < N; i++)
7 a[i] = 2 * i;
9 return 0;
}
57
![Page 57: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/57.jpg)
OpenMP
58
![Page 58: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/58.jpg)
int main(int argc , char *argv []) {
2 const int N = 500;
int i, a[N];
4 //a[N] bete
6 #pragma omp parallel for
for (i = 0; i < N; i++)
8 a[i] = 2 * i;
10 return 0;
}
60
![Page 59: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/59.jpg)
OpenACC
61
![Page 60: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/60.jpg)
1 int main(int argc , char *argv []) {
const int N = 500;
3 int i, a[N];
//a[N] bete
5
#pragma acc parallel kernels
7 for (i = 0; i < N; i++)
a[i] = 2 * i;
9
return 0;
11 }
63
![Page 61: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/61.jpg)
zer paralelizatu nahi denadierazten da
64
![Page 62: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/62.jpg)
nola egiten den jakin beharrikgabe
65
![Page 63: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/63.jpg)
migrazioa errazagoa
66
![Page 64: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/64.jpg)
OpenMP oso erabiliaOpenACC ez hainbeste
67
![Page 65: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/65.jpg)
</OpenMP & OpenACC>
68
![Page 66: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/66.jpg)
(2)
69
![Page 67: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/67.jpg)
harietanzentratua
Jatorrizkoaren egiletza: CC-BY 2.5 Val Kerry (art makes me smile@Flickr)
70
![Page 68: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/68.jpg)
<CUDA>
71
![Page 69: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/69.jpg)
sakonago
72
![Page 70: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/70.jpg)
gpgpu produktu helduena
73
![Page 71: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/71.jpg)
NVIDIAk garatua
74
![Page 72: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/72.jpg)
eta propietarioa... :-(
75
![Page 73: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/73.jpg)
<CUDAren egitura>
76
![Page 74: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/74.jpg)
Jatorrizkoaren egiletza: CC-BY 3.0 Tosaka@Wikimedia Commons
77
![Page 75: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/75.jpg)
kernelak
78
![Page 76: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/76.jpg)
paraleloan exekutatuko direnfuntzioak
79
![Page 77: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/77.jpg)
ezin dute baliorik bueltatu
80
![Page 78: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/78.jpg)
global
81
![Page 79: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/79.jpg)
CUDA C
82
![Page 80: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/80.jpg)
Jatorrizkoaren egiletza: PD Clker.com & Seamas O Brogain
83
![Page 81: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/81.jpg)
Jatorrizkoaren egiletza: CC-BY 3.0 Tor proiektua
84
![Page 82: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/82.jpg)
Jatorrizkoaren egiletza: CC-BY-SA 3.0 Ricardas.marozas@Wikimedia Commons
85
![Page 83: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/83.jpg)
</CUDAren egitura>
86
![Page 84: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/84.jpg)
eta kernelak exekutatzeko?
87
![Page 85: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/85.jpg)
(1)zeren gainean egingo du lan?
88
![Page 86: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/86.jpg)
89
![Page 87: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/87.jpg)
cudaMalloc()
cudaFree()
cudaMemcpy()
90
![Page 88: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/88.jpg)
(2)nola exekutatuko da?
91
![Page 89: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/89.jpg)
kernela<<<exek param>>>(f param)
92
![Page 90: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/90.jpg)
hariak
blokeak
93
![Page 91: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/91.jpg)
hariak
Jatorrizkoaren egiletza: CC-BY 3.0 Jorge Barrios (jorgebarrios@Wikimedia Commons)
94
![Page 92: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/92.jpg)
3D array bat(dim3)
95
![Page 93: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/93.jpg)
hardware-ak mugatzen dukopurua
96
![Page 94: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/94.jpg)
threadIdx
(threadIdx.x, threadIdx.y, threadIdx.z)
97
![Page 95: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/95.jpg)
blokeak
98
![Page 96: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/96.jpg)
hari taldeak
Jatorrizkoaren egiletza: CC-BY 2.5 Novita Estiti (verypurpleperson@Flickr)
99
![Page 97: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/97.jpg)
3D array bat(dim3)
100
![Page 98: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/98.jpg)
blockIdx
(blockIdx.x, blockIdx.y, blockIdx.z)
101
![Page 99: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/99.jpg)
Jatorrizkoaren egiletza: CC-BY 2.5 Dennis Brekke (dbrekke@Flickr)
102
![Page 100: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/100.jpg)
Jatorrizkoaren egiletza: CC-BY 3.0 NVIDIA CUDA Programming Guide version 3.0
103
![Page 101: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/101.jpg)
kernela<<<hariak, blokeak>>>(f param)
104
![Page 102: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/102.jpg)
(3)eta harien artekokoordinazioa?
105
![Page 103: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/103.jpg)
memoria
106
![Page 104: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/104.jpg)
Jatorrizkoaren egiletza: CC-BY 3.0 NVIDIA CUDA Programming Guide version 3.0
107
![Page 105: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/105.jpg)
synchthreads()
108
![Page 106: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/106.jpg)
adibidea
109
![Page 107: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/107.jpg)
1 int main(int argc , char *argv []) {
const int N = 500;
3 int i, a[N], b[N], c[N];
//a eta b edukiz bete
5
for (i = 0; i < N; i++)
7 c[i] = a[i]+b[i];
9 return 0;
}
111
![Page 108: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/108.jpg)
int main(int argc , char *argv []) {
2 const int N = 500;
int a[N], b[N], C[N];
4 //a eta b edukiz bete
6 cudaMalloc ((void **) &d_a , N*sizeof(int));
cudaMalloc ((void **) &d_b , N*sizeof(int));
8 cudaMalloc ((void **) &d_c , N*sizeof(int));
10 cudaMemcpy(d_a , a, N*sizeof(int), cudaMemcpyHostToDevice);
cudaMemcpy(d_b , b, N*sizeof(int), cudaMemcpyHostToDevice);
12
dim3 hariak (25, 10, 1);
14 dim3 blokeak (2, 1, 1);
kernel <<<blokeak , hariak >>>(*d_a ,*d_b ,*d_c);
16
cudaMemcpy(c, d_c , N*sizeof(int), cudaMemcpyDeviceToHost);
18
cudaFree(d_a);
20 cudaFree(d_b);
cudaFree(d_c);
22
return 0;
24 }
113
![Page 109: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/109.jpg)
__global__ kernel (int *d_a , int *d_b , int *d_c) {
2 int indizea = (threadIdx.x + 25 * threadIdx.y) * (
blockIdx.x + 1);
d_c[indizea] = d_a[indizea] + d_b[indizea ];
4 }
115
![Page 110: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/110.jpg)
tresnak
116
![Page 111: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/111.jpg)
nvcc
117
![Page 112: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/112.jpg)
CUDA-GDB
118
![Page 113: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/113.jpg)
</CUDA>
119
![Page 114: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/114.jpg)
<OpenCL>
120
![Page 115: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/115.jpg)
GPGPUrako estandar irekia
121
![Page 116: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/116.jpg)
kodea hainbat gailutanexekutatu daiteke
122
![Page 117: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/117.jpg)
C99
123
![Page 118: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/118.jpg)
CUDArekin antzekotasunak etadesberdintasunak
124
![Page 119: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/119.jpg)
maila baxuagokoa
125
![Page 120: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/120.jpg)
oraindik ez CUDA bezain osoabaina...
126
![Page 121: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/121.jpg)
etorkizuna izango da
127
![Page 122: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/122.jpg)
</OpenCL>
128
![Page 123: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/123.jpg)
</arkitekturak>
129
![Page 124: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/124.jpg)
<non? zelan? zertarako?>
130
![Page 125: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/125.jpg)
Jatorrizkoaren egiletza: c© NVIDIA131
![Page 126: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/126.jpg)
Jatorrizkoaren egiletza: CC-BY 2.5 ChrisDag@Flickr
132
![Page 127: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/127.jpg)
Jatorrizkoaren egiletza: PD AEBko energia departamendua
133
![Page 128: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/128.jpg)
baita gailu txikiagotan ere
134
![Page 129: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/129.jpg)
Jatorrizkoaren egiletza: CC-BY 2.5 Android Open Source Project, CC-BY 2.0 Robert Nelson & c© NVIDIA
135
![Page 130: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/130.jpg)
segurtasunaren esparruan...
136
![Page 131: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/131.jpg)
WPA, hash... “ikuskaritza”
137
![Page 132: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/132.jpg)
</non? zelan? zertarako?>
138
![Page 133: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/133.jpg)
eskerrik asko.
139
![Page 134: GPGPU programazioa: Txartel grafikoa erabiliz programatu](https://reader033.fdocuments.net/reader033/viewer/2022052522/548db9d0b47959190d8b65f1/html5/thumbnails/134.jpg)
lizentzia: CC-BY 3.0http://creativecommons.org/licenses/by/3.0/deed.eu
(kontrakoa adierazita duten irudiena izan ezik.)
LATEXeko Beamer klase librearekin eginiko aurkezpena
http://slideshare.net/janfri
http://hamahiru.org
[email protected] gakoa: 0x8141DED2
@azken tximinoa
140