SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Graphics Processing Units (GPU)
και CUDA
Κ. Διαμαντάρασ
Τμιμα Πλθροφορικισ
ΑΤΕΙ Θεςςαλονίικθσ
2013
Βαςικζσ Ερωτιςεισ και Απαντιςεισ
http://aetos.it.teithe.gr/~kdiamant/CompArchParallel/CUDA/cuda_gr.htm

 Τι είναι μια Graphics Processing Unit (GPU)?

 Μια κάρτα γραφικών, (ςυχνά αποκαλείται και device) με

μεγάλο πλικοσ επεξεργαςτικών μονάδων που
καλοφνται πυρήνες (cores). Οι πυρινεσ είναι διακζςιμοι
ςτον προγραμματιςτι ώςτε μζςω μιασ κατάλλθλθσ
βιβλιοκικθσ μποροφν να χρθςιμοποιθκοφν για
παράλλθλθ εκτζλεςθ προγραμμάτων.

2

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Κάρτεσ GPU τθσ NVIDIA
https://developer.nvidia.com/cuda-gpus
Αρχιτεκτονική

Κάρτεσ

Kepler
(compute capability
3.x)

Quadro Σειρά Kepler

Tesla Κ20
Tesla K10

Fermi
(compute capability
2.x)

GeForce Σειρά 500
GeForce Σειρά 400

Quadro Σειρά Fermi

Tesla Σειρά 20

Tesla
(compute capability
1.x)

GeForce Σειρά 200
GeForce Σειρά 9
GeForce Σειρά 8

Quadro Σειρά FX
Quadro Σειρά Plex
Quadro Σειρά NVS

Tesla Σειρά 10

Τυπικέσ εφαρμογέσ:

3

GeForce Σειρά 600

Διαςκέδαςη

Επαγγελματικά
Γραφικά

Παράλληλη
Επεξεργαςία

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Κάρτεσ GPU τθσ NVIDIA
Kepler: GeForce ςειρά 600

Tesla: GeForce ςειρά 500

Fermi: GeForce ςειρά 400

4

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
nVIDIA: Αρχιτεκτονικι GPU
Αρχιτεκτονικι Fermi: 16 Streaming MultiProcessors (SM)

5

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
nVIDIA: Αρχιτεκτονικι Fermi
 16 SM με 32 cores ο κακζνασ οπότε ςυνολικά

υπάρχουν 512 cores. Οι SM είναι τοποκετθμζνοι
γφρω από μια κοινι μνιμθ cache 2ου επιπζδου
μεγζκουσ 768 KB.
 6 τράπεζες μνθμης 64bit που υποςτθρίηουν μζχρι
6GB μνιμθσ τφπου GDDR5 DRAM.
 Ζνα host-interface που ςυνδζει τθν GPU με τθν CPU
μζςω διαφλου PCI Express.
 Ο δρομολογθτισ GigaThread engine ο οποίοσ
κατανζμει τα blocks των νθμάτων ςτουσ SM.
6

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Streaming Multiprocessor (SM)

7

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Ο Streaming MP (SM)
 32 πυρινεσ (cores). Κάκε πυρινασ είναι ζνασ πολφ απλόσ











8

επεξεργαςτισ ο οποίοσ περιζχει μια πλιρωσ pipelined Integer
Arithmetic Logic Unit (ALU) και μια Floating Point Unit (FPU)
16 μονάδες Load/Store
4 Special Function Units (SFU) οι οποίεσ εκτελοφν πολφπλοκεσ
μακθματικζσ ςυναρτιςεισ όπωσ θμίτονο (sine), ςυνθμίτονο
(cosine), αντίςτροφο (1/x) και τετραγωνικι ρίηα.
32768 Καταχωρητζς (Registers) μικουσ 32 bit.
Μια Κοινή μνήμη μεγζκουσ 64 KB
Μια κοινι Data Cache επιπζδου 1 και μια Instruction Cache
Ζνα κφκλωμα δικτφου για διαςφνδεςθ με τουσ υπόλοιπουσ SM
Δφο warp schedulers και δφο instruction dispatch units.

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Ο Streaming MP (SM)
 Ζνασ SM δρομολογεί νιματα ςε groups που

καλοφνται warps. Το πλικοσ των νθμάτων ςε ζνα warp
ςχετίηεται άμεςα με το πλικοσ των πυρινων που διακζτει
ο SM. Στο ςυγκεκριμζνο παράδειγμα κάκε warp ζχει 32
νιματα. Υπάρχουν 2 warp-schedulers και δφο μονάδεσ
ανάκεςθσ εντολών (instruction dispatch units). Δθλαδι, ο
Fermi SM εκτελεί ταυτόχρονα 2 εντολζσ προερχόμενεσ
από 2 διαφορετικά warps. Μια εντολι από ζνα warp
μπορεί, ανάλογα με το είδοσ τθσ, να ανατεκεί
 είτε ςε ζνα πυρινα από μια 16-άδα πυρινων
 είτε ςε μια από τισ 16 Load/Store units
 είτε ςε ζνα από τα 4 Special Function Units
9

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Ο πυρινασ (core)

10

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Σφγκριςθ Fermi - Kepler
Fermi
GF100

Kepler
GK104

Kepler
GK110

Compute capability

2.0

2.1

3.0

3.5

Threads / Warp

32

32

32

32

Max Warps / SM

48

48

64

64

Max Threads / SM

1536

1536

2048

2048

Max Blocks / SM

8

8

16

16

Max Threads / Block 1024

1024

1024

1024

32 bit Registers /
SM

32768

32768

65536

65536

Max Registers /
Thread

11

Fermi
GF104

63

63

63

255

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
CUDA
 Τι είναι θ CUDA;
 http://www.nvidia.com/object/cuda_home_new.html

Προγραμματιςτικό μοντζλο τθσ εταιρείασ nVIDIA το
οποίο υποςτθρίηει τθν εκτζλεςθ παράλλθλων
προγραμμάτων χρθςιμοποιώντασ τουσ πυρινεσ
(cores) μιασ ι περιςςοτζρων καρτών GPU. Η CUDA
επιτρζπει ςτον προγραμματιςτι να δθμιουργιςει
εκατοντάδεσ ι και χιλιάδεσ νθματα τα οποία
εκτελοφνται ςτουσ πυρινεσ μιασ ι περιςςοτζρων
GPU. Με τον τρόπο αυτό μποροφν να υλοποιθκοφν
αλγόρικμοι μαηικισ παράλλθλθσ επεξεργαςίασ.
12

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Στιςιμο CUDA
https://developer.nvidia.com/cuda-downloads

13

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Προγραμματιςμόσ CUDA
 Δυνατότθτα ανάπτυξθσ εφαρμογών GPU

χρθςιμοποιώντασ μια επζκταςθ τθσ γλώςςασ C.
Υποςτθρίηονται επίςθσ FORTRAN, DirectCompute,
OpenACC ενώ υπάρχουν επίςθσ Wrappers για Java και
Python
 Σε Windows απαραίτθτθ θ χριςθ Visual Studio.
 Προγραμματιςτικό μοντζλο Single-Instruction
Multiple-Thread (SIMT) όπου πολλοί κλώνοι του
ίδιου προγράμματοσ εκτελοφνται ωσ διαφορετικά
νιματα με διαφορετικά id.
14

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Προγραμματιςμόσ CUDA
 Ζνα kernel προκαλεί τθν εκτζλεςθ ενόσ Πλζγματοσ (Grid)
 Ζνα Πλζγμα αποτελείται από Ν Blocks νθμάτων CUDA (Block0, ...,
BlockN-1).
 Ζνα Block αποτελείται από Τ Νιματα CUDA (Νιμα0, ...,
ΝιμαT-1).
Πρόγραμμα:

Hardware:

Ζνα Πλζγμα (Grid)

Ζνα Block νθμάτων
Ζνα Νιμα (Thread)

15

Κ. Διαμαντάρας

μια GPU
εκτελείται ςε

ζνα SM
ζνα Πυρινα (Core)

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Παράδειγμα Προγράμματοσ
 http://aetos.it.teithe.gr/~kdiamant/CompArchParallel

/CUDA/cuda_gr.htm

16

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Λζξεισ κλειδιά
Η f()
καλείται από

Η f()
εκτελείται ςτθ

GPU (device)

GPU (device)

__global__

__global__ float f() {
...
}

CPU (host)

GPU (device)

__host__

__host__ int f() {
...
}

CPU (host)

CPU (host)

Λζξθ κλειδί

Παράδειγμα

__device__ void f() {
__device__ ...
}

17

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Περιοριςμοί kernels
 Δεν μποροφν να χρθςιμοποιθκοφν ςυναρτιςεισ που

χρθςιμοποιοφν ςυςκευζσ I/O (οκόνθ, πλθκτρολόγιο, κάρτα
δικτφου, κλπ).
 Οι εντολζσ ςε μια ςυνάρτθςθ kernel δεν μποροφν να
προςπελάςουν απ' ευκείασ τθν κφρια μνιμθ τθσ CPU
(host). Αν κζλουμε να προςπελάςουμε τα δεδομζνα τθσ
κφριασ μνιμθσ πρζπει πρώτα να τα μεταφζρουμε ςτθ
μνιμθ τθσ GPU χρθςιμοποιώντασ τθν εντολι
cudaMemcpy().
 Σε παλιότερεσ εκδόςεισ δεν υποςτθρίηεται ο τφποσ
δεδομζνων double. Σε μια ςυνάρτθςθ kernel, οι
μεταβλθτζσ αυτοφ του τφπου μετατρζπονται αυτομάτωσ
κατά τθν μετάφραςθ ςε float.
18

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα
Μοντζλο μνιμθσ CUDA/GPU
 Τα νιματα μζςα ςε ζνα block μποροφν να ςυνεργαςτοφν
 είτε μοιραηόμενα τθν κοινι μνιμθ του block (shared memory)

 είτε κάνοντασ ςυγχρονιςμό εκτζλεςθσ χρθςιμοποιώντασ τθν

εντολι __synchthreads()

19

Κ. Διαμαντάρας

Προηγμένες Αρτιτεκτονικές
Η/Υ & Παράλληλα Σσστήματα

Weitere ähnliche Inhalte

Was ist angesagt?

Κεφάλαιο 1-2
Κεφάλαιο 1-2Κεφάλαιο 1-2
Κεφάλαιο 1-2
Tselep Ria
 
κεφάλαιο 3 απαντήσεις στις ερωτήσεις βιβλίου
κεφάλαιο 3   απαντήσεις στις ερωτήσεις βιβλίουκεφάλαιο 3   απαντήσεις στις ερωτήσεις βιβλίου
κεφάλαιο 3 απαντήσεις στις ερωτήσεις βιβλίου
ΤΑΤΙΑΝΑ ΠΕΤΡΟΠΟΥΛΟΥ
 

Was ist angesagt? (13)

Pc
PcPc
Pc
 
Το Υλικό του Υπολογιστή - Εφαρμογές Πληροφορικής
Το Υλικό του Υπολογιστή - Εφαρμογές ΠληροφορικήςΤο Υλικό του Υπολογιστή - Εφαρμογές Πληροφορικής
Το Υλικό του Υπολογιστή - Εφαρμογές Πληροφορικής
 
B.2.m3-Memories
B.2.m3-MemoriesB.2.m3-Memories
B.2.m3-Memories
 
B2.7-Factors For A Better Computer System
B2.7-Factors For A Better Computer SystemB2.7-Factors For A Better Computer System
B2.7-Factors For A Better Computer System
 
Εφαρμογές πληροφορικής 2ο κεφ
Εφαρμογές πληροφορικής 2ο κεφΕφαρμογές πληροφορικής 2ο κεφ
Εφαρμογές πληροφορικής 2ο κεφ
 
Α' Γυμνασίου -Κεφάλαιο 2: Το Υλικό του Υπολογιστή
Α' Γυμνασίου -Κεφάλαιο 2: Το Υλικό του ΥπολογιστήΑ' Γυμνασίου -Κεφάλαιο 2: Το Υλικό του Υπολογιστή
Α' Γυμνασίου -Κεφάλαιο 2: Το Υλικό του Υπολογιστή
 
Κεφάλαιο 1-2
Κεφάλαιο 1-2Κεφάλαιο 1-2
Κεφάλαιο 1-2
 
Motherboard
Motherboard Motherboard
Motherboard
 
κεφάλαιο 3 απαντήσεις στις ερωτήσεις βιβλίου
κεφάλαιο 3   απαντήσεις στις ερωτήσεις βιβλίουκεφάλαιο 3   απαντήσεις στις ερωτήσεις βιβλίου
κεφάλαιο 3 απαντήσεις στις ερωτήσεις βιβλίου
 
C2 2 microprocessor-cpu
C2 2 microprocessor-cpuC2 2 microprocessor-cpu
C2 2 microprocessor-cpu
 
Ο Προσωπικός Υπολογιστής
Ο Προσωπικός ΥπολογιστήςΟ Προσωπικός Υπολογιστής
Ο Προσωπικός Υπολογιστής
 
Γ.2.Μ.2 υπολογιστικό σύστημα ως ενιαίο σύνολο
Γ.2.Μ.2 υπολογιστικό σύστημα ως ενιαίο σύνολοΓ.2.Μ.2 υπολογιστικό σύστημα ως ενιαίο σύνολο
Γ.2.Μ.2 υπολογιστικό σύστημα ως ενιαίο σύνολο
 
Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές και Προγραμματισμός-Θεωρητικές έννοι...
Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές και Προγραμματισμός-Θεωρητικές έννοι...Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές και Προγραμματισμός-Θεωρητικές έννοι...
Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές και Προγραμματισμός-Θεωρητικές έννοι...
 

Ähnlich wie Σύντομη εισαγωγή στην τεχνολογία GPU και την CUDA

η μητρική πλακέτα
η μητρική πλακέταη μητρική πλακέτα
η μητρική πλακέτα
pink__13
 
Bαρβάρα- Bαγγέλης
Bαρβάρα- BαγγέληςBαρβάρα- Bαγγέλης
Bαρβάρα- Bαγγέλης
Magda Iatropoulou
 
Τα χαρακτηριστικά του επεξεργαστή
Τα χαρακτηριστικά του επεξεργαστήΤα χαρακτηριστικά του επεξεργαστή
Τα χαρακτηριστικά του επεξεργαστή
nick143
 
Η γλώσσα προγραμματισμού Clipper.
Η γλώσσα προγραμματισμού Clipper.Η γλώσσα προγραμματισμού Clipper.
Η γλώσσα προγραμματισμού Clipper.
Stathis Gourzis
 
Αρχιτεκτονική του υπολογιστή κεφ3 Περίληψη.pdf
Αρχιτεκτονική του υπολογιστή κεφ3 Περίληψη.pdfΑρχιτεκτονική του υπολογιστή κεφ3 Περίληψη.pdf
Αρχιτεκτονική του υπολογιστή κεφ3 Περίληψη.pdf
VasilisPigadas
 
Εφαρμογές Πληροφορικής Κεφ. 3 Υλικο
Εφαρμογές Πληροφορικής Κεφ. 3 ΥλικοΕφαρμογές Πληροφορικής Κεφ. 3 Υλικο
Εφαρμογές Πληροφορικής Κεφ. 3 Υλικο
11lykperist
 
Υλικό ΗΥ Παρουσίαση
Υλικό ΗΥ ΠαρουσίασηΥλικό ΗΥ Παρουσίαση
Υλικό ΗΥ Παρουσίαση
papavasi
 

Ähnlich wie Σύντομη εισαγωγή στην τεχνολογία GPU και την CUDA (20)

η μητρική πλακέτα
η μητρική πλακέταη μητρική πλακέτα
η μητρική πλακέτα
 
Motherboard education
Motherboard educationMotherboard education
Motherboard education
 
Ekpaideysh1
Ekpaideysh1Ekpaideysh1
Ekpaideysh1
 
εφαρμογές πληροφορικής 1ο κεφ
εφαρμογές πληροφορικής 1ο κεφεφαρμογές πληροφορικής 1ο κεφ
εφαρμογές πληροφορικής 1ο κεφ
 
1. Βασικές γνώσεις υπολογιστών
1. Βασικές γνώσεις υπολογιστών1. Βασικές γνώσεις υπολογιστών
1. Βασικές γνώσεις υπολογιστών
 
Kef3
Kef3Kef3
Kef3
 
Bαρβάρα- Bαγγέλης
Bαρβάρα- BαγγέληςBαρβάρα- Bαγγέλης
Bαρβάρα- Bαγγέλης
 
ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ
ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ
ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ
 
Υλικό / Αρχιτεκτονική Ηλεκτρονικών Υπολογιστών
Υλικό / Αρχιτεκτονική Ηλεκτρονικών ΥπολογιστώνΥλικό / Αρχιτεκτονική Ηλεκτρονικών Υπολογιστών
Υλικό / Αρχιτεκτονική Ηλεκτρονικών Υπολογιστών
 
Tο εσωτερικό του υπολογιστή
Tο εσωτερικό του υπολογιστήTο εσωτερικό του υπολογιστή
Tο εσωτερικό του υπολογιστή
 
Open playground – Wired communications. Επικοινωνία EV3 με open hardware (ard...
Open playground – Wired communications. Επικοινωνία EV3 με open hardware (ard...Open playground – Wired communications. Επικοινωνία EV3 με open hardware (ard...
Open playground – Wired communications. Επικοινωνία EV3 με open hardware (ard...
 
Τα χαρακτηριστικά του επεξεργαστή
Τα χαρακτηριστικά του επεξεργαστήΤα χαρακτηριστικά του επεξεργαστή
Τα χαρακτηριστικά του επεξεργαστή
 
Γ2_M2_ΚΜΕ.pptx
Γ2_M2_ΚΜΕ.pptxΓ2_M2_ΚΜΕ.pptx
Γ2_M2_ΚΜΕ.pptx
 
Η γλώσσα προγραμματισμού Clipper.
Η γλώσσα προγραμματισμού Clipper.Η γλώσσα προγραμματισμού Clipper.
Η γλώσσα προγραμματισμού Clipper.
 
Αρχιτεκτονική του υπολογιστή κεφ3 Περίληψη.pdf
Αρχιτεκτονική του υπολογιστή κεφ3 Περίληψη.pdfΑρχιτεκτονική του υπολογιστή κεφ3 Περίληψη.pdf
Αρχιτεκτονική του υπολογιστή κεφ3 Περίληψη.pdf
 
ρομποτικη με Arduino
ρομποτικη με Arduinoρομποτικη με Arduino
ρομποτικη με Arduino
 
Εφαρμογές Πληροφορικής Κεφ. 3 Υλικο
Εφαρμογές Πληροφορικής Κεφ. 3 ΥλικοΕφαρμογές Πληροφορικής Κεφ. 3 Υλικο
Εφαρμογές Πληροφορικής Κεφ. 3 Υλικο
 
Υλικό ΗΥ Παρουσίαση
Υλικό ΗΥ ΠαρουσίασηΥλικό ΗΥ Παρουσίαση
Υλικό ΗΥ Παρουσίαση
 
B.2.m2 CPU
B.2.m2 CPUB.2.m2 CPU
B.2.m2 CPU
 
Παρουσίαση 1.2 Κεντρίκή Μονάδα Επεξεργασίας
Παρουσίαση 1.2 Κεντρίκή Μονάδα ΕπεξεργασίαςΠαρουσίαση 1.2 Κεντρίκή Μονάδα Επεξεργασίας
Παρουσίαση 1.2 Κεντρίκή Μονάδα Επεξεργασίας
 

Kürzlich hochgeladen

εργασία εφημερίδας για την διατροφή.pptx
εργασία εφημερίδας για την διατροφή.pptxεργασία εφημερίδας για την διατροφή.pptx
εργασία εφημερίδας για την διατροφή.pptx
Effie Lampropoulou
 

Kürzlich hochgeladen (20)

Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...
Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...
Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...
 
ΕΜΕΙΣ ΕΔΩ ΠΑΙΖΟΥΜΕ ΜΠΑΛΑ, εργασία για την οπαδική βία
ΕΜΕΙΣ ΕΔΩ ΠΑΙΖΟΥΜΕ ΜΠΑΛΑ, εργασία για την οπαδική βίαΕΜΕΙΣ ΕΔΩ ΠΑΙΖΟΥΜΕ ΜΠΑΛΑ, εργασία για την οπαδική βία
ΕΜΕΙΣ ΕΔΩ ΠΑΙΖΟΥΜΕ ΜΠΑΛΑ, εργασία για την οπαδική βία
 
Φλωρεντία, ΔΑΝΑΗ ΠΥΡΠΥΡΗ- ΜΑΡΙΑΝΕΛΑ ΣΤΡΟΓΓΥΛΟΥ
Φλωρεντία, ΔΑΝΑΗ ΠΥΡΠΥΡΗ- ΜΑΡΙΑΝΕΛΑ ΣΤΡΟΓΓΥΛΟΥΦλωρεντία, ΔΑΝΑΗ ΠΥΡΠΥΡΗ- ΜΑΡΙΑΝΕΛΑ ΣΤΡΟΓΓΥΛΟΥ
Φλωρεντία, ΔΑΝΑΗ ΠΥΡΠΥΡΗ- ΜΑΡΙΑΝΕΛΑ ΣΤΡΟΓΓΥΛΟΥ
 
Μάχη του Πουατιέ,ΧΡΥΣΑΝΘΟΣ ΚΑΙ ΧΡΥΣΑ ΟΠΡΙΝΕΣΚΟΥ
Μάχη του Πουατιέ,ΧΡΥΣΑΝΘΟΣ ΚΑΙ ΧΡΥΣΑ ΟΠΡΙΝΕΣΚΟΥΜάχη του Πουατιέ,ΧΡΥΣΑΝΘΟΣ ΚΑΙ ΧΡΥΣΑ ΟΠΡΙΝΕΣΚΟΥ
Μάχη του Πουατιέ,ΧΡΥΣΑΝΘΟΣ ΚΑΙ ΧΡΥΣΑ ΟΠΡΙΝΕΣΚΟΥ
 
Παρουσίαση θεατρικού στην Τεχνόπολη. 2023-2024
Παρουσίαση θεατρικού στην Τεχνόπολη. 2023-2024Παρουσίαση θεατρικού στην Τεχνόπολη. 2023-2024
Παρουσίαση θεατρικού στην Τεχνόπολη. 2023-2024
 
ΗΡΑΚΛΕΙΟΣ, ΧΑΡΗΣ ΤΑΣΙΟΥΔΗΣ-ΓΙΩΡΓΟΣ ΤΖΑΝΗΣ
ΗΡΑΚΛΕΙΟΣ, ΧΑΡΗΣ ΤΑΣΙΟΥΔΗΣ-ΓΙΩΡΓΟΣ ΤΖΑΝΗΣΗΡΑΚΛΕΙΟΣ, ΧΑΡΗΣ ΤΑΣΙΟΥΔΗΣ-ΓΙΩΡΓΟΣ ΤΖΑΝΗΣ
ΗΡΑΚΛΕΙΟΣ, ΧΑΡΗΣ ΤΑΣΙΟΥΔΗΣ-ΓΙΩΡΓΟΣ ΤΖΑΝΗΣ
 
Ρατσισμός, ορισμός, είδη, αίτια , συνέπειες
Ρατσισμός, ορισμός, είδη, αίτια , συνέπειεςΡατσισμός, ορισμός, είδη, αίτια , συνέπειες
Ρατσισμός, ορισμός, είδη, αίτια , συνέπειες
 
ΑΝΑΓΕΝΝΗΣΗ, ΕΙΡΗΝΗ ΓΚΑΒΛΟΥ- ΜΑΙΡΗ ΔΗΜΑΚΟΠΟΥΛΟΥ
ΑΝΑΓΕΝΝΗΣΗ, ΕΙΡΗΝΗ ΓΚΑΒΛΟΥ- ΜΑΙΡΗ ΔΗΜΑΚΟΠΟΥΛΟΥ ΑΝΑΓΕΝΝΗΣΗ, ΕΙΡΗΝΗ ΓΚΑΒΛΟΥ- ΜΑΙΡΗ ΔΗΜΑΚΟΠΟΥΛΟΥ
ΑΝΑΓΕΝΝΗΣΗ, ΕΙΡΗΝΗ ΓΚΑΒΛΟΥ- ΜΑΙΡΗ ΔΗΜΑΚΟΠΟΥΛΟΥ
 
Ο εκχριστιανισμός των Σλάβων, Άγγελος Δόσης
Ο εκχριστιανισμός των Σλάβων, Άγγελος ΔόσηςΟ εκχριστιανισμός των Σλάβων, Άγγελος Δόσης
Ο εκχριστιανισμός των Σλάβων, Άγγελος Δόσης
 
Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024
Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024
Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024
 
Ναυμαχία της Ναυαρίνου 20 Οκτωβρίου 1827
Ναυμαχία της Ναυαρίνου 20 Οκτωβρίου 1827Ναυμαχία της Ναυαρίνου 20 Οκτωβρίου 1827
Ναυμαχία της Ναυαρίνου 20 Οκτωβρίου 1827
 
ΘΕΣΣΑΛΟΝΙΚΗ Η ΔΕΥΤΕΡΗ ΠΟΛΗ ΤΗΣ ΒΥΖΑΝΤΙΝΗΣ ΑΥΤΟΚΡΑΤΟΡΙΑΣ, ΔΑΝΑΗ ΠΑΝΟΥ
ΘΕΣΣΑΛΟΝΙΚΗ Η ΔΕΥΤΕΡΗ ΠΟΛΗ ΤΗΣ ΒΥΖΑΝΤΙΝΗΣ ΑΥΤΟΚΡΑΤΟΡΙΑΣ, ΔΑΝΑΗ ΠΑΝΟΥΘΕΣΣΑΛΟΝΙΚΗ Η ΔΕΥΤΕΡΗ ΠΟΛΗ ΤΗΣ ΒΥΖΑΝΤΙΝΗΣ ΑΥΤΟΚΡΑΤΟΡΙΑΣ, ΔΑΝΑΗ ΠΑΝΟΥ
ΘΕΣΣΑΛΟΝΙΚΗ Η ΔΕΥΤΕΡΗ ΠΟΛΗ ΤΗΣ ΒΥΖΑΝΤΙΝΗΣ ΑΥΤΟΚΡΑΤΟΡΙΑΣ, ΔΑΝΑΗ ΠΑΝΟΥ
 
εργασία εφημερίδας για την διατροφή.pptx
εργασία εφημερίδας για την διατροφή.pptxεργασία εφημερίδας για την διατροφή.pptx
εργασία εφημερίδας για την διατροφή.pptx
 
Σχέσεις στην εφηβεία_έρωτας
Σχέσεις                     στην εφηβεία_έρωταςΣχέσεις                     στην εφηβεία_έρωτας
Σχέσεις στην εφηβεία_έρωτας
 
Η απελευθέρωση της Θεσσαλονίκης από την Οθωμανική Αυτοκρατορία
Η απελευθέρωση της Θεσσαλονίκης από την Οθωμανική ΑυτοκρατορίαΗ απελευθέρωση της Θεσσαλονίκης από την Οθωμανική Αυτοκρατορία
Η απελευθέρωση της Θεσσαλονίκης από την Οθωμανική Αυτοκρατορία
 
Safe Driving - Εργασία για την ασφαλή οδήγηση 2ο Γυμνάσιο Αλεξανδρούπολης
Safe Driving - Εργασία για την ασφαλή οδήγηση 2ο Γυμνάσιο ΑλεξανδρούποληςSafe Driving - Εργασία για την ασφαλή οδήγηση 2ο Γυμνάσιο Αλεξανδρούπολης
Safe Driving - Εργασία για την ασφαλή οδήγηση 2ο Γυμνάσιο Αλεξανδρούπολης
 
Η ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ, ΣΤΑΥΡΟΥΛΑ ΜΠΕΚΙΑΡΗ
Η ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ,  ΣΤΑΥΡΟΥΛΑ  ΜΠΕΚΙΑΡΗΗ ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ,  ΣΤΑΥΡΟΥΛΑ  ΜΠΕΚΙΑΡΗ
Η ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ, ΣΤΑΥΡΟΥΛΑ ΜΠΕΚΙΑΡΗ
 
ΔΙΑΣΗΜΕΣ ΒΥΖΑΝΤΙΝΕΣ ΠΡΙΓΚΙΠΙΣΣΕΣ,ΕΦΗ ΨΑΛΛΙΔΑ
ΔΙΑΣΗΜΕΣ ΒΥΖΑΝΤΙΝΕΣ ΠΡΙΓΚΙΠΙΣΣΕΣ,ΕΦΗ ΨΑΛΛΙΔΑΔΙΑΣΗΜΕΣ ΒΥΖΑΝΤΙΝΕΣ ΠΡΙΓΚΙΠΙΣΣΕΣ,ΕΦΗ ΨΑΛΛΙΔΑ
ΔΙΑΣΗΜΕΣ ΒΥΖΑΝΤΙΝΕΣ ΠΡΙΓΚΙΠΙΣΣΕΣ,ΕΦΗ ΨΑΛΛΙΔΑ
 
Η ΒΙΟΜΗΧΑΝΙΚΗ ΕΠΑΝΑΣΤΑΣΗ,ΜΠΟΗΣ ΧΡΗΣΤΟΣ - ΜΑΓΟΥΛΑΣ ΘΩΜΑΣ
Η ΒΙΟΜΗΧΑΝΙΚΗ ΕΠΑΝΑΣΤΑΣΗ,ΜΠΟΗΣ ΧΡΗΣΤΟΣ - ΜΑΓΟΥΛΑΣ ΘΩΜΑΣΗ ΒΙΟΜΗΧΑΝΙΚΗ ΕΠΑΝΑΣΤΑΣΗ,ΜΠΟΗΣ ΧΡΗΣΤΟΣ - ΜΑΓΟΥΛΑΣ ΘΩΜΑΣ
Η ΒΙΟΜΗΧΑΝΙΚΗ ΕΠΑΝΑΣΤΑΣΗ,ΜΠΟΗΣ ΧΡΗΣΤΟΣ - ΜΑΓΟΥΛΑΣ ΘΩΜΑΣ
 
Βενετία, μια πόλη πάνω στο νερό, Βασιλική Μπράβου - Αποστολία Μπάρδα
Βενετία, μια πόλη πάνω στο νερό, Βασιλική Μπράβου - Αποστολία ΜπάρδαΒενετία, μια πόλη πάνω στο νερό, Βασιλική Μπράβου - Αποστολία Μπάρδα
Βενετία, μια πόλη πάνω στο νερό, Βασιλική Μπράβου - Αποστολία Μπάρδα
 

Σύντομη εισαγωγή στην τεχνολογία GPU και την CUDA

  • 1. Graphics Processing Units (GPU) και CUDA Κ. Διαμαντάρασ Τμιμα Πλθροφορικισ ΑΤΕΙ Θεςςαλονίικθσ 2013
  • 2. Βαςικζσ Ερωτιςεισ και Απαντιςεισ http://aetos.it.teithe.gr/~kdiamant/CompArchParallel/CUDA/cuda_gr.htm  Τι είναι μια Graphics Processing Unit (GPU)?  Μια κάρτα γραφικών, (ςυχνά αποκαλείται και device) με μεγάλο πλικοσ επεξεργαςτικών μονάδων που καλοφνται πυρήνες (cores). Οι πυρινεσ είναι διακζςιμοι ςτον προγραμματιςτι ώςτε μζςω μιασ κατάλλθλθσ βιβλιοκικθσ μποροφν να χρθςιμοποιθκοφν για παράλλθλθ εκτζλεςθ προγραμμάτων. 2 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 3. Κάρτεσ GPU τθσ NVIDIA https://developer.nvidia.com/cuda-gpus Αρχιτεκτονική Κάρτεσ Kepler (compute capability 3.x) Quadro Σειρά Kepler Tesla Κ20 Tesla K10 Fermi (compute capability 2.x) GeForce Σειρά 500 GeForce Σειρά 400 Quadro Σειρά Fermi Tesla Σειρά 20 Tesla (compute capability 1.x) GeForce Σειρά 200 GeForce Σειρά 9 GeForce Σειρά 8 Quadro Σειρά FX Quadro Σειρά Plex Quadro Σειρά NVS Tesla Σειρά 10 Τυπικέσ εφαρμογέσ: 3 GeForce Σειρά 600 Διαςκέδαςη Επαγγελματικά Γραφικά Παράλληλη Επεξεργαςία Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 4. Κάρτεσ GPU τθσ NVIDIA Kepler: GeForce ςειρά 600 Tesla: GeForce ςειρά 500 Fermi: GeForce ςειρά 400 4 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 5. nVIDIA: Αρχιτεκτονικι GPU Αρχιτεκτονικι Fermi: 16 Streaming MultiProcessors (SM) 5 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 6. nVIDIA: Αρχιτεκτονικι Fermi  16 SM με 32 cores ο κακζνασ οπότε ςυνολικά υπάρχουν 512 cores. Οι SM είναι τοποκετθμζνοι γφρω από μια κοινι μνιμθ cache 2ου επιπζδου μεγζκουσ 768 KB.  6 τράπεζες μνθμης 64bit που υποςτθρίηουν μζχρι 6GB μνιμθσ τφπου GDDR5 DRAM.  Ζνα host-interface που ςυνδζει τθν GPU με τθν CPU μζςω διαφλου PCI Express.  Ο δρομολογθτισ GigaThread engine ο οποίοσ κατανζμει τα blocks των νθμάτων ςτουσ SM. 6 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 7. Streaming Multiprocessor (SM) 7 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 8. Ο Streaming MP (SM)  32 πυρινεσ (cores). Κάκε πυρινασ είναι ζνασ πολφ απλόσ        8 επεξεργαςτισ ο οποίοσ περιζχει μια πλιρωσ pipelined Integer Arithmetic Logic Unit (ALU) και μια Floating Point Unit (FPU) 16 μονάδες Load/Store 4 Special Function Units (SFU) οι οποίεσ εκτελοφν πολφπλοκεσ μακθματικζσ ςυναρτιςεισ όπωσ θμίτονο (sine), ςυνθμίτονο (cosine), αντίςτροφο (1/x) και τετραγωνικι ρίηα. 32768 Καταχωρητζς (Registers) μικουσ 32 bit. Μια Κοινή μνήμη μεγζκουσ 64 KB Μια κοινι Data Cache επιπζδου 1 και μια Instruction Cache Ζνα κφκλωμα δικτφου για διαςφνδεςθ με τουσ υπόλοιπουσ SM Δφο warp schedulers και δφο instruction dispatch units. Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 9. Ο Streaming MP (SM)  Ζνασ SM δρομολογεί νιματα ςε groups που καλοφνται warps. Το πλικοσ των νθμάτων ςε ζνα warp ςχετίηεται άμεςα με το πλικοσ των πυρινων που διακζτει ο SM. Στο ςυγκεκριμζνο παράδειγμα κάκε warp ζχει 32 νιματα. Υπάρχουν 2 warp-schedulers και δφο μονάδεσ ανάκεςθσ εντολών (instruction dispatch units). Δθλαδι, ο Fermi SM εκτελεί ταυτόχρονα 2 εντολζσ προερχόμενεσ από 2 διαφορετικά warps. Μια εντολι από ζνα warp μπορεί, ανάλογα με το είδοσ τθσ, να ανατεκεί  είτε ςε ζνα πυρινα από μια 16-άδα πυρινων  είτε ςε μια από τισ 16 Load/Store units  είτε ςε ζνα από τα 4 Special Function Units 9 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 10. Ο πυρινασ (core) 10 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 11. Σφγκριςθ Fermi - Kepler Fermi GF100 Kepler GK104 Kepler GK110 Compute capability 2.0 2.1 3.0 3.5 Threads / Warp 32 32 32 32 Max Warps / SM 48 48 64 64 Max Threads / SM 1536 1536 2048 2048 Max Blocks / SM 8 8 16 16 Max Threads / Block 1024 1024 1024 1024 32 bit Registers / SM 32768 32768 65536 65536 Max Registers / Thread 11 Fermi GF104 63 63 63 255 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 12. CUDA  Τι είναι θ CUDA;  http://www.nvidia.com/object/cuda_home_new.html Προγραμματιςτικό μοντζλο τθσ εταιρείασ nVIDIA το οποίο υποςτθρίηει τθν εκτζλεςθ παράλλθλων προγραμμάτων χρθςιμοποιώντασ τουσ πυρινεσ (cores) μιασ ι περιςςοτζρων καρτών GPU. Η CUDA επιτρζπει ςτον προγραμματιςτι να δθμιουργιςει εκατοντάδεσ ι και χιλιάδεσ νθματα τα οποία εκτελοφνται ςτουσ πυρινεσ μιασ ι περιςςοτζρων GPU. Με τον τρόπο αυτό μποροφν να υλοποιθκοφν αλγόρικμοι μαηικισ παράλλθλθσ επεξεργαςίασ. 12 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 13. Στιςιμο CUDA https://developer.nvidia.com/cuda-downloads 13 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 14. Προγραμματιςμόσ CUDA  Δυνατότθτα ανάπτυξθσ εφαρμογών GPU χρθςιμοποιώντασ μια επζκταςθ τθσ γλώςςασ C. Υποςτθρίηονται επίςθσ FORTRAN, DirectCompute, OpenACC ενώ υπάρχουν επίςθσ Wrappers για Java και Python  Σε Windows απαραίτθτθ θ χριςθ Visual Studio.  Προγραμματιςτικό μοντζλο Single-Instruction Multiple-Thread (SIMT) όπου πολλοί κλώνοι του ίδιου προγράμματοσ εκτελοφνται ωσ διαφορετικά νιματα με διαφορετικά id. 14 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 15. Προγραμματιςμόσ CUDA  Ζνα kernel προκαλεί τθν εκτζλεςθ ενόσ Πλζγματοσ (Grid)  Ζνα Πλζγμα αποτελείται από Ν Blocks νθμάτων CUDA (Block0, ..., BlockN-1).  Ζνα Block αποτελείται από Τ Νιματα CUDA (Νιμα0, ..., ΝιμαT-1). Πρόγραμμα: Hardware: Ζνα Πλζγμα (Grid) Ζνα Block νθμάτων Ζνα Νιμα (Thread) 15 Κ. Διαμαντάρας μια GPU εκτελείται ςε ζνα SM ζνα Πυρινα (Core) Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 16. Παράδειγμα Προγράμματοσ  http://aetos.it.teithe.gr/~kdiamant/CompArchParallel /CUDA/cuda_gr.htm 16 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 17. Λζξεισ κλειδιά Η f() καλείται από Η f() εκτελείται ςτθ GPU (device) GPU (device) __global__ __global__ float f() { ... } CPU (host) GPU (device) __host__ __host__ int f() { ... } CPU (host) CPU (host) Λζξθ κλειδί Παράδειγμα __device__ void f() { __device__ ... } 17 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 18. Περιοριςμοί kernels  Δεν μποροφν να χρθςιμοποιθκοφν ςυναρτιςεισ που χρθςιμοποιοφν ςυςκευζσ I/O (οκόνθ, πλθκτρολόγιο, κάρτα δικτφου, κλπ).  Οι εντολζσ ςε μια ςυνάρτθςθ kernel δεν μποροφν να προςπελάςουν απ' ευκείασ τθν κφρια μνιμθ τθσ CPU (host). Αν κζλουμε να προςπελάςουμε τα δεδομζνα τθσ κφριασ μνιμθσ πρζπει πρώτα να τα μεταφζρουμε ςτθ μνιμθ τθσ GPU χρθςιμοποιώντασ τθν εντολι cudaMemcpy().  Σε παλιότερεσ εκδόςεισ δεν υποςτθρίηεται ο τφποσ δεδομζνων double. Σε μια ςυνάρτθςθ kernel, οι μεταβλθτζσ αυτοφ του τφπου μετατρζπονται αυτομάτωσ κατά τθν μετάφραςθ ςε float. 18 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα
  • 19. Μοντζλο μνιμθσ CUDA/GPU  Τα νιματα μζςα ςε ζνα block μποροφν να ςυνεργαςτοφν  είτε μοιραηόμενα τθν κοινι μνιμθ του block (shared memory)  είτε κάνοντασ ςυγχρονιςμό εκτζλεςθσ χρθςιμοποιώντασ τθν εντολι __synchthreads() 19 Κ. Διαμαντάρας Προηγμένες Αρτιτεκτονικές Η/Υ & Παράλληλα Σσστήματα