アカウント名:
パスワード:
64ビットのメリットについて、何かカンチガイしているような気がします。
64ビットプロセサの一番のメリットは、仮想メモリ空間のサイズが64ビットになることです。ということは、PCで扱える程度のサイズのファイルは、仮想空間に収まってしまうのです。今時の普通のOS (含Windows 2003/XP) では、仮想メモリ空間にファイルを直接マップする機能を持っています。それを使えば、ファイルへのアクセスにOSのAPIを使わなくても、普通のメモリアクセスとしてコードが書けるんです。これによる高速化のメリットはかなりなもんでして。
2GBを超えるようなファイルなんて、今時は普通にありますね。特殊な計算アプリでなくても十分に64ビットの効果は出るんですよ。
ファイルアクセスを人間が意識してチューンしたほうが、往々にして速いですし、使用メモリ量も節約できます。
mmapしようがread/writeアクセスしようが、ファイルのどこをアクセスするかは一緒です。ファイルアクセスが発生する以上ページサイズより小さい単位での読み込み
そのアプローチで設計したのがPentium4のハイパースレッディングだと思いますが、これもアプリにそれなりの対応を必要としています。
ハイパースレッディングは、「複数のコアを入れ」たというよりも、スーバースカラープロセサで余った実行ユニットの活用ですから、ちょっと違うでしょう。
スーパースカラで、実行ユニットを3組用意したとしても、3組全てを使えることはほとんどなくて、だいたい遊んでるユニットがあります。その遊んでいるユニットで別のスレッドを実行できるように、インストラクションポインタ等足りないレジスタを追加して、あたかもプロセッサが2つあるかのように見せかけたのがハイパースレッディングです。
ですから、Pentium4にがちがちに最適化されたプログラムでは、実行ユニットは余らないわけですから、ハイパースレッディングによってかえって性能が劣化してしまうわけです
って矛盾していません?
矛盾していません。
両者は別のケースの話をしているのですから。実際、意外とありますよ、ハイパースレッディングをBIOSで有効にするとかえって遅くなるソフト。MS SQL Serverも、アプリの作り方によってはそうなりますし。
マルチコアにしても、スレッド1個で構成される様な プログラムでは性能がでないのは同じなので、結局HTと マルチコアとの違いはどのくらいのコストをかけるのか、 の違いでしかないですよね。
最初意味がわからなかったんですが、しばらく考えてわかりました ^^;)。
#549390 [srad.jp]を、ワタシは「特殊な(分野の)アプリしか速くならない」と解釈したのに対して、wlintさんは「アプリが対応しないと速くならない」と解釈したんですね。あと、私はia-32/ia-32eの関係とハイパースレッディング/マルチコアの関係について、何にも関係ない別の話として論じてました。
単一アプリだけで論じるなら、それなりに対応しないと速くならないってのはia-32eだろうが、ハイパースレッディングだろうが、マルチコアであろうが、そりゃ同じですね。でも、ハイパースレッディングやマルチコアは、複数のプロセスを同時に起動している時のスループット向上が期待できますんで、その点では勝っています。デスクトップでは普通たくさんのプログラムが動いていますから、体感的な快適さは向上するでしょう。
まぁ、並列度の向上という話と64bit化ということは別に排他じゃないので、「両方やればいい」わけですよ。それぞれ別の問題の解決策としてそれなりに意味があるわけでして。
デスクトップでは普通ユーザーが注目するのは目の前のアプリケーションの応答だけですので、マルチCPU(HT含む)なアプローチでは体感的な快適さはあまり向上しません。
一昔前ならそうだったでしょうが、最近のデスクトップ環境ではたくさんのプロセスが裏で動いていますので、むしろ逆だと思います。
環境を最適化して、自分が今使っているアプリ以外は動いてない状況を作っている人なら確かにそのとおりでしょう。でも、多くの人は裏で動いているわけのわからんアプリをそのままにしていて、もともと応答性が低下している状態で使っていると思います。マルチスレッドなアプローチで、その低下分を緩和することになりますから、それはそれで効果があると思いますけど?
矛盾していません。 両者は別のケースの話をしているのですから。実際、意外とありますよ、ハイパースレッディングをBIOSで有効にするとかえって遅くなるソフト。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall
64ビットにしても性能なんて上がらない。 (スコア:2, 参考になる)
x86互換プロセッサーとPowerPCプロセッサーで
数値演算性能ではうんうんの話があったと思う。
確かに数値演算レベルの計算を行えば正しいが、
一般のプログラムでクロックが速い方が速く動く
64ビットにすると性能が上がると思っている方がいるが
64ビットとしての部分を使わないと32ビットと変わらないか、
全体として劣ってしまう気がしますけど。
G5が異様に高速なのは64ビットの問題より
レジスター数が多く、並列演算により見かけのクロックより多く処理する事であって
64ビットそのものではない。
同様に x86互換プロセッサーも64ビット化するより複数のコアを入れて
クロック当たりの処理するを増やした方が速くなると思いますけど。
#互換機の64ビットプロセッサって特殊用途向けだと思いますよ
#やはりサーバー用途よりスパコン向けが正しい使い方だと思う。
#SETIやタンパク質の分析等なら確実に効果あり。
Re:64ビットにしても性能なんて上がらない。 (スコア:4, 参考になる)
64ビットのメリットについて、何かカンチガイしているような気がします。
64ビットプロセサの一番のメリットは、仮想メモリ空間のサイズが64ビットになることです。ということは、PCで扱える程度のサイズのファイルは、仮想空間に収まってしまうのです。今時の普通のOS (含Windows 2003/XP) では、仮想メモリ空間にファイルを直接マップする機能を持っています。それを使えば、ファイルへのアクセスにOSのAPIを使わなくても、普通のメモリアクセスとしてコードが書けるんです。これによる高速化のメリットはかなりなもんでして。
2GBを超えるようなファイルなんて、今時は普通にありますね。特殊な計算アプリでなくても十分に64ビットの効果は出るんですよ。
Re:64ビットにしても性能なんて上がらない。 (スコア:0)
ファイルアクセスを人間が意識してチューンしたほうが、往々にして速いですし、使用メモリ量も節約できます。
メモリマップしてしまうと、もうメモリになくてもいいデータまでメモリに持ち続けてしまうので、ページングが発生しやすくなります。
Re:64ビットにしても性能なんて上がらない。 (スコア:1, 興味深い)
そんな面倒なこと、人間ではなくハード&OSで対処させるべき。
Re:64ビットにしても性能なんて上がらない。 (スコア:0)
使用メモリを気にしないでプログラムを書けることがメリットの一つなんですけど?
それにメモリマップにしたところで、必要にならない限り一部の領域しか物理メモリに持ってきたりしませんよ。
Re:64ビットにしても性能なんて上がらない。 (スコア:0)
mmapしようがread/writeアクセスしようが、ファイルのどこをアクセスするかは一緒です。ファイルアクセスが発生する以上ページサイズより小さい単位での読み込み
Re:64ビットにしても性能なんて上がらない。 (スコア:2, 興味深い)
> クロック当たりの処理するを増やした方が速くなると思いますけど。
そのアプローチで設計したのがPentium4のハイパースレッディング
だと思いますが、これもアプリにそれなりの対応を必要としています。
64bit化の際の高速化のとっかかりとして、x86で致命的に少なかった
汎用レジスタが追加されたり等の手直しが入っているので、そのあたりを
ソフトがうまく使ってやる必要があるのですが、これはコンパイラの対応のみ
で可能なレベルですよね。
そういう意味では、より敷居の低い方法を選んだ様に思えるのですが。
Re:64ビットにしても性能なんて上がらない。 (スコア:1)
ハイパースレッディングは、「複数のコアを入れ」たというよりも、スーバースカラープロセサで余った実行ユニットの活用ですから、ちょっと違うでしょう。
スーパースカラで、実行ユニットを3組用意したとしても、3組全てを使えることはほとんどなくて、だいたい遊んでるユニットがあります。その遊んでいるユニットで別のスレッドを実行できるように、インストラクションポインタ等足りないレジスタを追加して、あたかもプロセッサが2つあるかのように見せかけたのがハイパースレッディングです。
ですから、Pentium4にがちがちに最適化されたプログラムでは、実行ユニットは余らないわけですから、ハイパースレッディングによってかえって性能が劣化してしまうわけです
Re:64ビットにしても性能なんて上がらない。 (スコア:1)
> スーパースカラで、実行ユニットを3組用意したとしても、
> 3組全てを使えることはほとんどなくて、
といいながら、
> ですから、Pentium4にがちがちに最適化されたプログラムでは、
> 実行ユニットは余らないわけですから、ハイパースレッディング
> によってかえって性能が劣化してしまうわけです
って矛盾していません?
非常に特別なケースで、そういう「究極のプログラム」も
作れるのでしょうが、コンスタントには難しいから、他の
スレッドで有効利用しようというのがPentium4のHT技術の
考え方のはずです。
マルチコアにしても、スレッド1個で構成される様な
プログラムでは性能がでないのは同じなので、結局HTと
マルチコアとの違いはどのくらいのコストをかけるのか、
の違いでしかないですよね。
Re:64ビットにしても性能なんて上がらない。 (スコア:1)
矛盾していません。
両者は別のケースの話をしているのですから。実際、意外とありますよ、ハイパースレッディングをBIOSで有効にするとかえって遅くなるソフト。MS SQL Serverも、アプリの作り方によってはそうなりますし。
最初意味がわからなかったんですが、しばらく考えてわかりました ^^;)。
#549390 [srad.jp]を、ワタシは「特殊な(分野の)アプリしか速くならない」と解釈したのに対して、wlintさんは「アプリが対応しないと速くならない」と解釈したんですね。あと、私はia-32/ia-32eの関係とハイパースレッディング/マルチコアの関係について、何にも関係ない別の話として論じてました。
単一アプリだけで論じるなら、それなりに対応しないと速くならないってのはia-32eだろうが、ハイパースレッディングだろうが、マルチコアであろうが、そりゃ同じですね。でも、ハイパースレッディングやマルチコアは、複数のプロセスを同時に起動している時のスループット向上が期待できますんで、その点では勝っています。デスクトップでは普通たくさんのプログラムが動いていますから、体感的な快適さは向上するでしょう。
まぁ、並列度の向上という話と64bit化ということは別に排他じゃないので、「両方やればいい」わけですよ。それぞれ別の問題の解決策としてそれなりに意味があるわけでして。
Re:64ビットにしても性能なんて上がらない。 (スコア:0)
この部分だけ。
デスクトップでは普通ユーザーが注目するのは目の前のアプリケーションの応答だけですので、マルチCPU(HT含む)なアプローチでは体感的な快適さはあまり向上しません。
むしろHTで裏
Re:64ビットにしても性能なんて上がらない。 (スコア:1)
一昔前ならそうだったでしょうが、最近のデスクトップ環境ではたくさんのプロセスが裏で動いていますので、むしろ逆だと思います。
環境を最適化して、自分が今使っているアプリ以外は動いてない状況を作っている人なら確かにそのとおりでしょう。でも、多くの人は裏で動いているわけのわからんアプリをそのままにしていて、もともと応答性が低下している状態で使っていると思います。マルチスレッドなアプローチで、その低下分を緩和することになりますから、それはそれで効果があると思いますけど?
Re:64ビットにしても性能なんて上がらない。 (スコア:0)
Re:64ビットにしても性能なんて上がらない。 (スコア:1)
windowsで通常使用ならアプリ使用中でもほぼ常にエクスプローラ
が動いてますね(笑)
#そういう問題じゃない?(笑)
現状のOSでシングルの状態を作るのって簡単なのでしょうか。
Re:64ビットにしても性能なんて上がらない。 (スコア:0)
Re:64ビットにしても性能なんて上がらない。 (スコア:1)
でも理由は、
> G5が異様に高速なのは64ビットの問題より レジスター数が多く、
> 並列演算により見かけのクロックより多く処理する事であって
> 64ビットそのものではない。
と同じで、64bitモードでレジスタが増えているせいではないかと思い
ますけど。
Re:64ビットにしても性能なんて上がらない。 (スコア:1)
ほかの方も言っているよう
に汎用レジスタが8個から
16個に拡張されたのは一般的アプリの
高速化につながると思います。
またFPUで使用してたレジスタがスタック型
だったのに対してSSE用のXMMレジスタが
使えるようになった
のも大きいところではないでしょうか。
(まだまだマイクロアーキテクチャレベルでの
最適化が進んでいない感はありますが未来があります)
アドレス空間の拡大に伴い
メモリアクセスの遅延増加もありそうですが
それでもレジスタ増加がデメリットを
相殺して余りあると思います。
マルチコア化には賛同しますが、レジスタが増加は必ず
しもCPUのトータルの向上には寄与するとは思いません。
レジスタを多くしてしまうとクリティカルパスが増えて
クロックの上昇を阻害する原因になりかねないので、
やはりクロックとクロックあたりの
性能のバランスが大事かと思います。
(現にクロックあたりの性能がかなり高い
と思われるItaniumなどは熱、パイプライン段数
などもあるでしょうが、x86アーキテクチャと比べると
マイクロアーキテクチャ単純なのにもかかわらずクロック上昇し
あぐねてライバルに差をつけられていません
[CPUのスレット化と考えると遅れをとっている])
話が脱線してしまいましたが
結局何が言いたかったかというと
レジスタ数などAlphaって本当によく
考えられてたなってことです。
↑これこそまったく関係ない