最後の仕上げにアンロール。
- CELL 特有の処理を極力行わず、float 型を使い、最適化はコンパイラオプションに任せる。(870.21 ms)
- マルチコアに拡張する。(299.61 ms, 2.9 倍速くなった)
- メモリフローを改善する。(138.30 ms, 2.2 倍速くなった)
- SIMD 化する。(86.62 ms, 1.6 倍速くなった)
- いまここ→大きくアンロールする。
- アセンブラでガリガリ。
SPU_4x4_C3.elf 1192952520 clk, 1.11 clk/FP // 372.80 ms
SPU_4x4_C3.elf 273248200 clk, 0.25 clk/FP // 85.39 ms
こちらも元々 -funroll-loops が効いていため、全く効果が無い。