10/01/04 16:10:45
>>453
Cudaだと四則演算はほとんど処理時間には影響しないし、その式をつかうといいんじゃない?
っていおうとおもったけど、a=512のとき0にならなくね?
455:デフォルトの名無しさん
10/01/04 16:13:31
257⇒0 258⇒1 … でいいの?
でもそうすると512⇒0がヘンだけどな。
int val;
val = a + 256;
if (val > 512) val = val - 513;
でいいんじゃないの?
というかC言語の疑問をCUDAスレで聞くのはまちがっとる、ここは人口が少ないぞ
456:デフォルトの名無しさん
10/01/04 16:26:48
じゃあCUDAっぽく
const int TABLE[512] = { 256, ... , 512, ... , 0 }
__device__ int f(int a){
return TABLE[a];
}
457:デフォルトの名無しさん
10/01/04 17:09:36
レスありがとうございます
わけわかんないこと書いてすみません
テーブルとif文試して出直してきます
458:デフォルトの名無しさん
10/01/04 17:37:31
>>453
b⇒aとして、
a = (b+256)%768;
でいいのかな?
0⇒256
256⇒512
511⇒767
512⇒0
459:デフォルトの名無しさん
10/01/04 21:45:29
釣りだよな?
460:デフォルトの名無しさん
10/01/05 01:06:37
申し訳ないっす
461:デフォルトの名無しさん
10/01/07 00:21:36
ランダム関数の作成で悩んでます。
・CPUで作成した乱数リストをGPUに転送しない
・1スレッドの中で何度も呼ばれる
・グローバルメモリは使わない。スレッドIDやclock()をseedとして使う
この制約で良い乱数生成アルゴリズムを教えて下さい。
MTGPっていうのを参考にしようとしましたがムズ過ぎて挫折…まずコンパイルが通らず(´・ω・`)
462:デフォルトの名無しさん
10/01/07 01:01:35
おれMTGPコンパイルできたよ。GPU側で作成してそのままGPUで使えるし。
(シンボルコピー)
463:デフォルトの名無しさん
10/01/07 08:15:53
使ったファイルはこれだけ
mtgp32-fast.h
mtgp32-cuda.cu
mtgp32-fast.c
mtgp32-param-fast.c
make_single_random()とかの末尾を適当に書き換える。
464:デフォルトの名無しさん
10/01/07 12:09:10
誰かOptiXやってる人いませんかー?
465:デフォルトの名無しさん
10/01/08 09:15:11
CES 2010: NVIDIA Shows GeForce GF100 Fermi Video Card - Legit Reviews
URLリンク(www.legitreviews.com)
3/2に本当に出るのかしらん
466:デフォルトの名無しさん
10/01/08 09:22:19
気にするな、出たら買う、出るまではCUDAの修行をする。
単純でイイじゃないか。
467:デフォルトの名無しさん
10/01/08 09:41:48
>>461
Perlinノイズやってみてよ
URLリンク(mrl.nyu.edu)
Cのソースが有る
468:デフォルトの名無しさん
10/01/08 11:02:05
Fermiもダメそうってどこかのブログで見た
NVIDIAまじやばい
469:デフォルトの名無しさん
10/01/08 11:05:40
ようやくCUDAに慣れてきたところなのに、StreamSDKとかOpenCLとか
DirectComputeとかまた勉強しないといけないの?
辛いのうwwプログラマは辛いのうwww orz
470:デフォルトの名無しさん
10/01/08 13:36:24
windows7 64bit、Visual C++ 2008 Pro環境に、CUDA toolkit、sdk 2.3をインストールして、
C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\srcにある、
_vc90.slnファイルを開いて、問題なくビルドできます。
exeファイルの出力先は、デフォルトでC:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\bin\win64\ですが、
これ以外の出力先に変更する方法を教えてください。
471:デフォルトの名無しさん
10/01/08 13:42:23
プロジェクトのプロパティで変更できるよ
$(OutDir)\$(ProjectName).exe
これを丸ごとフルパスで指定してしまいなさい。
472:デフォルトの名無しさん
10/01/08 17:14:12
XP,32bitでコンパイルしたプログラムを7,64bitで動かそうとしたら動かなかった・・・
こういうものなのか
473:デフォルトの名無しさん
10/01/08 17:23:41
32/64ビットのcudart.dllが必要
474:デフォルトの名無しさん
10/01/08 19:20:38
>>471
thanks
475:デフォルトの名無しさん
10/01/10 12:33:02
現在CUDA SDKを導入しVisual C++ 2005 Express Editionを使用しCPUでのエミュレーションを行っています。
いくつかのサンプルは動かせたのですがparticlesなど複数のサンプルでコンパイルはできているようですが実行すると以下のようなエラーが出ます
device emulation mode and device execution mode cannot be mixed.
エラーが出ている行は
cutilCheckMsg("cudaMalloc failed");
cutilSafeCall(cudaGLRegisterBufferObject(vbo));
cutilSafeCall( cudaMalloc3DArray(&noiseArray, &channelDesc, size) );
のように「cutil~」になってます。オプションから設定しているのでデバイスエミュレーション自体はうまく行ってるようなのですが
エミュレーションを行う際はソースを書き換える必要があるのでしょうか?
476:デフォルトの名無しさん
10/01/10 12:55:52
メッセージのとおりエミュONOFFまぜてる
またはリビルドしてないんじゃ?
プロジェクト設定じゃなくてビルド構成のほうでエミュレーションにかえられないっけ?
477:デフォルトの名無しさん
10/01/10 13:05:00
メッセージの内容は把握できています。
リビルドも多分できてると思います。
エミュレーションの設定は
プロジェクトのプロパティ→CUDA Build Rule→Emulation Mode はい
にしてます。ほかの方法はよくわからないのですがほかの方法があるのでしょうか?
478:デフォルトの名無しさん
10/01/10 22:13:13
ビルド構成のほうからエミュレーションの設定ができました。問題なくビルド&実行できました。ありがとうございます。
ただFPSが0.1なんでほぼ無意味でした。
479:デフォルトの名無しさん
10/01/10 23:24:17
エミュレーションなんてHello world以上のことをやるもんじゃないな
480:デフォルトの名無しさん
10/01/11 00:20:59
処理する画面領域を1000分の1ぐらいに限定して、バグを調査するくらいのことはできる。
481:デフォルトの名無しさん
10/01/11 01:26:19
なんだっけ、エミュじゃなくて実機で実デバッグできるやつ
早く来てほしいな
482:デフォルトの名無しさん
10/01/12 14:25:34
CPU版アプリの移植の際に、エミュはデータ検証に使える。
483:デフォルトの名無しさん
10/01/12 20:21:38
-G オプションって使える?WinXPで
「'assembler' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
と出てビルドできないけど。
--deviceemuもつけないとだめなの?
484:デフォルトの名無しさん
10/01/13 09:38:31
CUDAのバージョンを書き出しておきたいのですが、
CUDAのバージョンを調べる関数か何かありませんか?
485:デフォルトの名無しさん
10/01/13 09:41:29
>>484
>>436 でどう?
486:デフォルトの名無しさん
10/01/13 09:50:27
こっちを要求している気がする。
cudaRuntimeGetVersion()
cudaDriverGetVersion()
487:デフォルトの名無しさん
10/01/13 09:56:08
WindowsでCUDAを使っています。
ループが一定回数超える度に、coutで経過を表示しています。
Linuxに比べて遅かったので、いろいろ試してみたところ、
DOSウインドウの前で、マウスを動かすと、速くなります。
垂直同期か何かで引っかかっているのかと思い、設定で切ってみましたが
状況が変わりません。
どなたか似たような状況になって解決された方はいないでしょうか?
488:487
10/01/13 11:05:28
追加報告です。
cudaMemcpyでcudaMemcpyDeviceToHostでコピーするところで異常に時間がかかっているようです。
この1行を消すだけで、100秒ほどかかっていたのが2秒にまでなりました。
逆方向のcudaMemcpyHostToDeviceは問題ありません。
489:デフォルトの名無しさん
10/01/13 11:13:17
CUDAプログラムがGPUで計算等をしている間は画面表示の更新が遅くなります。
1回のループにどれくらいの時間がかかるのか、一定回数がどれくらいかによりますが、
経過の表示される間隔が短いとその影響を受ける可能性があります。
あるいは、マウスを動かすことでCPUに負荷をかけないとパワーセーブモードに入ってしまうとか・・・・。
490:デフォルトの名無しさん
10/01/13 11:17:06
>>488
転送に100秒かかるのは現実的にありえないので、恐らくcudaThreadSynchronize()等でカーネルの実行完了待ちを
していないのではないかと思います。カーネル呼び出しそのものは一瞬で終わりますが、
後続のcudaMemcpy(.....,...,...., cudaMemcpyDeviceToHost)時に暗黙的にそれまでに呼び出したカーネルの実行完了を待っています。
・・・・・ということかどうかは分かりませんが。
491:デフォルトの名無しさん
10/01/13 11:29:27
>>489,490さん
早速の返信ありがとうございます。
cudaMemcpyでcudaMemcpyDeviceToHostを消したプログラムで、
プログラムの一番最後にだけ結果を取り出してみたところ、
正しく計算されていました。
次に、カーネルの実行部分のみをコメントアウトした場合、
やはり非常に時間がかかってしまいました。
やはり、GPUからCPUへのデータ転送に(というよりなにか同期の部分の様な気もしますが)
時間がかかっているようです。
計算用マシンなので省電力の設定はしていません。
492:デフォルトの名無しさん
10/01/13 11:48:15
>>491
> cudaMemcpyでcudaMemcpyDeviceToHostを消したプログラムで、
> プログラムの一番最後にだけ結果を取り出してみたところ、
> 正しく計算されていました。
これを読むと、そもそも何度もDeviceToHostの転送をする必要がない処理という解釈で
よいのでしょうか?
DeviceToHostが遅くなる理由はハードウェア的なものから色々あります。
マザーボードを交換したという人もいました。
SDKに含まれているbandwidthTestの結果はどうなっていますか?
"--memory=pinned" を付けた場合と付けなかった場合をそれぞれ調べてみてください。
493:デフォルトの名無しさん
10/01/13 11:59:12
Device 0: GeForce GTX 285
Quick Mode
Host to Device Bandwidth, 1 Device(s), Paged memory
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 4340.2
Device to Host Bandwidth, 1 Device(s), Paged memory
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 4193.7
Device to Device Bandwidth, 1 Device(s)
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 119962.3
--memory=pinned
Device 0: GeForce GTX 285
Quick Mode
Host to Device Bandwidth, 1 Device(s), Pinned memory, Write-Combined Memory Enabled
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 5758.1
Device to Host Bandwidth, 1 Device(s), Pinned memory, Write-Combined Memory Enabled
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 5471.9
Device to Device Bandwidth, 1 Device(s)
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 119852.3
494:デフォルトの名無しさん
10/01/13 12:00:32
結果はこんな感じです。
特に片方だけ遅いというわけでもないようです。
Linuxで起動した場合、遅くなるという問題は起きませんでした。
DeviceToHostが必要なのは結果を取り出すときだけで、
計算自体には必要ありません。
495:デフォルトの名無しさん
10/01/13 12:03:47
似たような話をnvidiaのforumで見つけました
URLリンク(forums.nvidia.com)
URLリンク(forums.nvidia.com)
返信は結構あるのですが、解決策はよくわかりません。
496:デフォルトの名無しさん
10/01/13 14:46:26
・CUDA内での計算処理、ループ数とループ内のステップ数、スレッド数ブロック数、だいたいどんなもんすか
・HostToDevice、DeviceToHostで転送するメモリのサイズはどのくらいですか
497:デフォルトの名無しさん
10/01/13 15:02:38
とりあえず
タイマー1,2作成
cudaMemCopy(HostToDevice)
タイマー1,2起動
<<<>>>カーネル呼ぶ
cudaThreadSyncronize()
タイマー1停止
cudaMemCopy(DeviceToHost)
タイマー2停止
してほんとにMemCopyなのかカーネルなのか確かめてみる必要は。
498:デフォルトの名無しさん
10/01/13 19:23:55
コピーが細切れでforループでやたら回数呼んで転送してたりしない?
1発で全部転送するのと1/1000ずつ1000回コピーするのとでは、
かかる時間に雲泥の差があるけど。
499:487
10/01/14 04:10:12
PCを再起動したら、上記の問題は出なくなりました。
お騒がせしました。
500:デフォルトの名無しさん
10/01/14 09:16:24
おいww 終わりかよww
501:デフォルトの名無しさん
10/01/14 11:44:30
cutil64.dllってどこに置けばいいの?
502:デフォルトの名無しさん
10/01/15 05:05:43
GPU側で配列の合計を求める方法を教えてください
503:デフォルトの名無しさん
10/01/15 07:59:04
サンプルのreduction見れ
504:デフォルトの名無しさん
10/01/15 09:52:56
syncthreadsって異なるブロック間のスレッドも同期されるのでありましょうか?
505:デフォルトの名無しさん
10/01/15 20:54:27
>>504
programing guide よめ
506:デフォルトの名無しさん
10/01/15 23:10:51
Best Practices Guide
もいいこと盛りだくさん書いてあるよ
507:デフォルトの名無しさん
10/01/16 19:28:55
cudaでは多次元配列の使用は推奨されてないの?
508:デフォルトの名無しさん
10/01/17 12:17:08
pthreadとの組み合わせでうまく動作せずに困っています。
引数として渡す構造体に、float * device_Xを用意して
for(int k=0;k<NUM_THREADS;k++){
cudaMalloc((void**)&targ[k].device_X,
sizeof(float)*(hostX.nRow)*(hostX.nCol));
cudaMemcpy((void*)targ[k].device_X,
host_X,
sizeof(float)*(hostX.nRow)*(hostX.nCol),
cudaMemcpyHostToDevice);
pthread_create(&handle[k], NULL,
compute_thread_func,
(void *)&targ[k]);
}
と渡すと、pthread内で
cudaMemcpy(temp,argument->device_X, //argumentは渡されたvoid* argをキャストしたもの
sizeof(float)*(nRow)*(nCol),
cudaMemcpyDeviceToHost);
としてもうまく取り出せません。(中身がぐちゃぐちゃになる)
同様の処理をpthreadで呼び出す関数内で行うとうまく動作します。
スレッドごとにメモリを取るのだから、中でやってもいいのですが気になります。
何か原因になっていそうなことは無いでしょうか。
509:デフォルトの名無しさん
10/01/17 12:59:47
>>508
#1個のGPUに複数のスレッドからアクセスしたいアプリケーションなのかよく分かりませんが・・・・。
CUDAはスレッド毎にGPUのリソース(コンテキスト)を管理しています。
従ってこの例では
子スレッドのcompute_thread_func内の処理は
親スレッドがcudaMallocした領域にアクセスできません。
510:デフォルトの名無しさん
10/01/17 13:32:14
>>509
ありがとうございます。
複数のスレッドから一台のGPUへのアクセスです。
(後々、スレッドごとに一個のGPUにしたいのですが)
スレッドごとに管理しているのははじめて知りました。
解決しました。
511:デフォルトの名無しさん
10/01/18 20:51:33
「Picture Motion Browser VAIO Edition」を追加。
超解像HDアップコンバートやノイズ除去、手ぶれ補正などの編集や動画作成を、NVIDIA CUDAによるGPU演算を使って行なえる。
512:デフォルトの名無しさん
10/01/18 22:00:36
GT200 Fermi
トランジスタ数 14億 30億
倍精度浮動小数点 30FMA Ops/clock 256FMA Ops/clock
単精度浮動小数点 240 512
シェアドメモリ(SM) 16KB 64KB
L1メモリ 無し 48KB or 16KB
L2メモリ 無し 768KB
アドレス幅 32bit 64bit
複数のカーネル実行
無し 16個まで(GigaThredエンジン)
*L1キャッシュ搭載
GT200では16KBのSMが32個あり、それぞれCUDAコアを8個割り当てられ、L1キャッシュが無し。
Fermiでは64KBのSMが16個。それぞれにCUDAコアが32個割り当てられ、SMから16KBか48KBのどちらかをL1キャッシュとして使用可能。
GT200に対して、3倍のSMと16KBのL1が使用可もしくは同じサイズのSMと48KBのL1が使用できるようになった。これにより、今までCUDA化できなかったプログラムの対応を増やし、さらに高速化もできる。
各CUDAコアに含まれるFPユニットは倍精度浮動少数演算を強化し、GT200に対し8倍の能力。
*L2メモリの搭載 グローバルメモリに対する高速化。
*C++をサポート
*複数のカーネルの動作をサポート
SM内部のパイプラインを強化。SFUが複数に分けられたのでタスクとデータをより効率化。スレッドスケジューラを2個。
*双方向PCIE通信
GT200ではPCIEバスの送受信をどちらか片方しか一度に実行できず、理論値8GB/s・実測4~5GB/s程度だが
Fermiでは双方向通信が可能になり12GB/sを実現
*新しいメモリコントローラ FermiよりGDDR5まで対応し、ECCにも対応する。
*コア内部を各部でモジュール化
設定された価格帯や用途ごとにコアを設計しなおさず、機能をカットオフしたり追加したりできる。
SM単位でCUDAのコアを減らしたり、D3DやOpenGLなどの固定ハードウェアが不要なTeslaなどでオフになったりする可能性もある。
513:,,・´∀`・,,)っ-○○○
10/01/19 02:32:35
GT200 理想のFermi 現実のFermi
トランジスタ数 14億 30億 30億
倍精度浮動小数点 30FMA Ops/clock 256FMA Ops/clock 224FMA Ops/clock
単精度浮動小数点 240 512 448FMA Ops/clock
シェアドメモリ(SM) 16KB 64KB 〃
L1メモリ 無し 48KB or 16KB 〃
L2メモリ 無し 768KB 〃
アドレス幅 32bit 64bit 〃
複数のカーネル実行 無し 16個まで(GigaThredエンジン) 14個まで(GigaThredエンジン)
514:デフォルトの名無しさん
10/01/19 04:04:04
OpenCL待ちしてたけど、GPUの対応はCUDAだけっていう開発ばっかな
Fermiで本気出すから
515:デフォルトの名無しさん
10/01/20 02:23:16
GT100ってなんかメモリアクセスのレイテンシがすごくでかくない?
それを隠蔽するために、L2キャッシュが128Kになっているけど、
コヒーレンシとかどうなのかな?
やっぱりGPUはデータ並列なアプリしか向いていないのかね。
516:デフォルトの名無しさん
10/01/20 16:04:40
Fermiのグローバルメモリのレイテンシが遅いってのは何処から来た情報?GDDR5に対応するんだから、帯域は大きくなりそうだけど。
517:デフォルトの名無しさん
10/01/20 17:08:55
>>512
SFUは今のGT200でも複数ある。
ただ、SFUが外部のパイプラインに分かれたからSFUを使っているときに違う種類の演算ができるようになったってことじゃね・。
>>515
最適化しなければいけない
518:デフォルトの名無しさん
10/01/21 03:41:00
>>516
これをみて思った。
URLリンク(pc.watch.impress.co.jp)
でもGT200と一緒なんだね。
URLリンク(pc.watch.impress.co.jp)
いずれにしても、何でGPUがあんなにレイテンシが大きいのかがわかったよ。
だから、coalesced accessが必要なのね。
519:デフォルトの名無しさん
10/01/21 04:03:50
>>518
>いずれにしても、何でGPUがあんなにレイテンシが大きいのかがわかったよ。
俺のために説明してくれ!
520:デフォルトの名無しさん
10/01/21 22:43:04
GPUのメモリのレイテンシが大きいというよりも、CPUの場合と同じぐらいはかかるといった方がいい
521:デフォルトの名無しさん
10/01/22 01:50:01
CPUだとメモリチャンネルが精々2~3チャネル位しか無いが、GT100だと12チャネルもあるから、DRAMのチャネルのスイッチングに
それ以上かかると思っていい。あと、仮にGPC1?がDRAM0チャネル上にあるデータと、
DRAM11チャネル上にあるデータを同時にアクセスする場合、当然レイテンシがかかる。
もし、GPC1がDRAM0、DRAM1だけのデータアクセスですむなら、CPUと変わらない。
最適化が必要というのはそういったところだと思う。
522:デフォルトの名無しさん
10/01/22 05:43:22
MTGPがコンパイルできません。
>>463の言う、4つのファイル使って試したところ100個近くコンパイルエラーが出てしまいます。
あと「末尾を適当に書き換える。」の意味がよく分からんどす…
エラー内容は
1>\略)\mtgp32-fast.h(117) : error C2054: 'inline' の後に '(' が必要です。
1>\略)\mtgp32-fast.h(120) : error C2057: 定数式が必要です。
1>\略)\mtgp32-fast.h(120) : error C2466: サイズが 0 の配列を割り当てまたは宣言しようとしました。
1>\略)\mtgp32-fast.h(120) : error C2085: 'mtgp32_do_recursion' : 仮パラメータ リスト内にありません。
1>\略)\mtgp32-fast.h(121) : error C2061: 構文エラー : 識別子 'inline'
1>\略)\mtgp32-fast.h(122) : error C2054: 'inline' の後に '(' が必要です。
...
WinXP32bit、VC++2005、CUDA SDK2.3
該当箇所のコード見てもどこが悪いのか分からない…助けて…。
523:デフォルトの名無しさん
10/01/22 07:00:08
単にパイプラインステージが何百もあるからレイテンシがでかいのだと思ってました
524:デフォルトの名無しさん
10/01/22 08:15:33
>>522
あ。おれか。
元のソースと自分のソースでdiffしてみた。
・inline を全部削除してみて。
・末尾を適当に書き換える。は、元だとプリントして捨ててしまっているので、
利用したいように書き換えてねと。
おれはmake_uint32_random(d_status, num_data, hostbuff); として
hostbuffを自分で使えるようにしました。
525:デフォルトの名無しさん
10/01/22 20:11:37
>>523
正解
メモリチャンネル云々は殆ど関係ない
CPUはメモリとのクロック差のため
GPUは長大なパイプラインのためレイテンシがデカイ
526:デフォルトの名無しさん
10/01/22 20:30:44
別にパイプラインが深いわけではなくてバッファが大きいだけなんだけど。
527:デフォルトの名無しさん
10/01/22 20:51:46
200-400段は十分に・・
528:デフォルトの名無しさん
10/01/23 00:27:17
>>524
レスサンクス。
inlineを削除したら見事にエラーが亡くなりました(`・ω・´)
これから自分のソースに組み込もうか…と状況に入れます。
重ねて質問申し訳無いですが、hostbuffの名前からしてMTGPの乱数は一度バッファにぶち込んでから使うという事になるのですか?
>>461ようにカーネルの中で特に意識せず使いたいのだけれども…
MTGPがglobalメモリやテクスチャを使ってるのなら、Cのrand()のように連続で呼び出して使えたら良いなと思ってるんですが無理ですかね?
529:デフォルトの名無しさん
10/01/23 02:00:42
>>528
おれはホスト側で使いたいので、make_uint32_randomの末尾でホスト側のバッファにコピーして使ってる。
デバイス側で使いたいなら、make_xxxxx_randomにd_buffをmain()側でとって渡し、
make_xxxx_random()内ではfreeせずにそのまま。すると次にmain()内でデバイス側関数を呼び出すときに
そのまま渡して使える。 ※スレッドが変わってはいかんので注意
530:デフォルトの名無しさん
10/01/23 05:30:39
CUDAを使って大量のデータのごく簡単な統計値(最小、最大、平均、標準偏差)を計算したいんですが、何かいいサンプルとかありますか?
531:デフォルトの名無しさん
10/01/23 08:51:31
CUBLASにあるんじゃ。
532:デフォルトの名無しさん
10/01/23 11:54:45
>>530
そういう、「最後が一個」な演算は、reductionで探すと有る気がする
並列性を有用に使うのがなかなか面倒らしい
533:デフォルトの名無しさん
10/01/23 12:09:54
OpenGL glutで時系列で変化する数値計算の結果を表示しようとしています。
GPU 2個で計算する場合、コールバック関数内でスレッドを生成することになると思うのですが、
この度(毎フレーム)にホストからグローバルメモリへデータ(時間による変化なし)を
コピーしなくてはいけません。
glutMainLoop(); 呼び出し前に両GPUにコピーした場合は、
コールバック関数内で生成したスレッドにグローバルメモリのポインタを渡しても参照できません。
データのコピーを一度だけですます方法はないでしょうか?ご教示ください。
スレッド生成は URLリンク(tech.ckme.co.jp) を参考にしました。
534:デフォルトの名無しさん
10/01/23 21:06:46
>530
それぐらいだったらたぶんCPUで実行した方が速いよ
535:デフォルトの名無しさん
10/01/24 00:53:03
>>533
GPU0用、GPU1用のスレッドをglutMainLoop()呼び出し前に生成するべきかと。
536:デフォルトの名無しさん
10/01/25 22:22:13
thread数 = N
Mat[N];
id = threadIdx.x;
if(id%2==0){
演算A
Mat[id]にコピー
}else if(id%2!=0){
演算B
Mat[id]にコピー
}
のようなプログラムを組んでいるのですが、結果をみると最後の2つの要素と同じ計算結果が全体に入ってしまいます。
N=16なら
14の結果が0,2,4…12に
15の結果が1,3,5…13に入ってしまいます。
どこに問題があるのでしょうか
537:デフォルトの名無しさん
10/01/25 22:49:59
>>536
とりあえずC言語から始めようか
538:デフォルトの名無しさん
10/01/26 00:02:22
>>530
俺もこれ知りたい。
N社のSDKを見ても、画像処理のサンプルとかたくさんあっても、単純な総和計算とかないもんだね。やはり向いてないからか・。。。
ご丁寧にCのほうが早いとか教えてくださる人もいるがw
マルチパスの画像フィルターとか、
デバイスの中にある中間結果を作って、
その統計値を、次のパスの計算で使ったりするのが常套手段だから
ここでいったんホストのほうにコピーするとボトルネックになってしまう。
デバイスの中のデータの統計値を出すライブラリとか作ってくれると本にありがたいんだが
539:デフォルトの名無しさん
10/01/26 00:30:52
>>530, 538
SDKのreductionサンプルが参考になると思う。 確かpdfのわかりやすいスライドが一緒に入っているはず。
CUDAのアーキテクチャって、総和とかのreduction系演算は
不向きとまでは言わないまでもちょっと頭をひねらなきゃいけない分野だよね。
540:536
10/01/26 01:19:31
演算途中で計算領域が被ってただけでした。失礼しました。
541:デフォルトの名無しさん
10/01/26 01:27:25
>>539
そうだね。
沢山のデータがあるなら、最終はCPUにやらせても良さそうだけど、
転送がボトルネックになるなあ。
それだったらGPU内でやらした方が速いか。
あとI/O系があるとだめだよね。
ダブルバッファやトリプルバッファが使えるようなアプリならいいんだけど。
そうなると画像、映像系ばかりになってしまうなあ。
542:デフォルトの名無しさん
10/01/26 09:14:50
処理に割り当てるmultiprocessorの数を指定とか出来ませんか?
出来ればgridサイズ変えずに
そもそもOSもGPU使う場合割り当てがどうなってるのか分からないんですが
543:デフォルトの名無しさん
10/01/26 10:43:54
>>542
CUDAプログラムが実行中はOSはGPUを使えないので全てのSMを使用しても問題ありません。
544:デフォルトの名無しさん
10/01/26 10:47:22
5秒以上使ったらエラーが出たよ。
545:デフォルトの名無しさん
10/01/26 10:50:22
SMを1個しか使用していなくても5秒以上1つのCUDAカーネルが実行されるとタイムアウト。
546:542
10/01/26 11:15:31
へー、なるほど。
あとgridサイズ小さくする以外に使うSM数を制限できますか?
547:デフォルトの名無しさん
10/01/26 11:41:29
できませんし、その必要もないでしょう。
548:542
10/01/26 11:48:03
>>547
そうですか、ありがとうございます
並列計算の研究の一環でCUDA使ってるんで
並列数の変化でデータが取れたら嬉しいな、という理由です
549:デフォルトの名無しさん
10/01/26 14:26:47
>>548
素直に描画用とは別にGPUを用意しましょう。
総和を取る処理は私も書いているけど、仮想的に二次元にデータを配置して、縦に集計するところまでをGPUでやっている。
残りはCPU側に吐き出してからCPUではSSEを使って集計。
550:デフォルトの名無しさん
10/01/26 14:53:47
>>548
1番最初に実行が始まるCTAの配置は予測可能なので、
その中で使わないSMに割り当てられたCTAはコア内でダミーの演算を長時間繰り返すことでそのSMを占有し続ける。
こうすれば本来の計算は残りのSMでのみ行われるようになる。
通常時間計測できるのは全CTAが完了するまでの時間なので以下のどちらかを。
1)最後のCTAがdevice memoryにマップされたhost pinned memoryに何か書き込む。
2)ダミー演算の繰り返し回数を段々少なくしていき、計測される時間の減少率が変わるところを探す。
なお、全SMを使わないとメモリアクセス効率も落ちるのであまり面白くない。
551:デフォルトの名無しさん
10/01/26 15:20:53
> 仮想的に二次元にデータを配置して、縦に集計するところまで
なるほど。ふつくしい。n次元でCPUでは最後の一次元だけやらせれば、対称になるな
552:542
10/01/26 21:31:38
>>549
別に用意してこの場合メリットってありますか?
あと総和ならReductionで組んだけど今回はGPU単体の話だったんで最後までGPUでやりました
デバイスホスト間の転送時間って馬鹿にならないイメージあるんですが、CPUにやらせたほうが速いんですかね?
まあ最後のちょっとだから誤差の範囲な気がしないでもないw
>>550
結構シビアですね、
直接的な方法が無ければgridサイズ縮めてIdx周り弄ろうと思います
↑の方法で弊害無いですよね?;
553:528
10/01/27 17:26:29
少し前にMTGPについて質問した者ですが、どうやら自分の要求とズレた感じでした。
thread 256、block 1でmake_uint32_random()するとバッファに768個のデータが生成されるが、でっていう…。
これはメルセンヌツイスタの高周期な乱数列の1部分って事で、本当にあの高周期な乱数を使いたいならその分のメモリが必要だということなのかな。
独自の乱数ジェネレータを作って、その768個の中から1つを取り出して…みたいな事をやり始めるとまた性質が変わってしまうし、本末転倒に。
結局、カーネルの中でシミュレーション目的の使用方法としては微妙だったので絶望。。。
スレッドID毎に使える線形合同法(遷移型)の乱数として使えるようになんとかできないものか…
554:デフォルトの名無しさん
10/01/28 00:49:57
え、おれ100万個単位で作って使えてるよ。
int num_data, にちゃんとでかい数与えてるかな
555:デフォルトの名無しさん
10/01/28 09:22:34
>>554
いや、num_dataの数を変えて生成される個数の事はあまり重要じゃないのよ…
問題はカーネルの中で使おうとした時、バッファに作成された乱数が並んでいる形態では微妙なのです。
例えば、100万個作ったとして256のスレ数で使うなら使用部分を分割する事になりますよね(thID==0は、バッファのindex0~約4000、という感じ)
いや、各スレッドは100万個のうち初めのindexだけseedとして決めて、あとは順次indexを増やして使っていく感じでもいいけど、
両者とも乱数列の周期はバッファのサイズに依存してしまいます。
一方、よくある{x=x*1103515245+12345; return x&2147483647;}このような方法は、アルゴリズムが優秀だとxが4byteなら最大で2^32の周期を持ちますよね。
今の状態のメルセンヌツイスタで2^32の周期を得ようとしたら、どんだけ大きいバッファが必要かっていう…
精度の良い乱数という点では利点ありますが、globalメモリを物凄く使う割にはなんだかなぁ…という複雑な気持ち。
MTGPの形態を知らなかった自分が悪いんだけど、要はこれ乱数生成を並列化して高速にしたもので、
実際にパラレルな計算で使う用にはなりえない事が分かりました。
自分の要求としては、GPU Gems3の「CUDAによる効率的な乱数の生成と応用」がチラッと見た感じでは合致してたので、今からこっちを参考にしてみます。
長文スマソ。>>554にはとても感謝している。こんな結末で申し訳ない。
556:デフォルトの名無しさん
10/01/28 09:38:33
>乱数列の周期はバッファのサイズに依存してしまいます
横から失礼しますが、
for( ; ; )
{
make_uint32_random(, , d_buff); //デバイスメモリに作らせて残す
my_kernel_func<<<>>>(d_buff, , , , ); //MTGPで作った乱数を消費
}
こんな感じとして、256スレッドが一回に8192個の乱数を使う
→make_uint32_randomは2097152個の乱数を生成する
で良いのでは? make_uint32_random() は複数回呼び出すごとに
前回のmtgp32_params_fast_tの続きから処理するわけで、周期は
2^11213-1 でしょう。÷256しても2^11205とかだ
557:デフォルトの名無しさん
10/01/29 08:52:57
stupid questionですみませんが、VC++ 9.0で
1. .cppと.hのように、.cuファイル内でインクルードしているファイルが更新されたら.cuを再コンパイル対象にしたい。
2. ptxを出力したい。nvcc -ptxでは無理でした。
以上について教えてください。お願いします。
558:デフォルトの名無しさん
10/01/29 19:27:06
>>557
コマンドラインから nvcc -ptx *.cu とやっても駄目?
559:デフォルトの名無しさん
10/01/29 23:45:27
-keepでいいんじゃね
1.についてはSource Dependenciesを個別に設定すれば一応できる
560:デフォルトの名無しさん
10/01/30 15:52:51
>>558
XP Pro 32bitとVista Ultimate 64bitの両環境で、
コマンドラインからnvcc と打つとcl.exeがないと怒られます。
プロジェクトのプロパティを参考にパスとincludeを指定してやっても
エラーは控えていませんがコンパイルできません。
VC使ってる人はどうしてるんでしょう?
561:デフォルトの名無しさん
10/01/30 15:56:22
-ccbin で指定しても駄目ですか?
562:デフォルトの名無しさん
10/01/31 02:17:49
もちろんVSコマンドプロンプトから打ってるよな
563:デフォルトの名無しさん
10/01/31 16:27:27
>>562
ふつうのコマンドプロンプトを使っていました。
どうもお騒がせしました。
564:デフォルトの名無しさん
10/01/31 16:30:07
普通にC++のコードを書けるようになってからじゃないと、学習効率が悪くてどうしようもないぞ。
565:デフォルトの名無しさん
10/01/31 18:38:21
>>559
俺は556じゃないが-keep知らなかった。ありがとう。
566:デフォルトの名無しさん
10/02/01 21:17:18
GPU Challenge 2010
URLリンク(www.hpcc.jp)
自由課題もあるそうな
567:デフォルトの名無しさん
10/02/02 11:27:25
まあ俺は学生だから規定課題でるけどな
しかしCellとかに比べてあんまり最適化するとこないな
568:デフォルトの名無しさん
10/02/02 18:26:32
どのくらい参加するんだろう?
俺もとりあえずエントリーしようかな。
569:デフォルトの名無しさん
10/02/02 22:14:16
自由課題の方で、パターン形成する発展方程式とかの数値計算すると、絵的にも面白そうなの出来そうじゃない?
570:デフォルトの名無しさん
10/02/10 10:54:42
jpegをデコードするライブラリもしくはCUDAのコードはどこかにありませんか?
571:デフォルトの名無しさん
10/02/10 11:54:41
GPU Challengeの課題が増えた
メルセンヌツイスタと言われるとHack the Cellを思い出すな
572:デフォルトの名無しさん
10/02/10 12:30:21
SLI環境で、プログラムを2つ実行した場合、それぞれ別のGPUを
利用する方法を教えてくれ
573:デフォルトの名無しさん
10/02/10 14:52:21
> SLI環境で
えっ、ひとつにしか見えないんじゃないの?? 出来るの?
574:デフォルトの名無しさん
10/02/11 00:45:35
>>572
cudaSetDevice()でそれぞれ0と1を指定する。
575:デフォルトの名無しさん
10/02/11 13:21:15
>>573
東工大青木先生はGeForce4つ並べてた
OpenMPで並列化していたと思う
576:デフォルトの名無しさん
10/02/11 13:39:01
>>575
CUDA版OpenMPてあるの?
577:デフォルトの名無しさん
10/02/11 14:25:56
CUDA版と言えるOpenMPはない
OpenMPのスレッド指定とCUDAのdevice指定を組み合わせただけのこと
578:デフォルトの名無しさん
10/02/11 14:53:48
そういうことか、今度挑戦してみようかな
579:デフォルトの名無しさん
10/02/12 00:56:59
> GeForce4つ並べ
と
> SLI
は違うんじゃね? ケーブルで繋ぐのがSLI・・・かな
580:デフォルトの名無しさん
10/02/12 10:07:29
OpenMPを使えば複数のGPUを簡単に使えるのですか?
やりかたをおしえてくれろ
581:デフォルトの名無しさん
10/02/12 11:11:35
CUDAで顧客向けプログラムを作成しています。
CUDAプログラムの配布先には本体以外に何を配布すればよろしいのでしょうか?
582:デフォルトの名無しさん
10/02/12 11:46:23
>>581
GeForce人数分
583:デフォルトの名無しさん
10/02/12 11:49:25
TeslaかQuadroを配っておけば良いと思うよ
584:デフォルトの名無しさん
10/02/12 11:56:09
cutil使わなければcudart.dllだけでよろしよ
585:デフォルトの名無しさん
10/02/12 17:57:29
>>579
内部でケーブルでつながってても、
デバイスメモリが共有されるわけじゃないから
CUDA的には関係ない。
586:デフォルトの名無しさん
10/02/13 04:48:44
>>580
SDKにサンプルがある
587:デフォルトの名無しさん
10/02/14 12:30:31
CUDA FORTRANのセミナーが青木先生のとこで開催されるらしいが、おまいら行く?
588:デフォルトの名無しさん
10/02/14 12:42:11
>>587
青木先生か、Cだったら行くんだけどな
589:デフォルトの名無しさん
10/02/15 17:44:43
デバイスエミュレーション時の速度って、実際のCPUとの目安で考えたら
どのくらいスケールして考えればいいですか?
初めてエミュレーションモードを使ってみたんですが、3000倍以上の差が付いて明らかにおかしいと思うんです…
CPU: Core i7 Q720@1.6GHz、 GPU:Tesla C1060
590:デフォルトの名無しさん
10/02/15 17:53:40
Q720って720QMのこと?
ノートPCにTeslaが搭載されているとか、聞いたことがないんだけど
591:589
10/02/15 17:56:06
追記。
grid(2,1,1)、block(256,1,1)でのカーネルで、3000倍になります。
これからgridを増やすと、さらに差が広がっていきます。
カーネルで実装した内容を、CPU版で実装したくないけど速度比較はしたい。
・・・無理でつか?
592:589
10/02/15 18:06:39
>>590
Teslaは別のデスクトップPCので、エミュを動かしたのはノートPCでの方です。
紛らわしくて申し訳ない。
どちらもPCもCUDA使えるんですが、CPU自体はノートの方が性能良かったのでこちらを使いました。
ノートPCのGPU: GeForce GTX 260M
593:デフォルトの名無しさん
10/02/15 18:14:45
そもそも、エミューレーションモードって非CUDA環境でも
CUDAカーネルのデバッグが出来るようにしたものでしょ
あくまでテスト用のもの
594:デフォルトの名無しさん
10/02/15 18:15:25
誤)エミューレーションモード
訂)エミュレーションモード
595:デフォルトの名無しさん
10/02/15 19:10:55
3000倍?そんなもんでしょ
596:デフォルトの名無しさん
10/02/15 19:28:11
効率の良いブロック分けの仕方?がわからず困っています.
実行時にN個のデータ系列が与えられて,
それぞれの系列へ施す処理内容自体は同一なのですが,
その処理に用いるパラメタ値が異なります.
例えばN=3の場合,パラメタもp[0]~p[2]の3個があって,
データ系列0の全データ { D[0,0], D[0,1], D[0,2], ..., D[0,m0] } にはp[0]を加算,
データ系列1の全データ { D[1,0], .... , D[1,m1] } にはp[1]を加算,
データ系列2の全データ { D[2,0], .... , D[2,m2] } にはp[2]を加算
という具合です.
全系列のデータ数が同じ(m0=m1=m2)ならば
グリッドの次元の1方向を系列(0~N-1)に割り当てれば良いかと思うのですが,
系列毎にデータ個数がかなり異なる場合はどうすればいいのでしょうか?
データ個数は系列ごとに少なくとも数千個くらいになります.
同じような割り振り方だと何もしないブロックが大量にできてしまいそうです.
597:デフォルトの名無しさん
10/02/15 20:36:27
CにD[0,0]というものはないのでよくわからないけど、
いったん長い配列にまとめて処理して、あとでCPUでばらせばいいのでは。
D[i,j]のjについて、自分はどのpに属するのか覚えさせて。
598:デフォルトの名無しさん
10/02/15 23:36:05
>>592
Nvidia Nexus使えば?
599:デフォルトの名無しさん
10/02/15 23:37:13
追記
Nexus使うとネットワーク経由で、
コード書く用のPCとデバッグするPCを分けられるよ、ってことね。
600:デフォルトの名無しさん
10/02/16 14:48:16
>>598
うーん、デバッグというよりは単にCPUとGPUで速度比較をしたいだけなんです。
うまく並列化して普通は、1~50倍くらいの成果になると思うんですが・・・
目安でいいからエミュレーションモードから大体の速度が分からないのかなと。
601:デフォルトの名無しさん
10/02/16 23:24:57
いまいち意味がわかんないけどCPUコードとGPUコードをデバイスエミュで実行したらCPUコードのが3000倍早いって事?
それだったらそんなもんかと。デバイスエミュは重いし。
違うんだったらごめん。
CPUとGPUで速度比較したいなら普通にCPUとGPUそれぞれ向けのコード書いて実行したらいいんじゃない??
602:デフォルトの名無しさん
10/02/17 00:50:55
>>601
あ、あれ? 自分のデバイスエミュの認識自体が間違ってたかな…?
言いたかったのは、実行するハードの方での両者の比較です。
CPUコードと言うのはありません。
カーネルや、その内部で呼ぶ__device__の関数らがGPUコードだよね?それを普通に「GPU」が実行した時の速度と、
デバイスエミュを使ってCPUが実行した場合(内部では逐次計算?)の速度では、普通に「GPU」で実行した方が3000倍速いということです。
>>591の通り、GPUコードが多くなりすぎて、同じ事をするCPUコードを実装するのが面倒なのです。
デバイスエミュはCPUが実行するとの事で淡い期待を抱いてましたが無理そうな感じなんですな…
603:デフォルトの名無しさん
10/02/17 01:32:32
>>602
比較する目的はなんでしょうか?
研究目的であれば面倒であろうがCPU用も実装しなければなりません。
そうでないなら比較なぞしなくてよいのではないかと。
ちなみにGPU:エミュが3000:1程度であればCPU用に普通に実装した方がGPUより速い可能性が十分にあります。
604:デフォルトの名無しさん
10/02/17 15:10:51
面倒でも計算結果の比較しろよw
nvidiaのサンプルコードでも結果の比較してるだろ
605:デフォルトの名無しさん
10/02/17 15:41:47
>>602
emulation modeは,名前の通りGPUでの動作を模擬しているだけで,
その計算速度とGPUの計算速度を比較することに意味はない.
emulation modeがある理由は,カーネル内にprintfとかのコードを書いて
debugしたり出来るようにするため.
従って,CPUとGPUの計算速度の比較を行いたいなら,それぞれに最適化した
2つのコードを書いて比較する必要がある.
関係ないけど,
CPUとの比較しているときにCPUのコア一つとの比較が多い気がするけど,
それフェアな比較じゃないよね.せめてOpenMPくらい使おうよと.
まぁ使うとGPUの存在感が薄れるのだけれども….
606:デフォルトの名無しさん
10/02/17 17:32:51
>>603
研究なんて言えないようなものです。目的としては自己満足になりますね。
ただ、目安程度であれど比較できないとGPUとCUDAを使う意義に関わってきます。
早ければSUGEEEE!!ってなって満足し、遅ければそこできっぱり止めるという選択ができる。
そして3000:1ならまだCPUの方が早そうだというのは参考になりました。
>>605
おっしゃる通りですが、厳密に比較するまでは求めていないんです。
今自分がやってることは無意味なのか?(つまりCPUの方が普通に早い)が分かればいいんです。
grid(2,1,1)でフェアじゃないのは、コーディングが糞なので2以上じゃないとGPUで動作しないんです('A`)・・・(メモリ周りの関係で)
我侭な要求でスマン。
607:デフォルトの名無しさん
10/02/17 18:07:50
逆に考えるんだ
CPU側で動作をきっちり検証したプログラムを、
GPUに移植して、速度を比べる。
GPUに本当に適した問題なら、数十倍出る場合もあるし。
608:デフォルトの名無しさん
10/02/17 18:47:11
>>605
GPUの優位性をうたうような文脈で
比較対象のCPUコードが1スレッドだったら
それを評価する人間は目が余程の節穴でない限り、
CPUのコア数倍した結果と比べるでしょ。
物凄く差がある場合はそれでも十分優位性をうたえるから。
609:デフォルトの名無しさん
10/02/17 21:05:25
>>605
1コアの40倍とあれば4コアの10倍と読み替えればいい訳で。
610:デフォルトの名無しさん
10/02/17 22:05:37
4コアと比較したらどうなるかということではなく、
1コアと比較してる人がCPU版もまともにチューニングしてるとは思えない、ということかと。
まぁ、皆GPU版ばっかりチューニングしてますから。
611:デフォルトの名無しさん
10/02/18 06:16:20
たぶんCPU版はSSEすら使っていないんだろうね。
メモリ帯域がものを言うコードでなくて、CPUがNehalemだったら、
安いGPUなんかじゃ全く優位ないからね。
612:デフォルトの名無しさん
10/02/19 02:31:33
俺はNvidiaちゃんを信じるよ
URLリンク(twitter.com)
613:デフォルトの名無しさん
10/02/19 02:32:33
誤爆った/(^o^)\
614:デフォルトの名無しさん
10/02/20 04:09:26
うちは理論で「***手法より*%高速化して最速!」とかやってないってのもあるけど
GPUで組んだ手法と既存の手法を比べる場合、既存のほうはベーシックにしろと指導された。
複数CPUだとかSSEを使ってガチガチに最適化した手法と比べちゃうと基準が分からなくなるからだと。
他の高速化との差を知りたければその論文と比較しろということだと思う。
CPU最適化して無いなんて糞というのも分かるけど、こういうところもあるということで。
615:デフォルトの名無しさん
10/02/20 08:30:23
コードの比較もいろいろだよな。
同じアルゴリズムを採用しても、CPUでも書き手によってGPUでも明らかに差が出てくる。
でもGPUを使う場合、多くの場合はCPUよりも速くなりました。というのが目的な訳で、
CPUの方が速いならあえてGPUを使う必要はないからね。
基準が曖昧になるのもわかるけど、そもそも基準が曖昧な気がするなあ。
場合によってはかなり恣意的になることもあるし・・・・。
616:デフォルトの名無しさん
10/02/20 10:07:52
Femiやばいまた延期確定かも
617:デフォルトの名無しさん
10/02/20 11:37:52
一般人が入手できるのは1年後になる可能性もあるらしいね
618:デフォルトの名無しさん
10/02/20 11:44:04
なんでそんな度々延期になるの
619:デフォルトの名無しさん
10/02/20 12:14:45
>>618
ペーパーロンチで実際開発が
行われていないからだよ
620:デフォルトの名無しさん
10/02/20 13:17:36
今回のケースは大きな欠陥があることを知りながら、小手先の改良でなんとかしようとして
「完成品」を大量生産をして、まとにチップが取れなかったのが原因だろ
1%程度とされる歩留まり率で、1チップ当たり5000ドルの原価
これでは商売にならないね
621:デフォルトの名無しさん
10/02/20 13:39:05
3/19に東工大青木先生がCUDA Fortranのセミナやるんだって
622:デフォルトの名無しさん
10/02/20 13:40:57
関係者の宣伝おつ
623:デフォルトの名無しさん
10/02/23 08:21:59
青木先生に集客されたくねえなあ正直
624:デフォルトの名無しさん
10/02/23 22:06:44
nexusをリモートで動かそうとしたが、ブレークポイントでとまらねぇ・・・。
色々試したがどうにも解決しないので教えてください。
状況としては、nexusのユーザーズガイドに沿って設定。
ためしにnexusサンプル動かそうとしたら、
ランタイムAPIプロジェクトはGetDeviceで引数に0が。
で、次の行で落ちる。
DriveAPIは落ちない。んでホスト側の画面右下に青いポップアップ出て、
ターゲットマシンにコンソール画面出てるのでプログラムは正常に動いてるっぽい。
でもカーネル関数内にブレークポイント置いても止まらず。
自分でSDKサンプルのプロジェクトの設定変えて試しても同じ。
マシン環境はこんな感じ。
ホストマシン
Vista 64bit SP2
.Net3.5 SP1
Host nexus1.0(jan 64bit)
GPU FX570
VC++ 2008 SP1
DirectX10 August 09
CUDA SDK2.3 32bit
CUDA ToolKit2.3 32bit
625:続き
10/02/23 22:08:57
ターゲットマシン
Vista 64bit SP2
.Net3.5 SP1
Target nexus1.0(jan 64bit)
GTX285
VC++ 2008
DirectX 10 August 09
CUDA SDK2.3 32bit
他に設定としてはEnable Security Serverをfalse
nexus→option→Enable secure connectionをfalseにしてます。
使い方は、ホストマシンでVC起動→プロジェクト読み込み→nexusデバッグ
ターゲットマシンはデバッグモニタ起動のみ。
どこがおかしいのだろう?
626:デフォルトの名無しさん
10/02/24 22:31:24
Fermi終了したらこのスレも終了するんかなあ
627:デフォルトの名無しさん
10/02/24 23:16:54
the launch date for GeForce GTX 480 and GTX 470 is March 26
628:デフォルトの名無しさん
10/02/25 12:42:26
>>627
ペーパーリリースで全世界で1万枚以下の出荷といううわさだけどね
一般人が手に入れられるようになるのは、下手をすると来年
良くて年末という予想がある
629:デフォルトの名無しさん
10/02/25 13:15:26
やっぱ、シリコン丸ごと改良しないとだめなんか。
半分ダメで256コアでもいいんだけどww
630:デフォルトの名無しさん
10/02/25 20:23:58
俺はNexusインストールすらできなかった
631:デフォルトの名無しさん
10/02/25 22:02:09
消費電力280Wだっけ。。。GTX480
632:デフォルトの名無しさん
10/02/25 23:43:58
アム虫キモ
633:625
10/02/26 23:13:31
もうよくわからんからnexusのエミュモードでやることにした。
カーネル関数内でブレークするし、値もちゃんと表示されてそう。
>>630
OS対応してないとか?Vistaか7しかできない。
あとはOSとnexusのbitが違うとか。
634:デフォルトの名無しさん
10/02/27 19:37:59
>>633
インストーラがVS2008 SP1入れてあるのに読み取ってくれなくて、
インストールができない状態だった。
Microsoftからダウンロードしたばっかりのイメージを使ってインストールしたから
当然SP1はあたっているものかと思っていたらあたっていなかった、っていう初歩的なミスだった。
ちょっくら遊んでくる
635:デフォルトの名無しさん
10/03/05 11:16:51
,. -‐'''''""¨¨¨ヽ
(.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ!
|i i| }! }} //|
|l、{ j} /,,ィ//| 『おれはNvidiaにARE YOU READY?と言われて
i|:!ヾ、_ノ/ u {:}//ヘ 準備していたら準備しているのはNvidiaの方だった』
|リ u' } ,ノ _,!V,ハ |
/´fト、_{ル{,ィ'eラ , タ人 な… 何を言ってるのか わからねーと思うが
/' ヾ|宀| {´,)⌒`/ |<ヽトiゝ おれも何をされたのかわからなかった
,゙ / )ヽ iLレ u' | | ヾlトハ〉
|/_/ ハ !ニ⊇ '/:} V:::::ヽ 頭がどうにかなりそうだった…
// 二二二7'T'' /u' __ /:::::::/`ヽ
/'´r -―一ァ‐゙T´ '"´ /::::/-‐ \ 128bitメモリバスだとかリネームテクノロジーだとか
/ // 广¨´ /' /:::::/´ ̄`ヽ ⌒ヽ そんなチャチなもんじゃあ 断じてねえ
ノ ' / ノ:::::`ー-、___/:::::// ヽ }
_/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::... イ もっと恐ろしいものの片鱗を味わったぜ…
636:デフォルトの名無しさん
10/03/06 00:09:36
GTX480がそこそこ出回るらしい(core数は当初想定よりも少なくなる可能性があるが)
Fermiアーキテクチャを思っていたよりも早い時期に体験出来る可能性が出てきた
637:デフォルトの名無しさん
10/03/06 20:59:14
Fermi火事出すだろうな
電気食いすぎだ
638:デフォルトの名無しさん
10/03/07 10:23:33
GF100(GTX480, 470)は高電力でお値段も高めになるだろうから、
Fermiアーキテクチャをとにかく早く試したい人以外はその次のGF104がいいと思う
639:デフォルトの名無しさん
10/03/07 11:05:46
半分だけの460とか出ないかな?
640:デフォルトの名無しさん
10/03/07 11:26:00
この辺りの情報がそれかも知れん
The AMD's Cafe:ローコストなFermiやQuadroについて - livedoor Blog(ブログ)
URLリンク(blog.livedoor.jp)
まだまだ先のようだ
641:デフォルトの名無しさん
10/03/07 15:31:52
売り物にならない奴はQuadro逝きか。
OpenGL市場ってほんと舐められてるな。
ゲイツに縛られない自由なAPIだったはずなのに。
642:デフォルトの名無しさん
10/03/09 00:29:10
URLリンク(www8.plala.or.jp)
643:デフォルトの名無しさん
10/03/09 23:19:41
このレビューは何が言いたいのかよくわからんかった
URLリンク(pc.watch.impress.co.jp)
644:デフォルトの名無しさん
10/03/16 00:53:46
CUDA上の命令がどれくらいのクロックで動くかまとめられていませんか?
整数の乗算やら三角関数はプログラミングガイドに載っていたのですが,ほかの命令も知りたいです
645:デフォルトの名無しさん
10/03/16 08:46:48
「どのくらい」でいいなら実測すればいいかと
646:デフォルトの名無しさん
10/03/16 16:42:16
エミュレーションモードでやるとうごくのですが、GPUをつかうと動きません。
const int c = border + (blockDim.x * blockIdx.x + threadIdx.x) * step * 2;
const int r = border + (blockDim.y * blockIdx.y + threadIdx.y) * step * 2;
const int i = 1;
// atomicAdd(&count[0], 1);//ここでは動くのでatomicAddの問題ではない
if(c >= i_width - border || r >= i_height - border) return;
int i_max = -1, r_max = -1, c_max = -1;
float max_val = 0;
for (int ii = i; ii < min(i+2, intervals-1); ii += 1)
for (int rr = r; rr < min(r+2*step, i_height - border); rr += step)
for (int cc = c; cc < min(c+2*step, i_width - border); cc += step) {
float val = getVal(d_m_det, o, ii, cc, rr, i_width, i_height);
if (val > max_val) {
max_val = val, i_max = ii, r_max = rr, c_max = cc;
}
} // Check the block extremum is an extremum across boundaries.
/***********ここでd_iptsにiptを加えてもうごく*********/
// float4 ipt ;
// d_ipts[atomicAdd(&counter, 1)] = ipt;
if (max_val > 0.0004f && i_max != -1 && isExtremum(d_m_det,o, i_max, c_max, r_max, i_width, i_height, intervals)) {
float4 ipt = interpolateExtremum(d_m_det, o, i_max, r_max, c_max, i_width, i_height);
if(ipt.x >= 1)
{
d_ipts[atomicAdd(&counter, 1)] = ipt;//ここの行をコメントアウトすると動く
ipt.x += 1;
}}
最後のif文の中でd_iptsやcountにアクセスするのがだめっぽいのですが・・・
なにかif文を書いたときに同じような症状になった方や、これを見ただけでわかる方いらっしゃったら、教えてください。
よろしくおねがいします。
647:デフォルトの名無しさん
10/03/16 23:39:20
とりあえず問題になってるatomicAdd(&counter, 1)の戻り値調べようか
648:デフォルトの名無しさん
10/03/17 00:13:02
counterの宣言にちゃんと__device__は付いているのだろうか・・・
649:646
10/03/17 00:40:32
>>647
エミュレーションで確認したところ戻り値はcounterと同じ値になっていました。
実際にGPUでうごかすと、
counterをデバイスからホストへ送るところでunspecific launchとなるか、
永久ループに入るか何かで画面が固まり、ブルースクリーンになって落ちます。
>>648
_device_をつけてグローバル変数(っていうのかわからないけど)として定義しています。
650:デフォルトの名無しさん
10/03/17 09:55:20
その反応だとアクセス違反のときが多いのだがそんなことないよな?
651:デフォルトの名無しさん
10/03/17 13:42:58
CUDAでつかうlong doubleってWindowsとLinuxでサイズは違うの?
652:デフォルトの名無しさん
10/03/18 00:14:29
>>650
アクセス違反ってcounterの位置がおかしいってことですか?
このプログラムをいれずに単にcounterをデバイスからホストに送ることは可能でした(初期値として0をおくっていたので0が帰ってきていました)。
つまり、このプログラムのようにatomicAddをif文とか分岐が多くなるような文章内でつかうと、
今回でいえばcounterのアドレスがかわるということですか??
653:デフォルトの名無しさん
10/03/19 07:46:47
パスワードクラックでTeslaがHD5970に完敗
URLリンク(www.geeks3d.com)
URLリンク(www.geeks3d.com)
654:デフォルトの名無しさん
10/03/19 10:12:59
Dual-GPUとSingle-GPUを比べてる時点でアウト
655:デフォルトの名無しさん
10/03/19 10:34:24
1スロットどうしの比較だから問題ない
656:デフォルトの名無しさん
10/03/19 11:09:41
>>655
それを言い出すと、TeslaDが出てくるぞ。ブリッジ自体は1スロットだからなw
657:デフォルトの名無しさん
10/03/19 11:22:52
はいはい、負け惜しみ
単純な計算性能では圧倒的にラデオンのほうが優れているんだよ
658:デフォルトの名無しさん
10/03/19 11:32:44
比較対象にHD5870が入っていない時点で
なんか違和感があるんだが
659:デフォルトの名無しさん
10/03/19 11:37:34
Tesla C1070ってなに?Fermi?
660:デフォルトの名無しさん
10/03/19 11:42:09
URLリンク(www.elsa-jp.co.jp)
これ
661:デフォルトの名無しさん
10/03/19 11:42:32
GT200じゃなかった?
662:デフォルトの名無しさん
10/03/19 14:33:49
URLリンク(developer.nvidia.com)
CUDA Programming Guideがリンク切れしているんですが
誰か正しいアドレスを知りませんか
663:デフォルトの名無しさん
10/03/19 18:21:58
高い・遅い・熱い
664:デフォルトの名無しさん
10/03/19 18:52:10
S1070ってGT200×4の奴だろ。
665:デフォルトの名無しさん
10/03/20 17:28:11
CUDA 3.0 Downloads
URLリンク(developer.nvidia.com)
666:デフォルトの名無しさん
10/03/20 18:02:54
CPUでの計算にインテルコンパイラを使いたいのですが、どのようにすればいいのでありまするか?
667:662
10/03/20 20:32:56
>>665
ありがとうございます
668:デフォルトの名無しさん
10/03/20 20:52:01
>>666
nvcc -cで*.cuをコンパイルしたら、できた*.oをiccでリンクすればいい。
Windowsの場合はnvccもiccも別々にオブジェクトを作ることになるからそれをVCでリンク。
669:デフォルトの名無しさん
10/03/20 21:52:07
利用者はCUDAなんて独占的技術を求めてませんよね
670:,,・´∀`・,,)っ-○○○
10/03/20 22:52:58
まして永久β版のSDKなんて論外
671:デフォルトの名無しさん
10/03/20 23:30:36
まあ利用者だけが決めるわけでもないのも悲しいけど現実なのよね
672:デフォルトの名無しさん
10/03/21 04:48:10
なんか面白いことに使えないかな
もったいない
673:,,・´∀`・,,)っ-○○○
10/03/21 08:27:51
「何かには使える」って言ってるうちは何にも使えないまま終わるんですけどね。
ターゲットアプリケーションがあってはじめて、そのニーズに合わせてハードの機能・性能の拡充が行われうるわけで
今までであればゲームがそうだった。
ウン十並列のデータを同時処理するような用途のニーズが仮に高まってるとしても
それはCPUのSIMD拡張によってもカバーできるでしょ
674:デフォルトの名無しさん
10/03/21 08:51:43
Linuxでドライバのバージョンを調べる方法を教えてください
675:デフォルトの名無しさん
10/03/21 08:58:16
もう少し具体的に聞かないと・・・・。
676:デフォルトの名無しさん
10/03/21 09:00:06
ドライバのバージョンによって、振る舞いを変えたいので、
UbuntuでGPUのドライバのバージョンをプログラム上から調べる方法を教えてください
677:デフォルトの名無しさん
10/03/21 09:22:25
Ubuntu限定な必要があるかどうかはともかく、ドライバ自体のバージョンを知るAPIは用意されていません。
/usr/lib64のディレクトリでlibcuda.so.* のレギュラーファイルを探すのが確実かと思います。
678:,,・´∀`・,,)っ-○○○
10/03/21 09:33:40
CUDA実行環境がインストールされてるかどうかを調べてライブラリを遅延ロードできるような仕組みを
標準で用意して欲しいかな
679:デフォルトの名無しさん
10/03/21 20:24:40
CUDA3.0
URLリンク(developer.nvidia.com)
680:デフォルトの名無しさん
10/03/21 21:52:46
Fermi対応版か
肝心のブツが手元にまわってくるかも怪しいのに
681:デフォルトの名無しさん
10/03/21 22:30:11
deviceQueryがあるじゃん
682:デフォルトの名無しさん
10/03/22 02:31:14
Fermiは、入手しやすくなるまで松わ。
初物は爆熱で卒倒価格だろうし。
683:デフォルトの名無しさん
10/03/22 14:26:17
俺は特攻する
470か480かが問題
そもそも手に入るのか、という話もあるが
684:デフォルトの名無しさん
10/03/22 15:02:55
そうか。取り合えず貼っておかねばなるまい
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::。:::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::。::::::...... ... --─- :::::::::::::::::::: ..::::: . ..::::::::
:::::::::::::::::...... ....:::::::゜::::::::::.. (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..::::
:::: :::::::::.....:☆彡:::: //[|| 」 ||] >>683 ::::::::::゜:::::::::: ...:: :::::
:::::::::::::::::: . . . ..: :::: / ヘ | | ____,ヽ | | :::::::::::.... .... .. .::::::::::::::
::::::...゜ . .::::::::: /ヽ ノ ヽ__/ ....... . .::::::::::::........ ..::::
:.... .... .. . く / 三三三∠⌒>:.... .... .. .:.... .... ..
:.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ......
:.... . ∧∧ ∧∧ ∧∧ ∧∧ .... .... .. .:.... .... ..... .... .. .
... ..:( )ゝ ( )ゝ( )ゝ( )ゝ無茶しやがって… ..........
.... i⌒ / i⌒ / i⌒ / i⌒ / .. ..... ................... .. . ...
.. 三 | 三 | 三 | 三 | ... ............. ........... . .....
... ∪ ∪ ∪ ∪ ∪ ∪ ∪ ∪ ............. ............. .. ........ ...
三三 三三 三三 三三
三三 三三 三三 三三
685:デフォルトの名無しさん
10/03/24 18:34:15
東工大、気象庁の次世代気象モデルのフルGPU化に成功
URLリンク(pc.watch.impress.co.jp)
120GPUで3.22TFLOPSか。大変なんだろうけど微妙な数字だな。
686:デフォルトの名無しさん
10/03/24 19:27:10
どう微妙なんだい
687:デフォルトの名無しさん
10/03/24 20:00:16
なんか膨大な演算能力は殆ど遊んでいるな。
こういう用途なら演算機減らした方が、電力効率的にはマシになるんじゃ。
688:デフォルトの名無しさん
10/03/24 20:06:08
ha?
689:デフォルトの名無しさん
10/03/24 20:13:50
え?
690:デフォルトの名無しさん
10/03/24 20:16:26
ま、近い将来fermiに置き換わるんだろ
691:デフォルトの名無しさん
10/03/24 20:34:22
>>685
1GPUあたり44.3GFlopsかぁ。維持で対応したって感じだ。
692:デフォルトの名無しさん
10/03/24 20:48:15
浮動小数点演算速度が3.22TFLOPSなのか?
693:デフォルトの名無しさん
10/03/24 20:48:57
それでもCPUより80倍の実行性能なんだね
694:デフォルトの名無しさん
10/03/24 20:52:14
6時間の気象モデルが70分で終了するなら
同じ気象モデルを使えばリアルタイム予測が可能?
695:デフォルトの名無しさん
10/03/24 23:28:24
偏微分方程式の数値解法をやる大学院生の演習課題みたいなもんですなw
696:デフォルトの名無しさん
10/03/25 00:41:07
気象問題って、ノード間の影響はどうなの?
TESLAって結局PCI Expressで繋がっているから、
レイテンシが大きそうだな。
697:デフォルトの名無しさん
10/03/25 01:59:47
とりあえず運用してノウハウ貯めて、
28nmのFermi2で一気にパワーアップってのがいいんじゃないか?
明確なハズレ世代を大量導入するのはちとどうかと。
698:デフォルトの名無しさん
10/03/25 07:32:00
>>687
そういうのは GPU 以外に期待した方がいいんじゃないの?
電力効率なんて気にしたせいでピーク性能が落ちてゲームユーザが買わなくなったら、GPU の市場自体が崩壊するよ。
699:デフォルトの名無しさん
10/03/25 14:56:59
>>696
レイテンシを隠蔽するようにcode組んだらしい
700:デフォルトの名無しさん
10/03/26 00:39:01
>>699
へー、そーなんだ。
701:デフォルトの名無しさん
10/03/26 00:59:41
>>693
これがよくわからんな。
なんで80倍なんだろう?
G200って倍精度の理論値って80Gflops位じゃなかった?
それに対してCPUが10Gflopsだろ。
8倍の間違いじゃないのか?
702:デフォルトの名無しさん
10/03/26 03:03:04
URLリンク(techon.nikkeibp.co.jp)
> 「最新のマイクロプロセサとの比較ではなく,チューニングの程度の
> 差もあるため,80倍という数字自体は重要ではない。GPUの活用で
> ケタ違いの性能が得られることを確認できた点に意味がある」(青木氏)
だそうで
703:デフォルトの名無しさん
10/03/26 03:12:28
倍精度もハードウェアで本格対応して500GFLOPSになったんじゃないの
と思ったけどFermi世代からで、G200世代のものは90GFLOPS程度みたいだね。
これで倍精度で44.3GFLOPSなら効率50%近くということになるし
アルゴリズムとかかなり頑張っただろうね。
>>701
シェアードメモリをうまく使ったり、大量のスレッドでノード間のレイテンシを隠蔽したり
帯域がボトルネックになりにくいように出来たからじゃないの。
スカラープロセッサは、流体力学とか多体問題とかの
計算結果を相互に利用しながら並列計算する場合には
帯域がボトルネックになって効率がかなり低くなりがちらしいし、
比較対象のCPUを使ったシステムは効率が10%を下回っていたとかかも。
完全に並列化できて帯域がボトルネックになりにくい演算の場合は
10~20倍という話だったかな。
704:デフォルトの名無しさん
10/03/26 05:40:03
>>703
メモリ帯域が問題になるのはよくわかるんだけど、
それも今のNehalemあたりは30GB/sぐらいあるから、
精々teslsaとは5倍くらいだろう。
それだとメモリ転送時間は1/5、計算時間が1/8になるとして、
CPUのメモリ転送時間をA、計算時間をBとすれば、
実行時間は単純にするとC=A+Bになる。
GPUの場合はCg=0.2A+0.125Bになる。
A=10Bとしたとしても5倍程度にしかならない様な気がするなあ。
CPUの場合巨大なキャッシュがあるし、プリフェッチもあるから
その差が縮まるはずなんだけどな。
東工大のクラスのだからCPUのコードがくそだということもなさそうだから、
なんかOpteronのCPU1コアと比較してそうだなあ。
と思っていたら、>>702が書いてくれているね。
705:デフォルトの名無しさん
10/03/26 05:49:43
比較するCPUが遅すぎたわけか
706:デフォルトの名無しさん
10/03/26 07:17:15
このcpuの速度は、普通にべたべたfpu演算を書いたときの数字だね。
理研の姫野ベンチ並みのバカコードと対照させても意味がない。
Linpackで最近のcpuをベンチマークすると、理論値の8掛け程度の数字は出る。
TUBAMEのopteronも1コアあたり10GFlops前後。しかも倍精度で。
Linpackに比べて気象エミュは速度が上がらんのは間違いないが、
この青木とやらの記事は全然ダメだ。
nVIDIAが成果としてレファできないレベル。
707:デフォルトの名無しさん
10/03/26 08:52:49
CPUというのは全然チューニングしてないレファレンスコードだろ。
よく使う手。しかもCPU名すら書いてない。
ベンチマークには2種類ある。嘘か大嘘。
708:デフォルトの名無しさん
10/03/26 17:23:46
PPTを見ると、44.3GFLOPSは単精度、倍精度では15GFLOPSだね。
比較のCPUは倍精度で0.5GFLOPS以下で、単精度の44.3GFLOPSと比較し、80倍以上といってるんだね。
青木いい加減にしろよw
709:デフォルトの名無しさん
10/03/26 21:19:29
これはひどい。
710:デフォルトの名無しさん
10/03/26 22:05:03
>>704
この手の計算の場合はCPUのキャッシュやプリフェッチはあまり効果が無いと思うけど
Nehalemだと30GB/s程度メモリ帯域があるのか。
ただCUDAでは単なるメモリ帯域の比較だけでなく、シェアードメモリの利用や
大量のスレッドによるメモリアクセスレイテンシの隠蔽が重要になってくると思う。
>702の記事見たけど、デュアルコア2.4GHzのOpteronの1コアと
TESLA S1070の中の1基の比較なのかな・・・
>>708
倍精度だと思ったら、単精度だったのか・・・
そのpptってどこで公開されているんだろ?
711:デフォルトの名無しさん
10/03/26 22:33:58
倍精度でも30ばいかい?
712:デフォルトの名無しさん
10/03/27 01:43:50
なんでみんなプレスリリースくらい読まないの?
不思議
713:デフォルトの名無しさん
10/03/27 03:02:10
>>708
おいおい・・・まじかよ。
かなり酷いなあ。まだ騙すことは出来るかもしれないが、
これがばれてくると偉いことになるぞ。
そういえばNVIDIAのGPUカンファレンスでCPUの2000倍速くなりましたってのがあったが、
Tesrax4、Opteron 2.4GHz 1Coreのものだった。
かなりつっこまれていたよ。
で、GPUは最適化しましたけど、実はCPUは最適化してませんだった。
>>710
この手の計算はどちらかというとストリーミングに近いから、
キャッシュやプリフェッチは十分効くよ。
特にハードウェアプリフェッチはかなり効果的だよ。
ただ、SSEを使ってしまったりすると、計算時間を隠蔽できなくなって、
今度は転送時間を隠蔽する方法を考えなくてはならなくなる。
Nehalemの中でも2000MHzのメモリに対応したものであれば、
48GB/sにもなるよ。このあたりはオーバークロック気味になるので、
コンシューマレベルでしかないけどね。
GPUを使うのを否定はしないが、いい加減嘘に近い誇張は止めてもらいたいものだ。
数倍でもいいだろう。2倍でも2日かかったものが1日で終わるんだぜ。
あんまり速いと仕事が増えるじゃねぇか!
714:デフォルトの名無しさん
10/03/27 03:47:59
嘘は言ってないんだよな
比較対象が微妙すぎるだけで
CPUでも効率を出すのが難しい問題はあるから、両方ともきちんとチューニングした上で比較するのが理想ではある
まあXX倍という数字が一人歩きするのはよくないね
715:デフォルトの名無しさん
10/03/27 04:43:39
>>712
そのプレスリリースってどこにあるの?
>>713
この手の計算って常に帯域を使い切っているわけじゃないの?
それならキャッシュの効果は限定的になりそうだけど、プリフェッチはかなり効果ありそう。
URLリンク(journal.mycom.co.jp)
> 単一のGPU(Tesla S1070)を用いた際の性能は
> 「単精度ではTSUBAMEに搭載されているOpteron比で最大で100倍を超すレベルを達成、
> 平均でも 44,3GFlopsを達成している。
> 性能が落ちる倍精度でも15GFlops程度を達成しており、
> CPU比では相当高い値を実現した」(青木教授)と説明する。
URLリンク(www.gsic.titech.ac.jp)
> スパコンTSUBAMEの単一GPUを使った計算で
> 44.3GFlops(CPUの1コアに対して約80倍)
これってやっぱり、Tesla S1070の4基を単一GPUと言って
Opteronの1コアと比較している同じパターン・・・?
あまりに酷い誇張はやめてもらわないと、有能な開発者がGPUの性能をそれなりに引き出しても
能力が低いとか言われたり、色々と深刻な事態になりかねない・・・
716:デフォルトの名無しさん
10/03/27 04:54:00
実際、某社でなりかけている。
私の現場では、寧ろ旧世代のCPUを積んだサーバ機をGPUで延命させるってシナリオだから
処理能力は1.5倍でも御の字さw まぁ、実際のところはXeon1core対比で5倍程度は出たから
サーバ機一台で換算してなんとか2倍(5+1*3 vs 4)の数字は出たけど。
717:デフォルトの名無しさん
10/03/27 05:08:13
>>715
結局実装アルゴリズムによるけど、
プリフェッチはかなり効くよ。
最後の2行はすごく同意だな。
わかっていない人からすると、GPU使えば数10倍になるはずと思ったりするので、
有能な奴が5倍速い書いたコードを書いたとしても相対的に低いと評価されそうだ。
>>716
たぶんこういう使い方が一番いいのかもね。
718:デフォルトの名無しさん
10/03/27 07:21:48
>>715
CPU比ではそうかもしれんが
AMD比ではかなりしょぼくないか?w
719:デフォルトの名無しさん
10/03/27 09:10:23
URLリンク(nttxstore.jp)
NVIDIA Tesla C2070 ETS2070-C6ER 475,545円(税込) 発売開始日 2010/9/30
720:デフォルトの名無しさん
10/03/27 12:09:51
GTX 470欲しいな。でもどうせ瞬殺なんでしょ?
いいよな秋葉原に住んでるおまえらは
721:デフォルトの名無しさん
10/03/27 12:47:08
>>716
GPUで延命→鯖予算獲得→新鯖にGPU移植
の流れが理想
722:デフォルトの名無しさん
10/03/27 13:51:52
GPGPUでの性能評価の指針って明確に定められないのかね
CPU単一コア,レファレンスコードと比較して何倍速くなったと言っても,
そんな条件で計算すること自体なさそうなんで,意味無い気がするんだが
GPUでチューニングするなら,CPUでもチューニングするべきだろう
723:デフォルトの名無しさん
10/03/27 14:00:31
AMDかintelかでめんどくさいからじゃない
724:デフォルトの名無しさん
10/03/27 14:34:25
>>722 CPUまでチューニングする必要はないと思うけど、
気象コードがMPIで並列化されてないとも思えないし、1GPU内でも相当の並列化を行ってるんだから、
CPUの1コアのみと比較するのは、ちょっとやりすぎ。
で実際Xeon/X5570と倍精度で比較したら、単一コアで10倍程度、4コアで3倍程度のアドバンテージしかないんじゃない。
ノード単位だと逆に遅くなるとか。120GPUの3.2TFLOPSも単精度だし…、比較自体を都合のいいように、いいとこどりしすぎ。
ベンチマークだけでなく、せっかく実アプリをフルGPU化したのは十分意味があるのに、世間受けを狙いすぎた発表で逆に良識を疑ってしまう。
725:デフォルトの名無しさん
10/03/27 15:23:41
第三者(?)が書いた記事よりも
NVIDIAの発表のほうがまだ信頼できるな。
726:デフォルトの名無しさん
10/03/27 16:40:26
詐欺師の言葉のほうが信頼があるとはこれ如何に
727:デフォルトの名無しさん
10/03/27 16:46:56
詐欺師はお客様に信用されなければいけない。
だから最低限の嘘しかつかない。
大道芸人は嘘をつくたびに金をもらえる。
だからいくらでも嘘をつく。
728:デフォルトの名無しさん
10/03/27 18:47:44
モックアップNVIDIAとうそつきが多い野心的な学者連中の
たわ言なんて信用できないよな
729:デフォルトの名無しさん
10/03/27 19:13:00
ま俺は数字しか信じない
URLリンク(www.anandtech.com)
730:デフォルトの名無しさん
10/03/27 19:26:53
数字なんていくらでもいじれるんですよ!
信用のあるデータが欲しいなら自分で実測するしかない
731:デフォルトの名無しさん
10/03/27 19:36:26
つまりそのデータを公開しても
誰も信じないってわけね
732:デフォルトの名無しさん
10/03/27 19:44:22
その通り!
よく分かってるじゃん
論文だって他人の実験の結果なんて基本誰も信用しないよ
とりあえず自分で再現実験してみるのは常識
733:デフォルトの名無しさん
10/03/27 20:09:19
そしてその論文も誰も信用しない
734:デフォルトの名無しさん
10/03/27 21:06:02
利害を共にしない数十人の人が
方法の妥当性を検証し、追試し、同じ結果が出て初めて
ある程度の信用を得る
それでも「ある程度」なのが学問の厳しい所だ
735:デフォルトの名無しさん
10/03/27 21:40:16
GPUは1コアだと思いますよ。TESRA内でもGPU同士はPCI越しなんで
遅くなると思います。
3000x3000x50って1GPUにおさまるサイズと思うし
736:デフォルトの名無しさん
10/03/27 21:41:34
誰も追試できないと思っているから舐めているんだろ。
今後は青木の言うことはハイハイワロスだな。
737:デフォルトの名無しさん
10/03/27 21:43:30
>>735
それだったら120GPUの意味がないだろ。
あと、Teslaな
738:デフォルトの名無しさん
10/03/27 21:49:48
いくつかの別な測定を同じ測定かもしれない感じで書くのはテクニックじゃないですか
1GPUで44.3GFLOPSなのに120GPUでなんで3.22TFLOPSなんでしょうか。
739:デフォルトの名無しさん
10/03/28 09:52:45
Zotac GeForce GTX 480
Amazon.comでPre Order $499だったから
申し込んでしまったw (米→日転送業者使用)
740:デフォルトの名無しさん
10/03/28 13:50:46
結局512spじゃなかったねGTX480
741:デフォルトの名無しさん
10/03/28 15:30:51
Ultraがくる
742:デフォルトの名無しさん
10/03/29 03:53:35
>>740
最初から、576にしておけばよかったのにね。
32x18で。2ブロックダメでも512で出せるのに。
743:デフォルトの名無しさん
10/03/29 08:15:18
そんなことしたらますますイールドが悪くなるわけで。
744:デフォルトの名無しさん
10/03/29 11:43:02
1CUDAコア破損しただけで32個分が台無しになるFermi
512すべて無事なのはほとんどないんだろうな
745:デフォルトの名無しさん
10/03/29 11:50:30
PS3と同じ作戦でござる。
____________
ヾミ || || || || || || || ,l,,l,,l 川〃彡|
V~~''-山┴''''""~ ヾニニ彡| 512SPは存在する・・・・・・!
/ 二ー―''二 ヾニニ┤ 存在するが・・・
<'-.,  ̄ ̄ _,,,..-‐、 〉ニニ| 今回 まだ 全部有効にするとの
/"''-ニ,‐l l`__ニ-‐'''""` /ニ二| 指定まではしていない
| ===、! `=====、 l =lべ=|
. | `ー゚‐'/ `ー‐゚―' l.=lへ|~| そのことを
|`ー‐/ `ー― H<,〉|=| どうか諸君らも
| / 、 l|__ノー| 思い出していただきたい
. | /`ー ~ ′ \ .|ヾ.ニ|ヽ
|l 下王l王l王l王lヲ| | ヾ_,| \ つまり・・・・
. | ≡ | `l \__ 我々がその気になれば
!、 _,,..-'′ /l | ~''' FermiのSP数は
‐''" ̄| `iー-..,,,_,,,,,....-‐'''" / | | 320SP 384SP ということも
-―| |\ / | | 可能だろう・・・・・・・・・・ということ・・・・!
| | \ / | |
746:デフォルトの名無しさん
10/03/29 14:07:53
____
|<三`'ヨ′
_/6|ー廿┤
/l ̄ KL.三.」 ̄h
. / | レ兮y′/ l
〈 く ∨ l/ ,イ |
\_,.>、 /,L..」_
. 0ニニニ)而}ニニニニニ),リリニニ)
. L| |_____|____| |
l | |._______| | ,:
, l \ヽ l | , '/ ;'
:, ____l_|_|_;_|_|___|_|__ ;
|\゙;三三゙';三三三,;゙三三\ ;'
|\\三三゙三ジジ三三,''三;'\,;' ;'
|、 \\三゙;三三ジジ・'三三三;\ ;
0ト、\\\;'三三;'三三三;''三三,;'\
\\\| 炎炎炎炎炎炎炎炎炎 |
\\| 二I二二I二二I二二I二 |
\LI二二I二二I二二I二二」
0」 0」
747:デフォルトの名無しさん
10/03/30 10:14:08
NVDIAフォーラムでGTX480の倍精度性能はTeslaの1/4という発言が
ありますがどうなんでしょう
748:デフォルトの名無しさん
10/03/30 10:30:27
>>747
おれ、人柱としてぽちったから待っててくれ。
749:デフォルトの名無しさん
10/03/30 11:15:36
>>748
俺はお前を待っているぞ
+ +
∧_∧ +
(0゚・∀・) ワクワクテカテカ
(0゚∪ ∪ +
と__)__) +
750:デフォルトの名無しさん
10/03/30 11:36:18
Quadroと同じ戦略か。
妥当っちゃ妥当だな
751:デフォルトの名無しさん
10/03/30 12:00:52
EECだけでなく倍精度も性能を劣化させたのか
GPGPUの利点がどんどんなくなってるな
752:デフォルトの名無しさん
10/03/30 12:20:38
>>749
あ、748なんだけど、さすがにTesla買う金は無いのよ。
なんか、GTX480で動かして「明らかに倍精度の性能落としてやがる!!!11」と
分かるプログラムはどこかにあるかな。
753:デフォルトの名無しさん
10/03/30 12:21:31
Teslaもないと比べようがなくね?
visual profilerの関数の実行時間を比較くらいしか厳密な計測はできなさそう。
754:753
10/03/30 12:22:12
リーロードしてなかった、悪気はないんだw
755:デフォルトの名無しさん
10/03/30 12:34:45
NVIDIA_GPU_Computing_SDK/C/bin/linux/release$ ./matrixMul
Processing time: 0.120000 (ms)
Test PASSED
Press ENTER to exit...
あたりを倍精度化してもらえばいいかと
756:デフォルトの名無しさん
10/03/30 12:36:50
>>753
かぶって申し訳ないww
おれ>>739なんだけど、失敗かな。日本で入手可能になるのを
待ったほうが早くて安かったかもしんないよなorz
757:デフォルトの名無しさん
10/03/30 12:41:40
>>755
おけ、matrixMulでGTX280とGTX480の比較ならやってさしあげられる。
floatのままと、doubleに全部置換した版で。
758:デフォルトの名無しさん
10/03/30 12:50:39
floatは内部で型変換してるからdoubleの方が早いって聞いた事あるんだけど…
759:デフォルトの名無しさん
10/03/30 12:59:07
倍精度のFMAをひたすら繰り返す感じのカーネルで計測するのがよいかと。
760:デフォルトの名無しさん
10/03/30 13:09:51
>>758
どこかのCPUでintをdoubleに変換してたという話かと。
761:デフォルトの名無しさん
10/03/30 13:10:18
しかし、480SPとか、AMDはリアル12コアだとか、
時代の進歩は速いものだな。
762:デフォルトの名無しさん
10/03/30 14:06:01
しかし、性能はGTX295から毛の生えた程度
ていうか、もし倍精度の性能がいまいちだったらGTX480/470より
GTX295を買ったほうが安くていいかもね
763:デフォルトの名無しさん
10/03/30 14:14:19
長崎大のようなことをやられたらNVDIAが東工大から呼出をうけて
「2度目はないからな」とか言われても不思議じゃないよね
764:デフォルトの名無しさん
10/03/30 15:00:14
>>762
GTX295、5万円くらいだからなぁ。倍精度の性能がGTX280の2倍程度ならば…
GTX295でヨシってことになると。>>757よろしく!
765:デフォルトの名無しさん
10/03/30 15:19:12
matrixMulはメインメモリの転送が時間に含まれてるしサイズが小さめ
プログラムが書けるなら1000x1000あたりの性能をお願いします
766:デフォルトの名無しさん
10/03/30 15:43:23
>>760
そうなのか?
普通のCPUの構造上浮動小数点演算は、
64bitでやるから型変換をしてると聞いたんだけど
767:デフォルトの名無しさん
10/03/30 15:48:57
もしかしてGPUだと話は別なのかな…
768:デフォルトの名無しさん
10/03/30 18:34:02
>>766
x86アーキテクチャでは、普通は変数型に関わらず浮動小数点演算は80bitの拡張倍精度で行う。
メモリロード/ストアの際に、変数がfloat型ならfloat型に変換されはするが、
別に大した処理でもないので速度にそんな影響は出なかったと思うが。
769:デフォルトの名無しさん
10/03/30 18:46:24
R3000かなんかで64bitint乗算がなくてとかなかったっけ
770:デフォルトの名無しさん
10/03/30 22:56:03
>>767
GPU だとどころか、倍精度演算器が載ってない CPU だってあるから。
処理系によって話が別。
771:デフォルトの名無しさん
10/03/31 02:58:13
device emulationってなくなっちゃうのね
772:デフォルトの名無しさん
10/03/31 05:57:59
ちょっと整理。
・x86(fpu)
浮動小数点レジスタが80bitなので、floatを突っ込んでも80bitで演算する。
従って、floatとの変換処理が入るのでdoubleの方が速いことがしばしば。
・x86(sse)
MMXレジスタが汎用なので、floatはfloatのまま演算する。
従って、定数や標準関数でdoubleに汚染されないように気をつければfloatの方が多少速くなる。
また、MMXレジスタにfloatの方が2倍詰め込めるのでベクタ化した場合に2倍速くなる可能性もある。
更に、キャッシュ効率もよくなるのでより速くなるかもしれない。
・GPU(cuda)
単精度レジスタと倍精度レジスタが分かれているんだっけ? 倍精度についてよく知らんのでフォローお願い。
演算器の特性上、単精度の方がずっと高速に演算するし、転送量も当然半分にできる。
応用にも拠るけれど、CPUとのI/Fは単精度で内部だけ倍精度にできると最強かも。
773:デフォルトの名無しさん
10/03/31 07:48:43
64bit版gccだと、-m32オプションをつけない限りもはやx87のコードは吐かないなあ。
>CPUとのI/Fは単精度で内部だけ倍精度にできると最強かも。
これって何回丸めが発生するかによるけど、精度は単精度+αだね。
でもこういうことはよくやるなあ。
データ量を減らしたくて少し精度が欲しい場合は、最終的に欲しいデータはfloatで持っておいて、
計算するときにすべてdouble型のデータにコピーして最後に結果をfloat型に戻す。
この方法をとれば、丸め誤差の発生は一回で済む。
計算の中身が超越関数使ったり、複雑であったりすると結構有効だよ。
その分速度は犠牲になるけど、メモリ帯域が支配的であると余り影響がないな。
G200系だとまだ効果はないだろうけど、Fermiなら結構役に立つんでない?
774:デフォルトの名無しさん
10/03/31 11:35:13
>・x86(fpu)
>浮動小数点レジスタが80bitなので、floatを突っ込んでも80bitで演算する。
>従って、floatとの変換処理が入るのでdoubleの方が速いことがしばしば。
doubleは64bitなんだから結局まるめが入るのは同じじゃないの?
775:デフォルトの名無しさん
10/03/31 13:02:05
おいおいあれだけCPU側のコードが糞だといっておいて、CPUのこと知らなさすぎだろw
floatが遅くなるのは、MSVCが、floatのときは毎回メモリに書き戻すことで精度を32bitに落としてIEEE互換にするコードを出すから
レジスタ間ならfloat/double/long double関係なく80bit
776:デフォルトの名無しさん
10/03/31 14:32:17
GPUの種類を取得する関数か何かはありませんか?
777:デフォルトの名無しさん
10/03/31 14:42:10
>>776
サンプルでついてくるdeviceQueryのソース読んでみれば
778:デフォルトの名無しさん
10/03/31 14:44:59
>>776
CUDA APIガイドに書いてあるだろ
779:デフォルトの名無しさん
10/03/31 15:12:11
そうじゃなくて製品名です
780:デフォルトの名無しさん
10/03/31 15:20:59
製品名って、ASUSかEVGAか判別したいってこと??
781:デフォルトの名無しさん
10/03/31 15:26:11
メーカーの判別はどうがんばっても無理だろ
782:デフォルトの名無しさん
10/03/31 15:32:47
じゃあせめてWindowsかMacかInaxかぐらいわかりませんか?
783:デフォルトの名無しさん
10/03/31 15:33:23
製品名って言うくらいだから、ELSA GLADIAC 998 GTX Plus V2 512MBみたいなのじゃないのか。
784:デフォルトの名無しさん
10/03/31 15:34:04
>>782
CUDA以前の問題。てか、そのレベルじゃ絶対無理だろ。
785:デフォルトの名無しさん
10/03/31 15:53:38
#ifdef _WIN32
786:デフォルトの名無しさん
10/03/31 15:55:08
まさかOpenCLの話か?
#ifdef _apple
とかやった覚えがある。
787:デフォルトの名無しさん
10/03/31 16:15:17
#ifdef _appleは豆知識だな
788:デフォルトの名無しさん
10/03/31 16:44:37
Inax は釣りだろ。782 は偽者じゃないか?
TOTO 向けと別の最適化するのかなw
789:デフォルトの名無しさん
10/03/31 19:31:24
水流をGPUでシミュレーションして最適化するのか
790:デフォルトの名無しさん
10/03/31 21:04:19
流体シミュレーションはGPGPUのメインテーマだから、まさにうってつけだろう
791:デフォルトの名無しさん
10/03/31 21:06:11
OpenCL使えよ馬鹿ども
792:デフォルトの名無しさん
10/03/31 21:08:09
日本の便器メーカーは水量削減に血道を上げているからな
いかに少ない水量で、効率良く、かつきっちり排泄物を流しきるか
793:デフォルトの名無しさん
10/03/31 21:11:31
便器開発での計算に使用するだけでなく、
便器自体にTeslaを搭載し、
排泄物を画像認識して最適な水流を計算する。
排熱も有効利用できそうだ
794:デフォルトの名無しさん
10/03/31 22:39:35
>>793
画像認識のコード書くやつは大変だな
795:デフォルトの名無しさん
10/03/31 22:42:09
確かに、今は節水ということで一般家庭向けの便器は
流れが悪いといくことを感じるな。
現場では流体演算とかして設計しているのだろうか?
796:デフォルトの名無しさん
10/04/01 01:09:36
TOTO 節水 シミュレーション でググってみた。
URLリンク(www.toto.co.jp)
797:デフォルトの名無しさん
10/04/01 01:17:06
流体どころか三相全てシミュレートしてるんだな
798:デフォルトの名無しさん
10/04/01 07:04:31
GTX470が先に発売されるみたいですね。
購入される方いますか。
799:デフォルトの名無しさん
10/04/01 12:43:41
どうしてcudaはosと密接なのか?
最新のubuntuをいれたくてもいれられへん
理由を教えてくれろ
800:デフォルトの名無しさん
10/04/01 14:28:01
>>799
ドライバレベルで提供されているから。
801:デフォルトの名無しさん
10/04/01 19:55:02
>>797
固体ってのが生々しいな。シミュレーションするためにウンコの物性とか
測定したりしたんだろうな。
802:デフォルトの名無しさん
10/04/01 20:10:39
壊れ方とかがリアルな模型があるとか聞いたことがある。
でも物体の測定データのファイル名とかはなまなましいだろうなw
シミュレーションしているときのSSとかあればいいのに。
803:デフォルトの名無しさん
10/04/01 21:27:09
たしか法律で、流す水の量は決まってるんだよね。
804:デフォルトの名無しさん
10/04/02 07:57:34
>>799
たぶん、nvccがgccの進化について行けていないだけだと思う。
バイナリだけなら、最新のUbuntuでも動くよ。
805:デフォルトの名無しさん
10/04/02 16:58:24
最近のディストリビューションって大抵1年かそこらでサポート終わりじゃん。
1つまえのバージョンにしか入れられないと、半年程度でいれかえなきゃいけないんだよね。
そこらへんを早く何とかしてくれよ。
CentOSとかつかえばいいのかもしれんけど
806:デフォルトの名無しさん
10/04/03 03:06:19
そこを何とかしてもらいたいね。
俺は古いバージョンのLinuxをVirtualBoxで新しいバージョンのLinux上で動かして、
クロスコンパイルライクなことをしているよ。コンパイルだけなら仮想化環境でも通るからな。
807:デフォルトの名無しさん
10/04/03 12:32:49
GTX480で倍精度削られたのは本当らしい…
Quadroではどうなるんだろう
808:デフォルトの名無しさん
10/04/03 14:22:26
今すぐ計算して論文書かなきゃって人以外は↓ここ聞いてからにした方がいいんじゃないかと。
URLリンク(www.hardocp.com)
「当機はまもなく離陸しますw」
809:デフォルトの名無しさん
10/04/03 14:24:49
>>807
ドイツ語読めないけど、これ?
URLリンク(www2.hardware-infos.com)
810:デフォルトの名無しさん
10/04/03 22:55:58
Q1.同じGT-240を二枚挿せばCUDAも倍近く早く処理できるようになりますか?
Q2.GDDR5とGDDR3とDDR3でCUDA動画エンコードの処理スピードはどれくらい
違いますか?GDDR3を100として。
811:デフォルトの名無しさん
10/04/04 00:22:50
>>810
もう少し具体的に知りたいことを書いた方が答えやすい。
例えば動画エンコード用途に限ると「複数枚挿しはどうよ?」とか、「FermiとかATIとかの中でどれが一番速いか」とか。
812:デフォルトの名無しさん
10/04/04 00:38:10
十分具体的だろ・・・。
ソフトウェアによって、複数挿に対応しているかどうかは変わるので、
使いたいソフトについて調べよう。
メモリの速さは重要だけど、GPGPUでは、メモリにアクセスするときの遅延のほうが問題となっている。
ハードウェアの構造的にもGT200系のほうがメモリアクセスが柔軟なので、GTX260あたりを検討してはどうだろう。
813:デフォルトの名無しさん
10/04/04 01:19:30
具体的だろと言っておきながらソフトによって変わるとか意味不明
814:デフォルトの名無しさん
10/04/04 01:38:58
>>811-812
レスありがとうございます。
CUDAの使用目的:動画エンコのみ。 使用するソフト:MediaCoder
使用するかもしれないソフト:TMPGEncKarmaPlus
現状:AVIUTLでロゴ消しとインタレ解除のプロジェクト→
TMPGEnc4で色γクロップ・リサイズしてHUFFYUVで出力→MediaCoderのx264で。
課題:Q6600でVGAでx264エンコが22fpsしか出ない。1080pだと4fps!orz
MediaCoderにCUDAでH.264エンコできる機能があるので使いたい。
GT240がGDDR3で6000円、GDDR5で7500円~なので、二台組むより二枚入れた
ほうがいいのかも?
GDDR3とGDDR5でCUDAエンコに殆ど差がないならGDDR3のほうにしたい。
複数枚挿しはどうです?
現状G43/G41/G31なので新しくマザー買わなきゃできないけど…。
>>812
GPGPUやメモリアクセスについて仕組みとか全く知らないのですが、
GTX260はGT240の倍以上の値段だけど、倍の性能あるんですか?
wikiに書いてあるSPとCUDAコア数がどう違うのか分からないので…
もし倍の性能(エンコが倍早くなりそう)ならGT240よりGTX260を選ぶかも
しれません。PXI-EX⑯が1つですむし。
815:デフォルトの名無しさん
10/04/04 01:42:45
>>810
素直にCorei7にしておけ。
GT240じゃ2枚さそうがCorei7の方がマシだ。
816:デフォルトの名無しさん
10/04/04 02:30:20
現状CPUを強化したほうがメリット多い
CUDA使うならGTX260以上じゃないとCPUの足を引張る可能性がある
817:デフォルトの名無しさん
10/04/04 04:58:16
aviutlでの処理時間考えたらCPU強化の方が妥当だな
818:巻添規制中(810=814)
10/04/04 06:04:59
>>815
URLリンク(www.techarp.com)
でみるとi7はQ6600の1.25倍くらい早い
URLリンク(www.katch.ne.jp)
でみるとCUDAはQ6600の3.7倍くらい早い
∴CUDAはi7より3倍近く早い…??? CUDAは実写向き?
X58+i7買いたいけど、LGA1155待とうかと。
819:デフォルトの名無しさん
10/04/04 09:47:48
>>818
あ~、俺もこれ使ってcudaエンコしてるけど、Bフレームが4までだったり2passできなかったり
画質はいまいちですよん。たしかにCPUよりは速いとはおもうけど・・・。
新しいバージョンだと改善されてる可能性はあるけどね。
820:デフォルトの名無しさん
10/04/04 11:55:03
>>814
GT240の3倍くらいの値段で売られているが、3倍速くなるとはいえないけど、
MediaCoderは複数差対応していなし、GT240を2枚買っても無駄になる。
あたらしくマザー買う予算が削れるならGTX260でもいいかと。
画質もとめるなら、i7ってのは合意。
821:810
10/04/04 14:18:33
みなさん色々有難うございます。ググりながら考えてるんですが難しいですね。
>>816>>817
GTX260だと電源交換、i7はM/B&DDR3全部揃えないと…先立つものが…。(ToT)
URLリンク(www.katch.ne.jp) の人
は GeForce9600GT(VRAM 512MB)Vista HomePremium(SP2)で実行、CUDAエンコ
でQ6600使用率83%と書いてあるけど、GT240のほうが高速ですよね?
URLリンク(pc.watch.impress.co.jp) によると
GeForce 9600 GTの1,800MHz/256bit メモリ帯域幅は57.6GB/sec、
GeForce GT 240のGDDR5/3,400MHz/128bit 54.4GB/sec、
GeForce GT 240のDDR3/2,000MHz/128bit 32GB/sec。
DDR2-667(5.3GB/s) DDR2-800(6.4GB/s)デュアルだと倍。
もしかしてDDR2がボトルネックになる?
GT240 GDDR3とGDDR5でCUDAエンコの速さの違いどうなんでしょう?
そこらへんが一番気になります。
822:810
10/04/04 14:19:49
>>819
最新ではBフレームが16まで、Average/Variable/CBR/2pass/3pass できるみたいだよ。
x264ではAverage/Variableは何故かコマ落ちする。
>>820
SP216&DDR3のGTX260とCUDAコア数96のGT240だと、エンコ速度二倍差が出ます?
PHARAOH 500W電源だとGTX260+Q6600はギリギリかなぁ。
(Q6600+GT240)複数台にするほうが経済的かな? G41とDDR2が1組余ってるし…