Προς το περιεχόμενο

[Request] Πως λειτουργεί μια GPU και ποια είναι τα βασικά μέρη της...


Alchemist`

Προτεινόμενες αναρτήσεις

Δημοσ.

Υπάρχουν πολλά μέλοι στο φόρουμ τα οποία έχουν απίστευτες γνώσεις για το θέμα και αναφέρομαι κυρίως στον Ailuro και παιδιά που συμμετέχουν σε θέματα όπως το "Nvidia GT300 & ATI RV870"... Θα μπορούσατε όλοι εσεις να εξηγήσετε και σε εμάς του αδαής το παραπάνω ερώτημα??? Όλοι έχουμε πάνω κάτω κάποιες βασικές γνώσεις (περί του chip, της VRAM κτλπ), αλλά βλέπω στο θέμα να μιλάτε για TMUs, floating point operators, SPs, κάνετε υπολογισμούς και βγάζετε megaflops κτλπ...Τι είναι όλα αυτα? Πολλές φορές λοιπόν αν και τα thread αυτά έχουν μεγάλο ενδιαφέρον σας χάνω...

Θα μπορούσατε να τα εξηγήσετε ??? Ξέρω ότι θέλει πάρα πολλή δουλειά αλλά μιλάμε για πολύτιμες γνώσεις και πληροφορίες, των οποίων είστε μάλλον η μοναδική πηγή... Έψαξα στο ίντερνετ αλλά τα περισσότερα θέματα χρησιμοποιούν αγγλικούς τεχνικούς όρους που δεν καταλαβαίνω , και αναλύουν μόνο ένα μικρό μέρος της GPU...

 

Αν έχει ανταπόκριση φαντάζομαι ότι θα είναι ένα τρομερά ενδιαφέρον θέμα, και θα ανοίξουν τα μάτια πολύ κόσμου... Ευχαριστώ προκαταβολικά!!!

Δημοσ.

ωραιο θεμα μπας και μαθουμε πραμα :)

εγω το μονο που ξερω ειναι να βρισκω το bandwith :cry:

Δημοσ.

Παιδια παρα πολυ καλο το θεμα και ελπιζω να εχει ανταποκριση θα προσπαθισω να τα βαλω ολα σε μια σειρα για να σας πω αυτα τα ολιγα που ξερω!!!!!!!

Δημοσ.

Λίγο δύσκολο μιας και απαιτεί πολύ χρόνο για επεξηγήσεις. Αν ο Ailuros έχει τον χρόνο και την διάθεση μπορείς να του το ζητήσεις με τρόπο στο thread το οποίο γράφει, ξεκινώντας από τα βασικά parts και λειτουργίες των GPU και ξεχνώντας προς το παρόν low level αρχιτεκτονική μιας και κανένας απο εμάς εδώ μέσα δεν είναι σε τέτοιο γνωσιολογικό και τεχνολογικό επίπεδο για να ανοίγει συζητήσεις αλλά και να έχει και άποψη σε αυτόν τον τομέα, με εξαίρεση 1 άτομο.

 

Το καλύτερο που έχεις να κάνεις, είναι να αφήσεις αυτά τα θέματα σε άλλους, και να κάτσεις να μάθεις να προγραμματίζεις τις GPU μέσω Cuda/OpenCL. Και που ξέρεις, μπορεί να γίνεις ο επόμενος Bill Gates... άσε τους άλλους να παίζουν με τα "ρολογάκια" και τα "κομπολογάκια" τους.

 

 

Πάρε και μια δωρεάν "πληροφορία"...

 

208xpwy.jpg

 

DSP αλγόριθμοι σε Cuda και GPU's σε Radars,Sonars,Πλοήγηση και αρκετά άλλα...είναι πολλά τα λεφτά μεγάλε...

 

Όποιος τριγυρίζει μαθαίνει να "μυρίζει"...όποιος κάθετε, σαπίζει...

 

Δημοσ.
Υπάρχουν πολλά μέλοι στο φόρουμ τα οποία έχουν απίστευτες γνώσεις για το θέμα και αναφέρομαι κυρίως στον Ailuro και παιδιά που συμμετέχουν σε θέματα όπως το "Nvidia GT300 & ATI RV870"... Θα μπορούσατε όλοι εσεις να εξηγήσετε και σε εμάς του αδαής το παραπάνω ερώτημα??? Όλοι έχουμε πάνω κάτω κάποιες βασικές γνώσεις (περί του chip, της VRAM κτλπ), αλλά βλέπω στο θέμα να μιλάτε για TMUs, floating point operators, SPs, κάνετε υπολογισμούς και βγάζετε megaflops κτλπ...Τι είναι όλα αυτα? Πολλές φορές λοιπόν αν και τα thread αυτά έχουν μεγάλο ενδιαφέρον σας χάνω...

 

Yπερ-υπερ-υπεραπλουστευμένα: θέλεις έναν επεξαργαστή να σου κάνει μία δουλίτσα γρήγορα και χωρίς να ιδρώσει = πάρε μια CPU

 

θέλεις έναν επεξεργαστή να σου κάνει εκατοντάδες αν όχι χιλιάδες δουλίτσες παράλληλα = πάρε μια GPU.

 

Πάρε ένα διάγραμμα μιας σημερινής GPU για παράδειγμα:

 

GT200-full-1.2-26-05-08.png

 

http://www.beyond3d.com/content/reviews/51/2

 

Tώρα για να μας βοηθήσεις για πιο συγκεκριμένες ερωτήσεις για να τις απαντήσουμε αν μπορούμε διάβασε λίγο το άρθρο.

 

Στα γρήγορα:

 

TMU = texture mapping unit κοντολογής η μονάδα που θα επεξεργαστεί και θα φιλτράρει υφές (textures). Aν έχεις 80 από δαύτες όπως μια GTX285 είναι 80* 650 (συχνότητα πυρήνα) = 52000 Gigatexels/s ρυθμό πλήρωσης (Texel fillrate).

 

Floating point operation (FLOP) = http://en.wikipedia.org/wiki/Floating_point#Floating-point_arithmetic_operations

 

Υπεραπλουστευμένα αντιπροσωπεύει θεωρητικά μεγέθη μέτρησης αριθμητικής επάρκειας ενός οποιουδήποτε επεξεργαστή.

 

Μια floating point operation μπορεί να είναι απλή πρόσθεση (ADD) ή και πολλαπλασιασμός (MULTIPLY). Κάθε MUL ή ADD αντιπροσωπεύουν 1 FLOP και όταν μια μονάδα είναι σε θέση να επεξεργαστεί ΜΑDD (multiply + add) έχουμε 2 FLOP (floating point operations) ανά κύκλο.

 

Μια GTX285 έχει 240 SPs (stream processors) που το κάθε ένα είναι σε θέση να επεξεργαστεί 1 MADD + 1 MUL.

 

MADD = multiply + add = 2 floating point operations = 2 FLOPs

MUL = multiply = 1 floating point operation = 1 FLOP

------------------------------------------------------------------

άρα σε κάθε κύκλο δύναται η κάθε μονάδα να κάνει 3 floating point operations

 

240 SPs * 3 FLOPs * 1.45GHz = 1044 GigaFLOPs ή 1.044 TerraFLOPs

 

Nα θυμάσαι ότι η επάρκεια ανά FLOP διαφέρει ριζικά από αρχιτεκτονική σε αρχιτεκτονική και ότι ΣΕ ΚΑΜΙΑ ΠΕΡΊΠΤΩΣΗ δεν αποτελεί ένδειξη τελικών επιδόσεων.

 

Τα SPs θα μπορούσες να τα πεις και ALUs (arithmetic logic unit) αλλά επειδή στις Radeon γίνεται η ιστορία λίγο πιο πολύπλοκη το αφήνω προς το παρών. ΄Οταν φτάσουμε στο σημείο να έχουμε καταλάβει τα παραπάνω μπορούμε να πάμε μετά και στην άλλη περίπτωση...

 

Θα μπορούσατε να τα εξηγήσετε ??? Ξέρω ότι θέλει πάρα πολλή δουλειά αλλά μιλάμε για πολύτιμες γνώσεις και πληροφορίες, των οποίων είστε μάλλον η μοναδική πηγή... Έψαξα στο ίντερνετ αλλά τα περισσότερα θέματα χρησιμοποιούν αγγλικούς τεχνικούς όρους που δεν καταλαβαίνω , και αναλύουν μόνο ένα μικρό μέρος της GPU...
΄Οπως σου είπα κάνε τον κόπο να ρωτήσεις λίγο πιο συγκεκριμένα τι δεν καταλαβαίνεις και αν ξέρουμε απαντάμε. Κανείς μας δεν είναι ειδικός ή επαγγελματίας στον τομέα, απλά εγώ προσωπικά διαβάζω από καθαρό προσωπικό ενδιαφέρον εδώ και αρκετά χρόνια για τα θέματα αυτά που μου δίνει μια βασική κατανόηση για τα ΒΑΣΙΚΑ και μόνο!
  • 2 εβδομάδες αργότερα...
Δημοσ.

Ευχαριστώ πάρα πολύ και σόρρυ που δεν απάντησα εδώ και τόσο καιρό, αλλά δεν είχα επισκεφθεί καν το ινσομνια αυτές τις μέρες... :)

 

Θα επανέλθω με απορίες αφού διαβάσω το άρθρο, αλλά τωρα δεν έχω και ιδιαίτερα πολύ χρόνο...

 

Αλλά διαβάζοντας κυρίως αυτό το κομμάτι από τα λεγόμενά σου

θέλεις έναν επεξαργαστή να σου κάνει μία δουλίτσα γρήγορα και χωρίς να ιδρώσει = πάρε μια CPU

 

θέλεις έναν επεξεργαστή να σου κάνει εκατοντάδες αν όχι χιλιάδες δουλίτσες παράλληλα = πάρε μια GPU"

 

απορώ "γιατί δεν έχουν αντικατασταθεί οι cpus από της gpu???"

Δημοσ.

απορώ "γιατί δεν έχουν αντικατασταθεί οι cpus από της gpu???"

 

Γιατί οι CPU ειδικεύονται στο να κάνουν λίγες δουλειές ή και μία μόνο γρήγορα και επαρκέστατα ενώ σε αντίθεση με τις GPU που η δύναμή τους είναι στο να κάνουν εκατοντάδες αν όχι χιλιάδες δουλειές παράλληλα (υπεραπλουστευμένα πάντα).

 

Ο απώτερος σκοπός για το μακρινό μέλλον για τις GPU φυσικά είναι να ανεβάσουν την επάρκεια τους με λίγες ή και μία μόνο εργασία, αλλά μέχρι να φτάσουν εκεί έχουν ακόμα χιλιόμετρα να διανύσουν.

 

γιατί οι gpu κάνουν εξειδικευμένα πράγματα ενώ οι cpu είναι "all-around"

 

Και το GPGPU τι είναι; LOL :D

Δημοσ.
γιατι αν η gpu αντικαταστησει την cpu τοτε δε θα ειναι gpu αλλα cpu

 

Μπορεί να την αντικαταστήσει σήμερα αλλά μόνο για GPGPU (GP= general purpose). Συνήθως αφορά εφαρμογές που μέχρι πρόσφατα βασιζόταν αποκλειστικά στην CPU επεξεργασία και πάραυτα επεξεργάζονται ένα σεβαστό αριθμό από threads παράλληλα. Σε αυτές τις περιπτώσεις μέσω CUDA/OpenCL/DX11 η GPU μπορεί να αναλάβει δράση και να απαλλάξει την CPU με πολύ μεγαλύτερη επάρκεια.

  • Super Moderators
Δημοσ.
Και το GPGPU τι είναι; LOL :D

 

κανείς δεν το είχε αναφέρει μέχρι στιγμής, όχι ότι θα το θυμόμουν βέβαια :o

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...