アカウント名:
パスワード:
MSの発表を見る限り、中身はほぼAMDのMantleにしか聞こえないのだけどMantleのAPIは未定義 [impress.co.jp]で開発任せな現状らしいのでAMDは始めからMSにDX12を作らせる目的でMantleを発表したのではないか、と思ってしまう。DX12の後ろにいるのはAMDのようだし。
リンク先には
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の箇所とか、読んでてこっちが気恥ずかしくなってきますね。
何がひどいか? RISCなのに汎用レジスタが16本しかない、その内の3本はプログラム関連で使っちゃうので、汎用に使えるのはたった13本。これで、ロード/ストアアーキテクチャのハンドリングをしなきゃならない。そうするとコンパイラが効率的なコードを吐けない。ので、コードステップが非常に長くなる。
確かにこれはひどいね。素人以下。
ので、コードステップが非常に長くなる。
なるほどわからん。レジスタ不足だから、主記憶に退避でもしているのだろうか。
レジスタに割り付けられないローカル変数はスタックフレーム(主記憶)に割り付けられる、が、ARM の仕様でそれほと問題になることは実際大してない。thumb ならまた別だが。
確かに生成されたコードを見ると、レジスタが足りなくてロード、ストアが頻出するってことは少ない気はする。ただ、x86-64の例を見ると、汎用レジスタが増えるのはやっぱり効いてくるんではないかと思う。Apple A7の性能向上も64-bit化自体が効いてるとは考え難いし。
ただ、x86-64の例を見ると、汎用レジスタが増えるのはやっぱり効いてくるんではないかと思う。
IA-32 → x86-64 で汎用レジスタが何個から何個になったかご存知?
知ってるけど、それが何か?もともとCISCの設計思想、かつスタックベースの命令が多いx86と、RISCの流れのARMとのレジスタの絶対数を比較してもあんまり意味が無いんじゃない?PPCやMIPSは32本のGPRを持ってるよね?あとA7については憶測だけど、レジスタの増加がパフォーマンスに全く効いてないとは考え難い。コンパイラで使うレジスタの数を制限するフラグでもあれば比較できて面白いかも。
もともとCISCの設計思想、かつスタックベースの命令が多いx86と、RISCの流れのARMとのレジスタの絶対数を比較してもあんまり意味が無いんじゃない?
汎用レジスタはいくつくらいあればまあ不足はないかというのを判断するのにRISCもCISCもあんま関係ないのでは?
「スタックベースの命令が多いx86」ということだけど、汎用レジスタ上にデータ置くのとスタックフレーム上に置くのとで違いがないのであれば(あり得ないが)、x86-64 で汎用レジスタの数を増やしたメリットはないですね。
x86のシステムレベルのアセンブリコード書いたことある?オフトピだからこれで最後にするけど、x86はメモリアクセスの遅延の影響を避けるために相当の資源を割いているよね。レジスタリネーミングはご存じ?実際のレジスタの数は、その辺のRISCよりよほど多いんじゃなかろうか。
アセンブリコードとか言いながらレジスタリネーミングとか片腹痛いレジスタリネーミングでマシン語プログラミングが楽になったら驚きだ。
あなたの行っている「x86のシステムレベルのアセンブリコード」が プロセッサの実装で、レジスタリネーミングのついでに命令発行をバイパスしてやったぜ!とか言うなら脱帽ですが。
そうじゃないならレジスタ退避で命令発行ポートストールされてろ
アセンブリコードの件は、x86の作法で書けばそんなにレジスタが要らない理由が分かるはずと思ったんだけどね。まあ、それでもレジスタリネーミングで楽にはなるよ。適当に書いてもそれなりのパフォーマンスが出るからね。
コードサイズと実行効率の両方でどの程度レジスタ数があれば適当かというアーキテクチャデザインの話と、少ないレジスタ数でも実行効率を引き出せるよう仕組みを実装するという話はそもそも話題として噛み合ってないことは理解できるかな?
x86-64で汎用レジスタが追加された事実を思い出せば、
自分がどれだけ馬鹿なこと言ってるかも理解できると思うけどね。
Linusの発言は読んでくれたかな?重要なのは実際の性能であって、どんなテクニックを使ってでも、結果的に少ないレジスタで最高の性能が出せるなら、それが現時点での適切なレジスタ数じゃないのかい?
自分はGPRを増やすのが無駄だとは一言も言ってないけどね。(Linusはx86-64には不要だったと言ってるけど。)
x86は8→16だからものすごく意味があるけど、ARMの15→31は意味が薄いと言いたいです。必須レジスタ数(アキュムレータ、スタック、ベース、ついでにインデックスとか)除いた残りレジスタ数へのインパクトが違う。だから、ARMの話にx86 の例を関連づけてほしくない。
あなたの反論は当を得ていない様に思う。なので以下は枝葉の話題。
レジスタ数が少なくてもやっていけるのは豊富なアドレッシング(メモリ直接とか、有り余るほどの間接アドレッシングとか)のおかげであって、その辺は ISAとか CISC/RISC の話。レジスタリネーミングはアウトオブオーダ実行を効率よく行うための実装
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
IA-32がトップクラスの性能ってそんな昔からのことじゃないよ。386~Pentiumの頃はRISCプロセッサ積んだWSには負けてたし、インテルにも見捨てられそうになった結果がIA-64だったわけだし、サーバ用途にIA-32のプロセッサが当たり前に採用されるようになったのって更に後のことだし。決して優れてたから生き残ったISAじゃないよ。
ドッグイヤーと言われるコンピューター業界で、386~Pentiumまで遡るの?まあいいけど当時WSとPCじゃ価格の桁が違ったよね。それに自分はx86のISAが優れているとは言ってないし思ってない。
それに自分はx86のISAが優れているとは言ってないし思ってない。
RISCのISAは優れているはずだった。IA-64だってレガシーを捨てて高性能化できるはずだった。それなのにx86は廃れるどころかHPC分野ですら活躍している。あっぱれとしか言いようがないじゃないか。
マスマーケット向けの製品であるIA-32プロセッサは開発コストを大きく割くことができ、さまざまな技術を導入することで現在の性能を実現している。その状況に於いてはISAの仕様など大きな問題ではない、というのは事実だと思いますが、この話の流れとしては外していますね。
> ドッグイヤーと言われるコンピューター業界で、386~Pentiumまで遡るの?
IA-32は386から基本的に変わっていないから別にいいと思う。
> まあいいけど当時WSとPCじゃ価格の桁が違ったよね。
アーキテクチャ絡みの性能を語るときに製品価格が出てくる理由が分からない。金の掛け方が違うと言いたいなら、今でもPOWER8なんてものがあるよ。
ドッグイヤーと言われるコンピューター業界で、386~Pentiumまで遡るの?
自分としては、P6がターニングポイントだったと思うけどね。
まあいいけど当時WSとPCじゃ価格の桁が違ったよね。
じゃあ、ARM Cortex-M0とPOWER8を比較して、POWER8が優れてるわけね。
そうね。話が脇道にそれたね。ただ、
ってことはさ、IA-32の純粋なGPRは8本より更に少ないんだよね。それでもデス
について、GPRが少ないのは既に大したボトルネックではないということを理解してもらいたかったのに、
IA-32のISAの影響で命令デコーダだの実レジスタ数だのが肥大化してるのはボトルネックじゃないの?
話の流れで、「性能上の」ボトルネックって事はわかるよね?チップデザイン上でも、現在、同程度のコストでx86を大きく上回るチップが存在しないんだから、大した問題でもないのかも。まあ、Intelのデザイナーは頭を抱えてるのかもしれんが。
> 自分としては、P6がターニングポイントだったと思うけどね。
あなたの目はISAではなく回路技術に向いているんですよ。だから、みんなと意見があわないのです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ソースを見ろ -- ある4桁UID
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: (スコア:0)
コードサイズと実行効率の両方でどの程度レジスタ数があれば適当かというアーキテクチャデザインの話と、少ないレジスタ数でも実行効率を引き出せるよう仕組みを実装するという話はそもそも話題として噛み合ってないことは理解できるかな?
Linusの発言は読んでくれたかな?
重要なのは実際の性能であって、どんなテクニックを使ってでも、
結果的に少ないレジスタで最高の性能が出せるなら、それが現時点での適切なレジスタ数じゃないのかい?
x86-64で汎用レジスタが追加された事実を思い出せば、
アセンブリコードの件は、x86の作法で書けばそんなにレジスタが要らない理由が分かるはずと思ったんだけどね。
まあ、それでもレジスタリネーミングで楽にはなるよ。適当に書いてもそれなりのパフォーマンスが出るからね。
自分がどれだけ馬鹿なこと言ってるかも理解できると思うけどね。
自分はGPRを増やすのが無駄だとは一言も言ってないけどね。(Linusはx86-64には不要だったと言ってるけど。)
ただ、x86-64の例を見ると、汎用レジスタが増えるのはやっぱり効いてくるんではないかと思う。
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:Mantleは当て馬? (スコア: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のISAが優れているとは言ってないし思ってない。
RISCのISAは優れているはずだった。IA-64だってレガシーを捨てて高性能化できるはずだった。
それなのにx86は廃れるどころかHPC分野ですら活躍している。あっぱれとしか言いようがないじゃないか。
マスマーケット向けの製品であるIA-32プロセッサは開発コストを大きく割くことができ、さまざまな技術を導入することで現在の性能を実現している。その状況に於いてはISAの仕様など大きな問題ではない、というのは事実だと思いますが、この話の流れとしては外していますね。
Re: (スコア:0)
> ドッグイヤーと言われるコンピューター業界で、386~Pentiumまで遡るの?
IA-32は386から基本的に変わっていないから別にいいと思う。
> まあいいけど当時WSとPCじゃ価格の桁が違ったよね。
アーキテクチャ絡みの性能を語るときに製品価格が出てくる理由が分からない。
金の掛け方が違うと言いたいなら、今でもPOWER8なんてものがあるよ。
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)
ってことはさ、IA-32の純粋なGPRは8本より更に少ないんだよね。それでもデスクトップからサーバーまでトップクラスの性能を保ってきたわけだ。その理由は考えた?
について、GPRが少ないのは既に大したボトルネックではないということを理解してもらいたかったのに、
IA-32のISAの影響で命令デコーダだの実レジスタ数だのが肥大化してるのはボトルネックじゃないの?
Re: (スコア:0)
IA-32のISAの影響で命令デコーダだの実レジスタ数だのが肥大化してるのはボトルネックじゃないの?
話の流れで、「性能上の」ボトルネックって事はわかるよね?
チップデザイン上でも、現在、同程度のコストでx86を大きく上回るチップが存在しないんだから、大した問題でもないのかも。
まあ、Intelのデザイナーは頭を抱えてるのかもしれんが。
Re: (スコア:0)
> 自分としては、P6がターニングポイントだったと思うけどね。
あなたの目はISAではなく回路技術に向いているんですよ。
だから、みんなと意見があわないのです。