最近有在复习深入理解计算机系统,毕竟马上就要考试了还啥也不会,正好以前做实验的时候看过一个学长写的blog,然后他有提到网络旁注的事情,讲到的是blocking技术,然后我感兴趣就去看了一眼……
b话不多说,先来看看题目
题目
简单来说就是计算矩阵乘法,问题是如何利用cache来比较高效的乘。
那来看看他给的码,最终目的是把结果写到C里
代码
1 void bijk(array A, array B, array C, int n, int bsize)
2 {
3 int i, j, k, kk, jj;
4 double sum;
5 int en = bsize * (n/bsize); /* Amount that fits evenly into blocks */
6
7 for (i = 0; i < n; i++)
8 for (j = 0; j < n; j++)
9 C[i][j] = 0.0;
10
11 for (kk = 0; kk < en; kk += bsize{
12 for (jj = 0; jj < en; jj += bsize) {
13 for