CPUとGPUと計算高速化について、夜中に話したこと
- aokomoriuta
- 4419
- 0
- 2
- 0
@aokomoriuta 今となっては違いは少なくなってきてますね。ちょっと前まではGPUの制約が大きかったので、独特のパフォーマンスを出すためのテクニックが必要でしたが、そうしたものがなくなってくることで特別感はなくなってきますね
2010-07-21 00:08:54@masafumi ですね。一般的に(簡単に)なればなるほど、特別感がなくなって、そんなに注目しなくなる(興味がなくなる)ものなのかもです。
2010-07-21 00:11:16なんにしても、ある目的に特化したものと、汎用性を高めたものだと、そりゃ前者のほうが性能は高いことが期待されるよね。それが残るかどうかは別にして。
2010-07-21 00:00:53@aokomoriuta GPUに関していえば、前者を維持しているのがAMD(ATI)、後者に寄ろうとしているのがnVidiaですからね。
2010-07-21 00:05:40まぁ計算力学な観点からすると、CPU単独だろうがGPGPUだろうがCPU+GPUだろうが、計算が並列化されると言うだけで、そんな大きな違いはないんですけどね。
2010-07-21 00:06:37そのうち、粒子法も一般化して、特別視されなくなるんだろうなぁ。というかまぁ、既にそんな感じが漂い始めてる気がしないでもない。
2010-07-21 00:13:28OpenCL でいうところのデータ並列とタスク並列だと、CPUはどっちも並列度上げて高速化できるけど、GPUはタスク並列に関しては・・・・なので。ってまあ、そこらへんまで行くとアーキテクチャの話になってしまうのだけれども。
2010-07-21 00:13:58まあ、利用する人みながアーキテクチャやら最適化やらを理解しないとパフォーマンス出せないというのも酷な話で、OpenCL はそのあたりをほんのちょっとだけ解消する入り口になるのかな。
2010-07-21 00:21:21あ、あと、計算の高速化の話だけど、もし本当に高速化したいなら、コンパイラなんて使わずに機械語(あるいはアセンブリ言語)使えよ!というのはよく聞くので、結局は、ただ性能が良ければよいってわけではないんですよね。広く受け入れられる(後世に残る)ためには。
2010-07-21 00:23:24計算手法なんかも同じで、複雑な式使って複雑に組んだ計算方法ですごいことやっても、あんまりすごさは認められないわけで。この辺がDEMなんかが、その計算パラメーターの曖昧さとかを含んでいてもなお使われている理由だったりしますからね。
2010-07-21 00:24:52DEM的な物体(不連続体)の計算は、その粒径以下のスケールで破壊その他の現象は起きない、かつ、破壊が起きるときはその粒径により定められた形で動くだろうことが前提となっていることを忘れがち(自戒を込めて
2010-07-21 00:45:17@aokomoriuta 現在のコンパイラは賢いので自分でアセンブリ言語を書くのは効率や実際に出力されるコードもかなり最適化されたもの出るので効果的ではないという意見が多いですね
2010-07-21 00:26:30まぁ、高度に抽象化されていけば行くほど、その前の次元で出来た事ができなくなったり、その次元でのテクニックが使えなくなるのは仕方ないわけで・・・(そして特化と一般化の話に戻る
2010-07-21 00:28:09OpenCL でワークグループの数とローカルアイテムの数変えて実行時間とるとね、CPUとnVidiaがほとんど同じグラフの形になって、AMDだけぜんぜん違う形になるんだよね。
2010-07-21 00:31:42あ、思い出したのでついでに。計算力学やってると対称疎行列かつ正定値な行列を係数とする連立一次方程式の解を求めることはよくあることなので、それをするためだけに特化されたプロセッサなりユニットなりを作ることが出来るなら、そりゃそれを使った方が高速だよね、という話を前にしてました。
2010-07-21 00:31:25