[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 07/04 21:41 / Filesize : 200 KB / Number-of Response : 849
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

GPGPU



1 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 23:15:20 ]
いつの間にやらCPUを超える演算性能を持ってしまったGPUに計算させてみるという
GPGPUについて語りましょう

参考リンク

総本山? gpgpu.org
www.gpgpu.org/
GPUをCPU的に活用するGPGPUの可能性
pcweb.mycom.co.jp/articles/2005/09/06/siggraph2/


558 名前:・∀・)っ-○◎● mailto:sage [2007/04/19(木) 01:07:57 ]
弾の数が勿体ない。
スループット落ちるじゃないか。

559 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 01:09:19 ]
252 :Socket774 [sage] :2007/04/19(木) 00:15:30 ID:0/nRKtHL
Larrabeeはかなり本気で開発している模様

> またRattner CTOが基調講演で触れたIAコアによるテラフロップCPUに関し、
> もう少し細かい話も出てきた。デモで紹介された80コアの試作チップはIAコアでは
> なく、もっとシンプルなものだったが、IAコアを搭載するものを同社は開発中で、
> コードネームは「Larrabee」であることがGelsinger氏から明らかにされた。
>
> 実際のコア数がどのくらいになるのかは不明だが、命令セットが拡張された
> IAコアを搭載することになるようだ。これは製品化を前提にした開発のようで、
> 「来年にもデモが披露できる予定」とGelsinger氏。

そしてGPGPU終了のお知らせ

> 最後にMicrosoft ResearchのDavid Williams氏の「Intelのこのアプローチは、
> GPGPUコンピューティングに関するディベートを終わらせることになる」という
> コメントを引用し、Larrabeeに対する自信を見せた。

journal.mycom.co.jp/articles/2007/04/18/idf06/index.html

560 名前:・∀・)っ-○◎● mailto:sage [2007/04/19(木) 01:12:33 ]
早い話がIntel版Cellだな

561 名前:デフォルトの名無しさん [2007/04/19(木) 01:19:22 ]
さすが団子チューさん^^

562 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 10:22:20 ]
ダンゴの一言は重みがあるな

563 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 20:33:33 ]
GPUで出来ることの幅が広がるのはうれしいけど
本来のGPU的の使用には向かなくなってるのかな?
例えば、これからコアもっとリッチに、粒度をもっと細かくしていくと
行き着く先はCell+だよね。で現状CellはGPUの代わりは出来ていない。


564 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 20:42:46 ]
上の奴は何を言ってるんだ?
もっと勉強してこいと言いたい。

565 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 20:51:19 ]
今のGPUがやっているような、パラレリズムの特徴を利用してメモリアクセスの
レイテンシーを隠ぺいできるような仕組みがないと、PUの利用効率が悪くなって
大きなファクターでの性能向上は難しいような気がする。

個人的には David Williams 氏のいうことはあまり信用できないな。

566 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 21:34:20 ]
>>556-558
ItaniumやXbox360 GPUのプレディケーションって奴では?
XBOX360なら48 shader
分岐待ちしてるのと、演算にリソース使うの
どっちが良いんだろう?
まぁ、R520系のように分岐ユニット(?)をつければ良いのかな・



567 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 21:42:32 ]
G70系のように比較的大きい粒度だと小さいレジスタですんでたのが
R520系では小さい粒度のためG70系に比して大きいレジスタを搭載している。

NVIDIAはどうか知らないがAMDは更に小さくするんじゃないかな?粒度

568 名前:536 mailto:sage [2007/04/20(金) 18:36:53 ]
取り敢えずCUDAのサンプルと同等の処理をgccでコンパイルして較べてみた。
3.4GHzXeonで66ms掛かる処理が8800GTXで0.23ms。
#サンプルはsimpleTexture。
こういうサンプルだと確かに速いね。
#いかん、Xeonの方はsse使ってないやw

569 名前:536 mailto:sage [2007/04/20(金) 19:28:19 ]
で、Xeonでsse使ったら(ベクタ化してないけど)44msにはなった。
でも、200倍近く。これなら取り敢えず、実験でお金が貰えそうだw

570 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 05:44:09 ]
>>568
ども。
Xeon Quad DPのコア当たり性能が仮にNetburst Xeon 3.4GHzの倍だとしても、
x 2 x 4 x 2 でもまだ、10倍以上か。

double演算エミュレーションのサンプルみたいのはあるのかな?

571 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 06:18:08 ]
コード示さんとわからん。

572 名前:536 mailto:sage [2007/04/21(土) 08:21:24 ]
GPU側はCUDAのサンプル、CPU側はそれを移植したもの。
どうしても見せろってことなら後で載せるよ。
#どうせだからこのPCでもコンパイルしてタイムを計ってみるか。

573 名前:536 mailto:sage [2007/04/23(月) 18:28:24 ]
あー、載せるの忘れてた。CPU版のソースはこんな感じ。これをGPUのサンプルのtransform()と入れ替えて辻褄合わせた。
#でも、CUDAではgetData()相当で単純に整数化しないでニアレストネイバーか何かでサンプリングしているのでその分更に差が開く……

static float getData(float * data, float x, float y, int width, int height)
{
int ix = static_cast<int>((x + 1) * width + 0.5f);
int iy = static_cast<int>((y + 1) * height + 0.5f);
ix %= width;
iy %= height;
return data[iy * width + ix];
}
void transform(float * rdata, float* g_odata, int width, int height, float theta)
{
for (int y = 0; y < height; ++y) {
for (int x = 0; x < width; ++x) {
float u = x / (float) width;
float v = y / (float) height;
u -= 0.5f;
v -= 0.5f;
float tu = u*cosf(theta) - v*sinf(theta) + 0.5f;
float tv = v*cosf(theta) + u*sinf(theta) + 0.5f;
rdata[y*width + x] = getData(g_odata, tu, tv, width, height);
}
}
}
このコード、Celeron1.2GHzでは109msだった。


574 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 19:42:27 ]
>>573
おいおい、そのCPU用のコードはいくらなんでも冗談だろ?

575 名前:536 mailto:sage [2007/04/23(月) 19:49:31 ]
>>574
何か問題でも?
getData()はCUDAのサンプルの出力からの類推ででっち上げたから問題があるとしたらその辺かな?
transform()に関してはCUDAのサンプルのロジックそのままだからそれについては何もコメントできないけど。

576 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 20:21:04 ]
>>575
CUDAで実行した場合に transformKernel() 内のすべてのロジックを
各画素について糞真面目に計算してるとでも思ってるのか?
そのCPUコードじゃGPUと対等じゃないよ。



577 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 20:37:55 ]
普通に考えて、width, height, thetaのみに依存する(入力ストリーム全体に対して不変の)
ロジックは先に計算してGPUの定数レジスタに格納する、くらいの最適化はしてるだろうね。
DirectXのHLSLシェーダをアセンブリにコンパイルしたときのpreshaderみたいに。

578 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 21:22:20 ]
>>573
CPU側をこんな感じにすればGPUの計算量に近くなるかな

void transform(float * rdata, float* g_odata, int width, int height, float theta)
{
 float inv_width = 1.0f / width;
 float inv_height = 1.0f / height;
 float sin_theta = sinf(theta);
 float cos_theta = cosf(theta);

 for (int y = 0; y < height; ++y) {
  for (int x = 0; x < width; ++x) {
   float u = x * inv_width;
   float v = y * inv_height;
   u -= 0.5f;
   v -= 0.5f;
   float tu = u*cos_theta - v*sin_theta + 0.5f;
   float tv = v*cos_theta + u*sin_theta + 0.5f;
   rdata[y*width + x] = getData(g_odata, tu, tv, width, height);
  }
 }
}

逆にCUDAのほうでsin, cosの中身をthetaだけじゃなくビルトイン変数blockIdxとかに依存させたら
各入力に対して毎回三角関数を計算せざるを得なくなるから劇的に遅くなるんじゃないかな

579 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 21:58:44 ]
gcc、それくらいの最適化は任せられなかったっけ?
気持ちが悪いから、可読性が落ちないなら、速い方にするけど。

>>573にもう一度回してもらうのが一番手っ取り早いか。

580 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 22:24:02 ]
>>579
sinf, cosfは外部のライブラリ関数で、Cコンパイラはその処理内容を知る立場にないから、
for文の中にある関数の呼び出し回数を勝手に減らすような最適化は普通しないと思うよ。
インライン関数だったらそういう最適かも可能だけど。

581 名前:536 mailto:sage [2007/04/23(月) 23:00:41 ]
うい、流れは理解した。
明日にでも試してみる。

>>580
gccはsinf()はインライン展開しないようだね。
このテストじゃないけれど、iccはsincos同時に求める専用関数に置き換えるくらいのことはする。
iccの方は現在手元にないから水曜日になるけどテストしてみま。

582 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 23:33:10 ]
>>581
投げてばっかりで悪いけど、よろしく。
8600でも買おうかと思ってたけど、unitが半分のはずが1/4しかないんでちょっと萎えてる状態。

583 名前:デフォルトの名無しさん [2007/04/24(火) 06:46:36 ]
CUDAって、Vistaにまだ対応してないよね?
あと、XPはx64にも対応してないけど、これってネイティブな64bitモードで動かないってだけ?
俺メインマシンがVistaとXP x64とのデュアルブートだから、CUDAの導入に踏み切れない・・・。
対応してるなら、早速グラボ買って来るんだが・・・


584 名前:デフォルトの名無しさん [2007/04/24(火) 06:58:26 ]
積は最近遅くない気もするがね。

void transform(float * rdata, float* g_odata, int width, int height, float theta)
{
 float inv_width = 1.0f / width;
 float inv_height = 1.0f / height;
 float sin_theta = sinf(theta);
 float cos_theta = cosf(theta);
float v = -0.5f;
 for (int y = 0; y < height; ++y, v += inv_height) {
float u = -0.5f;
  for (int x = 0; x < width; ++x, u += inv_width) {
   float tu = u*cos_theta - v*sin_theta + 0.5f;
   float tv = v*cos_theta + u*sin_theta + 0.5f;
   *rdata = getData(g_odata, tu, tv, width, height);
++rdata;
  }
 }
}


585 名前:536 mailto:sage [2007/04/24(火) 17:56:14 ]
ほい、お待たせ。
結論から言うと、10msそこそこまで速くなった。
#コンパイルオプションつけ捲くりw(-O3 -funroll-loops -msse2 -mfpmath=sse)

コードの方は>584をベースにgetData()も手動最適化したくらい。ってことで、念の為にコード。
static float getData(float * data, float x, float y, int width, int height, float wf, float hf)
{
int ix = static_cast<int>(x * width + wf);
int iy = static_cast<int>(y * height + hf);
ix %= width;
iy %= height;
return data[iy * width + ix];
}
呼び出し側は、
float width_half_up = width + 0.5f;
float height_half_up = height + 0.5f;
しておいて
*rdata = getData(g_odata, tu, tv, width, height, width_half_up, height_half_up);
ちなみにアセンブリ出力を眺めたところ、rdata[y*width+x]と*rdata, ++rdataでは一番内側のループ内のロジックは同一。
この程度の最適化はするらしい。どうやら主な違いはu, vを計算しなおすのにx, yを使う関係でcvtsi2ssが入る辺りじゃないかと。
#掛け算より遅いかどうかは知らないけれど。

ってことで、レスくれている人達THX。こちらもどうせいろいろ資料作らなければならないんで、ネタ提供してもらって助かってます。
#そう言えば、DOSPARA辺りで8800積んだBTOのPC出始めてますねぇ。

586 名前:536 mailto:sage [2007/04/24(火) 18:31:54 ]
>>583
この辺は参考にならない?
forums.nvidia.com/index.php?showtopic=28716



587 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 20:27:32 ]
>>585
どうもです。10msそこそこってのはCeleron1.2GHzですか?
getData(テクスチャフェッチ)はGPUが非常に得意な部分だからそこでかなり差が付いてるかもね。

588 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 23:38:13 ]
Celeron 1.2GHzならメモリが遅過ぎでしょう。
あとCeleronの場合、整数だけで座標を演算した方が速いと思う。
それにしても比較するのは酷な環境。

589 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 23:45:07 ]
ところで時間計測はどのように行ってます?

590 名前:536 mailto:sage [2007/04/24(火) 23:49:26 ]
いや、10msはXeon3.4GHz(>568-569参照)。
そう言えば、Celeronの速度は忘れてた。

591 名前:588 mailto:sage [2007/04/24(火) 23:55:05 ]
あとこれCPUにもよるだろうけど、繰り返さなくていいなら

if ( unsigned(width-1-ix) < width && unsigned(height-1-iy) < height )
    return data[iy * width + ix];
else
    return 0.0f;

の方が速いよな。
本当はループの外で判定出来るからもっと速くなるけど
とりあえずこの程度は予測分岐で賄えるだろうと怠慢。

592 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 23:56:58 ]
何言ってるか分りにくいか。
ix %= width
みたいな除算が重たいから取り除くって話ね。

593 名前:536 mailto:sage [2007/04/25(水) 00:41:07 ]
>>591-592
あー、それは敢えてCUDAサンプルの出力を見て合わせた。
最初は条件分岐でやったけど、確か大して時間変わらなかったように記憶している。

>>589
CUDAのサンプルの時間測定をそのまま使ってたんで、今調べたらgettimeofday()だった。

594 名前:588 mailto:sage [2007/04/25(水) 03:13:43 ]
積に比べれば遥かに重いんだけど、流石にXeonでは誤差か。

けどGPUがサイズを二の累乗に限定していたのはこういうところにもあるはずで、
例えばwidthとheightが二の累乗に限定出来れば

ix %= width;



ix &= (width-1);

にして除算が排除出来る。
Celeronではかなり効果あるんじゃないかなあ。

595 名前:デフォルトの名無しさん [2007/04/27(金) 00:55:48 ]
上の方でも条件分岐が必要な処理に関して質問があがってたのですが
イマイチ、ぴんと来ないので質問させてください。

遂に昨日8シリーズを手に入れたのですが、とりあえずは簡単に使えるBrookGPUでDCTを実装して試そうと思ったんです。
で、DCTで係数kiとして

kiの値は
ki=1/√2 (i=0)
ki=1 (i≠0)
って処理がありますが、
具体的には、こういう部分はどのように書けばいいのでしょうか?

ifが使えないとなると、せっかくforループを使わずにGPUに投げられるのに、ループ回してCPUでiの値を確認しなくてはいけなくなると思うんですが・・・

初歩的な質問で申し訳ないのですが、この辺具体的な話がイメージ出来なくて困っています。


596 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 01:01:48 ]
つか、ゲッパチ買ってきたんだけどCUDA糞じゃん

普通の文字列処理とかできねーじゃん。汎用GPUプログラミングとかいっておいて
なーんもできねーじゃんゴミだだまされた。明日nvidiaに電凸しよう。



597 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 01:26:43 ]
>>595のは、ちょっと例が悪かったです。
ごめんなさい(汗
ただ、他にifを使う部分は、やっぱり数式に直すしかないんですかね?

598 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 01:42:26 ]
>>597
悪いってレベルじゃねぇぞw

で、結局そこはCPU側に出すか
もしくは数式的に直せるのであればそうするしかないな。
CUDAは知らん。

>>596
はいはい。
使いこなせないだけですね。
文字列処理って何ですか?
文字列を数値化すれば、形態素解析であろうが、文字列マッチングであろうが
置換であろうが、余裕ですよ。


599 名前:デフォルトの名無しさん [2007/04/27(金) 06:51:15 ]
>kiの値は
>ki=1/√2 (i=0)
>ki=1 (i≠0)
単純になら、ki=1-(1-1/√2)*(i==0)
i==0の時だけループからはずすのも手だし、
テクスチャを係数テーブルにするほうが普通じゃ。

600 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 07:50:49 ]
>>597
効率がどうなるかは知らんが、そういう用途ならCUDAの方が楽じゃない?

601 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 09:50:02 ]
BrookGPUで各ユニットで共通の変数を利用したい場合ってどうすればいいのでしょうか?

例えば、
for(int i=0; i<128; i++)
out[i]=i;


for(int i=0; i<128; i++)
out[i]=out[i]+5;

このようなパターンです。

602 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 09:55:56 ]
>>601
まず、後者の場合、reduceを使う

void reduce sum(reduce float res<>){
res=res+5;
}
こんな感じ

前者の場合。
イテレーターを使うんだと思うんだけど、ちょっと俺にもわからん。


603 名前:602 mailto:sage [2007/04/27(金) 09:57:59 ]
って、うわ・・・
後者も間違ってる。。sumの問題じゃなかったのね。
すまん。

その場合普通に
kernel void (out float o<>){
o=o+5;
}
でいいじゃん。

604 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 10:35:23 ]
>>601

void reduce func(reduce float i<>, out float o<>){
o=i;
i=i+1.0;
}

後者は何が言いたいのかわからん。
普通で

605 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:19:43 ]
お前らCUDAやりなさい。

ところで、CgがあるのにCUDAを出す意義って?
nVIDIAは言語の乱立を自重汁

606 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:46:51 ]
Cgはシェーダー言語。HLSLのベースになった時点であるいていど成功。
CUDAはプログラミング言語。



607 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:49:41 ]
>>606
はあプログラミング言語ねえ

608 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 03:02:44 ]
>>595
conditional move とか select とか、そういう類の命令を持つ CPU とか GPU があるのね。
だから3項演算子とか>599のようなことで問題なし。
そんなことを気にするよりも、まずは動くものを作ってこことかどっかに投げないと、何が聞きたいのかわからんというか、何を答えても的外れになりそうな気分になって答えられない。

609 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:22:28 ]
BrookGPUって、intは使えないよね?
データがint型で、ストリームに送る前にキャストしても返ってくる値がおかしいから困る・・・。

こういうのってどうすればいいんだ?

610 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 08:20:49 ]
桁落ちが原因だろ。>値がおかしくなる。
落ちない範囲に収めるor諦める

611 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 18:01:20 ]
コーヒーブレイク
ttp://www.forum-3dcenter.org/vbulletin/showthread.php?p=5449565#post5449565
ttp://www.forum-3dcenter.org/vbulletin/showthread.php?p=5450755#post5450755
R600のリークスライドなんですが、SuperScalar,SIMD,VLIW等
並列実行のキーワードが並んでます。
詳しい人、どうなんでしょうこのGPU。

612 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 00:36:29 ]
電気馬鹿食いDQNカードだぞ?

613 名前:デフォルトの名無しさん [2007/05/04(金) 13:22:12 ]
これからGPGPUに入門しようと思って、手始めに3Kのテキストデータの文字列に+1するだけの単純コードで実験してみた。
BrookGPUが簡単だったので、こいつを使った。

kernel void func(float i<>, out float o<>){
o=i+1.0;
}

//streamRead(in1,inc1);
//func(in1,in1);
//streamWrite(in1,inc1);
for(i=0; i<2048;i++){
inc1[i]=inc1[i]+1;
}

//GPU:18秒
//CPU:9秒

…全然だめじゃん。GPGPUって
環境は、Athlon64 X2 4200+,GF8600GTS
これより式を複雑にしたら、もっとスーパースカラーなCPUがより有利になるでしょ。
GPUは、和積演算だけは、同時実行出来るんだっけ?


614 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 13:36:48 ]
>>613
それは計算量少なすぎ。
明らか転送のネックの方が大きいだろw

615 名前:613 mailto:sage [2007/05/04(金) 13:40:38 ]
>>614
CPUの時も、streamReadとstreamWriteだけやるようにしてみました。
それでもCPU:16秒でした^^;

616 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:10:15 ]
>>615
それはつまり、GPUの処理時間は2秒ということだね。
……だからなに?



617 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:20:32 ]
転送時間を差し引いても、演算速度がCPUよりGPUの方が遅いって話だろ

そんなの冷静に評価してるやつはみんな言ってるじゃん
たまに『GPUはCPUの数十倍』とか夢見たいな話してる脳内お花畑さんが居るがw



618 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:49:27 ]
BrookGPUはデバッカはついてるのかな?
ブレークポイント設定してステップ実行とか出来るの?

今、主にHLSLで組んでいるんだけど
GPUデバッグがやりずらくて困ってるんけど
同じかな?

619 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 15:11:56 ]
>>618
BrookGPUって、単なるコンバータだよ。
結局Cgのデバッグ作業になるが・・・。
Cgは、nVIDIAがそういうツールを提供してる。

620 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 15:39:12 ]
>>613

大量にデータを送り込めば数で勝るGPUは高速
しかし、BrookGPUのstreamは2048くらいしか要素を確保出来ない。
その程度では、GPUコア全てを使い切れないので、CPUの方が高速。

これの意味はもう分かるよな?

さっさと、CUDAでも覚えるんだ。

621 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 15:44:08 ]
BrookGPUなんて海外じゃもう糞確定してるって見方が大半だよ。GPGPUで
最先端いってるやつらに、BrookGPUwって感じで笑われるしなぁ。




622 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 15:50:31 ]
BrookGPUはお遊び言語なのは知ってるけど
じゃあ、何が良い言語なんだ?
CUDA出る前からGPUは騒がれてたんだから、CUDA以前から扱いにくくともCPUよりちゃんと速度が出るのはあるんだろうね?

SHとか使ったが、あれは、ちょっとなぁ・・・

623 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 15:58:54 ]
実際に海外の優秀なやつはら暇つぶし程度にしかいまのところやってないよ
速度云々は別にどうでもいいって感じだよ。ただできましたって感じだよね




624 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 15:59:51 ]
…おい
誰も何でつっこまんの?
行列演算させずに、1次元計算させてどうするんだ。

まずは、GPUに計算させる前に、Gridにデータを落としこむべきだろ。
Gridにデータを落とし込むような価値の無い計算ならば、するな。


本当にレベル低いな、おい…

625 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 16:03:56 ]
>>624
何マジレスしてるんだよw?

626 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 16:17:52 ]
行列に落とし込むくらいだったら、CPUに演算させた方が・・・w

たまに出てくるGPGPUで有効な例とする
for(i=0;i<SIZE_N;i++){
out[i]=in[i]+1;
}
こういう処理を否定してちゃあ、世間のジャーナリストは嘘つきだなw




627 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 18:55:00 ]
ttp://mumei24.run.buttobi.net/cgi-bin/upload.cgi?mode=dl&file=971

DLパス:gpu

トーラスをランバートのシェーディング(cg)で表示するだけのプログラムなのですが
どうも動かないです。OPENGLです。

誰か助けてください。

628 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 00:11:23 ]
>>611
リンク先は流し読みしただけだけど。

SuperScalarやらSIMDやらは今更な感じがする。
今までってSuperScalarじゃなかったんだっけ?
少なくともSIMDだったよな。

VLIWはちょっと気になるな。
GPUに既存のCPUのアーキテクチャでやられたヤツを色々持ち込むのはいいんだけど、
効率(性能)が向上するかは未知数だし、
GPGPU的に使いやすいかは別問題だったりするし、
どうなるんだろうね。

と、思ったことを適当に書いておく。参考にならんな。

629 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 01:27:32 ]
GPUはSPMDだろ。
まぁCUDAで言えばWarpはSIMDだが、いずれにしてもGridレベルのSPMD。

630 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 18:24:24 ]
627ですが…反応ないですか

631 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 22:08:54 ]
>>630
激しくスレ違い。
ここはコンピュータグラフィックス関連のスレじゃないよ。

632 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 19:04:59 ]
…スレ違いなんですか
他スレの方が汎用コンピューティングとあったのでこちらで聞いたのですが


633 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:31:23 ]
GPUスレと勘違いしてないか?
GPGPUスレだぞ。汎用的にGPUを使おうってスレで、本来のグラフィックス処理がらみはスレ違い。


634 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 00:05:44 ]
OpenGLスレとかその辺かな。

635 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 22:58:51 ]
このスレッドの人ってあかでみっくぽすとの人が多いのかな

636 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 01:27:35 ]
中途半端に賢い人が多いんだよ



637 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:05:44 ]
>>611
ttp://techreport.com/reviews/2007q2/radeon-hd-2900xt/index.x?pg=3
float MAD serial以外は、概ね速い。

638 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 02:43:02 ]
最近シェーダを学び始めた者です。

調べた結果、自分の中で結論出たようなものなのですが、
最後の確認として質問させてください。

シェーダで、32bit整数を扱うことは可能でしょうか?(ベクトル型で)
もし可能であれば、シェーダモデルやベンダ拡張等問いません。

GPGPUな目的で学習していますので、このスレで質問させて頂きました。

よろしければご教授お願いします。

639 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 11:28:03 ]
Cgでint4が出来れば扱えるんじゃない

640 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 22:35:37 ]
CUDAは、さっさとXP x64とVistaに対応するべきだ。
俺、この2つのデュアルブートだから、せっかく8シリーズ買ったのに・・・。
これのために買ったのになぁ・・・orz

641 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 00:02:18 ]
>>639
ありがとうございます。
試してみます。

642 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 21:48:38 ]
ATI RADEON X800 XTで
Cgの中でforやらbreakが使えないみたいなエラーが出たんだけど

これってどこで確かめれるの?

643 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 23:25:09 ]
>>640
ゲフォ8800なんて買う変態がXP 32bitにするわけがないからなぁ。







本当に本腰入れたいんならVista&XP×32bit&64bit全部入りだろうけど。
とりあえずコンパイルしてエミュで動かしてみたが速度とかどうってより
operatorやらtemplateやらが通るのに吹いた


644 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 01:18:59 ]
>>643
CUDAのこと? あれ、だってコンパイルにはgcc使ってるもの。

645 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 14:17:03 ]
あーそりゃそうだな

646 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:56:13 ]
ねねCUDAで

if(input == 'a'){
...
}
else if( input == 'b'){
...
}

て処理書きたいんだけどどうやって書けばいいか教えてください



647 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:58:16 ]
無理

648 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 22:57:06 ]
なんだとぉ
ふざけるんじゃねーよ教えてくれよマジ切れするぞ
ゆとり世代は沸点低いんだよ忘れたのか?

649 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 23:35:02 ]
>ゆとり世代は沸点低いんだよ忘れたのか?
ちょっと地面に穴掘って埋まってきたら?
圧力掛かると沸点高くなるっしょ。

650 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 23:56:46 ]
>>649
なめてんのかコラいいかげんにさっさと教えろよ

651 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:00:20 ]
マジレスしてやるよ
CUDA SDKにはエミュついてるから、自分で試しヤガれ
コンチクショー

652 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:23:39 ]
だから無理だって言ってるだろ。
GPUには、条件分岐するキーワードは無い。
予めCで分岐してから、各処理を呼び出すしかない。

653 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:38:12 ]
じゃあ
abcdefjを128bitのhexとかに予め変換してとか小細工しても

strstr()なんかを作ることは無理なのか?


654 名前:デフォルトの名無しさん [2007/05/27(日) 11:33:06 ]
>>653
もちっと、じぶんのあたまでよくかんがえてからしつもんしよう。
ぺたっ (もうすこしがんばりましょう)


655 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 11:34:31 ]
>>654
わかんねーからきいてるんだろうが
こちとら時間ねーだんよささっと情報晒せ


656 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 12:11:24 ]
時間ないなら諦めたら?



657 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 12:12:27 ]
>>656
悪かった取り乱してしまった。すまいと反省している。
ね?ね?ヒントでいいかなんか情報くださないな

658 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 12:56:58 ]
なかなか釣れませんね






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<200KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef