我正在做一些矩阵乘法基准测试,如前面在MATLAB为什么矩阵乘法中这么快提到的那样 。
现在,我又遇到了另一个问题,当将两个2048x2048矩阵相乘时,C#与其他矩阵有很大的不同。当我尝试仅乘以2047x2047矩阵时,这似乎很正常。也添加了一些其他内容进行比较。
1024x1024-10秒。
1027x1027-10秒。
2047x2047-90秒。
2048x2048-300秒。
2049x2049-91秒。(更新)
2500x2500-166秒
2k x 2k情况相差三分半钟。
使用2dim数组
//Array init like this
int rozmer = 2048;
float[,] matice = new float[rozmer, rozmer];
//Main multiply code
for(int j = 0; j < rozmer; j++)
{
for (int k = 0; k < rozmer; k++)
{
float temp = 0;
for (int m = 0; m < rozmer; m++)
{
temp = temp + matice1[j,m] * matice2[m,k];
}
matice3[j, k] = temp;
}
}