アカウント名:
パスワード:
ところで、今までこの手の話題が出てきた場合
「アーキテクチャ的には素晴らしかったが、商売としては失敗したね」
……と言った声が、多少は出るものなのですが。Itaniumに関しては、アーキテクチャ的に惜しむ声を余り(と言うか全く)聞きませんね。
かなり今更な話になるのですが、純粋に技術面から見たItaniumってどうだったのでしょうか?
他の人からはクソみそに言われるでしょうから、5年ぐらい IA-64 と付き合った者として餞別代りに Itanium を擁護してみます。
個人的な感想としては IA-64 は「はまったコードは非常に速いが、外れたコードは非常に遅い」アーキです。ただ「はまったコード」」を生成するには icc のような最適化コンパイラが必須です。また最適化コンパイラがあっても、「はまったコード」にコンパイルできないアプリも多いです。gcc とか perl のようなのが特に苦手。
命令アーキテクチャとしては、尖った機構がふんだんに存在しています。
あと Itanium2 としての特徴ですが、
良いのか悪いのか分からない点としては、
CPU から見ると高速化が可能。プログラマーとしては非常に困った性質で、C 言語だと volatile を付けないと通常のロード・ストア命令が生成されるので、他のアーキ用に書かれたマルチプロセッサ用のソースコードが容赦なく異常動作する。
悪い点は、やっぱり Out-of-Order 実行がない点ですね。命令グループに命令をそんなに詰め込めないし、ロード命令がウェイトすると後続命令は実行できないので、結局性能が上がりません。OoO を導入するには論理レジスタ数が多すぎることがネックになると思います。
前まで研究室に2wayのItaniumマシンが置いてあったな。何でもファンが五月蝿い割には遅いとか。掃除の時捨てた。
Itaniumにつていてば、設計時点の技術トレンドを読み違えたということに尽きるのでは。
いや,開発ロードマップ通りに行かずに出遅れたことに尽きるでしょう 当初の Intel+HP連合軍(1994~)による開発ロードマップ(取らぬ狸の計画)では,
計画された1990年代前半は PC用x86CPUと WS用CPU(AlphaAXP,Sparc,PA-RISC,POWER)軍団との 間には結構な性能差がありました(浮動小数点は圧倒的な差で,整数演算でも倍程度は違った気がする). Pentium投入時点でもまだRISC陣営とは結構差がありました. その時代に,Intel が将来のWS系の市場を制覇するためにHPと連合を組んだわけです. WS用CPUのパワーを持ってすれば,市場投入予定時点のPC用x86なんて楽勝で越えられるはずでした. またエミュレーションにしてもその圧倒的(以下略). 最後の点は微妙な推測かも知れませんが…. ただ,開発が難航しているうちに,x86がAMD(+NexGen Nx686) K6~K7との競争で, 整数演算ではWS用RISC系に追い付く状況になる(1GHz競争のころ)なかで, 初代 merced が登場したときには x86処理に弱いIA-64CPU はPC用としての芽がなくなってしまいました. 実際Mercedの開発が遅れまくった証しとして,Merced 登場(2001)後1年程度で 早くも IA-64 2世代目の McKinley が出ています(2002). いざ生まれてみたら住むところがほとんどなくなっていたという, 今にしてみれば可哀想なCPUだと思ってます. (まあ,「予定された性能を叩き出せなかったCPU」とか「不幸な運命をしょったCPU」なんて 他にも籠から溢れるくらいありますけどね…)
#ま、いちおう AC にします。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家
アーキテクチャとしてのメリット (スコア:1)
ところで、今までこの手の話題が出てきた場合
「アーキテクチャ的には素晴らしかったが、商売としては失敗したね」
……と言った声が、多少は出るものなのですが。
Itaniumに関しては、アーキテクチャ的に惜しむ声を余り(と言うか全く)聞きませんね。
かなり今更な話になるのですが、純粋に技術面から見たItaniumってどうだったのでしょうか?
Re:アーキテクチャとしてのメリット (スコア:3, 参考になる)
他の人からはクソみそに言われるでしょうから、5年ぐらい IA-64 と付き合った者として餞別代りに Itanium を擁護してみます。
個人的な感想としては IA-64 は「はまったコードは非常に速いが、外れたコードは非常に遅い」アーキです。
ただ「はまったコード」」を生成するには icc のような最適化コンパイラが必須です。
また最適化コンパイラがあっても、「はまったコード」にコンパイルできないアプリも多いです。gcc とか perl のようなのが特に苦手。
命令アーキテクチャとしては、尖った機構がふんだんに存在しています。
SPARC の register-window に似ているがあちらは物理レジスタが不足した時にソフト割り込みが懸って OS が処理する必要がある。IA-64 は CPU 内の Register-Stack-Engine が stack-register をメモリに自動的にロード・ストアしてくれる。そのため関数呼び出しが非常に高速。
あと Itanium2 としての特徴ですが、
良いのか悪いのか分からない点としては、
CPU から見ると高速化が可能。プログラマーとしては非常に困った性質で、C 言語だと volatile を付けないと通常のロード・ストア命令が生成されるので、他のアーキ用に書かれたマルチプロセッサ用のソースコードが容赦なく異常動作する。
悪い点は、やっぱり Out-of-Order 実行がない点ですね。命令グループに命令をそんなに詰め込めないし、ロード命令がウェイトすると後続命令は実行できないので、結局性能が上がりません。OoO を導入するには論理レジスタ数が多すぎることがネックになると思います。
コンタミは発見の母
Re: (スコア:0)
レジスタリネーミングでないOoOも、まさにそのイリノイ大を含めていろいろ提案されてますぅ。
ランアヘッド、スカウトスレッド(Rock;_;)、フリーフリッカーなど。
アイデアとしてはどれも、ストールした命令の推移閉包以外を先に仮コミットするものです。OoOコミットってやつ。
互換性のため、ストール地点のレジスタ内容はどこかに保存します。
スカウト方式なら本スレッドが止まり、レジスタ内容を超高速でコピーしてスカウトが先に進みます。
別の方式では、投機実行用に小さなフルアソシアティブなレジスタファイルあるいはコミットキューを用意します。
Re: (スコア:0)
インオーダーであるPOWER6にも限定的にOoOが実装されています。
一つは、ロードミス後も値を無視して走り続けるモード。これはプリフェッチのよい近似になりますが計算結果はデタラメですので再実行します。
もう一つは、SMTの相手方を利用したスカウト風。これは通常時はSMTになりません。
OoOで性能が向上する主要な要因はプリフェッチ効果ですから、IA-64ではあまり改善の余地は残っていない可能性はあります。
今日のプロセッサはレジスタファイルよりもROBのほうがクリティカルな面がありますから、IA-64のOoO化はそちらでも不利ですね。
Re: (スコア:0)
Re:アーキテクチャとしてのメリット (スコア:1)
前まで研究室に2wayのItaniumマシンが置いてあったな。
何でもファンが五月蝿い割には遅いとか。
掃除の時捨てた。
Re: (スコア:0)
ItaniumはRISCの処理能力(クロック周波数)が頭打ちになるという想定で設計された。
VLIWとか豊富なページサイズのサポートとかいかに周波数以外のところで速度を稼ぐか
という思想で設計されてる。(クロックチックを縮められないなら1クロックでできる
ことを増やそうという発想)
けど、実際はそうはならず、プロセッサの周波数は4GHzにも達しようという勢いで、
8とか12とかのマルチコアなわけです。こんなもの一個のOSでは役不足なんですが、
計算能力の需要が頭打ちなら仮想化しよう。そのためにはメモリ積めるだけ積もう。
ページテーブルキャッシュすれば4Kページで128GBも夢じゃない。?!
てなシステムが現在の主流です。
どうみても不利なわけです。この上さらにIO仮想化とかつけてくれといわれる前に逃げ
出すのが企業としては正解だと思う。
アーキテクチャじゃなくて単なる歴史ですが (スコア:1)
いや,開発ロードマップ通りに行かずに出遅れたことに尽きるでしょう
当初の Intel+HP連合軍(1994~)による開発ロードマップ(取らぬ狸の計画)では,
計画された1990年代前半は PC用x86CPUと WS用CPU(AlphaAXP,Sparc,PA-RISC,POWER)軍団との 間には結構な性能差がありました(浮動小数点は圧倒的な差で,整数演算でも倍程度は違った気がする). Pentium投入時点でもまだRISC陣営とは結構差がありました. その時代に,Intel が将来のWS系の市場を制覇するためにHPと連合を組んだわけです. WS用CPUのパワーを持ってすれば,市場投入予定時点のPC用x86なんて楽勝で越えられるはずでした. またエミュレーションにしてもその圧倒的(以下略). 最後の点は微妙な推測かも知れませんが….
ただ,開発が難航しているうちに,x86がAMD(+NexGen Nx686) K6~K7との競争で, 整数演算ではWS用RISC系に追い付く状況になる(1GHz競争のころ)なかで, 初代 merced が登場したときには x86処理に弱いIA-64CPU はPC用としての芽がなくなってしまいました. 実際Mercedの開発が遅れまくった証しとして,Merced 登場(2001)後1年程度で 早くも IA-64 2世代目の McKinley が出ています(2002).
いざ生まれてみたら住むところがほとんどなくなっていたという, 今にしてみれば可哀想なCPUだと思ってます. (まあ,「予定された性能を叩き出せなかったCPU」とか「不幸な運命をしょったCPU」なんて 他にも籠から溢れるくらいありますけどね…)
Re: (スコア:0)
#ま、いちおう AC にします。