[Advcomparch] blocking

Stelios steliosman at gmail.com
Sun Jul 5 16:17:41 EEST 2009


 Ήθελα να ρωτήσω σχετικά με τις διαφάνειες του 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 ποιές εννοούνται οι εκδόσεις που υλοποιήσαμε;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cslab.ece.ntua.gr/pipermail/advcomparch/attachments/20090705/fbcaa6e5/attachment.htm>


More information about the Advcomparch mailing list