アカウント名:
パスワード:
いや、代替は無理だとしてもGPUを使ったCPUエミュレーションとかやったらできるもんだろか、と考えたりはします。
CPUの代わりになるかどうかは、GPUの機能がチューリング完全 [wikipedia.org]かどうかで決まります。GPUは今の所チューリング完全ではない、と言われています。なのでまだ無理でしょう。# 今のGPUがCPUより早いのはチューリング完全じゃないからだ、という見方もできます。
> GPUは今の所チューリング完全ではない、と言われています。どこで誰が言ってるの?GPUがチューリング完全じゃないならCUDAはどうやって実装されてるの?OpenGLのシェーダー言語であるGLSLも、DirectXのシェーダー言語であるHLSLもチューリング完全で、だからこそWebGLの欠陥 [srad.jp]が「対応困難な仕様上の欠陥」とされているんだけど?まさか「メモリが無限じゃないからチューリング完全ではない」なんて屁理屈じゃないよね(だったらCPUだってチューリング完全ではない)。
CUDAもGLSLもHLSLも、GPU「だけ」で実装するものじゃありませんよ?
なんかレイヤーを1つ勘違いしていませんか?
「GPUだけ」ってどういう意味? CUDAやらGLSLやらHLSLやらでコンパイルされてGPUに送り込まれる機械語コードもチューリング完全ですけど?IntelのCPUはx86のバイナリしか実行できないから高級言語はチューリング完全じゃないとでも?まさか「ブートできること」がチューリング完全の定義だとか言い出さないよな。> なんかレイヤーを1つ勘違いしていませんか?あんたのほうこそ根本的に理解を誤ってるとしか思えないけどどうせそんなこと言っても認めるわけないしな。
> 「GPUだけ」ってどういう意味? CUDAやらGLSLやらHLSLやらでコンパイルされてGPUに送り込まれる> 機械語コードもチューリング完全ですけど?> IntelのCPUはx86のバイナリしか実行できないから高級言語はチューリング完全じゃないとでも?
例えば sort だとか m4 だとか C コンパイラだとか Java VM だとかLisp インタープリタだとかが GPU で実装可能なんでしょうか?
# 本当に興味本位の純然たる質問です。
「GPUだけ」ってどういう意味? CUDAやらGLSLやらHLSLやらでコンパイルされてGPUに送り込まれる機械語コードもチューリング完全ですけど?
ここがあなたの勘違い。
> OpenGLのシェーダー言語であるGLSLも、DirectXのシェーダー言語であるHLSLもチューリング完全で、だからこそWebGLの欠陥が「対応困難な仕様上の欠陥」とされているんだけど?
シェーダー言語がチューリング完全であることは、WebGLの欠陥が「対応困難な仕様上の欠陥」であることの必要条件なのか?その言語に何かできない計算があったら、ただそれだけで「対応困難な仕様上の欠陥」が出来得ないとは到底思えないが。
NVIDIAのGeforceとかはチューリング完全だと思うCPUの代わりにならないのは、単に用途と性能の問題
基本的にGPUは一度に同じ命令しか処理できないし、メモリアクセスやプロセッサのクロックも遅いその代わりに、たくさんのデータに対して一度に同じ処理ができるように設計されている
>> CPUの代わりにならないのは、単に用途と性能の問題
> キャッシュが無い/少ないのはキャッシュヒットしない/率が低いようなデータ扱ってるから。
肯定 ... ... だよな?
メモリアクセスが遅いと言った元コメとは違うんですが、
> メモリが遅いって言ってるので、メインメモリとならCPUとは比べ物にならない帯域確保されてる。
いまいちピンと来ないのは、「比べ物にならない帯域」がたかだか8倍だから。それに対して512並列でプログラムを走らせた場合、スケールしてくれるとは思えません。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds
こういう記事でCPUはいらないなどと (スコア:1)
凄く速いオートバイが自動車の代わりになり得るかを問うてみるのもいとおかし。
Re: (スコア:0)
いや、代替は無理だとしてもGPUを使ったCPUエミュレーションとか
やったらできるもんだろか、と考えたりはします。
Re:こういう記事でCPUはいらないなどと (スコア:1)
CPUの代わりになるかどうかは、GPUの機能がチューリング完全 [wikipedia.org]かどうかで決まります。
GPUは今の所チューリング完全ではない、と言われています。なのでまだ無理でしょう。
# 今のGPUがCPUより早いのはチューリング完全じゃないからだ、という見方もできます。
fjの教祖様
Re:こういう記事でCPUはいらないなどと (スコア:1, 興味深い)
1次元セルオートマトンのルール110がチューリング完全 [wikipedia.org]だったりするので、
ちょっとした画像処理を繰り返し実行できればチューリング完全です。
結局、その計算結果を現実的な手段で外部に出力できるか、というところが問題になり、
「外部I/Oがそういう風にはなってないので今のアーキテクチャではCPUの代わりにはならない」と、
チューリング完全性を持ち出さない説明と大差ない結果になります。
Re: (スコア:0, 荒らし)
> GPUは今の所チューリング完全ではない、と言われています。
どこで誰が言ってるの?
GPUがチューリング完全じゃないならCUDAはどうやって実装されてるの?
OpenGLのシェーダー言語であるGLSLも、DirectXのシェーダー言語であるHLSLもチューリング完全で、だからこそWebGLの欠陥 [srad.jp]が「対応困難な仕様上の欠陥」とされているんだけど?
まさか「メモリが無限じゃないからチューリング完全ではない」なんて屁理屈じゃないよね(だったらCPUだってチューリング完全ではない)。
Re:こういう記事でCPUはいらないなどと (スコア:1)
CUDAもGLSLもHLSLも、GPU「だけ」で実装するものじゃありませんよ?
なんかレイヤーを1つ勘違いしていませんか?
fjの教祖様
Re: (スコア:0, 荒らし)
「GPUだけ」ってどういう意味? CUDAやらGLSLやらHLSLやらでコンパイルされてGPUに送り込まれる機械語コードもチューリング完全ですけど?
IntelのCPUはx86のバイナリしか実行できないから高級言語はチューリング完全じゃないとでも?
まさか「ブートできること」がチューリング完全の定義だとか言い出さないよな。
> なんかレイヤーを1つ勘違いしていませんか?
あんたのほうこそ根本的に理解を誤ってるとしか思えないけどどうせそんなこと言っても認めるわけないしな。
Re:こういう記事でCPUはいらないなどと (スコア:2)
> 「GPUだけ」ってどういう意味? CUDAやらGLSLやらHLSLやらでコンパイルされてGPUに送り込まれる
> 機械語コードもチューリング完全ですけど?
> IntelのCPUはx86のバイナリしか実行できないから高級言語はチューリング完全じゃないとでも?
例えば sort だとか m4 だとか C コンパイラだとか Java VM だとか
Lisp インタープリタだとかが GPU で実装可能なんでしょうか?
# 本当に興味本位の純然たる質問です。
Re:こういう記事でCPUはいらないなどと (スコア:1)
ここがあなたの勘違い。
fjの教祖様
Re:こういう記事でCPUはいらないなどと (スコア:2, 参考になる)
okkyさんに一票
Re:こういう記事でCPUはいらないなどと (スコア:1)
1/60秒毎に呼び出すというのはCPUにクロックを与えるというのと、理論の上では大差ない。VRAM上に書かれたライフゲームのピクセル並びをチューリングマシンとしてデコード、さらにその計算結果を引っ張り出すというのは、常識的に考えてアホらしい手間がかかるけど「チューリング完全かどうか」という議論の場合、手間は考えない。「紙と鉛筆とそろばんで地球エミュレータと同じ計算は可能か?」「理屈の上では可能である」というような数学の世界。
「電卓はチューリング完全か?」と言うと、任意のプログラムを入力して走らせる機能は持っていないので、「違う」という答えになる。でも、電卓の中にはCPUとプログラムが書かれたROMが入ってるわけで、「そのROMを書き換えて良いならチューリング完全」とも言える。 GPUも似たような話で、「周辺回路の設計次第」という事になるので「どういう条件でチューリング完全にならないのか」という前提が無いと議論の意味が無い。「今のPCからCPUを取っ払うとチューリング完全では無くなる」を仮定するなら・・・それ以前にPCとして動作しないので、チューリング完全性を持ち出してくる必要は無い。
この手の話でチューリング完全性を持ち出してくるのは、 「人は必ず死ぬか?」「そのとおり。なぜなら宇宙に終わりがあるから」みたいに大げさすぎてあまり筋が良い説明にはなりそうに無いと思う。 そんな根本原理に立ち返らなくても説明は十分に付くし、その根本原理も上記のような屁理屈で回避出来かねないし。「宇宙が終わるとは限らない」などと言い出されたりとか。
Re:こういう記事でCPUはいらないなどと (スコア:1)
> OpenGLのシェーダー言語であるGLSLも、DirectXのシェーダー言語であるHLSLもチューリング完全で、だからこそWebGLの欠陥が「対応困難な仕様上の欠陥」とされているんだけど?
シェーダー言語がチューリング完全であることは、WebGLの欠陥が「対応困難な仕様上の欠陥」であることの必要条件なのか?
その言語に何かできない計算があったら、ただそれだけで「対応困難な仕様上の欠陥」が出来得ないとは到底思えないが。
1を聞いて0を知れ!
Re: (スコア:0)
NVIDIAのGeforceとかはチューリング完全だと思う
CPUの代わりにならないのは、単に用途と性能の問題
基本的にGPUは一度に同じ命令しか処理できないし、メモリアクセスやプロセッサのクロックも遅い
その代わりに、たくさんのデータに対して一度に同じ処理ができるように設計されている
Re: (スコア:0)
GDDR5 384bit接続 4GHz駆動なんてメモリバス積んだCPUは無いかと。
キャッシュが無い/少ないのはキャッシュヒットしない/率が低いようなデータ扱ってるから。
プロセッサーのクロックが遅いのは、開発サイクルをCPUに比べて短くしないと機能で置いてかれちゃうので、クリティカルパス潰してクロック上げるって作業が出来なかったから。
今の世代で一通り機能が揃っちゃった感じがあるので、クロックも上がってゆくみたいですよ。
そのまえに消費電力の壁で止まりそうですが。
Re: (スコア:0)
>> CPUの代わりにならないのは、単に用途と性能の問題
> キャッシュが無い/少ないのはキャッシュヒットしない/率が低いようなデータ扱ってるから。
肯定 ... ... だよな?
Re: (スコア:0)
予想されるであろうキャッシュが無いから結果的に遅いだろって意見に対して、扱ってるデータの性質上キャッシュつんでも意味ないよーん、と言ったつもりだったのですが
判り難かったですか?
Re: (スコア:0)
メモリアクセスが遅いと言った元コメとは違うんですが、
> メモリが遅いって言ってるので、メインメモリとならCPUとは比べ物にならない帯域確保されてる。
いまいちピンと来ないのは、「比べ物にならない帯域」がたかだか8倍だから。
それに対して512並列でプログラムを走らせた場合、スケールしてくれるとは思えません。