矩陣、浮點運算測試報告

 

轉載自:http://dev.21tx.com/2004/11/10/12460.html

1)使用D3DXMatrixMultiply進行矩陣相乘
2)使用優化的4元數算法模擬矩陣相乘(相乘的結果與1相同)
3)最笨的辦法計算矩陣相乘(要算64個乘法、48個加法、以及若干賦值)
4)使用SSE彙編計算矩陣相乘(要算64個乘法、48個加法、以及若干賦值)
5)使用xmmintrin指令集計算矩陣相乘

結果表明:
1)最快,估計不僅指令進行了優化,算法也進行了優化
2)是1的4~5倍,與3相比,證明算法起了作用
3)是1的10倍左右
4)與3差不多,我ft,這是爲什麼?我明明用的是彙編啊?怎麼速度一點也沒快!!!
5)與4差不多。

經驗教訓:
1)不能直接聲明float[4] f這樣的浮點數組,由於對其問題,在彙編語言中運行不了,應該這樣聲明__declspec(align(16)) float[4] f; 或者這樣聲明
union sse4 {
     __m128 m;
     float f[4];
};
2)那麼矩陣就是這樣聲明的了:
union sse16 {
     __m128 m[4];
     float f[4][4];
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章