1
我需要儘量減少下面代碼中的拖動總量,任何人都可以快速查看並告訴我在哪裏投入我的努力? 我試過幾個性能比較分析,但結果無關..如何最小化下面代碼中的浮點運算
int twoDToOneD(int i, int j, int nRows)
{
return j*nRows + i;
}
double* addMatrices(int m, int n, double* A, double* B, bool add)
{
double* C = new double[m*n];
double* pA = A;
double* pB = B;
double* pC = C;
int i = m*n;
while(i--)
{
if(add)
{
*pC = *pA + *pB;
} else
{
*pC = *pA - *pB;
}
pC++;
pA++;
pB++;
}
return C;
}
感謝, 卓
你不能使用SIMD的任何原因?並且看到這是全部基於矩陣的,它可能作爲GPGPU內核執行得最好。 – Necrolis 2012-02-27 10:35:31
我可以在VS10中使用SIMD嗎? – user1235325 2012-02-27 10:42:07
是的,你可以在任何版本的vc6上使用,更多關於你的目標平臺是否支持SSE1/2/3/4 – Necrolis 2012-02-27 10:49:04