前回は、DGEMM と言いながらα、βがそれぞれ1としていた。
もちろん処理もその分少なくなってしまう。
今回はα、βの演算、さらには SIMD も用いている。まずは実行時間だが、SIMD による高速化の効果が表れている。また、行列A、行列Bを2行ずつ扱うことで、少しだが DMA 転送に対する処理の割合を大きくすることにした。その結果、前回に比べ、実行時間が半分ほどに改善されている。
2行ずつ扱ってはいるが、Double Buffer モデルのように、DMA 転送完了待ちと、処理を並列しているわけではないので、まだまだ早くなりそうである。
gcc [msec]
SPE 512X512 1024x1024 2048x2048
1 370 2750 21500
2 215 1550 11500
3 165 1150 8500
4 140 900 6800
5 125 800 6050
6 120 720 5450
もちろん処理もその分少なくなってしまう。
今回はα、βの演算、さらには SIMD も用いている。まずは実行時間だが、SIMD による高速化の効果が表れている。また、行列A、行列Bを2行ずつ扱うことで、少しだが DMA 転送に対する処理の割合を大きくすることにした。その結果、前回に比べ、実行時間が半分ほどに改善されている。
2行ずつ扱ってはいるが、Double Buffer モデルのように、DMA 転送完了待ちと、処理を並列しているわけではないので、まだまだ早くなりそうである。
gcc [msec]
SPE 512X512 1024x1024 2048x2048
1 370 2750 21500
2 215 1550 11500
3 165 1150 8500
4 140 900 6800
5 125 800 6050
6 120 720 5450