THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Παράλληλα και Διανεμημένα Συστήματα => Topic started by: vasso on January 15, 2011, 01:58:51 am



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
+10


Title: 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 και θα δούμε πόσο πιο γρήγορη είναι η GPU


Title: 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 η μπερδευομαι εγω?
είναι λίγο προχώ να προγραμματίζουμε με CUDA και pthreads ταυτόχρονα... δεν είναι;


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 η μπερδευομαι εγω?
είναι λίγο προχώ να προγραμματίζουμε με CUDA και pthreads ταυτόχρονα... δεν είναι;

μιλαω για το ξερο 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(){
    int i,j;
    int ii,jj;
    float **F1, **T, **F;
    int sizeF1, sizeT, sizeF;
    float **Y;
   
    printf("Give me F size and T size\n"); // take input data
    scanf("%d %d",&sizeF1, &sizeT);
    F1=(float **) malloc (sizeF1*sizeF1*sizeof(float));
    T=(float **) malloc (sizeT*sizeT*sizeof(float));
    Y=(float **) malloc ((sizeF1+sizeT-1)*(sizeF1+sizeT-1)*sizeof(float));
   
    for(i=0;i<sizeF1;i++)   //fill arrays with random values
       for(j=0;j<sizeF1;j++)
          F1[i][j]=(float)(rand() % 1000);
       
   for(i=0;i<sizeT;i++)
       for(j=0;j<sizeT;j++)
          T[i][j]=(float)(rand() % 1000);


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 ==**/
    for (i=0;i<mF;i++) {
for(j=0;j<nF;j++){
pF[(i+mT-1)*(nF + 2*nT -2)+nT-1+j]=F[i*nF+j];
}
    }

Code:
	CUDA_SAFE_CALL(cudaMallocPitch((void **)&dev_pF,&pitchF,(nF + 2*nT -2)*sizeof(int),mF + 2*mT -2));


CUDA_SAFE_CALL(cudaMemcpy2D((void *)(dev_pF),pitchF,(void *)pF,(nF + 2*nT -2)*sizeof(int),(nF + 2*nT -2)*sizeof(int),(mF + 2*mT -2),cudaMemcpyHostToDevice));



και για να προσπελασεις το
Code:
pF[i][j]
στον πίνακα στο device
Code:
                        int *rF=(int *)((char *)pF + (pitchF)*(i));
                        rF[j];



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
Έλυσες και το πρόβλημα της μη ακέραιας διαίρεσης του Y σε blocks ή υπεθεσες μέγεθος πολλαπλάσιο του 16? Ή ξέρω γω μείωσες το 16 μέχρι να είναι ακέραιο πολλαπλάσιό του


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
Έλυσες και το πρόβλημα της μη ακέραιας διαίρεσης του Y σε blocks ή υπεθεσες μέγεθος πολλαπλάσιο του 16? Ή ξέρω γω μείωσες το 16 μέχρι να είναι ακέραιο πολλαπλάσιό του

υπεθεσα μέγεθος πολλαπλάσιο. είναι αρκεα δυσκολη η εργασία. Μην το παρακάνουμε :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 ==**/
    for (i=0;i<mF;i++) {
for(j=0;j<nF;j++){
pF[(i+mT-1)*(nF + 2*nT -2)+nT-1+j]=F[i*nF+j];
}
    }

Code:
	CUDA_SAFE_CALL(cudaMallocPitch((void **)&dev_pF,&pitchF,(nF + 2*nT -2)*sizeof(int),mF + 2*mT -2));


CUDA_SAFE_CALL(cudaMemcpy2D((void *)(dev_pF),pitchF,(void *)pF,(nF + 2*nT -2)*sizeof(int),(nF + 2*nT -2)*sizeof(int),(mF + 2*mT -2),cudaMemcpyHostToDevice));



και για να προσπελασεις το
Code:
pF[i][j]
στον πίνακα στο device
Code:
                        int *rF=(int *)((char *)pF + (pitchF)*(i));
                        rF[j];


//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:

#include<stdio.h>
#include<cuda.h>
#define height 50
#define width 50

// Device code
__global__ void kernel(float* devPtr, int pitch)
{
    for (int r = 0; r < height; ++r) {
        float* row = (float*)((char*)devPtr + r * pitch);
        for (int c = 0; c < width; ++c) {
             float element = row[c];
        }
    }
}

//Host Code
int main()
{

float* devPtr;
size_t pitch;
cudaMallocPitch((void**)&devPtr, &pitch, width * sizeof(float), height);
kernel<<<100, 512>>>(devPtr, pitch);
return 0;
}


Αυτό γεμίζει τον πίνακα 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();
Αμέσως μετά το kernel???

Ετσι.
Code:
	kernel<<<grid,block>>>(dev_Y,dev_pF,dev_T,mT,nT,mF,nF,pitchF,pitchY,pitchT);
cudaThreadSynchronize();

Και το από κάτω δουλεύει λογικά.

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%?

Τη τελευταία μάλλον θα την θεωρεί πιο σημαντική ??