Jump to content



GPGPU - Η δύναμη των GPUs στα χέρια σας


crmaris

Recommended Posts

Πολυ ωραιο το review σου cmaris.Ευχαριστουμε.:T:

Πιστευω ομως οτι εφοσων ακομα δεν αξιοποιουνται οι τετραπυρηνοι απο πολλα προγραμματα,δεν χρειαζεται να μας πεφτει λογος για χρηση GPGPU.

Link to comment
Share on other sites

Μαν φοβερο ριβιου και ειναι απο τα λιγα που δεν εχω βρει κουραστικα ωστε να προσπερναω σελιδες.Απο οτι εχω καταλαβει η nvidia το εχει παρει ζεστα το cuda(σεμιναρια σε πανεπιστημια κτλ κτλ),οποτε μαλλον προς την περαιτερω αναπτυξη του ιδιου με ανταγωνιστικο σκοπο βαδιζει και οχι προς την συνεργασια με το opencl.

Link to comment
Share on other sites

thanks για τα καλά σας λόγια παιδιά. Αν σας αρέσουν τέτοιου είδους άρθρα θα συνεχίσουν..

Στο θέμα μας τώρα. Με την Nvidia παίζει μια ιδιάζουσα περίπτωση. Πως το καταλαβαίνω εγώ. Tο Khronos group δημιουργήθηκε το 2000 (η Nvidia ήταν από τότε μέλος). Κάποια στιγμή μετέπειτα λεν μερικά μέλη "ρε δεν βγάζουμε ένα πρότυπο για GPGPU". Η Nvidia μπορεί να αντέδρασε αλλά δεν μπορούσε να κάνει πίσω αφού ήταν μέλος του ομίλου και καλύτερα να ξέρεις τον ανταγωνισμό από πρώτο χέρι παρά από έξω. Οπότε αναγκαστικά ακολούθησε και τώρα υποστηρίζει και το CUDA και το OpenCL! Κατηγορώντας μάλιστα το hardware και το αντίστοιχο API της AMD λέγοντας ότι δεν μπορεί να τρέξει στην παρούσα στιγμή κώδικα C.

Η Nvidia τώρα ή θα προσπαθήσει να φέρει το OpenCL στα μέτρα της ή θα προσπαθήσει να το θάψει. Το θέμα είναι όμως ότι παίζει και ένας άλλος μεγάλος παίχτης στο OpenCL, η Apple. Οπότε κανείς δεν ξέρει προς τα που θα πάει το πράγμα μελλοντικά.

Link to comment
Share on other sites

  • 3 weeks later...

Συγχαριτήρια για το review . Σκέφτομαι να ασχολιθώ με το GPGPU και λέω να ξεκινήσω προτιμήσω το OpenCl, ξέρεται κάποιο βιβλίο για να ξεκινήσω ? Για οποίον ενδιαφέρεται η Apple έχει βγάλει μια σειρά από tutorials, αν και είναι για Mac λογικά οι ίδιες αρχές εφαρμόζονται και σε άλλα λειτουργικά :

http://www.macresearch.org/opencl

Link to comment
Share on other sites

Η επιστημονική κοινότητα πηγαίνει σιγά-σιγά προς C++ και πολύ απλά είναι καλός πελάτης για να την αγνοήσεις. Κακά τα ψέματα, τα περισσότερα λεφτά θα έρθουν από τις ΗΠΑ και την Ευρώπη και τους supercomputers που αγοράζουν.

Η "GPGPU" (που είναι ένας εντελώς κακός όρος, καθώς μια general purpose graphics processing unit είναι οξύμωρο) δεν ήρθε να αντικαταστήσει ούτε υπερυπολογιστές ούτε τίποτα. Είναι ένα ακόμα είδος accelerator (όπως άλλα δεκάδες που έχουν ξεχαστεί σήμερα) το οποίο έτυχε να έρθει τη σωστή στιγμή.

Μια GPGPU δεν είναι κατάλληλη για όλα τα προβλήματα, όπως memory-bound προβλήματα. Αν έχεις να υπολογίσεις κάτι που έχει πολλά iterations για να συγκλίνει ή κάποιο simulation (βλ. nbody) τότε η GPGPU είναι μια χαρά για το μόνον λόγο ότι προσφέρει πάρα πολλά hardware threads. Αν από την άλλη έχεις να κάνεις με προβλήματα όπως του jaco για παράδειγμα, είναι ηλίου φαεινότερο γιατί δε θα δουλέψει - το πρόβλημά σου είναι coarse-grain και δεν μπορείς επουδενί να κάνεις load-balancing και να κρύψεις το memory latency.

Υπάρχουν compilers που σου επιτρέπουν να "μαρκάρεις" (annotate) τον κώδικα με εντολές για το που και πώς να τρέξει ένα κομμάτι κώδικα α λα OpenMP, όπως πχ ο compiler της PGI. Παρόλα αυτά, ακόμα η κοινότητα είναι διστακτική γιατί το να αλλάξεις κώδικα και να τον τεστάρεις για κάτι που είναι τόσο νέο και το πιο πιθανό να πεθάνει σε λίγα χρόνια κοστίζει πολύ.

Το να κάνεις offload δουλειά σε κάποιον accelerator ήταν πάντα δύσκολο και με τις GPGPU και το CUDA δεν είναι καλύτερο. Πρέπει ο προγραμματιστής να διαχειρίζεται το memory consistency model, πρέπει να υπάρχουν εργαλεία που να δείχνουν που είναι το bottleneck και εκατοντάδες άλλα προβλήματα που πολλές ερευνητικές ομάδες ανά τον κόσμο προσπαθούν ακόμα να λύσουν σε massively parallel systems. Με δύο λόγια, ο προγραμματισμός μιας GPGPU είναι δύσκολος, χρονοβόρος και ο κώδικας δεν είναι μεταφέρσιμος.

Υπάρχουν πολλές ιδέες που έδωσαν γρήγορα μηχανήματα, αλλά ήταν τόσο περίπλοκα στον προγραμματισμό που εν τέλει εγκαταλήφθηκαν. Κανείς δεν πρόκειται να επενδύσει σοβαρά σε αυτή τη τεχνολογία εκτός και αν υπήρχε killer application. Η τελευταία δεν υπάρχει και απλά η τεχνολογία της nVidia ή θα σβήσει ή θα ενσωματωθεί σε κάποια CPU για να δημιουργήσει μια manycore αρχιτεκτονική.

Εν τέλει τα προγράμματα τα γράφουν προγραμματιστές και όπως πολύ σωστά είπε ο chameleon, ο προγραμματιστής πρέπει να ξεχνάει οτιδήποτε machine specific. Θα πρέπει να γράφει τον κώδικά του με έναν abstract τρόπο, να μην έχει στο νου του ούτε καν threads. Από εκεί και πέρα πιο low-level προγραμματιστές έχουν τα κατάλληλα abstractions για να τον βοηθήσουν. Και τέλος υπάρχουν οι runtime system developers που κάνουν τα πάντα να δουλεύουν όσο το δυνατόν καλύτερα στην εκάστοτε πλατφόρμα.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

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

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.