re:re:CPU関連の話

http://streakeagle.blog15.fc2.com/blog-entry-499.html


>ただ、同じコードを複数スレッドで動作させる場合、非共有だと二つのL2でコードを重複してキャッシュしてしまって、そういう場合にヒット率が下がるんじゃないかなぁ、と。

これはもったいないよね(^^; せめて命令キャッシュだけでも共有すればねえ

> まぁ、「共有だとなんとか載って、非共有だと載らない」という状況はあまり無さそうですが。
このへんはシミュレーションではっきり答えも出せそうですね。確かにそんな感じがします。


> 私は次期バージョンでハッシュを少し改良して、ハッシュコードだけを保存する表と実データを保存する表に分けようと思ってるんですよ。そうすれば、ハッシュコードはL2に載りそうなのでハッシュにヒットするかどうかの判定が高速化出来るんじゃないかと考えています。
 それは面白いですね。詰め将棋じゃなくて通常探索は、そもそもそんなにハッシュヒットしないらしいので、むしろハッシュ容量を減らして、L2収めるのも面白いかも?
 コードだけ入れて、実データは、ポインターでアクセスってことになるんでしょうかね。


> あと、手を表すオブジェクトやハッシュコードの計算に使う乱数は全スレッドで共有する上、書き換えないのでロックが不要です。それに加え、何とかL2に載る位のサイズです。なので、コンピュータ将棋には共有の方が有利じゃないかと思っています。

 ふーむ。確かにそうですねえ。
 技術的には、共有より、非共有で高速転送のほうが難しい気がするんですが、
 AMDはどう考えてるんでしょうねえ? 盲点だったんですかねえ……
 本来、マルチプロセッサはCPUは別のソケットだから、共有メモリを作っても、転送がすごく遅くなるじゃないですか。
 だから、共有しようという発想が無かったんですかね?
 でも、同じダイにマルチコアで乗せれば、共有してもなんとかなる。
 なんか、共有しないともったいない気がしてきました(^^;;




> ちなみに私はTransmeta信者です。もうパソコン向けにはCPUを売ってないみたいですが (泣
 そうなんですね。
 いわゆるコンパイラに並列抽出をさせてVLIWと、CPUが回路で自分でするスーパースケーラと分けると、
 CPUがソフトで実行時に並列抽出するTransmetaのやり方が好きだってことですね?


> おー、PARROTですか。すっかり忘れていました。これにx86の皮をかぶったIA-64を足せば最強! とか言ってみます。

 PARROTとかのアプローチはTransmetaな感じですよね?
 IA-64自体は、普及しないから悪いだけで、方式自体はすごく良いと私も思います。
 あまり詳しくないですが、Itaniumuだと、並列数を仮想的にしておいて、実際のハードの並列度が将来増えても、コードはそのまま有効になるんですよね?
 VLIWの欠点をカーバーしてますよね。
 ただ、普及しないネックとして、互換性は、
 x86の皮を被せれば、良いということですね。
 この仕組みって、x86からIA-64のコードに変換した後の結果をキャッシュできるようにすれば、変換での遅延とか無くせますよね。


> メニーコアになると多数のコアが同時にキャッシュアクセスする可能性が高まるので、共有型の方が設計が難しくなりそうです。SunのNiagaraでは8コア(同時実行スレッドは32)でL2を共有してますが、同時アクセスはどうなってるか気になります。
 なるほど。
 ただ、非共有だとコアごとにL2用意することになると、レイアウト的にももったいないと思うんですよね。
 たとえば8coreで1MBx8の非共有L2があるとすると、全体で8MBもあるのに、コア単体は1MBしか使えない(そしてあふれる)
 Niagaraの記事を見ると、8wayでもL2同時アクセスは4wayで充分と考えてるようですね。
 スレッドレベルのパイプラインが、Niagaraは面白いと思います。
 通常の命令レベルのパイプラインより、粒度が荒い並列処理ですね。


> 今年前半はAMD・後半はIntel優勢になりそうですね。来年以降、AMDの新コアが出て競争が激化して欲しいです σ(^_^;)
 Intelの株価は、これから上がるでしょうね。昨日は、Edyに50億円投資のニュースも出てましたけど、
 SonyのハイビジョンVOD事業として、Edy決済を核に、日本のデジタルホームに進出してくるんだと思います。


>> 詰め将棋もありますけど、静止探索をやっても面白いと思います。
>確かにそれも面白そうですね。私の場合は、末端での評価関数が複雑な上チョコチョコと実装が変わるので、静止探索は難しそうですが。
 ハードで静止探索をやるなら、評価関数はばっさりシンプルにすることになると思いますね。
 たとえば、駒得だけとかでもいいかも。王の位置で、フィルターしてやって、位置の評価だけでも入れておけば、そこそこ動くような気がします。