Title: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 15, 2011, 01:58:51 am Ανέβηκε η τρίτη εργασία στο ethmmy
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 15, 2011, 02:04:12 am η οποία είναι λίγο παράδοξα διατυπωμένη ως προς το ψευδοκώδικά της
υπαρχουν 1-2 σημεία ασάφειας :P Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 15, 2011, 02:04:58 am θέλει μετάφραση από matlab σε ψευδοκώδικα...
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 15, 2011, 02:10:28 am α οκ
και ελεγα τι μου θυμίζει ::) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: mitsos_dlx on January 15, 2011, 04:52:29 am for ii = i-1 + (1:mT)
Αυτό σημαίνει for (ii=i; ii<i+mT; ii++;) ???? Επίσης εδώ: Y(i,j) = Y(i,j) + F(ii,jj) * T πολλαπλασιάζει τιμή με πίνακα και μετα το βαζει πάλι σε τιμή? :o :o :o Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 15, 2011, 05:26:22 am for ii = i-1 + (1:mT) ναιΑυτό σημαίνει for (ii=i; ii<i+mT; ii++;) ???? αλλά δεν μπορώ να σου πω με σιγουριά αν το ii είναι μεταβλητή ή στο matlab μπορεί να σημαίνει απευθείας πολλαπλασιασμό παραλείποντας το * όπως κάνουν μερικά κομπιουτεράκια. Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 15, 2011, 12:16:09 pm Για κώδικα matlab παντως δε φαίνεται να τρέχει στο matlab
Πετάει Subscripted assignment dimension mismatch στο σημείο Y(i,j) = Y(i,j) + F(ii,jj) * T; For God's sake σε C γραφουμε, δε μπορούσε να το βγαλει σε C? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 15, 2011, 15:02:11 pm for ii = i-1 + (1:mT) Αυτό σημαίνει for (ii=i; ii<i+mT; ii++;) ???? Ναι, πιστεύω έτσι μεταφράζεται σε C. Επίσης εδώ: Y(i,j) = Y(i,j) + F(ii,jj) * T πολλαπλασιάζει τιμή με πίνακα και μετα το βαζει πάλι σε τιμή? :o :o :o Δέν ξέρω :???: Εμένα λάθος μου φαίνεται αυτό, δεν βγάζει κάποιο νόημα. υπαρχουν 1-2 σημεία ασάφειας :P +10Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Salvation on January 15, 2011, 16:51:37 pm Όταν λέει να χρονομετρήσουμε και να συγκρίνουμε τη μέγιστη απόλυτη διαφορά των 2 αποτελεσμάτων, ποιά είναι τα 2 αποτελέσματα;
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 15, 2011, 17:03:03 pm Όταν λέει να χρονομετρήσουμε και να συγκρίνουμε τη μέγιστη απόλυτη διαφορά των 2 αποτελεσμάτων, ποιά είναι τα 2 αποτελέσματα; Το ίδιο αποτέλεσμα θα είναι ουσιαστικά, θα το υπολογίσει μια φορά η CPU και μια φορά η GPU και θα δούμε πόσο πιο γρήγορη είναι η GPUTitle: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Salvation on January 15, 2011, 17:39:21 pm Δηλαδή ουσιαστικά θα υλοποιήσουμε τον ψευδοκώδικα 2 φορές, μια για τον host και μια για τον device και θα χρονομετρήσουμε τους υπολογισμούς;
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 15, 2011, 18:54:09 pm ναι, αυτό κατάλαβα
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 16, 2011, 02:02:22 am καταφερε καποιος να τρεξει cuda σε windows με τον οποιοδηποτε τροπο?!! δεν θελω να καταφυγω στον διαδη!!
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Salvation on January 16, 2011, 02:11:40 am http://digitalerr0r.wordpress.com/2010/12/19/parallel-computing-using-the-gpu-tutorial-3-integrate-cuda-3-2-into-visual-studio-2008/
http://digitalerr0r.wordpress.com/2010/12/03/parallel-computing-using-the-gpu-tutorial-1-getting-started/ Πρέπει να βάλεις κάποια έκδοση του Visual Studio. Όχι την 2010! Βάλε την 2008. Επιπλέον κατέβασε από το site της nvidia το Cuda toolkit 32bit (όχι το 64bit..). Μετά ακολούθησε τις οδηγίες από τη σελίδα. Έτσι θα μπορείς να κάνεις compile .cu αρχεία και μέσα από το IDE του studio και από το command line του studio (nvcc κτλ). Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 16, 2011, 03:20:18 am Επίσης εδώ: Y(i,j) = Y(i,j) + F(ii,jj) * T πολλαπλασιάζει τιμή με πίνακα και μετα το βαζει πάλι σε τιμή? :o :o :o Του έστειλα mail και εντέλει είναι τυπογραφικό, θα βγάλει διόρθωση. Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 16, 2011, 15:01:38 pm Τα δυο αρχεια .run που θελω για εγκατασταση σε linux ποια ειναι?
κανω τα βηματα που λεει στο getting started guide, εγκαθιστω driver και superuser και μετα λεει ":εγκατασταση του δευτερου .run" σαν κανονικος χρηστης??? αφου μονο ενα κατεβαζει....? edit dld edw: 4. Install the SDK (located in the second .run file) as a regular user in the default location, $(HOME)/NVIDIA_GPU_Computing_SDK. Installing as a regular user avoids access issues. Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 16, 2011, 15:09:48 pm βαλτε Ati ρε! παιξτε δίκαια! :P
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 16, 2011, 15:35:12 pm Τα δυο αρχεια .run που θελω για εγκατασταση σε linux ποια ειναι? κανω τα βηματα που λεει στο getting started guide, εγκαθιστω driver και superuser και μετα λεει ":εγκατασταση του δευτερου .run" σαν κανονικος χρηστης??? αφου μονο ενα κατεβαζει....? edit dld edw: 4. Install the SDK (located in the second .run file) as a regular user in the default location, $(HOME)/NVIDIA_GPU_Computing_SDK. Installing as a regular user avoids access issues. http://developer.download.nvidia.com/compute/cuda/3_2_prod/sdk/gpucomputingsdk_3.2.16_linux.run Από ότι ξέρω το SDK περιέχει μόνο παραδείγματα. Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 16, 2011, 15:41:49 pm Τα δυο αρχεια .run που θελω για εγκατασταση σε linux ποια ειναι? κανω τα βηματα που λεει στο getting started guide, εγκαθιστω driver και superuser και μετα λεει ":εγκατασταση του δευτερου .run" σαν κανονικος χρηστης??? αφου μονο ενα κατεβαζει....? edit dld edw: 4. Install the SDK (located in the second .run file) as a regular user in the default location, $(HOME)/NVIDIA_GPU_Computing_SDK. Installing as a regular user avoids access issues. http://developer.download.nvidia.com/compute/cuda/3_2_prod/sdk/gpucomputingsdk_3.2.16_linux.run Από ότι ξέρω το SDK περιέχει μόνο παραδείγματα. OK,απλα το ζηταει και θελω να κανω τα βηματα οπως λεει για τη σωστη εγκατασταση ΕΥΧΑΡΙΣΤΩ @AgentCain Η g210 που εχω αγορασμενη προς 42 ευρω εχει 16 cuda cores.... 8)) Ασε που δεν την παω μια την Ati γιατι αλλαξα μια φορα mobo λογω ασυμβατοτητας >:( Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 16, 2011, 17:36:48 pm @AgentCain Η g210 που εχω αγορασμενη προς 42 ευρω εχει 16 cuda cores.... 8)) Ασε που δεν την παω μια την Ati γιατι αλλαξα μια φορα mobo λογω ασυμβατοτητας >:( Τι την περασες την ατι ρε, δε συμβιβάζεται με οποιαδήποτε mobo. Τι ειναι nvidia? ;D Για τους υπόλοιπους συναδέλφους που δε διαθέτουν ati μπορεί να γίνει η ζωή τους λίγο πιο εύκολη με το WinSCP που επιτρέπει file management μεσω SSH στο διαδη Γραφουμε κώδικα στο πισί μας (ή και απευθείας στο διάδη) και το κάνουμε copy μέσω του προγραμματος. Επισης εχει και επιλογές για αυτόματο sync αν θελουμε Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 16, 2011, 17:58:29 pm Για τους υπόλοιπους συναδέλφους που δε διαθέτουν ati μπορεί να γίνει η ζωή τους λίγο πιο εύκολη με το WinSCP που επιτρέπει file management μεσω SSH στο διαδη Γραφουμε κώδικα στο πισί μας (ή και απευθείας στο διάδη) και το κάνουμε copy μέσω του προγραμματος. Επισης εχει και επιλογές για αυτόματο sync αν θελουμε συμπαθα μας τους linuxαδες, αλλα αλλο ενα προγραμμα που κανει αυτο που το linux κανει απο μονο του LOL PEACE μην αρχιζουμε... ο κωδικας σε C θα ειναι σειριακος? :o Δε λεει τιποτα για παραλληλισμο με pthreads η openmp η μπερδευομαι εγω? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 16, 2011, 19:17:43 pm Για τους υπόλοιπους συναδέλφους που δε διαθέτουν ati μπορεί να γίνει η ζωή τους λίγο πιο εύκολη με το WinSCP που επιτρέπει file management μεσω SSH στο διαδη Γραφουμε κώδικα στο πισί μας (ή και απευθείας στο διάδη) και το κάνουμε copy μέσω του προγραμματος. Επισης εχει και επιλογές για αυτόματο sync αν θελουμε συμπαθα μας τους linuxαδες, αλλα αλλο ενα προγραμμα που κανει αυτο που το linux κανει απο μονο του LOL PEACE μην αρχιζουμε... ο κωδικας σε C θα ειναι σειριακος? :o Δε λεει τιποτα για παραλληλισμο με pthreads η openmp η μπερδευομαι εγω? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 16, 2011, 19:24:41 pm Για τους υπόλοιπους συναδέλφους που δε διαθέτουν ati μπορεί να γίνει η ζωή τους λίγο πιο εύκολη με το WinSCP που επιτρέπει file management μεσω SSH στο διαδη Γραφουμε κώδικα στο πισί μας (ή και απευθείας στο διάδη) και το κάνουμε copy μέσω του προγραμματος. Επισης εχει και επιλογές για αυτόματο sync αν θελουμε συμπαθα μας τους linuxαδες, αλλα αλλο ενα προγραμμα που κανει αυτο που το linux κανει απο μονο του LOL PEACE μην αρχιζουμε... ο κωδικας σε C θα ειναι σειριακος? :o Δε λεει τιποτα για παραλληλισμο με pthreads η openmp η μπερδευομαι εγω? μιλαω για το ξερο C μερος Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 16, 2011, 21:41:13 pm ε ναι... κι εγώ γι' αυτό μιλάω...
εμ να κάνουμε debug σε μία brand new γλώσσα εμ να κάνουμε και σε μία σκέτο new? :P πολύ θα πέσει... Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 19, 2011, 21:02:24 pm (απορία στη C και όχι στην cuda)
Προσπαθώ να μεταφράσω τον κώδικα σε C, αλλά όταν πάω να γεμίσω τους πίνακες με τυχαίες τιμές μου πετάει segmentation fault. Τι κάνω λάθος; Code: int main(){ Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: SolidSNK on January 19, 2011, 21:05:15 pm Χρειάζεσαι ένα βρόχο με malloc. Εσείς έχεις κάνει malloc μόνο για τους pointers οι οποίοι θα δείχνουν σε κάθε σειρά (ή στήλη όπως θες δες το) του πίνακα.
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Salvation on January 19, 2011, 21:09:52 pm Κάνεις τη δεσμευση του πίνακα λαθος. Αν θες να δημιουργήσεις ένα δισδιάστατο πίνακα κάνεις τα εξής:
Ορίζεις πχ double** a; Κάνεις a=(double**)malloc(rows*sizeof(double*)); Μετά for(i=0;i<rows;i++) a[ i ]=(double*)malloc(columns*sizeof(double)); Στη συνέχεια γεμίζεις τον πίνακα με 2 for και χρησιμοποιείς a[ i ] [ j ]. Πρόφανως αυτός δεν είναι και ο μοναδικός τρόπος. Αυτό που κάνεις, αν σε ενδιαφέρει, είναι οτι δημιουργείς αρχικά ένα πίνακα από pointers όσο και ο αριθμός των σειρών. Στη συνέχεια για κάθε ένα από αυτούς δεσμεύεις χώρο ίσο με τον αριθμό των στηλών. Take Care Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 19, 2011, 21:10:49 pm ευχαριστώ :)
edit: yeah, τρέχει! Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 20, 2011, 21:22:30 pm επειδη βλεπω πουλακια απο την κουραση
pF = [zeros(mT-1,nF+2*nT-2); zeros(mF,nT-1), F, zeros(mF,nT-1); zeros(mT-1,nF+2*nT-2)]; σημαινει (nF+2) * nT-2) ετσι και οχι κατι αλλο? οπως ... nF + (2*nT-2) ξερω ειναι απολυτα χαζο αλλα ειμαι ενα με το πατωμα,,,,, :'( Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 20, 2011, 21:48:07 pm nF+2*nT-2 = nf + 2*(nt-1) !! χωριζει τον pF σε κομματια και βαζει 0..
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 20, 2011, 23:13:34 pm nF+2*nT-2 = nf + 2*(nt-1) !! χωριζει τον pF σε κομματια και βαζει 0.. ΕΥΧΑΡΙΣΤΩ ;) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: mitsos_dlx on January 21, 2011, 00:06:14 am Έτρεξε κανένας το σειριακό του πρόγραμμα στο Διάδη?
Εμένα κάνει 8,5 sec (για 2000 2000 24 24) Το βρίσκω περίεργο γιατί στο pc μου κάνει μόνο 3,7 sec. Ενώ στις προηγούμενες εργασίες είχαμε ίδιους σχεδόν χρόνους στα σειριακά τώρα έχει μεγάλη διαφορά... Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 21, 2011, 00:23:39 am Έτρεξε κανένας το σειριακό του πρόγραμμα στο Διάδη? Εμένα κάνει 8,5 sec (για 2000 2000 24 24) Το βρίσκω περίεργο γιατί στο pc μου κάνει μόνο 3,7 sec. Ενώ στις προηγούμενες εργασίες είχαμε ίδιους σχεδόν χρόνους στα σειριακά τώρα έχει μεγάλη διαφορά... Στο Διάδη κάνει 5.92 ενώ στο λαπτοπ μου από το τριπλάσιο και πάνω. Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 21, 2011, 00:42:29 am Λοιπον εγω τρεχω i5 στα 3.2 GHz
το σειριακο μου στη matlab κανει πανω απο 30 seconds για 2000 2000 24 24 στο απλο καλο linux τρεχει σε 2,08??? σα πολυ λιγο δεν ειναι? θα τρεξω και στο διαδη και θα σας πω Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 21, 2011, 00:44:43 am 2000,2000
24,24 2046,2046 Time elapsed: 3.196109sec Υποψιν το προβλημα εχει σωστο μεγεθος 2046 οπως και στη matlab οποτε πιστευω οτι ο κωδικας ειναι σωστος (και τον ειδα να τυπωνει οποτε ειναι οκ οσο μπορω να ξερω) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 21, 2011, 00:48:49 am το 2000 είναι η διάσταση του F
το 24 του T το 2046??? του pF?? και μένα σε 3,09 sec Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 21, 2011, 00:51:46 am το 2000 είναι η διάσταση του F το 24 του T το 2046??? του pF?? και μένα σε 3,09 sec Akribws ;-) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 21, 2011, 00:55:26 am αμα πει και καποιος το ποιημα πως τρεχω σε shellscript for μεσα σε for
dld gia na mhn kanw spasta to " for count in 500 1000 1500 2000 do ./ergasia3.o $count $count 6 6 done " ?? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 21, 2011, 00:56:12 am Τι εγινε αρχισανε τα ευκολα? ;D
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: mitsos_dlx on January 21, 2011, 01:55:28 am Λοιπόν εγώ που έβγαζα 8,5 sec στο Διάδη τώρα βγάζω 3,5.
Η διαφορά είναι ότι έκανα το compile στο pc μου και ανέβασα το εκτελέσιμο. Ως τώρα ανέβαζα το αρχείο .c έκανα το compile στο διάδη. Δεν το καταλαβαίνω πραγματικά... Τόσο μεγάλη διαφορά για ένα απλό κωμάτι κώδικα... Περίεργο... Και ως τώρα να φανταστείτε έκανα compile τις προηγούμενες εργασίες στο Διάδη γιατί πίστευα ότι ίσως είναι καλύτερα, αφού θα έτρεχαν μετά σε εκείνο το μηχάνημα και θα έπαιρνα τους χρόνους... Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: nikos-v on January 21, 2011, 20:08:16 pm sorry an h erwthsh mou einai hlithia alla o pinakas pf ti einai kai pws xrhsimopoieitai?
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 21, 2011, 20:19:30 pm sorry an h erwthsh mou einai hlithia alla o pinakas pf ti einai kai pws xrhsimopoieitai? Ειναι το padding με μηδενικα για να τρεξει ο αλγορυθμος στο ενδιαμεσο σταδιο δες το .m file που ανεβασε στο ethmmy, ειναι "μεταβατικος" και με βαση αυτον γινεται ο υπολογισμος στην ουσια Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 21, 2011, 20:26:11 pm http://stackoverflow.com/questions/2285185/easiest-way-to-test-for-existence-of-cuda-capable-gpu-from-cmake
τρεχοντας κωδικα απο εδω βλεπω 0 cuda devices (τον δικο μου τον ετοιμαζω ακομα) ειναι ιδιοτροπια η μλκια γενικα ? Ετρεξε κανεις cuda κωδικα και να δουλεψε κανονικα? (nvcc δουλεψε το ξερω) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: edenaxas on January 21, 2011, 21:04:14 pm mail pits or nikos sismanis, kati trexei me tin karta.
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 21, 2011, 21:39:14 pm mail pits or nikos sismanis, kati trexei me tin karta. Βασικα ο διαδης δεν παλευει ΕΩΣ ΚΑΘΟΛΟΥ, ουτε ssh μπορει να τον ριξανε για φτιαξιμο..... Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: nikos-v on January 21, 2011, 21:50:15 pm for (int k = 0; i < mf; ++i){
for (int j = 0; j < nf; ++j){ h_F[j] = rand() / (float)RAND_MAX; }} mporei re paidia na m exhghsei kapoios giati moy vgazei segmentation fault sto parapanw? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: nikos-v on January 21, 2011, 21:54:20 pm sorry guys ekana egv malakia to vrhka!
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 22, 2011, 16:06:56 pm http://stackoverflow.com/questions/2285185/easiest-way-to-test-for-existence-of-cuda-capable-gpu-from-cmake τρεχοντας κωδικα απο εδω βλεπω 0 cuda devices (τον δικο μου τον ετοιμαζω ακομα) ειναι ιδιοτροπια η μλκια γενικα ? Ετρεξε κανεις cuda κωδικα και να δουλεψε κανονικα? (nvcc δουλεψε το ξερω) Αν εννοείς αν δούλεψε στον διάδη ,δεν το το δοκίμασα επειδή είναι down. Στο PC μου πάντως ναι τρέχει, αν και κατάφερα 2 φορές να κρασάρω τον Χ server στα λινουξ. Tips: -Αν το κερνελ(η συνάρτηση που τρέχει στην καρτ γραφικών κάνει πάνω από 5 δευτερ. να τελειώσει ο driver την σκοτώνει και δεν σου λέει και τπτ.Χρησιμοποιείστε cudaGetLastError. -η εργασία είναι παλούκι σε σχέση με τις προηγούμενες -διαλέξτε ένα σταθερό μέγεθος για το κάθε block από threads δηλαδή 16χ16 και να αλλάζετε μόνο το μεγεθος του grid. -Αν δεν χρησιμοποιήσετε την shared memory πολύ πιθανό είναι ότι θα σας βγει πιο αργό από αυτό για την cpu Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 22, 2011, 16:42:25 pm Εμενα το cyclic bounary με απασχολει, τα αλλα κααααπως τα εκανα
Τι παιζει ακριβως μπορει καποιος να εξηγησει? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 22, 2011, 16:57:57 pm ΔΕΝ ισχύει το cyclic boundary, το είπε ο ίδιος ο Πιτς
είναι κατάλοιπο από προηγούμενη εργασία Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: nikos-v on January 22, 2011, 19:39:29 pm mporei na moy exhghsei kapoios pws tha kanw padding ton F gia na ftiaxw ton pf?
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 22, 2011, 22:15:54 pm mporei na moy exhghsei kapoios pws tha kanw padding ton F gia na ftiaxw ton pf? Θα φτιάξεις έναν νέο πίνακα με μέγεθος sizeF+2*(sizeT-1), όπου θα δώσεις αρχικές τιμές στις άκρες 0 και στη μέση τις τιμές του F Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: mitsos_dlx on January 23, 2011, 13:36:28 pm Αν έχω δεσμεύσει τους πίνακες μου ως δισδιάστατους τότε πως μπορώ να τους μεταφέρω σωστά στην device memory ?
Επίσης, η μεταφορά από device σε shared memory γίνεται αποκλειστικά και μόνο από τη συνάρτηση kernel? Δηλαδή κάθε νήμα θα μεταφέρει στην αρχή από ένα κομματακι από αυτά που θα χρειαστουν και μετά ολα μαζί θα συνεχίσουν στους υπολογισμούς? Επειδή αυτό είναι πολύ μπερδεμα (έχεις να μεταφέρεις ένα περίεργο μέγεθος από στοιχεία) και θα καθυστερήσει κιόλας αν υπάρχει καμια άλλη ιδέα... Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 23, 2011, 13:43:02 pm Αν έχω δεσμεύσει τους πίνακες μου ως δισδιάστατους τότε πως μπορώ να τους μεταφέρω σωστά στην device memory ? Επίσης, η μεταφορά από device σε shared memory γίνεται αποκλειστικά και μόνο από τη συνάρτηση kernel? Δηλαδή κάθε νήμα θα μεταφέρει στην αρχή από ένα κομματακι από αυτά που θα χρειαστουν και μετά ολα μαζί θα συνεχίσουν στους υπολογισμούς? Επειδή αυτό είναι πολύ μπερδεμα (έχεις να μεταφέρεις ένα περίεργο μέγεθος από στοιχεία) και θα καθυστερήσει κιόλας αν υπάρχει καμια άλλη ιδέα... βασικα εδω εγω το εχω απορια ειδα ενα κολπο που κανει δεσμευση οπως και στη C ** και μετα μονοδιαστατους * για καθε στηλη πχ κατα τα αλλα καποιος αλλος ελεγε για cudapitch για διςδιαστατη αποθηκευση , και οτι η μονοδιαστατη θα επρεπε να προβλεπει οτι ο δισδιαστατος C γινεται 1d σε cuda..... Τωρα για το shared στα παραδειγματα με get δεν το κανει? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: nikos-v on January 23, 2011, 15:49:53 pm float* host_T = (float*)malloc(mt*nt*sizeof(float));
To didiastato pinaka den mporw na ton desmeysw etsi? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 23, 2011, 15:53:23 pm float* host_T = (float*)malloc(mt*nt*sizeof(float)); To didiastato pinaka den mporw na ton desmeysw etsi? diavase mia selida pio pisw einai grammeno sou leipei ena * apo double pointer paw se single pointer einai grammena psaksta ;) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: nikos-v on January 23, 2011, 16:04:58 pm thanks to eida!
mporei kapoios na dwsei kamia idea pws tha ginoun oi praxeis sto kernel gia didiastatous pinakes,giati de vgaxw akrh? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 23, 2011, 16:26:38 pm thanks to eida! mporei kapoios na dwsei kamia idea pws tha ginoun oi praxeis sto kernel gia didiastatous pinakes,giati de vgaxw akrh? File gia na niwseis kalutera sou lew oti den eisai monos... an vgalw kati 8a to postarw, elpizw na praksei to idio kai kanas allos......\ "PITS kana va8mo gia ta palia 8a doume arage?" Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 23, 2011, 18:41:20 pm float* host_T = (float*)malloc(mt*nt*sizeof(float)); To didiastato pinaka den mporw na ton desmeysw etsi? Σωστό είναι. Aλλα αν θες να δευσμευσεις μνημη στο device χρησιμοποιησε cudaMallocPitch και για μετακίνηση cudaMemcpy2D Εγω το τελείωσα αλλα εχει κάποιο πρόβλημα για μεγάλες διαστάσεις. Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 23, 2011, 20:52:03 pm παιδια ποιο ακριβως κομματι του κωδικα μετραμε σε χρονο? Μαζι με τη δημιουργεια των πινακων ή οχι?
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 23, 2011, 21:00:47 pm τη πραξη αυτη καθαυτη μετρας προφανώς, όχι τη δεσμευση μνήμης
Επίσης η CUDA δε τη παλεύει κάστανο με πράξεις στη global. Η shared ειναι must αλλα δύσκολη η σύλληψη των ορίων της :P Χρησιμοποίησε κανείς λογική πινάκων 2D ή όλοι την κανετε με 1D? Γιατί εμενα ο απλός κώδικας βγήκε με τη 1η για 2D αλλα στη CUDA τα βρήκε μπαστούνια με την cudamalloc. Και αποτι διαβαζω η cudamalloc3D εχει προβλήματα επιδόσεων σε σχέση με τη cudamalloc Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: nikos-v on January 23, 2011, 21:22:00 pm float* host_T = (float*)malloc(mt*nt*sizeof(float)); To didiastato pinaka den mporw na ton desmeysw etsi? Σωστό είναι. Aλλα αν θες να δευσμευσεις μνημη στο device χρησιμοποιησε cudaMallocPitch και για μετακίνηση cudaMemcpy2D Εγω το τελείωσα αλλα εχει κάποιο πρόβλημα για μεγάλες διαστάσεις. xrhsimopoieis dhladh logikh 1D pinaka me ton tropo ayto h kanw lathos? alla me ayton ton tropo ton pf pws ton dhmiourgeis.mporeis na mou dwseis mia idea? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 23, 2011, 21:35:43 pm Code: /**== Copy the contents of the F table inside the pF table ==**/ Code: CUDA_SAFE_CALL(cudaMallocPitch((void **)&dev_pF,&pitchF,(nF + 2*nT -2)*sizeof(int),mF + 2*mT -2)); και για να προσπελασεις το Code: pF[i][j] Code: int *rF=(int *)((char *)pF + (pitchF)*(i)); Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 23, 2011, 21:37:55 pm τη πραξη αυτη καθαυτη μετρας προφανώς, όχι τη δεσμευση μνήμης Επίσης η CUDA δε τη παλεύει κάστανο με πράξεις στη global. Η shared ειναι must αλλα δύσκολη η σύλληψη των ορίων της :P Χρησιμοποίησε κανείς λογική πινάκων 2D ή όλοι την κανετε με 1D? Γιατί εμενα ο απλός κώδικας βγήκε με τη 1η για 2D αλλα στη CUDA τα βρήκε μπαστούνια με την cudamalloc. Και αποτι διαβαζω η cudamalloc3D εχει προβλήματα επιδόσεων σε σχέση με τη cudamalloc εγω χρησιμοποίησα ένα __shared__ Buffer 24Χ24 για το Τ που τον γεμιζαν τα threads tou block Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Salvation on January 23, 2011, 21:40:58 pm Χωρίς shared στο διάδη τι χρόνους παίρνετε για τη gpu και τη cpu;
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 23, 2011, 21:58:35 pm τη πραξη αυτη καθαυτη μετρας προφανώς, όχι τη δεσμευση μνήμης Επίσης η CUDA δε τη παλεύει κάστανο με πράξεις στη global. Η shared ειναι must αλλα δύσκολη η σύλληψη των ορίων της :P Χρησιμοποίησε κανείς λογική πινάκων 2D ή όλοι την κανετε με 1D? Γιατί εμενα ο απλός κώδικας βγήκε με τη 1η για 2D αλλα στη CUDA τα βρήκε μπαστούνια με την cudamalloc. Και αποτι διαβαζω η cudamalloc3D εχει προβλήματα επιδόσεων σε σχέση με τη cudamalloc εγω χρησιμοποίησα ένα __shared__ Buffer 24Χ24 για το Τ που τον γεμιζαν τα threads tou block Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 23, 2011, 22:01:30 pm τη πραξη αυτη καθαυτη μετρας προφανώς, όχι τη δεσμευση μνήμης Επίσης η CUDA δε τη παλεύει κάστανο με πράξεις στη global. Η shared ειναι must αλλα δύσκολη η σύλληψη των ορίων της :P Χρησιμοποίησε κανείς λογική πινάκων 2D ή όλοι την κανετε με 1D? Γιατί εμενα ο απλός κώδικας βγήκε με τη 1η για 2D αλλα στη CUDA τα βρήκε μπαστούνια με την cudamalloc. Και αποτι διαβαζω η cudamalloc3D εχει προβλήματα επιδόσεων σε σχέση με τη cudamalloc εγω χρησιμοποίησα ένα __shared__ Buffer 24Χ24 για το Τ που τον γεμιζαν τα threads tou block υπεθεσα μέγεθος πολλαπλάσιο. είναι αρκεα δυσκολη η εργασία. Μην το παρακάνουμε :P Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: mitsos_dlx on January 23, 2011, 22:04:15 pm εγω χρησιμοποίησα ένα __shared__ Buffer 24Χ24 για το Τ που τον γεμιζαν τα threads tou block Αυτό τον Buffer λοιπόν που τον όρισες? Μέσα στη kernel συνάρτηση? Αν τον ορίσεις μέσα τότε κάθε ένα thread δεν θα δεσμεύσει από ένα τέτοιο πίνακα? Αλλιώς από έξω πως μπορεις να τον δεσμεύεις? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 23, 2011, 22:13:32 pm εγω χρησιμοποίησα ένα __shared__ Buffer 24Χ24 για το Τ που τον γεμιζαν τα threads tou block Αυτό τον Buffer λοιπόν που τον όρισες? Μέσα στη kernel συνάρτηση? Αν τον ορίσεις μέσα τότε κάθε ένα thread δεν θα δεσμεύσει από ένα τέτοιο πίνακα? Αλλιώς από έξω πως μπορεις να τον δεσμεύεις? Μεσα τον δεσμευσα εγω. η δεσμευση αυτη γινεται ανα block οχι ανα thread. Αυτο σημενει το __shared__. Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: mitsos_dlx on January 23, 2011, 23:06:42 pm Οντως έτσι είναι τελικά...
Και είχα φάει τρελό κόλημα τόση ώρα σε αυτό το σημείο. Νόμιζα ότι θα έχω 256 τέτοιους πίνακες... :P Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 24, 2011, 01:30:12 am Πειτε και κανα χρονο κανενας..... οχι οτι τελειωσα και μετρησα, απλα να ξερω που πρεπει να παει ...(οταν παει με το καλο....!) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 24, 2011, 02:12:21 am CPU 1.7563
GPU 2.0979 no share yet πρέπει να πάει ΚΑΤΩ από το παραπάνω :D (δε φταίω γω η global είναι αργή) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 24, 2011, 02:29:36 am CPU 1.7563 cpu εννοεις τον σειριακο κωδικα??? :o :o Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 24, 2011, 02:43:41 am μη τρομάζεις δεν ειναι τα μεγιστα μεγέθη προβλήματος
ειναι για τελικό πίνακα Υ 512χ512 Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 24, 2011, 02:58:25 am Πολυ κίνηση έχει πέσει στον διάδη 8)) :P
δεν μπορώ να τρέξω τπτ κάποιος τρέχει ένα προγραμμα εδω και 1 ωρα :P || Ο χρηστης papadoma να σταματησει το προγραμμα του πλζ Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 24, 2011, 12:45:43 pm Πειτε και κανα χρονο κανενας..... οχι οτι τελειωσα και μετρησα, απλα να ξερω που πρεπει να παει ...(οταν παει με το καλο....!) Λοιπόν για mF=nF=2009 και mT=nT=24 Στο δικό μου το Pc με GeForce 8800GTS με 96 cores 0.23 sec στο διάδη με Quadro NVS 290 με 12 cores 2.13 sec Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: mitsos_dlx on January 24, 2011, 15:26:17 pm Μόνο 12 cores έχει;;;;
Γιατί θυμάμαι τον Πιτσιάνη να λέει κάτι για 16*8=128 threads παράλληλα;;; Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 24, 2011, 15:45:09 pm Μόνο 12 cores έχει;;;; Γιατί θυμάμαι τον Πιτσιάνη να λέει κάτι για 16*8=128 threads παράλληλα;;; Μπερδευεσαι (σικ) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 24, 2011, 23:54:54 pm χωρις shared..
$ ./test 24 24 2000 2000 CPU :: Time elapsed: 26.776605 GPU :: Time elapsed: 34.918441 ή ο διαδης ειναι φορτωμενος ή κατι αλλο παιζει... 26sec για το σειριακο δεν ειναι πολλα??? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 25, 2011, 00:05:31 am χωρις shared.. $ ./test 24 24 2000 2000 CPU :: Time elapsed: 26.776605 GPU :: Time elapsed: 34.918441 ή ο διαδης ειναι φορτωμενος ή κατι αλλο παιζει... 26sec για το σειριακο δεν ειναι πολλα??? ναι, νομίζω οι περισσότεροι έχουν γύρω στα 3-5 sec Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: arashi on January 25, 2011, 00:42:24 am χωρις shared.. $ ./test 24 24 2000 2000 CPU :: Time elapsed: 26.776605 GPU :: Time elapsed: 34.918441 ή ο διαδης ειναι φορτωμενος ή κατι αλλο παιζει... 26sec για το σειριακο δεν ειναι πολλα??? https://mug7.ee.auth.gr/ganglia/?c=diades o diadhs den einai fortwmenos, alla den fainetai h gpu etsi/....LOL esu apo thn allh den xrhsimopoieis -O4 Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 25, 2011, 01:17:29 am σωστος!!!!! :D :D
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 25, 2011, 11:25:03 am Παιδια τι παιζει με τα ορια της shared? Πως ξερουμε ποσα bytes χωραει?
Π.χ. ολον τον Τ τον χωραει ή πολλα ζηταω... ::) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 25, 2011, 12:56:35 pm Παιδια τι παιζει με τα ορια της shared? Πως ξερουμε ποσα bytes χωραει? Π.χ. ολον τον Τ τον χωραει ή πολλα ζηταω... ::) ο διάδης έχει 16384 bytes shared memory ανά block. Οπότε ναι. Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: nikos-v on January 25, 2011, 16:46:27 pm Code: /**== Copy the contents of the F table inside the pF table ==**/ Code: CUDA_SAFE_CALL(cudaMallocPitch((void **)&dev_pF,&pitchF,(nF + 2*nT -2)*sizeof(int),mF + 2*mT -2)); και για να προσπελασεις το Code: pF[i][j] Code: int *rF=(int *)((char *)pF + (pitchF)*(i)); //compute the result for (int i=0;i<(mf+mt-1);i++) { for(int j=0;j<(nf+nt-1);j++){ for(int ii=0;ii<mt;i++){ for(int jj=0;j<nt;j++){ host_Y[i*(nf+nt-1)+j]=host_Y[i*(nf+nt-1)+j] + host_pF[i*(nf+nt-1)+j +ii*nt+jj]*host_T[ii*nt+jj]; } } } } mporeis na me vohthiseis na diortwsw ton kwdika gia ton ypologismo toy apotelesmatos sth cpu? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 25, 2011, 17:09:02 pm ο pf που εχεις πρεπει να εχει διαφορετικο ορισμα..
host_pF[(i+ii)*pfn+j+jj] , οπου pfn η διασταση n του pf! (pfn = nf+2*(nx-1)) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: nikos-v on January 25, 2011, 22:10:22 pm ο pf που εχεις πρεπει να εχει διαφορετικο ορισμα.. host_pF[(i+ii)*pfn+j+jj] , οπου pfn η διασταση n του pf! (pfn = nf+2*(nx-1)) to ekana etsi alla pali trexei synexeia kai kollaei, de termatizei! Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 25, 2011, 22:12:49 pm for(int ii=0;ii<mt;i++){
for(int jj=0;j<nt;j++){ διορθωσε και τους δεικτες!! ;) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: nikos-v on January 25, 2011, 22:22:02 pm thanks re file!hxera oti kanw malakia alla apo th zalada den to evlepa!!!
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 25, 2011, 22:24:40 pm Παιδια τι παιζει με τα ορια της shared? Πως ξερουμε ποσα bytes χωραει? Π.χ. ολον τον Τ τον χωραει ή πολλα ζηταω... ::) ο διάδης έχει 16384 bytes shared memory ανά block. Οπότε ναι. στη shared εχουμε: 24*24 για τον Τ + [2*(24-1)+16] * [2*(24-1)+16] για τον pF.. (16*16 το μεγεθος του block) συνολο= 4420 * 4 bytes για τους float = 17680.. που κανω λαθος?? κατι απο ολα αυτα μηπως δεν χρειαζεται?? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 25, 2011, 23:28:23 pm Παιδια τι παιζει με τα ορια της shared? Πως ξερουμε ποσα bytes χωραει? Π.χ. ολον τον Τ τον χωραει ή πολλα ζηταω... ::) ο διάδης έχει 16384 bytes shared memory ανά block. Οπότε ναι. στη shared εχουμε: 24*24 για τον Τ + 16*16 για τον Υ + [2*(24-1)+16] * [2*(24-1)+16] για τον pF.. (16*16 το μεγεθος του block) συνολο= 4676 * 4 bytes για τους float = 18704.. που κανω λαθος?? κατι απο ολα αυτα μηπως δεν χρειαζεται?? δεν ξέρω πως το υλοποίησες αλλά αν κάθε thread υπολογίζει ενα στοιχείο του πίνακα Y τότε αντι για ένα shared πίνακα Υ μπορείς να ορισεις απλά εναν Code: int result; που αυτόματα αποθηκεύεται σε register και όταν τελειώσει ο υπολογισμός των γράφεις στη θέση που πρέπει στον Y που έιναι στην global memory. Επίσης ο buffer για πίνακα pF δεν πρέπει να είναι [2*(24-1)+16] * [2*(24-1)+16] αλλα [24-1 + 16][24-1 + 16] αφού στον υπολογισμό το κάθε thread χρειάζεται ένα υπο-πίνακα 24χ24 του pF. Αλλά αυτός είναι διαφορετικό για κάθε thread και έχει ως αρχικό σημειό 0,0 τα i,j του συγκεκριμένου thread. Άρα για το μέγιστο μέγεθος λογικά είναι το παραπάνω. Αυτά ισχύουν μόνον αν αντιμετωπίσαμε το πρόβλημα με τον ίδιο τρόπο. Ερώτηση: Στην εργασία λέει Quote συγκρίνει τη μέγιστη διαφορά των 2 αποτελεσμάτων Τι εννοεί?? να αφαιρέσουμε το πίνακα Υ που υπολογίσαμε με την CPU από αυτόν που βρήκαμε με την GPU?? Ή αναφέρεται σε χρόνους εκτέλεσης ?? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 25, 2011, 23:39:33 pm To 1o
γιατί όπως μας είπε και ο Πιτς, στην CUDA δεν ασχολήθηκαν τόσο με την ακρίβεια όσο με την ταχύτητα, οπότε υπάρχει μια απόκλιση της ταξης των E-5 Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 25, 2011, 23:43:19 pm To 1o γιατί όπως μας είπε και ο Πιτς, στην CUDA δεν ασχολήθηκαν τόσο με την ακρίβεια όσο με την ταχύτητα, οπότε υπάρχει μια απόκλιση της ταξης των E-5 Ok thx. :) Ακόμη μία ερώτηση. Σας είπε ο Πιτσ. ότι οι πίνακες πρέπει να έχουν μέσα float και όχι πχ int?? PS: εγώ δεν έχω δει κάποια απόκλιση πάντως. Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 26, 2011, 00:08:13 am Επίσης ο buffer για πίνακα pF δεν πρέπει να είναι [2*(24-1)+16] * [2*(24-1)+16] αλλα [24-1 + 16][24-1 + 16] αφού στον υπολογισμό το κάθε thread χρειάζεται ένα υπο-πίνακα 24χ24 του pF. Αλλά αυτός είναι διαφορετικό για κάθε thread και έχει ως αρχικό σημειό 0,0 τα i,j του συγκεκριμένου thread. Άρα για το μέγιστο μέγεθος λογικά είναι το παραπάνω. Αυτά ισχύουν μόνον αν αντιμετωπίσαμε το πρόβλημα με τον ίδιο τρόπο. ετσι σκεφτομουν οτι πρεπει να ειναι ο pF (attach) ωστε ολα τα threads να εξυπηρετηθουν σωστα.. εσυ παιρνεις μονο το κομματι στα αριστερα?? ή κατι αλλο? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 26, 2011, 00:27:49 am Καινούργιοι χρονοι:
μέγιστο προβλημα 2000χ2000 24χ24 CPU 27.9 GPU 22.4 (χρήση Global) GPU 9.6 (χρήση Shared) ερώτηση προς κάθε γνώστη: Εχει νόημα να αναθέσουμε σε κάθε thread του block να ανεβάσει στη shared ενα κομματάκι του υποπινακα του pF που χρειάζεται? Προς το παρόν μονο το thread 00 ανεβαζει αλλα σκέφτομαι μήπως δε γίνεται ολα τα thread να γράψουν παραλληλα στη shared, οπότε και να τα βάλω να το κανουν όλα, να μη κερδίσω τπτ γιατί σε κατασταση εγγραφής να τελειώνουν σειριακά Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 26, 2011, 00:32:21 am Σας είπε ο Πιτσ. ότι οι πίνακες πρέπει να έχουν μέσα float και όχι πχ int?? PS: εγώ δεν έχω δει κάποια απόκλιση πάντως. Νομίζω μόνο στους float εμφανίζει προβλημα. Εκεί με την μαντισα κτλ :P Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 26, 2011, 00:53:15 am ερώτηση προς κάθε γνώστη: Εχει νόημα να αναθέσουμε σε κάθε thread του block να ανεβάσει στη shared ενα κομματάκι του υποπινακα του pF που χρειάζεται? Προς το παρόν μονο το thread 00 ανεβαζει αλλα σκέφτομαι μήπως δε γίνεται ολα τα thread να γράψουν παραλληλα στη shared, οπότε και να τα βάλω να το κανουν όλα, να μη κερδίσω τπτ γιατί σε κατασταση εγγραφής να τελειώνουν σειριακά Όσον αφορα το παραπάνω ειχα μια 2η σκέψη Ακόμα και αν η shared δεν επιτρέπει παραλληλη εγγραφή, σίγουρα θα γίνει κάποιο παραλληλο fetch από τη global Οπότε με το να μοιράσω τη δουλεια στα threads, επεσα από το 9.6 στο 1.9 Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 26, 2011, 01:09:45 am ερώτηση προς κάθε γνώστη: Εχει νόημα να αναθέσουμε σε κάθε thread του block να ανεβάσει στη shared ενα κομματάκι του υποπινακα του pF που χρειάζεται? Προς το παρόν μονο το thread 00 ανεβαζει αλλα σκέφτομαι μήπως δε γίνεται ολα τα thread να γράψουν παραλληλα στη shared, οπότε και να τα βάλω να το κανουν όλα, να μη κερδίσω τπτ γιατί σε κατασταση εγγραφής να τελειώνουν σειριακά Όσον αφορα το παραπάνω ειχα μια 2η σκέψη Ακόμα και αν η shared δεν επιτρέπει παραλληλη εγγραφή, σίγουρα θα γίνει κάποιο παραλληλο fetch από τη global Οπότε με το να μοιράσω τη δουλεια στα threads, επεσα από το 9.6 στο 1.9 Ναι τ κάθε thread αν βοηθάει στην αντιγραφή έχει μεγάλη βελτίωση. Επίσης αν το κάθε thread δεν αντιγράφει συνεχόμενα στοιχειά αλλά αν πχ αντιγράφει το i στοιχείο βοηθάει το επόμενο να είναι το i + BLOCK_SIZE για να γίνονται σε bursts οι αντιγραφές όταν τα threads εκτελούνται ταυτόχρονα Άλλαξα σε float και έχω μια διαφορά 0.000076 Επίσης για κάποιο λόγο με float έχω καλύτερη απόδοση ετσι σκεφτομουν οτι πρεπει να ειναι ο pF (attach) ωστε ολα τα threads να εξυπηρετηθουν σωστα.. εσυ παιρνεις μονο το κομματι στα αριστερα?? ή κατι αλλο? Στο attach έχω πως καταλαβαίνω τον buffer για τον pF. Είναι έτσι επειδη αν δεις την πράξη Code: Y[i*(nF+nT-1)+j]+=pF[(i+ii)*(nF+2*nT-2)+j+jj]*T[ii*nT+ jj]; για συγκεκριμένα i και j τα ii και jj αυξάνουν μόνο άρα ο πίνακας θα είναι προς μόνο μία κατεύθυνση. Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 26, 2011, 11:43:43 am για να τρεξουμε το cuda πρεπει να βαλουμε καμια βιβλιοθηκη? Επειδη δεν εχω καρτα με cuda και τρεχω στο Διαδη, δεν μου αναγνωριζει τις εντολες __global__ κλπ. :(
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 26, 2011, 15:43:30 pm δεν ξερω αν κανω κατι λαθος αλλα αυτη τη στιγμη ο διαδης δεν τρεχει τιποτα σε cuda... (αν και κανει compile με nvcc!!)
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 26, 2011, 15:45:53 pm για να τρεξουμε το cuda πρεπει να βαλουμε καμια βιβλιοθηκη? Επειδη δεν εχω καρτα με cuda και τρεχω στο Διαδη, δεν μου αναγνωριζει τις εντολες __global__ κλπ. :( <cuda.h> έβαλες; Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 26, 2011, 15:57:01 pm δεν ξερω αν κανω κατι λαθος αλλα αυτη τη στιγμη ο διαδης δεν τρεχει τιποτα σε cuda... (αν και κανει compile με nvcc!!) πάτα top και δες αν κάποιος άλλος τρέχει κάτι γιατί η κάρτα γραφικών μόνο μία εργασία τη φορά μπορεί να τρέχει. για να τρεξουμε το cuda πρεπει να βαλουμε καμια βιβλιοθηκη? Επειδη δεν εχω καρτα με cuda και τρεχω στο Διαδη, δεν μου αναγνωριζει τις εντολες __global__ κλπ. :( Φρόντισε να τα αρχεία σου να τελειώνουν σε .cu και όχι .c επίσης να κάνεις compile με nvcc oxi gcc Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 26, 2011, 16:13:50 pm απο σήμερα το πρωί η κάρτα δε τη παλεύει
Χθες το βράδυ παντως κατα τις 1-2 που τον άφησα, δούλευε κανονικά :P Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 26, 2011, 16:15:33 pm Αχα! Ωστε εσυ την χαλασες Αλεξ!!! :P :P
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 26, 2011, 16:21:49 pm you got me! 8))
της έβαλα να κάνει τόσο intensive δουλειά με το υπεργαμάτο μου πρόγραμμα που κάηκαν οι καταχωρητές της :P μουαχα! Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 26, 2011, 18:02:41 pm You are evil incarnate!!!! ^boil^ ;D
Και επειδη περασε πολλη ωρα και δεν εχω ρωτησει τιποτα λεω να συνεχισω την παραδοση και να ζητησω τα φωτα σας!! Ενω το nvcc το κανει καλα οταν παω να τρεξω το εκτελεσιμο μου βγαζει Code: error while loading shared libraries: libcudart.so.3: wrong ELF class: ELFCLASS32 Το γοογλαρα και λεει πρεπει να βαλω το σωστο παθ, αλλα ειμαι στον Διαδη...πρεπει να τις ανεβασω εγω τις βιβλιοθηκες? Αλλιως που ξερω γω που βρισκονται εκει μεσα... ::) Σορυ αν ειναι χαζη ερωτηση αλλα δεν σκαμπαζω και πολλα απο σερβερς.. :-[ (αχ αυτη η nvidia τι μας κανει) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 26, 2011, 18:14:55 pm check your email regularly :P
Quote Αγαπητή τάξη, Εάν παίρνετε το σφάλμα error while loading shared libraries: libcudart.so.3: wrong ELF class: ELFCLASS32 Αλλάξτε το .bash_profile ώατε να μοιάζει με το παρακάτω: ==> # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH <== Και μετά logout και ξανα-login για να πάρει τα νέα! Ν Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 26, 2011, 18:29:02 pm Υεεεεεεεεεε!!!! Δουλευει!!! Θενκς Αλεξ!!! :)
Αμαν και αυτος ο Πιτς, το webmail το εχω καταργησει απο καιρο, ενα φθινοπωρο και μια ανοιξη μπαινω... :P :P Τρεχω να πιασω το Διαδη μην μπει κανενας αλλος... ^suspicious^ Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Salvation on January 26, 2011, 18:35:58 pm Μα ο Διάδης δεν δουλεύει. Τι να τρέξεις; :P
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 26, 2011, 18:38:37 pm pthreads ^kaloe^
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 26, 2011, 18:46:35 pm Τιιιιιιιιιιιιιιιιιιιιιιιιιιι????????
Τι εννοεις ο Διαδης δε δουλευει? Και τοση ωρα πού τρεχω? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Salvation on January 26, 2011, 18:52:27 pm Δηλαδή εκτελείς στο διάδη κανονικά το προγραμμα σου; Παίρνεις αποτελέσματα κανονικά;
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 26, 2011, 18:57:06 pm ΕΕΕΕΕ οχι...κολλαει καπου αλλα υποθετω ειναι προβλημα του προγραμματος γιατι τωρα ξεκινω το debugging.. ::)
Γιατι, εσυ Βικ δεν τρεχεις? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Salvation on January 26, 2011, 18:58:18 pm Όχι γιατι δν λειτουργεί ο διάδης...
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 26, 2011, 19:02:39 pm Τι εννοεις δε λειτουργει? Τι σου βγαζει?
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Salvation on January 26, 2011, 19:03:28 pm Βρε βάζεις τις τιμές και δν σου βγάζει αποτελέσματα
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 26, 2011, 19:05:12 pm κολλαει ή τερματιζει αμεσως?
Γιατι εμενα κολλαει και ψαχνω να βρω που... Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Salvation on January 26, 2011, 19:06:09 pm Κολλάει, κρεμάει πώς το λένε επιτέλους :D
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 26, 2011, 19:08:25 pm Καλα ντεεε, μη βαρας!!! ^sfyri^ :P
Και τωρα τι κανουμε, να στειλουμε στον Πιτς? εδιτ: καλα ο Διαδης δεν την παλευει, εκτος του οτι κολλησε δεν δεχεται και τα ctrl-C, ctrl-Z... Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Salvation on January 26, 2011, 19:10:08 pm Του έστειλα εγώ, αλλά στείλτε και σεις μπας και νιώσει :P
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: SolidSNK on January 26, 2011, 20:13:55 pm Εν τω μεταξύ το Σάββατο θα ανέβαιναν οι βαθμοί της 1ης εργασίας.
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 26, 2011, 20:47:26 pm Εν τω μεταξύ το Σάββατο θα ανέβαιναν οι βαθμοί της 1ης εργασίας. Mwahahahahahahahahaahahahaha :P Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: SolidSNK on January 26, 2011, 20:57:38 pm yea
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: Time_Tripper on January 27, 2011, 10:44:02 am Τι εγινε ρε παιδια, παλι επεσε ο Διαδης?
Μα καλα, τι στο καλο συμβαινει??? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: lpool on January 27, 2011, 15:22:05 pm Τώρα νομίζω λειτουργεί καλα ο κ. Διάδης!
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: lpool on January 27, 2011, 15:29:34 pm Εν τω μεταξύ το Σάββατο θα ανέβαιναν οι βαθμοί της 1ης εργασίας. Βρε μην αγχώνεσαι, ΦΕΕΕΕΕΕΕΕΕΕΕΕΕΕΕΤΑΑΑΑΑΑΑΑΑΑΑΑΑ... Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 27, 2011, 15:31:32 pm ο Διαδης λειτουργει κανονικα αλλα παιρνω τραγικους χρονους για τη gpu...
στο δικο μ pc που ετρεχα το προγραμμα ειχα βελτιωση 2-8x... ξερει καποιος τι παιζει?? φταιει ο διαδης ή κατι αλλο?? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: lpool on January 27, 2011, 15:42:25 pm Ο Διάδης δεν εχει καλή κάρτα, φταίει και αυτό. Τι χρόνους παίρνεις?
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 27, 2011, 15:57:37 pm πχ για 18x18 2000x2000 στο δικο μ pc εχω:
8.455sec cpu 1.964sec gpu στο διαδη: 2.332 sec cpu 12.735 sec gpu Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: lpool on January 27, 2011, 16:02:09 pm Στη shared τι έβαλες?
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 27, 2011, 16:06:45 pm τον Τ που τον περναει το 1ο thread και ενα κομματι του pF (καθε thread μεταφερει τα στοιχεια που χρησιμοποιει..)
λες να ειναι αργο λογω της shared? μου κανει εντυπωση που απο συστημα σε συστημα εχει τετοια διαφορα.. στο διαδη τι χρονους παιρνεις περιπου? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: lpool on January 27, 2011, 16:17:08 pm Η shared το κάνει γρήγορο, εγώ προσωπικά στο Διάδη παίρνω cpu 30, gpu 1.5. Πρώτον, το να βάζεις ένα νήμα να φέρνει όλο τον Τ είναι δώρο άδωρο επειδή τα άλλα νήματα θα πρέπει να το περιμένουν για να κάνουν τους υπολογισμούς τους. Αν το καλοσκεφτείς είναι ακριβώς το ίδιο με το να μην φέρεις τον Τ στη shared, ίδιοι χρόνοι βγαίνουν. Τον F τον φέρνεις με loop? Δηλαδή
for i=0:μέγεθος του κομματιού του F φέρε το στοιχείο αμα είναι η σειρά σου end Αυτό κάνεις? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: tomshare3 on January 27, 2011, 16:23:50 pm εχεις δικαιο για τον Τ αλλα με ειχε κουρασει το debug οταν εβαλα να τον φερουν ολα τα νηματα απο λιγο..
για τον F κανω αυτο που λες.. και το μεγεθος που μεταφερει ειναι οσο ο Τ.. ξερω, θα μπορουσε να γινει πολυ καλυτερα ωστε να μην γινεται ασκοπη δουλεια στα νηματα αλλα εχουμε και λειτουργικα σε 5 μερες!!! :D ισως βγαλω το -Ο4 να φαινεται πιο αργη η cpu!! thx παντως! Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: lpool on January 27, 2011, 16:29:08 pm Το μέγεθος του F δεν είναι όσο ο T, μεγαλύτερο είναι. Θα ήταν όσο ο Τ άμα μιλούσαμε για ένα νήμα/block, αλλά εδώ έχουμε περισσότερα. Πάντως κι εγώ στην αρχή με loop το έκανα και μετά το άλλαξα και έβαλα το κάθε νήμα να γράφει τα συγκεκριμένα στοιχεία που πρέπει (άμα το block σου είναι 16χ16 τότε τα στοιχεία που γράφει το κάθε νήμα έιναι μέχρι 6) και οι χρόνοι ήταν θεαματικά καλύτεροι.
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: SolidSNK on January 27, 2011, 23:29:24 pm Όποιος είναι ο tfoudou να ρίξει ένα kill στη process του γιατί δεν μπορούμε να τρέξουμε τπτ.
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 31, 2011, 16:10:37 pm Τώρα που φύγανε τα ΣΑΕ, ας ασχοληθούμε με κάτι ενδιαφέρον...
Ερώτηση: Είναι κάποιος εδώ που χρησιμοποίησε την cudaMallocPitch? αν ναι, α)η παράμετρος pitch τι ακριβώς δηλώνει; β)στο παράδειγμα στο programmers guide λέει αυτά: Code:
Αυτό γεμίζει τον πίνακα devPtr με κάτι; και επίσης, Γράφω στον κώδικά μου και την kernel για κάθε 2D mem allocation που θέλω να κάνω στην global όπως είναι και μετά για να προσπελάσω τα στοιχεία του πίνακα παίρνω το devPtr[ i][j]? ή η συγκεκριμένη kernel κάνει κάποια δουλειά για το παράδειγμα; Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: AgentCain on January 31, 2011, 16:24:17 pm Ρίξε μια ματιά εδώ Vasso
http://developer.download.nvidia.com/compute/cuda/2_3/toolkit/docs/online/group__CUDART__MEMORY_g80d689bc903792f906e49be4a0b6d8db.html ;) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 31, 2011, 16:25:57 pm Ρίξε μια ματιά εδώ Vasso http://developer.download.nvidia.com/compute/cuda/2_3/toolkit/docs/online/group__CUDART__MEMORY_g80d689bc903792f906e49be4a0b6d8db.html ;) Σε αγαπώ :) Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 31, 2011, 16:39:52 pm float* pElement = (float*) ((char*)BaseAddress + Row * pitch) + Column; Πες ότι δε ρώτησα ποτέ... μονοδιάστατα καλύτερα... Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 31, 2011, 21:48:28 pm Έχει κανείς ιδέα γιατί παίρνω device time =0 αλλά δεν υπάρχει error στην kernel ?
Αντιγράφονται τα πάντα όλα στη global και μετά όταν καλείται η συνάρτηση που κάνει τις προσθέσεις, απλά.. την προσπερνάει! Giati??? Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: SolidSNK on January 31, 2011, 21:53:02 pm cudaThreadSynchronize() μετά την kernel σου.
edit: corrected Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 31, 2011, 21:53:34 pm Έκανες
Code: cudaThreadSynchronize(); Ετσι. Code: kernel<<<grid,block>>>(dev_Y,dev_pF,dev_T,mT,nT,mF,nF,pitchF,pitchY,pitchT); Και το από κάτω δουλεύει λογικά. Edit: Ξέρει κανείς τι παίζει με την τελευταία εργασία?? Edit 2: Αντιγράφονται τα πάντα όλα στη global Μου άρεσε αυτο ;D ;D ;D ;D Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 31, 2011, 22:00:43 pm έκανα __syncthreads() μέσα στην kernel, το ίδιο δεν είναι;
τώρα άλλαξα κάτι όρια στους πίνακες που ήταν λάθος και δουλεύει. Αλλά έκανε κάτι χρόνους, για 2000,2000, 10,10 έδωσε 15 sec και για 2000, 2000,24, 24 ακόμη το περιμένω... edit: γύρισε. 91 sec. Δεν είναι καλά ,ε; :P Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: vasso on January 31, 2011, 22:03:15 pm Επίσης κάτι άσχετο... αφού οι εργασίες είναι 4, γιατί μετράνε 20%?
Title: Re: [Παράλληλα & Διανεμημένα] 3η εργασία Post by: DoomGuard on January 31, 2011, 22:05:55 pm edit: γύρισε. 91 sec. Δεν είναι καλά ,ε; :P ;D ;D ;D ;DΝομίζω πως και για μόνο global είναι πολύ. Αν δείξεις το κομμάτι που κάνει τις πράξεις ίσως μπορέσουμε να βοηθήσουμε. Επίσης κάτι άσχετο... αφού οι εργασίες είναι 4, γιατί μετράνε 20%? Τη τελευταία μάλλον θα την θεωρεί πιο σημαντική ?? |