下記のチューニングでC#の通常版、SIMD版ともに2倍くらい速くなります。 結果として、C# SIMD版とC++ SIMD版は同等くらいの速度になります。
Simd メソッドを最適化 (1SIMD = 4要素)
Simd メソッドを最適化 (1SIMD = 1要素)
Simd メソッドを最適化 (1SIMD = 2要素)
この3つのコミットで、SIMD版が高速化されます。
Normal メソッドを最適化(ループ最適化)
このコミットで通常版が多少速くなります。
Normal メソッドで unsafe コードを使う(あまり速くはならない)
Normal メソッドを最適化(Vector4 の固定長配列をフィールドとして確保)
これらのコミットで通常版が多少速くなります。
Normal メソッドを最適化(中間変数削除)
これらのコミットで通常版がわずかに速くなります。
下記のチューニングでC#の通常版、SIMD版ともに2倍くらい速くなります。 結果として、C# SIMD版とC++ SIMD版は同等くらいの速度になります。
Simd メソッドを最適化 (1SIMD = 4要素)
Simd メソッドを最適化 (1SIMD = 1要素)
Simd メソッドを最適化 (1SIMD = 2要素)
この3つのコミットで、SIMD版が高速化されます。
Normal メソッドを最適化(ループ最適化)
このコミットで通常版が多少速くなります。
Normal メソッドで unsafe コードを使う(あまり速くはならない)
Normal メソッドを最適化(Vector4 の固定長配列をフィールドとして確保)
これらのコミットで通常版が多少速くなります。
Normal メソッドを最適化(中間変数削除)
これらのコミットで通常版がわずかに速くなります。