cellutils で性能評価 take.2
前回 は cellutils の bandwidth という RAM-LS 間の性能を測るソフトを使用しましたが、今回は eip_bandwidth をいうソフトを使用して、EIB (Element interconnect bus) 自 体の性能を測ってみます。
このソフトも 6 SPE の PS3 ではそのまま使用できませんでしたので修正を 加えています。
試してみたい方は、前回と同様に cellutils に以下の patch を適用し、 eib_bandwidth を make してください。
patch-cellutils-r68-eib_bandwidth-0.1eib_bandwidth 概要
- 任意の 2 SPE でペアを作り、ペアとなる SPE 同士で LS - LS の DMA 転 送 (get) を 1.6GB 行う。よって、8 SPE の場合の総転送量は12.8GB (1.6GB*8)。
- どの SPE でペアを作るかが選択可能 (-p) となっている (選択によって測 定値は変化する)。
- SPE 数が 8 限定だったので、PS3 用に 6 SPE に修正。ペアのパターンも 5 種類作成。総転送量は 9.6GB (1.6GB*6)。
実行結果
| パターン (-p) | SPE pair | bandwidth (GB/s) |
| 0 | 0 <-> 3 | 152.513342 |
| 1 <-> 4 | ||
| 2 <-> 5 | ||
| 1 | 0 <-> 1 | 137.775224 |
| 2 <-> 3 | ||
| 4 <-> 5 | ||
| 2 | 0 <-> 2 | 141.184581 |
| 1 <-> 4 | ||
| 3 <-> 5 | ||
| 3 | 0 <-> 5 | 151.451285 |
| 1 <-> 4 | ||
| 2 <-> 3 | ||
| 4 | 0 <-> 4 | 115.377573 |
| 1 <-> 5 | ||
| 2 <-> 3 |
簡単な考察
EIB の理論値 204.8 GB/s より測定値 (最大値 152 GB/s) が低い
- たしかに EIB は 204.8GB/s だが、EIB - SPE 間の帯域は 25.6GB/s であ り、25.6*6=153.6GB/s なのでほぼ理論値に等しい値と言える。
理論値よりかなり低い値 (141GB/s, 137GB/s, 115GB/s) の場合がある
- 付属の README に 8 SPE の場合の測定値が書いてあるが、こちらも理論値 よりかなり低い値の場合がある。
- EIB は、時計回り 2 本、反時計回り 2 本の計 4 本のバスから構成されて おり、どっち回りのバスを使用するかは転送対象となる LS (SPE) のバス上の距 離によって決まる。理論値より低い値の場合は、転送が片方の回りに偏ったこと によって起こっていると思われる。
- 上記が正しいとすると、最適化方法の一つとしてどの処理をどの SPE に割 り当てるかということが浮上してくる。が、PS3 の場合は LSI の歩留まりを向上 するために物理的に 1 SPE 殺しており、かつどの物理 SPE が殺されているかわ からないため、この最適化をやりすぎると動作する PS3 と 動作しない PS3 と か出てくるかもしれない。かな、、
最悪時のパターンは?
- 付属の README によると理論値の 1/2-1/3 になる場合もあるようなので、 もっと悪い場合のパターンもあるかもしれないが、ソフトから見える SPE が物 理的にどの SPE なのかわからないので今回は追求していません。


