と返した。だからあくまで言いたかったのはx86はRISCみたいに沢山の(ISA上の)レジスタは必要ないということだ。 ただ、この”必要ない”と言うのは、x86 ISAの制約に対して様々な技法(レジスタリネーミングを含む)を取り入れて最適化してきた結果であって、 x86 ISAのアーキテクチャデザインが優れていたからでは無いだろう。
So you think AMD extended the register file just for fun?
I think the AMD register file extension was unnecessary, yes. They did it because they could, and it wasn't a big deal.
Hell, the "PAE crud" is the *same* problem as the tiny register file. Insufficient virtual address space leading to physical > virtual kludges.
Nope. The small register file is a non-issue. Trust me. I do work for transmeta, and we do the register renaming in software, and it doesn't matter in the end.
Mantleは当て馬? (スコア:0)
MSの発表を見る限り、中身はほぼAMDのMantleにしか聞こえないのだけど
MantleのAPIは未定義 [impress.co.jp]で開発任せな現状らしいので
AMDは始めからMSにDX12を作らせる目的でMantleを発表したのではないか、と思ってしまう。
DX12の後ろにいるのはAMDのようだし。
Re: (スコア:0)
リンク先には
Mantleはやっかいで、何も定義されてない。ゲーム機のAPIと似てはいるけど互換じゃない。
とは書いてありますが、APIが未定義とは書いてないように思いますが…。
実際、Wikipediaには
Mantle is a graphics API specification developed by AMD as an alternative to Direct3D and OpenGL, primarily for use on the PC platform.
とあります。
「Mantleはやっかいで、何も定義されてない」という記載は意味不明です。
というか、専門家気取りの半可通がいいかげんなことを言ってる記事で、ARM 32-bitの箇所とか、読んでてこっちが気恥ずかしくなってきますね。
Re: (スコア:0)
確かにこれはひどいね。素人以下。
Re: (スコア:2)
なるほどわからん。
レジスタ不足だから、主記憶に退避でもしているのだろうか。
Re: (スコア:0)
レジスタに割り付けられないローカル変数はスタックフレーム(主記憶)に割り付けられる、が、ARM の仕様でそれほと問題になることは実際大してない。thumb ならまた別だが。
Re: (スコア:0)
確かに生成されたコードを見ると、レジスタが足りなくてロード、ストアが頻出するってことは少ない気はする。
ただ、x86-64の例を見ると、汎用レジスタが増えるのはやっぱり効いてくるんではないかと思う。
Apple A7の性能向上も64-bit化自体が効いてるとは考え難いし。
Re: (スコア:0)
ただ、x86-64の例を見ると、汎用レジスタが増えるのはやっぱり効いてくるんではないかと思う。
IA-32 → x86-64 で汎用レジスタが何個から何個になったかご存知?
Re: (スコア:0)
知ってるけど、それが何か?
もともとCISCの設計思想、かつスタックベースの命令が多いx86と、
RISCの流れのARMとのレジスタの絶対数を比較してもあんまり意味が無いんじゃない?
PPCやMIPSは32本のGPRを持ってるよね?
あとA7については憶測だけど、レジスタの増加がパフォーマンスに全く効いてないとは考え難い。
コンパイラで使うレジスタの数を制限するフラグでもあれば比較できて面白いかも。
Re: (スコア:0)
もともとCISCの設計思想、かつスタックベースの命令が多いx86と、
RISCの流れのARMとのレジスタの絶対数を比較してもあんまり意味が無いんじゃない?
汎用レジスタはいくつくらいあればまあ不足はないかというのを判断するのにRISCもCISCもあんま関係ないのでは?
「スタックベースの命令が多いx86」ということだけど、汎用レジスタ上にデータ置くのとスタックフレーム上に置くのとで違いがないのであれば(あり得ないが)、x86-64 で汎用レジスタの数を増やしたメリットはないですね。
Re: (スコア:0)
x86のシステムレベルのアセンブリコード書いたことある?
オフトピだからこれで最後にするけど、x86はメモリアクセスの遅延の影響を避けるために相当の資源を割いているよね。
レジスタリネーミングはご存じ?
実際のレジスタの数は、その辺のRISCよりよほど多いんじゃなかろうか。
Re: (スコア:0)
アセンブリコードとか言いながらレジスタリネーミングとか片腹痛い
レジスタリネーミングでマシン語プログラミングが楽になったら驚きだ。
あなたの行っている「x86のシステムレベルのアセンブリコード」が プロセッサの実装で、
レジスタリネーミングのついでに命令発行をバイパスしてやったぜ!とか言うなら脱帽ですが。
そうじゃないならレジスタ退避で命令発行ポートストールされてろ
Re: (スコア:0)
アセンブリコードとか言いながらレジスタリネーミングとか片腹痛い
レジスタリネーミングでマシン語プログラミングが楽になったら驚きだ。
アセンブリコードの件は、x86の作法で書けばそんなにレジスタが要らない理由が分かるはずと思ったんだけどね。
まあ、それでもレジスタリネーミングで楽にはなるよ。適当に書いてもそれなりのパフォーマンスが出るからね。
Re: (スコア:0)
コードサイズと実行効率の両方でどの程度レジスタ数があれば適当かというアーキテクチャデザインの話と、少ないレジスタ数でも実行効率を引き出せるよう仕組みを実装するという話はそもそも話題として噛み合ってないことは理解できるかな?
x86-64で汎用レジスタが追加された事実を思い出せば、
アセンブリコードの件は、x86の作法で書けばそんなにレジスタが要らない理由が分かるはずと思ったんだけどね。
まあ、それでもレジスタリネーミングで楽にはなるよ。適当に書いてもそれなりのパフォーマンスが出るからね。
自分がどれだけ馬鹿なこと言ってるかも理解できると思うけどね。
Re:Mantleは当て馬? (スコア:0)
コードサイズと実行効率の両方でどの程度レジスタ数があれば適当かというアーキテクチャデザインの話と、少ないレジスタ数でも実行効率を引き出せるよう仕組みを実装するという話はそもそも話題として噛み合ってないことは理解できるかな?
Linusの発言は読んでくれたかな?
重要なのは実際の性能であって、どんなテクニックを使ってでも、
結果的に少ないレジスタで最高の性能が出せるなら、それが現時点での適切なレジスタ数じゃないのかい?
x86-64で汎用レジスタが追加された事実を思い出せば、
アセンブリコードの件は、x86の作法で書けばそんなにレジスタが要らない理由が分かるはずと思ったんだけどね。
まあ、それでもレジスタリネーミングで楽にはなるよ。適当に書いてもそれなりのパフォーマンスが出るからね。
自分がどれだけ馬鹿なこと言ってるかも理解できると思うけどね。
自分はGPRを増やすのが無駄だとは一言も言ってないけどね。(Linusはx86-64には不要だったと言ってるけど。)
ただ、x86-64の例を見ると、汎用レジスタが増えるのはやっぱり効いてくるんではないかと思う。
と書いたら、
IA-32 → x86-64 で汎用レジスタが何個から何個になったかご存知?
ときたので、x86は8→16だから意味があるけど、ARMの15→31は意味が無いと言いたいのかなと思い、
もともとCISCの設計思想、かつスタックベースの命令が多いx86と、
RISCの流れのARMとのレジスタの絶対数を比較してもあんまり意味が無いんじゃない?
と返した。だからあくまで言いたかったのはx86はRISCみたいに沢山の(ISA上の)レジスタは必要ないということだ。
ただ、この”必要ない”と言うのは、x86 ISAの制約に対して様々な技法(レジスタリネーミングを含む)を取り入れて最適化してきた結果であって、
x86 ISAのアーキテクチャデザインが優れていたからでは無いだろう。
Re: (スコア:0)
「何がひどいか? RISCなのに汎用レジスタが16本しかない」から話が始まってること理解してないのね。
Re: (スコア:0)
「何がひどいか? RISCなのに汎用レジスタが16本しかない」から話が始まってること理解してないのね。
君は何を言ってるんだ?
もともとは「16本しかない」発言に対して、素人以下、なんていう人がいるから、
GPRを増やすのは正しいんじゃないのという、それだけの事だったのだが?
x86-64のレジスタ数で横道にそれてしまったんだが。
Re: (スコア:0)
増やすのが正しい/正しくないじゃなくて、『「16本しかない」からひどいアーキテクチャ』と言えるほど少なくはないだろ、ってのが大元じゃないのか?
Re: (スコア:0)
増やすのが正しい/正しくないじゃなくて、『「16本しかない」からひどいアーキテクチャ』と言えるほど少なくはないだろ、ってのが大元じゃないのか?
うむ、自分も”ひどい”ってのは言い過ぎだと思う。だが”素人以下”ってのは余りにも失礼だろう。
PC Watchを読むことも少なくなったけど、後藤さんの記事は未だに更新されたら読んでいる。
いつも丁寧に調べて書いてるし、今回は座談会で口がちょっと滑ったんじゃないの?
Re: (スコア:0)
今回は座談会で口がちょっと滑ったんじゃないの?
以降は、「どう口が滑ったら上記のような馬鹿発言が出るか」が議題になります
Re: (スコア:0)
ま、この手の座談会記事の場合、本当に分かってないのはまとめて記事にした聞き手だろうな、って部分はあるけど。
ただ、それにしても基本的に口が滑ったにしろ、あとでちゃんとニュアンスが伝わっているかを含めてチェックもしてないのか、って意味では杜撰だよな。
Re: (スコア:0)
以降は、「どう口が滑ったら上記のような馬鹿発言が出るか」が議題になります
君も粘着だね。後学のために、どうしてそういう発言をしているか教えてくれないか?
1. 後藤さんが嫌い、恨みがある。
2. ARM関係者
3. 単なるトロール
4. その他
Re: (スコア:0)
http://developers.srad.jp/comments.pl?sid=627062&cid=2568409 [srad.jp]
なんて読者もいることは、ライターも掲載メディアも理解すべきですね。
Re: (スコア:0)
なんて読者もいることは、ライターも掲載メディアも理解すべきですね。
ARM関係者?激おこぷんぷん丸?
Re: (スコア:0)
えっこの人なんでこんな粘着してんの?四つのどれかから選べって馬鹿じゃないかしら。後藤本人かな?
…なんてのは虚しいとは思わんかね?
Re: (スコア:0)
えっこの人なんでこんな粘着してんの?四つのどれかから選べって馬鹿じゃないかしら。後藤本人かな?
…なんてのは虚しいとは思わんかね?
それは別に構わん。どうせ答えてもらえないだろうからふざけて書いただけだから。
「後藤本人かな?」は物書きの後藤さんに失礼だけど。
でもインターネットトロールの行動心理に興味があるのは本当。
もしトロールじゃなかったら、こんなとこで貶してないでimpressに直接抗議すべきだろう。
facebookコメントだっていいじゃないか。
Re: (スコア:0)
ああ、やっぱり物書きの後藤さん本人だったんですね。了解です。
知りもしないこと座談会で話されたところで恥晒すだけですよ。それどころか世間にも迷惑をかけますよ。老婆心ながら申し上げさせていただきます。
Re: (スコア:0)
ああ、やっぱり物書きの後藤さん本人だったんですね。了解です。
知りもしないこと座談会で話されたところで恥晒すだけですよ。それどころか世間にも迷惑をかけますよ。老婆心ながら申し上げさせていただきます。
本当にかまってちゃんだな。
本人に何か言いたいなら、リンクされた記事にfacebookかtwitterでコメント出来るんだから書いてきなよ。
いくらなんでも自分みたいな文才のない人間のコメントを本人認定したら失礼過ぎるわ。
Re: (スコア:0)
x86は8→16だからものすごく意味があるけど、ARMの15→31は意味が薄いと言いたいです。
必須レジスタ数(アキュムレータ、スタック、ベース、ついでにインデックスとか)除いた残りレジスタ数へのインパクトが違う。
だから、ARMの話にx86 の例を関連づけてほしくない。
あなたの反論は当を得ていない様に思う。なので以下は枝葉の話題。
レジスタ数が少なくてもやっていけるのは豊富なアドレッシング(メモリ直接とか、有り余るほどの間接アドレッシングとか)のおかげであって、
その辺は ISAとか CISC/RISC の話。
レジスタリネーミングはアウトオブオーダ実行を効率よく行うための実装
Re: (スコア:0)
x86は8→16だからものすごく意味があるけど、ARMの15→31は意味が薄いと言いたいです。
それでは、なぜ64-bit ARMではISAを変えてまでレジスタを増やしたの?
他のRISCの多く(PPC, MIPS, Alpha, etc.)が32本のGPRを提供してるのに、なぜ32-bit ARMは15本で足りるの?
SHが16本って話が出てたけど、その記事にはこう書かれている:
すなわち組み込み用途で使われるほとんどのプログラムの実行にはレジスタが16本あれば足りる,よりたくさんのレジスタを必要とするマルチスレッド処理は多くないといった事実である。
これは逆に、組み込み用途以外では16本では足りないってことじゃないの?
必須レジスタ数(アキュムレータ、スタック、ベース、ついでにインデックスとか)除いた残りレジスタ数へのインパクトが違う。
ってことはさ、IA-32の純粋なGPRは8本より更に少ないんだよね。それでもデスクトップからサーバーまでトップクラスの性能を保ってきたわけだ。その理由は考えた?
だから、ARMの話にx86 の例を関連づけてほしくない。
自分からすれば、これは逆。x86は少ない(ISA上の)レジスタでもやり繰りできるように改良されてきた。Linusの言葉を借りれば、
So you think AMD extended the register file just for fun?
I think the AMD register file extension was unnecessary, yes. They did it because they could, and it wasn't a big deal.
Hell, the "PAE crud" is the *same* problem as the tiny register file. Insufficient virtual ad
Re: (スコア:0)
ってことはさ、IA-32の純粋なGPRは8本より更に少ないんだよね。それでもデスクトップからサーバーまでトップクラスの性能を保ってきたわけだ。その理由は考えた?
IA-32がトップクラスの性能ってそんな昔からのことじゃないよ。386~Pentiumの頃はRISCプロセッサ積んだWSには負けてたし、インテルにも見捨てられそうになった結果がIA-64だったわけだし、サーバ用途にIA-32のプロセッサが当たり前に採用されるようになったのって更に後のことだし。
決して優れてたから生き残ったISAじゃないよ。
Re: (スコア:0)
IA-32がトップクラスの性能ってそんな昔からのことじゃないよ。386~Pentiumの頃はRISCプロセッサ積んだWSには負けてたし、インテルにも見捨てられそうになった結果がIA-64だったわけだし、サーバ用途にIA-32のプロセッサが当たり前に採用されるようになったのって更に後のことだし。
決して優れてたから生き残ったISAじゃないよ。
ドッグイヤーと言われるコンピューター業界で、386~Pentiumまで遡るの?
まあいいけど当時WSとPCじゃ価格の桁が違ったよね。それに自分はx86のISAが優れているとは言ってないし思ってない。
Re: (スコア:0)
レジスタ数増加によるレジスタ待避のための命令割合の削減が、x86 の場合と ARM の場合では
ドラスティックに違うんじゃないか、質として別物なので同レベルで比べる物ではないと主張しているつもりで
「あなたの反論は当を得ていない様に思う」と書いたのに、IA-32のレジスタは足りていると言われても論点がずれているとしか。
今時のx86の実行性能を否定する気はこれっぽっちもありませんし、各論はそのとおりだと思いますが
他サイトの話までもってきた SH のレジスタ数 16本。
あれ組み込み用なので、コードサイズ削減のために 16本にする必要があったし、それこそが他との差別化になった。
ARMv8 は組み込み用途以外もねらうので、15本にとどめる理由はないじゃないですか。
ROMやメモリ空間が足りない時代じゃないですよ。
だから、ARMの話にx86 の例を関連づけてほしくない。
自分からすれば、これは逆。x86は少ない(ISA上の)レジスタでもやり繰りできるように改良されてきた。Linusの言葉を借りれば、
So you think AMD extended the register file just for fun?
I think the AMD register file extension was unnecessary, yes. They did it because they could, and it wasn't a big deal.
Hell, the "PAE crud" is the *same* problem as the tiny register file. Insufficient virtual address space leading to physical > virtual kludges.
Nope. The small register file is a non-issue. Trust me. I do work for transmeta, and we do the register renaming in software, and it doesn't matter in the end.
Linusの意見はちょっと極端だとは思うが、少ない(ISA上の)レジスタでも様々な用途のアプリケーションを十分こなしてきたのは紛
Re: (スコア:0)
それに自分はx86のISAが優れているとは言ってないし思ってない。
RISCのISAは優れているはずだった。IA-64だってレガシーを捨てて高性能化できるはずだった。
それなのにx86は廃れるどころかHPC分野ですら活躍している。あっぱれとしか言いようがないじゃないか。
マスマーケット向けの製品であるIA-32プロセッサは開発コストを大きく割くことができ、さまざまな技術を導入することで現在の性能を実現している。その状況に於いてはISAの仕様など大きな問題ではない、というのは事実だと思いますが、この話の流れとしては外していますね。
Re: (スコア:0)
> ドッグイヤーと言われるコンピューター業界で、386~Pentiumまで遡るの?
IA-32は386から基本的に変わっていないから別にいいと思う。
> まあいいけど当時WSとPCじゃ価格の桁が違ったよね。
アーキテクチャ絡みの性能を語るときに製品価格が出てくる理由が分からない。
金の掛け方が違うと言いたいなら、今でもPOWER8なんてものがあるよ。
Re: (スコア:0)
レジスタ数増加によるレジスタ待避のための命令割合の削減が、x86 の場合と ARM の場合では
ドラスティックに違うんじゃないか、質として別物なので同レベルで比べる物ではないと主張しているつもりで
「あなたの反論は当を得ていない様に思う」と書いたのに、IA-32のレジスタは足りていると言われても論点がずれているとしか。
質が違うのはそうだろうけど、
汎用レジスタはいくつくらいあればまあ不足はないかというのを判断するのにRISCもCISCもあんま関係ないのでは?
x86は8→16だからものすごく意味があるけど、ARMの15→31は意味が薄いと言いたいです。
は、単純化しすぎて一面しか見てないでしょう。だから自分は、まずISAの違いとして、
メモリ上の値を(見かけ上は)直接変更できる命令セットと、
レジスタ上にロードしないと何もできないRISCで必要となるレジスタ数が同じと考える方がおかしい。
それから実装上の最適化として、
レジスタリネーミングはご存じ?実際のレジスタの数は、その辺のRISCよりよほど多いんじゃなかろうか。
を挙げ、またLinusの発言を引用し、レジスタ数がISA上少ないことが既にあまり問題でないことを述べてます。
ただ、IA-32→x86-64でのレジスタ増加の影響が、ARMとは条件が違いすぎて参考にならないというのであればそれはそうかもしれません。
他サイトの話までもってきた SH のレジスタ数 16本。あれ組み込み用なので、コードサイズ削減のために 16本にする必要があったし、それこそが他との差別化になった。
SHの話は、このタレコミのコメントで、
既存のプログラムを調査した結果、汎用レジスタは16個あれば大抵の用途では足りないことはない
http://developers.srad.jp/comments.pl?sid=627062&cid=2569047 [developers.srad.jp]
というのがあったので、16本で足りるのは組み込み用途に関してということだったことを述べただけです。
Re: (スコア:0)
ドッグイヤーと言われるコンピューター業界で、386~Pentiumまで遡るの?
IA-32は386から基本的に変わっていないから別にいいと思う。
自分としては、P6がターニングポイントだったと思うけどね。
まあいいけど当時WSとPCじゃ価格の桁が違ったよね。
アーキテクチャ絡みの性能を語るときに製品価格が出てくる理由が分からない。
金の掛け方が違うと言いたいなら、今でもPOWER8なんてものがあるよ。
じゃあ、ARM Cortex-M0とPOWER8を比較して、POWER8が優れてるわけね。
Re: (スコア:0)
マスマーケット向けの製品であるIA-32プロセッサは開発コストを大きく割くことができ、さまざまな技術を導入することで現在の性能を実現している。その状況に於いてはISAの仕様など大きな問題ではない、というのは事実だと思いますが、この話の流れとしては外していますね。
そうね。話が脇道にそれたね。ただ、
必須レジスタ数(アキュムレータ、スタック、ベース、ついでにインデックスとか)除いた残りレジスタ数へのインパクトが違う。
ってことはさ、IA-32の純粋なGPRは8本より更に少ないんだよね。それでもデス
Re: (スコア:0)
ARMに関しては、同じISAでローエンドからハイエンドまでカバーしなければならないので、
バランスのとれたISAを定義することは重要なんでしょう。
ARMについて無知であることは分かった。
Re: (スコア:0)
ってことはさ、IA-32の純粋なGPRは8本より更に少ないんだよね。それでもデスクトップからサーバーまでトップクラスの性能を保ってきたわけだ。その理由は考えた?
について、GPRが少ないのは既に大したボトルネックではないということを理解してもらいたかったのに、
IA-32のISAの影響で命令デコーダだの実レジスタ数だのが肥大化してるのはボトルネックじゃないの?
Re: (スコア:0)
ああ失礼、ARMにハイエンドはなかったね。
まあそれは置いといて、普通に読んだらCortex-A5、Cortex-A15等の話ってわかると思うけど。
Re: (スコア:0)
IA-32のISAの影響で命令デコーダだの実レジスタ数だのが肥大化してるのはボトルネックじゃないの?
話の流れで、「性能上の」ボトルネックって事はわかるよね?
チップデザイン上でも、現在、同程度のコストでx86を大きく上回るチップが存在しないんだから、大した問題でもないのかも。
まあ、Intelのデザイナーは頭を抱えてるのかもしれんが。
Re: (スコア:0)
ARMに関しては、同じISAでローエンドからハイエンドまでカバーしなければならないので、
バランスのとれたISAを定義することは重要なんでしょう。
ARMについて無知であることは分かった。
ああ失礼、ARMにハイエンドはなかったね。
まあそれは置いといて、普通に読んだらCortex-A5、Cortex-A15等の話ってわかると思うけど。
ローエンドのARMについて無知であることは分かった。
Re: (スコア:0)
ローエンドのARMについて無知であることは分かった。
親指だけは腕とは認めません。
Re: (スコア:0)
IA-32 から x86-64 でレジスタを増加させた影響は、ARM の事例では参考にならないと思うよ。
「汎用レジスタが何個から何個になったかご存知?」は自分ではないけれど、反論はそこから始まっている。
RISC/CISC とか、システムレベルアセンブリコードとか関係ない反論すると判ってない人と判断するよ。
反論の趣旨をとらえられてなかった訳で。
偉そうな口調で書いていると突っつきたくなるし(本音)
技術動向の認識としては一致した気がするので終了。公知の事項をなぞってるだけだけどね。
Re: (スコア:0)
> 自分としては、P6がターニングポイントだったと思うけどね。
あなたの目はISAではなく回路技術に向いているんですよ。
だから、みんなと意見があわないのです。