トップページ⇒tech
994コメント306KB

GPGPU

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2005/10/08(土) 23:15:20
いつの間にやらCPUを超える演算性能を持ってしまったGPUに計算させてみるという
GPGPUについて語りましょう

参考リンク

総本山? gpgpu.org
http://www.gpgpu.org/
GPUをCPU的に活用するGPGPUの可能性
http://pcweb.mycom.co.jp/articles/2005/09/06/siggraph2/
0944デフォルトの名無しさん2007/08/19(日) 14:40:52
CUDAって再帰出来ないの?
moe(){←GPU側の処理
}
hoge(){←CPU側の処理
foo();
bar();
moe();
for(;;)
hoge();
}
みたいな事って無理なの?
0945デフォルトの名無しさん2007/08/19(日) 15:08:40
CPU側はできるでしょ。ドキュメントを読めば、デバイス側はできないと書いてあったと思うけど。
0946デフォルトの名無しさん2007/08/19(日) 16:02:03
そうそう、>944のようなコードだと、moeの呼び出し部分を並列化することになると思う。
つまり宣言は
__global__ void moe(...);
であり、呼び出し部は
moe<<<blocks, threads>>>(...);
になるんじゃないかな。
再帰段数にも拠るけど、巧く考慮しておかないとパフォーマンスは出にくいと思われ。
0947デフォルトの名無しさん2007/08/20(月) 19:21:46
ttp://www.gpgpu.org/s2007/
SIGGRAPH 2007 GPGPU COURSE
0948デフォルトの名無しさん2007/08/21(火) 21:17:15
GPGPUってどういう処理に向いているの?
一つの処理をforkしてさばく場合?
それともやたら早く数値演算が出来るの?
0949デフォルトの名無しさん2007/08/21(火) 22:03:23
やたらとは速くないな。少なくともWoodcrestには負けると思う。
強いのは並列処理。例えば行列演算とか画像処理にはかなりの威力を発揮する。
意外なところでは、超越関数だけで言えばXeonを遥かに凌ぐ速度も出る。
0950デフォルトの名無しさん2007/08/22(水) 09:55:31
簡単に言えば、CPUより出来の悪いプロセッサが、大量にくっついてるから
数で勝負できる。ってだけ。

並列化出来なければ、何のメリットも無い罠
0951デフォルトの名無しさん2007/08/22(水) 12:02:54
文字列操作は出来ないんですか?
#include <stdio.h>
int main (int argc, const char * argv[]) {
char string[] ="Hello,World";
char stringat[13];
copy (string,stringat);
printf("%s¥n",stringat);
return 0;
}
__global__ void
copy (char *buff,char *buffat){
int i = 0;
while(buff[i]){
buffat[i] = buff[i];
i++;
}
buffat[i] = '¥0';
}
良く分からないですけれど、こんな感じで。
0952デフォルトの名無しさん2007/08/23(木) 01:06:13
>>951
・GPU側関数はGPU側メモリしか扱えない。
・並列化しなければパフォーマンスは出ない。

結論:単なる文字列のコピーには使えない。但し、文字列操作ができないと言うことではない。
0953・∀・)っ-○◎●2007/08/23(木) 01:55:37
ちきしょーCUDA使いたかったのでXP 32bit追加
0954デフォルトの名無しさん2007/08/23(木) 02:03:12
Linuxは64bit出てるけどWinはないんだっけ?
0955デフォルトの名無しさん2007/08/23(木) 02:53:32
やっぱCUDA使う研究者とかはLinux使う人が多いのかな。
VMが進化してきたのでいいけど。
0956デフォルトの名無しさん2007/08/23(木) 07:38:50
nvcc(CUDAのコンパイラ)とgcc(iccでも可)があれば開発できるからねぇ。
Windows版はVS2005との連携になるからちと面倒。
# 尤も、どうせコマンドライン版を使うんだけど。
0957デフォルトの名無しさん2007/08/23(木) 08:44:11
>>952
ありがとうです。
GPU側からは、CPU側のメモリは弄くれないと。
つまり、参照渡しが使えない訳か。
GPU側の演算結果を得るためには、
cudaMemcpyという専用の関数を使わないと
駄目な訳ですね。
自分はMacしかもってないんですけれど、
実験でLinuxマシンかおうかなぁ。
CUDAには夢を感じるので。
0958デフォルトの名無しさん2007/08/23(木) 10:18:03
・∀・)っ-○◎●
0959デフォルトの名無しさん2007/08/23(木) 22:42:23
G80 じゃなくて CUDA に夢?
Larrabee とかにも自然に使えるとかそういう願望?
0960デフォルトの名無しさん2007/08/24(金) 01:11:20
なぜダンゴがこのスレにいるんだ?
0961・∀・)っ-○◎●2007/08/24(金) 06:23:26
最初から居る
0962デフォルトの名無しさん2007/08/24(金) 07:11:05
G80じゃなくてCUDAに自分は夢を感じますねぇ。
自分GPUの仕組みについては全くさっぱりなので。
ところでGPUをグリッド?単位で扱うみたいな事が書いてあるんだけれど、
っーことはGPUをいくつかに切り分けて、
fork-execしたプロセスに別々に渡したりできるのかしら?
0963デフォルトの名無しさん2007/08/24(金) 07:41:43
>>962
その仕組みがCUDAでいう並列化の肝だ。
例えばこんなループを
for (int i = 0; i < N; ++i) {
func(array, i);
}
こんな風に書くわけだ。
func<<<1, N>>>(array);
0964デフォルトの名無しさん2007/08/24(金) 09:21:06
いや呼ぶ側が別プロセスで使えるか,って話だろ
0965デフォルトの名無しさん2007/08/24(金) 10:59:41
あー、そういう話か。
別プロセスから単純に使おうとしたら待たされたっぽいけど
分割数を制御すれば共存できるかな?
確かに巧く使えば便利そうだ。ちょっと調べてみよう。
0966デフォルトの名無しさん2007/08/24(金) 11:10:14
>>963,964,965
すいません。
そういう話です。
GPUを論理分割?して別々の処理をしているプロセスに割り当てられたら
夢が広がるかなぁと思って。
0967デフォルトの名無しさん2007/08/24(金) 14:24:47
TILE64ってどうよ?
PCIeカードが出るみたいだけどx4レーンに刺すタイプみたいな。

わざわざマザー買い換えたくないし、さてどうしたものか。
0968デフォルトの名無しさん2007/08/24(金) 14:55:05
しかも2スロット占有型でしょ。
コンパイラがどんなもんかも判らんし。
0969・∀・)っ-○◎●2007/08/24(金) 19:54:54
マザー側のx1レーンを削(ry

安く済ませるにはPowerEdge SC430のx8とx4
あとはx1に刺さるビデオカードを用意して・・・

嫌だこの構成・・・
0970デフォルトの名無しさん2007/08/28(火) 01:11:47
これって
大量のスレッドをぶん回す用途には使えないの?
0971・∀・)っ-○◎●2007/08/28(火) 01:19:36
そもそもスレッドってなに?みたいな。
GPUって基本的にピクセル数分並列化できるから、複数タスクを平行に動かすような用途には進化しなかった。
0972デフォルトの名無しさん2007/08/28(火) 14:30:20
SIMDだからなぁ。MIなプログラム/アルゴリズム
には向かないと桃割れ。
ちと三宮へゲフォなグラボ見に逝って来る。
0973デフォルトの名無しさん2007/08/28(火) 23:59:28
普通に疑問なんだけれど、
例えばGPUにメモリが640MB搭載されてるとき、
32bitOSが使用出来るメモリ領域って
4GB-640MB分?
それとも、4GB全部?
簡単に言うと、
大容量メモリを乗っけたグラボがあった場合、
OSのメモリマップてどうなるの?
0974デフォルトの名無しさん2007/08/29(水) 00:04:32
VistaだったらVRAMに載せられるメモリから溢れたら
メインメモリも侵食してくってことだから
単純にVRAM容量のデカいカードが有利ってこと。
DXのメモリサーフェスのようなものと思えば。
XPだと顕著な差は出ない。

もちろんVRAMの多いカードツンだからといって
アプリが使えるメモリが増えることはない。
0975デフォルトの名無しさん2007/08/29(水) 00:51:54
>>974
うぐぐ、いまいち分からんデス
GE80っていわゆるI/OマップドI/Oなんでしょうか?
それともメモリマップドI/Oなんでしょうか?
0976デフォルトの名無しさん2007/08/29(水) 02:26:15
>>975
質問の真意を取り違えてしまった。
メモリマップトだろうがアパーチャだろうが
疑問の通り4GBの領域を侵食するが
昨今のOSはPAE機構などによりRAM総容量4GBの壁はない。
プロセスがリニアにアクセスできる空間が4GBなのは相変わらずだが
このへんの話は話し出すとキリがなくスレ違い。

次スレ要るのか?
0977デフォルトの名無しさん2007/08/29(水) 14:12:27
CUDAだとメインメモリもVRAMもヒープ領域として扱えますか?
0978デフォルトの名無しさん2007/08/29(水) 14:29:49
なにか勘違いしてるきがす
0979デフォルトの名無しさん2007/08/29(水) 15:17:51
ですか…やっぱ買って試さないとだめっすね
0980デフォルトの名無しさん2007/08/29(水) 15:34:57
妄想しすぎ
0981デフォルトの名無しさん2007/08/29(水) 16:36:06
そりゃ、トランジスタ数が6億8,100万もあれば妄想もしたくなるわ。
Power4の1億7400万でも、出たとき「スゲー、コレ」って思ったのに。
0982デフォルトの名無しさん2007/08/29(水) 17:11:46
次スレ建てますた。「GPUで汎用コンピューティングを行うスレ」は
話題がスレ違いの方向に向かって過疎ってるし、こっちに統合しま
しょう。その他、テンプレとかフォローよろしこ。

GPGPU#2
http://pc11.2ch.net/test/read.cgi/tech/1188374938/l50
0983デフォルトの名無しさん2007/08/29(水) 19:26:09
>>981
そうかなぁ・・・
ブロック図みたり、シェーダちょっとでもいじりゃ
どんなもんか予想できるだろ
0984デフォルトの名無しさん2007/08/29(水) 23:24:36
単に調べもせず妄想してる/夢抱いてるってことじゃね?
0985デフォルトの名無しさん2007/08/30(木) 00:09:19
取り敢えずCUDAのドキュメントに目を通せば判ることだし。
0986デフォルトの名無しさん2007/08/30(木) 03:24:18
でも、現状の仕様のままだったらかなり色物だよなぁ。
Teslaって売れてんのか?
なんつーか、「こんな処理には向いていないと思われてたけれど、
実際にコード書いてみたら、意外と処理が爆速でした」
って言うものを見つけないと、いつまでたってもGPGPUってはやらん気がする。
0987デフォルトの名無しさん2007/08/30(木) 04:51:36
Larrabeeはあと3年後
CUDAはさっぱり
Fusion?なにそれ?
GPGPUオワタ
0988デフォルトの名無しさん2007/08/30(木) 20:17:22
GPGPUを研究してる人って日本国内に何人くらい居るんだろう?
3000人くらいかなぁ?
っーか、この分野は何に分類されるの?
CG?
0989デフォルトの名無しさん2007/08/30(木) 20:36:35
HPCだろう。でも、本気でやってる人はいないかと。
半分ギャグみたいなものだし。
0990・∀・)っ-<コ:彡-2007/08/31(金) 02:19:18
WiiでLinux動かそうとかやってる人よりマイナーだわな
0991デフォルトの名無しさん2007/08/31(金) 10:46:33
団子さんのさりげない一言がビシッとキマりましたね。
0992デフォルトの名無しさん2007/08/31(金) 12:50:29
どうでもいい話ではあるが、客がTeslaC870を発注した。
問題は、TeslaはGPUといっていいのか悪いのかw
0993デフォルトの名無しさん2007/08/31(金) 12:52:34
グピグピウ、って読んでいいですか?
0994デフォルトの名無しさん2007/08/31(金) 13:25:46
ぐぷうぐぷ
レス数が950を超えています。1000を超えると書き込みができなくなります。