以下是计算两个向量点积的程序段: float dotproduct (float x L83 f float y [8] ) float sum=0.0; int i; for (i=0;i<8;1++) sum+=x [i] *y [i) ; re

admin2017-04-28  35

问题 以下是计算两个向量点积的程序段:
float  dotproduct (float  x L83 f float  y [8] )
float sum=0.0;
int i;
for (i=0;i<8;1++)
sum+=x *y [i) ;
return sum;
}
试回答以下问题:
在上述(2)中条件不变的情况下,如果将数组x定义为float[12],则数据访问的命中率又是多少?

选项

答案若(2)中条件不变,数组x定义了12个元素,则12个元素共有48B,使得y从主存第7块开始存放,即x[0]~x[3]在主存第4块,x[4]~x[7]在主存第5块,x[8]~x[11]在主存第6块中,y[0]~y[3]在主存第7块,y[4]~x[7]在主存第8块。因而,x[i]和y[i](0≤i≤7)就不会映射到同一个Cache行中。每调入一个主存块,装入4个数组元素,第一个元素不命中,后面3个总命中,所以命中率为75%。

解析
转载请注明原文地址:https://jikaoti.com/ti/JnfjFFFM
0

最新回复(0)