MATLAB이 왜 행렬 곱셈에서 그렇게 빠른가?에서 언급 한 것처럼 행렬 곱셈 벤치마킹을하고 있습니다 .
이제 두 개의 2048x2048 행렬을 곱할 때 또 다른 문제가 있습니다 .C #과 다른 것 사이에는 큰 차이가 있습니다. 2047x2047 행렬 만 곱하려고하면 정상적인 것 같습니다. 비교를 위해 다른 것들도 추가했습니다.
1024x1024-10 초
1027x1027-10 초
2047x2047-90 초
2048x2048-300 초
2049x2049-91 초 (최신 정보)
2500x2500-166 초
2k x 2k의 경우 3 분 반 차이입니다.
2 차원 배열 사용
//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;
}
}