我正在做一些矩阵乘法基准测试,正如前面提到的 为什么 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;
}
}