L3が悪さをするというのであれば、何が不思議ペナルティを引き起こしているのでしょうか?
・ キャッシュデータのFragmenntation?
・ それともContamination?
まあ、いずれにせよL3を綺麗にして上げなくてはいけないような気がします。
あくまで想像ですが、、
PhenomIIのL3キャッシュについては詳細に理解していなかったので、ちょっとググってみると、
以下のような記事を見つけました。
DOS/Vパワレポ
『PhenomIIのキャッシュは排他式で、L3のカバー範囲には各コアのL1、L2も含まれる』
とのこと。
ほほぉ~、実際に演算していないコアのL1、L2も含まれるのか・・・
この辺が関係しているのかな??
他にも考えていたことがあったので、とりあえず回してみることに。
環境は、M/BがCrosshairIII、CPUが955BEでありますが、それ以外はこれまでとほぼ同等です。
【追加検証①】
L3に余分な情報を入れないよう、パイで一杯にして上げればいいのかな?と考え、
・ まず8Mを走らせ、
・ 続いて、16Mを走らせる
というのをやってみました。で、なんと1回目は『不思議ちゃん』ゼロ!

☆ 不思議ちゃんゼロ : 1Loop 約19秒、7m31.344s
これまでで最速です。
これはっ!
と再起動して、2回目を試みたのですが、、、

☆ 不思議ちゃん5回 orz : 1Loop 約19秒、7m36.282s
5回発生し、5秒遅くなっています。。。
まあ、最初がまぐれだったのですね '`,、(゚∀゚) '`,、
【追加検証②】
L3が各コアのL1、L2キャッシュも含んでしまい、その分汚れているのだとすれば、演算するコア以外を止めてしまえばいいわけです。
パイ焼き計算を特定のコアにやらせるだけなら、タスクマネージャから選択すればいいのですが、今回の狙いは、
・ 演算しないコアにL1、L2を汚染させない
ということなので、boot.iniのオプションで起動時からシングルコアとなるよう設定します。
やり方は簡単で、
/numproc=1
を加えるだけです。さあ、どうでしょうか?
・・・
1回目 : 不思議ちゃんエラーゼロです。
ただ、まぐれかもしれないからなぁ・・・
2回目 : おっ!

☆ 不思議ちゃんゼロ : 1Loop 約19.05秒、7m32.531s
2回連続、不思議ちゃん発生無し!
ただし、微妙に速度が落ちています。これは無理矢理シングル化した弊害なのでしょう。
その後、3回目OK、4回目OKと不思議ちゃん出てきません!
そして5回目、、、

☆ 不思議ちゃんゼロヽ(´ー`)ノ
しかも、これまでと違い、同じパイで連続して焼いても問題ありません!
よし!技掛けたるっ!
で、、、

☆ 技有り 7m30.828s : 不思議ちゃんゼロ!
これまでで最速ですヽ(´ー`)ノ
シングルコア化しての速度低下のペナルティも、技を掛けることで相殺されます。
ヨシッ!克服したぞっ! ヽ(´ー`)ノ
まとめると、
・ PhenomIIではL3の影響で、16Mパイ焼き時に速度低下が発生(1Loop約1秒)
・ これはboot.ini編集でのシングル化(/numproc=1)で回避出来る
・ シングル化により多少パイ焼き速度が低下するが、技を掛けることで挽回可能
てな感じですか。
ちなみに、今回の仮説が正しいとすれば、IntelのCore i7で、『不思議ちゃん』が発生しないのは、i7のキャッシュがPhenomIIと違いL3キャッシュ範囲にL1、L2を含まないためだと思われます。
まだ、ぶっかけ時の挙動が確認出来ていませんが、多分上手く行くような気が・・・
今晩試してみます!
■
2 件のコメント:
やりましたね~おめでとう御座いますw
でもなんで16MだけL3絡みのバグがあるのか・・・
それが本当の不思議ちゃんかもですねぇ
アタクシもまだ、うpしてないデータなんですが
①強制シングル
②taskmgrで1コア
③2コアのままRealtimeのみ
と各5回ずつデータ取ったんですが
タイム的には
③>②>① の順位でした
差は約2秒間隔位です(av)
そもそもL1,L2のキャッシュが溢れた時点でL3を使用する訳ですから
魚六さん(?)の説が正しいとすると・・・
データプリフェッチのエラッタが16Mだけに起ると言う事が考えられますねぇ
XSのπ_MODがコンパイラーを何使ってるか解りませんが
INTELで起らないとするならば・・・
「例」のINTELC++絡みの・・・(ry
かもしれませんね・・・
ともあれお疲れ様でした~
WR獲れる様頑張って下さいw
tsubasaさん、こんばんは~!
何とか克服出来たようです。
検証など色々お手伝いしていただき、ありがとうございます<(_ _)>
シングル化による速度ペナルティは、正にtsubasaさんの検証結果の通りですよね。パイ焼きはシングルタスクなのにマルチコアが速い、、、これも不思議ちゃん??
16Mだけ不思議ちゃんなのは、ホント不思議ですね~
16Mだけアルゴリズムがちょっと違うのか、計算で扱うデータ量がちょうどPhenomIIのL3サイズと相性が悪いのか、tsubasaさんの言われるようにデータプリフェッチが上手く行っていないのか??
あと、コンパイラーですか・・・
確かに色んなのでコンパイルしてみたら面白いかもしれませんね!
(プチ)WRは、先ほど狙いに行って撃沈しました。。。
本日2度目の極例で、母板が乾ききっていなかったようです。。。
次回、頑張ってみます!
ではでは~
コメントを投稿