CPUに関する話13. DRAMの遅さに引きずられる?
- CPU内部の execution unit が欲しい速さでは、
DRAMからデータを転送できない
- 複数のスレッドやプロセスが、メモリアクセスをし
て、メモリからデータを読み込むのを待って
- パイプライン がストールする
- レジスタの取り合いになるなど、ストールするケースは他
にもあるけど、DRAMの遅さはかなり致命的
14. ちなみに最近の Intel の L1 cache は
- いわゆる ハーバード・アーキテクチャ
- 命令とデータが別々の領域に格納されてる
- 他の cache と異なり、 L1 cache だけは命令と
データで二種類ある
- 命令がぜんぶ L1 cache から捨てられると大変
なので、これはアリな設計だと思います
15. DRAMが遅いから
- CPU の execution unit の稼働率が低いので、
Intel は Hyper-Threading 導入したそう
- Typically, applications make use of about 35 percent
of the internal processor execution resources. The
idea behind Hyper-Threading Technology is to
enable better processor usage and to achieve about
50 percent utilization of resources.
19. 最近のCPUとDRAMだいぶ優秀ですが
- clock down してるとだいぶ性能落ちます
- L5630
- E5-2630L v3
- L5630 と E5-2630L v3 の差がなくなる勢い
- 最近のCPUは clock の落ち幅が大きい傾向に
あるので、このへん注意しましょう
- Brendan Gregg は AWS でも MSR 見てるよう
ですしね
28. アンコアの強化に至る前、2006年ごろ
- Intel は Larrabee で many core の夢を見た
- 一方、 Sony、 SCE、IBM、東芝は、 Cell という
ヘテロジニアスアーキテクチャをもたらした
- Cellは扱いが難しいけど性能でたので、ヘテロ
ジニアスな設計を他のCPUベンダーは追いか
けることになった
31. Intelさんとしてはきっと
- いまの Xeon は大勝利
- NetBurst のときの失敗は取り返せた
- もはやサーバ市場で恐れるものは無いのだろう
- 性能が上がるとサーバの高集約化が進んで、台数の伸びは鈍化する
だろうけど
- PCやサーバ以外の市場も取らないといけない
- 自社のFabを自社製品の製造で埋め尽くせるの
が理想
33. それでも足りない
- IDF の資料を見ると、そのとき Intel が取りた
がってる市場がうかがい知れるんですが
- IDF2012 Beijing に行ってきたとき、 Ultrabook と HPC
の話ばかりだったので、「あぁWebサービスなんてIntel
から見たら大したことないんだ」と実感できました
- Intelは数年前からタブレットやスマートフォン、
いまだとIoT狙ってますけど、研究開発を維持す
るために、市場の拡大が必須なわけです
51. ただ、サーバサイドでも
- それでも、メモリの無駄遣いは良くないので
- TLB miss 発生するとメモリアクセス増えるし
- あと、C/C++ などでコードを書くときは、スタック
を上手く使える方がいいんじゃないでしょうか。
スタックは hotspot で、 TLB で引けるだろうし、
CPUのキャッシュに載ってる可能性高いし
- 詳しくは Write Great Code でも読んでください
54. Xeon に L4 cache として
eDRAM が載れば
サーバでも(一部の)コードが
cache に載る時代が来る
55. Intel のロードマップではまだないけど
- 最近の Core i7 では 128MB の eDRAM を L4
cache として使えるようになった
- この eDRAM 、実はかなりすぐれもので、いま
までの DRAM よりかなり速い
- この eDRAM にフィットするコードを書けば、主
記憶へのアクセス減らせるのでサーバでも速い
56. ただ、 Intel さんにお願いしたいのは
- PHPなど Lightweight Language のWebアプリ
ケーションなら、 L4 cache にフィットするかもし
れませんが
- MySQLみたいなRDBMSだとムリなんで
- L4 cache のあるXeonと無いXeon、あるいは、
L4 cache の無効化ができると嬉しいです
- cacheの階層増えるとメモリアクセスのLatency
に影響するんで
57. 直近では L4 cache 来るかもだけど
- メモリベンダーが想定している未来だと
- メモリの階層がかなり増える
- Near Memory と Far Memory
- OSからみたとき、速いメモリと遅いメモリが混在
するという可能性
61. ちなみに Xeon Phi では
- DDR4 の5倍のバンド幅を持つメモリが、オン
パッケージで来る そうですね
- なので、来てくれるんじゃないですかね、いつか
そのうち。速いメモリってやつが