CPU関連の話

http://streakeagle.blog15.fc2.com/blog-entry-497.html#more
GA将!のアベントさんは、CPUまわりの話も多いので、そのへんも興味深く読んでるのですが、


>もしこの前提が成り立つなら、PentiumD方式のL2(コア毎にL2を持ち、FSBを通してL2間のコピーをする)でも問題無いですからね。
 ここは、AMDHyperTransportでしたっけ? その速さが売りですよね?
 だからこそのL2を別にできるってことじゃないですか?
 実際、どのくらいPenDのL2が別(というかすべてが別)で転送が遅くなるかは、
 MYCOM PCWEBで大原さんが詳細に論じてました。以前。


 別にAMD信者ではないですが、
>ただ、クライアントPCではL2共有の方が性能が上がるという話を聞いた事があるので、この場合はサーバ用途を重視しているという事になるのでしょうか。
 このへんの話はPCwatachで記事を見た覚えがありますね。
 結局、同じプロセスで、スレッドレベルの並列だと、コードも共有だし、L2共有が有利。
 プロセスが複数動くようなシステムだと、L2非共有の方が効率がいいみたいな話だったかな?
 個人レベルのクライアントだと、メインのアプリはひとつでしょうから(人間が一人だし)L2共有が向いてるかも? ノートPCユーザーとか。
 その点、サーバーは、いろんなデーモンとかいっぱい動くでしょうし、同時にトランザクションを裁かないといけないし、L2非共有が有利なんでは?
 しかも非共有の欠点である、動機にかかる転送遅延も、AMDなら問題が少ないわけで。
 共有してると有利なような気はしますが、よく考えると同じコードが別のスレッドで動いていても、コードサイズがL2を超えてると、キャッシュされるコードは変わってきますから、ヒットミスも起き易くなりますよね?
 実際にL2でメモリを共有したい場合も、SMPだと、じっさいどれだけありますかね?
 その際は、ロックなんかもいるでしょうし。


 将棋だと、ハッシュを共有することになるでしょうけど、ハッシュは1.5GBとか割り当てるので、1MBとか2MBレベルの共有ハッシュがあってもうまくいかない気もします。
 実際に、並列処理のアルゴリズムを考える場合、探索する局面のハッシュが被らないように割り当てると、互いに排他処理をする必要性が下がるので、より性能のよいアルゴリズムになるんじゃないかと思います。
 あと、どっちを使うかは、ビジネス上の戦略という気もします。
 サーバーか、クライアントかとか。


 自分のマシンがAthlon64 x2なんでちょっと信者入ってるかも(笑
 CoreDuoのノートPCと迷ったんですけどねえ。
 Intelイスラエル研究所は凄いですね。今後、スーパースケーラレベルじゃないような、大規模な命令スケジューリングを実行時にするCPUが出てくるんでしたっけ?
http://pc.watch.impress.co.jp/docs/2004/1108/kaigai132.htm



>新コアを2つ設計しているという話なので、K8に手間をかける余裕は無いでしょしうね。
 ノート向けの CoreDuoのような位置づけのCPUでは、共有もいいかもしれませんね。
 将来的にメニーコアになった場合は、設計上、どうなんでしょうね?
 

 あと、今日PCwatchで読んだ記事だと、AMDのプロセス技術が面白かったです
 IBMと組んだようで。
 リーク電流を防ぐために、Low-K材料とか、歪みシリコンを使うとか、今後課題があるようですが、IBMならプロセス技術は強そうですね。
 なんにせよ、IntelAMDが競争してくれるのはありがたいことだと、消費者としては思います(^^;


プログラマブルCPUって凄いですね? FPGAですよね。
これは、謎電の作者様もびっくりされるんではないですか?
転送に、PCI Expressを使うとか以前に、FPGAを、CPUソケットにはめられるなら、
速度的には最強ですもんね(^^; 
詰め将棋もありますけど、静止探索をやっても面白いと思います。