Herb Sutter氏のこの論文を紹介する第12回目の今回は次の段落を取り上げます。まずは原文と訳文(要点訳)をご覧ください。
Hyperthreading is about running two or more threads in parallel inside a single CPU. Hyperthreaded CPUs are already available today, and they do allow some instructions to run in parallel. A limiting factor, however, is that although a hyper-threaded CPU has some extra hardware including extra registers, it still has just one cache, one integer math unit, one FPU, and in general just one each of most basic CPU features. Hyperthreading is sometimes cited as offering a 5% to 15% performance boost for reasonably well-written multi-threaded applications, or even as much as 40% under ideal conditions for carefully written multi-threaded applications. That’s good, but it’s hardly double, and it doesn’t help single-threaded applications.
この段落は次のような意味を持っています。
ハイパースレッディングというのは、1個のCPU内部で2個以上のスレッドを平行して実行する技術である。この技術をサポートするCPUはすでに市場に出荷されており、いくつかの命令は並列実行される。このように記述すると、ハイパースレッドCPUは多くの問題を解決しているように見えてしまうが、一つの限界を持っている。ハイパースレッドCPUは、他のCPUには存在しないハードウェア機能(特殊レジスタなど)を持っているが、キャッシュ、整数演算装置、FPUなどは従来どおりそれぞれ一つだけ備えているにすぎない。つまり、CPUの基本機能を1個づつ実装しているにすぎないのである。ハイパースレッド技術は、周到に実装されたマルチスレッドアプリケーションのパフォーマンスを5%から15%改善するといわている。設計段階でさらに磨きをかければ、40%程度のパフォーマンス向上が望めるとさえいわれている。これは悪いことではない。しかし、ハイパースレッド技術は、2倍のパフォーマンス向上を実現できるわけではない。ましてや、シングルスレッドアプリケーションのパフォーマンス向上にはまったく貢献しない。
ハイパースレッド技術に関する詳細情報は、こちらのページをチェックしてください。ページを開くと、膨大なマルチコア関連情報が表示されてきます。ムーアの法則などをはじめとする時代を支える情報が整理されています。平均的なニーズを満たす情報は洪水化していますが、わが国のIT技術者向けの情報は圧倒的に不足しています(参考)。頑張りましょう、皆さん!
前へ |
次へ
Copyright©豊田孝 2004-
2009
本日は2009-01-07です。