PCWatch - 相対的に大人しい設計のAMD次世代CPU「ZEN」の浮動小数点/SIMDユニットを見て思ったこととか。
まあ、記事にもある通り、伝統的にAMDのSIMDは微妙な感じで、その伝統はZenにも引き継がれるらしい。
| Zen | Skylake |
整数SIMD (論理/加減算) | 128bit x? | 256bit x3 |
整数SIMD(積算/シフト) | 128bit x? | 256bit x2 |
整数SIMD(shuffle/blend) | 128bit x? | 256bit x1 |
浮動小数SIMD (MUL+ADD) | 128bit x4 | 256bit x2 |
浮動小数SIMD (FMA) | 128bit x2 | 256bit x2 |
L1-D Read | 128bit x2 | 256bit x2 |
L1-D Write | 128bit x1 | 256bit x1 |
基本は128bitなので、「256-bit命令は2個の128-bit SIMDマイクロOPに分解して実行」するらしい。256bit演算を使えば倍速、とかではないので256bit演算を使うメリットはやや小さいわけで、考えられる256bit演算を使うメリット・デメリットは
メリット・2倍にループアンロールしたようなものなので、依存関係のない演算が増え、実行ポートをアクティブに保ちやすくなる(だろう)。
デメリット・128bit演算から256bit演算にする際に、shuffle命令などが余計に増える場合があり、逆に遅くなる可能性がある。
…とまあ、もう128bitのままでいいや、という感じなのかもしれない。
とりあえず、x264/x265で重要なのは整数SIMDなので、そっちがどのくらいの性能なのか気になるところ。とはいえ、最大でも128bit x4だからなあ…。
スポンサーサイト