[Advcomparch] blocking

Konstantinos Nikas knikas at cslab.ece.ntua.gr
Sun Jul 5 17:13:53 EEST 2009


Ναι, θα έπρεπε να είναι jj+B.

Γενικότερα, το blocking αλλάζει τη σειρά με την οποία τα δεδομένα 
προσπελαύνονται, αλλά δεν πρέπει να επηρεάζει την εγκυρότητα του κώδικα. 
Επομένως, πρέπει να γίνουν και πάλι όλες οι επαναλήψεις.

Για την άσκηση στο ερώτημα b το blocking θα εφαρμοστεί ταυτόχρονα στα 
loops. Στο c αναφερόμαστε στις εκδόσεις που υλοποίησατε για τα ερωτήματα 
a και b.

K.

Stelios wrote:
>  Ήθελα να ρωτήσω σχετικά με τις διαφάνειες του cache optimization, 
> πάνω στο κομμάτι του κώδικα για blocking που φαίνεται παρακάτω.
>
> /* After */
> for (jj = 0; jj < N; jj = jj+B)
> for (kk = 0; kk < N; kk = kk+B)
> for (i = 0; i < N; i = i+1)
> for (j = jj; j < min(jj+B-1,N); j = j+1)
> {r = 0;
> for (k = kk; k < min(kk+B-1,N); k =
> k+1)
> r = r + y[i][k]*z[k][j];
> x[i][j] = x[i][j] + r;
> };
>
> Μήπως πρέπει να είναι min(jj+B,N) αντι για jj+B-1 και αντίστοιχα το 
> ίδιο για το kk+Β; γιατί έτσι όπως είναι, γίνεται μια λιγότερη 
> επανάληψη σε καθεμια απ'τις δυο γραμμές και ο κώδικας δεν φαίνεται να 
> είναι ισοδύναμος με τον αρχικό. Αν κάνω λάθος μπορείτε να μου 
> εξηγήσετε τη χρησιμότητα του -1;
> Και δυο διευκρινίσεις στην άσκηση: στο ερώτημα b του cache blocking, 
> πρέπει να εφαρμόσουμε blocking σε i,j και k ταυτόχρονα ή στα τρία 
> ξεχωριστά; στο ερώτημα c ποιές εννοούνται οι εκδόσεις που υλοποιήσαμε; 
> ------------------------------------------------------------------------
>
> _______________________________________________
> Advcomparch mailing list
> Advcomparch at lists.cslab.ece.ntua.gr
> http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch
>   

-- 
Dr. Konstantinos Nikas
Computing Systems Laboratory
School of Electrical and Computer Engineering
National Technical University of Athens

Tel: +30-210-7722495
e-mail: knikas at cslab.ece.ntua.gr
http://www.cslab.ece.ntua.gr/~knikas




More information about the Advcomparch mailing list