【GPGPU】くだすれCUDAスレ pert2【NVIDIA】
- 1 :デフォルトの名無しさん:2009/10/08(木) 19:29:37
- このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
CUDA使いが優しくコメントを返しますが、
お礼はCUDAの布教と初心者の救済をお願いします。
CUDA・HomePage
http://www.nvidia.com/cuda
関連スレ
GPUで汎用コンピューティングを行うスレ
http://pc11.2ch.net/test/read.cgi/tech/1167989627/
GPGPU#3
http://pc12.2ch.net/test/read.cgi/tech/1237630694/
- 119 :デフォルトの名無しさん:2009/11/14(土) 04:42:01
- >>114
そっか単純にCPUもメモリもついてないのか
安いわけだ
- 120 :デフォルトの名無しさん:2009/11/14(土) 05:12:47
- サーバー用のメモリも安くなってきたから、サーバー用でいいかも。
Kingstonの4GB×3本で$350とかだ。
- 121 :デフォルトの名無しさん:2009/11/14(土) 05:32:24
- CUDA_SAFE_CALLって必ず必要なのですか?
- 122 :デフォルトの名無しさん:2009/11/14(土) 05:36:18
- > nForce200が二個乗り
おれの場合、O(n^2)だと、使うメモリ帯域<<計算量で、
x16で有る必要は無いなと思ったよ。
- 123 :デフォルトの名無しさん:2009/11/14(土) 07:48:22
- カーネルを実行する際に、引数で、変数を渡すことができますが、多数の数値を配列で渡したい場合、
配列をデバイスにコピーしてから、配列へのポインタを渡すしかないのでしょうか?
オーバーヘッドの少ない、数値の渡し方を差がしているのですが・・・
- 124 :デフォルトの名無しさん:2009/11/14(土) 08:32:24
- 引数で配列のポインタを渡したって、どっちみちホストメモリ→デバイスメモリの
コピーは要るし?
- 125 :デフォルトの名無しさん:2009/11/14(土) 15:41:12
- すみません、CULAについて質問です。
Red Hat Enterprise Linux 5.3(64bit)に
まず、CUDA3.2(ドライバ、ツールキット、SDK)をインストール。
(~/CUDA/ 以下。ツールキットは /CUDA/cuda/bin/nvccのようになっている)
その後、CUDA3.2上でCUBLASが動作することを確認しました。(Dgemmを利用)
後に、CULAがあることを知り昨日CULA Basic 1.0をダウンロードし
~/cula/ 以下にインストールしました。
(~/cula/lib64/libcula.so)
インストール後表示される
export CULA_ROOT="/home/nakata/cula"
export CULA_INC_PATH="$CULA_ROOT/include"
export CULA_BIN_PATH_32="$CULA_ROOT/bin"
export CULA_BIN_PATH_64="$CULA_ROOT/bin64"
export CULA_LIB_PATH_32="$CULA_ROOT/lib"
export CULA_LIB_PATH_64="$CULA_ROOT/lib64"
- 126 :続き:2009/11/14(土) 15:43:23
- 以上を実行後、example/geqrf にある、Makefileを用いて
make build64 を実行すると、
/home/nakata/cula/lib64/libcula.so: undefined reference to `cublasDtrmv'
/home/nakata/cula/lib64/libcula.so: undefined reference to `cublasZswap'
/home/nakata/cula/lib64/libcula.so: undefined reference to `cublasZaxpy'
/home/nakata/cula/lib64/libcula.so: undefined reference to `cublasCtrmv'
/home/nakata/cula/lib64/libcula.so: undefined reference to `cublasZtrmv'
/home/nakata/cula/lib64/libcula.so: undefined reference to `cublasZcopy'
/home/nakata/cula/lib64/libcula.so: undefined reference to `cublasCgemv'
/home/nakata/cula/lib64/libcula.so: undefined reference to `cublasCtrmm'
/home/nakata/cula/lib64/libcula.so: undefined reference to `cublasCtrsm'
/home/nakata/cula/lib64/libcula.so: undefined reference to `cublasZtrmm'
リファレンスを調べてみると、例えば、cublasにDtrmvが無いように思えます。
これはどのようにすればいいのでしょうか。
- 127 :デフォルトの名無しさん:2009/11/15(日) 15:27:35
- en_curr_regionがないってエラー出るんで、調べてたらbreakやcontinueのところでエラー出てるっぽいんだけど、CUDAってbreakやcontinueとの相性悪いのだろうか?
- 128 :デフォルトの名無しさん:2009/11/15(日) 16:54:01
- 分岐は罪
- 129 :デフォルトの名無しさん:2009/11/15(日) 20:02:42
- 質問です
CUDAを使ったプログラムをCUDA toolkitをインストールせずに実行する方法ってありますか?
- 130 :デフォルトの名無しさん:2009/11/15(日) 20:56:22
- 試した事はないけど、driverと実行ファイルがあれば出来るだろうな
- 131 :デフォルトの名無しさん:2009/11/15(日) 21:09:53
- よ〜し、パパ、CUDAを覚えて会社で活躍しちゃうぞ〜!
- 132 :デフォルトの名無しさん:2009/11/16(月) 01:31:49
- VCランタイムがあるとして、cudart.dllと、cutil32.dll だけ必要(Win32)。
- 133 :デフォルトの名無しさん:2009/11/16(月) 01:44:32
- >>132
それって再配布できるの?
- 134 :デフォルトの名無しさん:2009/11/16(月) 03:58:07
- cudatoolkitのEULA、cudart.dll はredistributableと書いてあるな
CUTILは、cutil.cppの頭に「何の保証もしねぇよ」って書いてある。CUDAとは別で単なるサポート用なのかな。
ていうかcutil32.dllは無くても動くように書けると思う。ソースみたらくだらないぞこれ
nVidiaのドライバ入れればCUDAも動く、ようにはまだなってないのかな。
- 135 :デフォルトの名無しさん:2009/11/17(火) 00:52:04
- >>134
cudart.dll はCUDAの上位互換を保つために、配布するんだそうだ。
ちなみに、cutil32 or 64 .lib は使わないほうが。。。
ともかく、
cudart's version <= cuda driver's version
の条件が必須
- 136 :,,・´∀`・,,)っ-○○○:2009/11/17(火) 01:46:28
- cutilはクソすぐる
- 137 :デフォルトの名無しさん:2009/11/17(火) 01:55:12
- いつの間にか団子が2ちゃんのスポンサーになってる・・・
【2ちゃんねる10週年】神秘の「乳団子」の秘密とは?
http://pc12.2ch.net/test/read.cgi/tech/9240911011/
- 138 :デフォルトの名無しさん:2009/11/17(火) 05:06:18
- Tesla C2050 $2,499 発表になったじゃない。倍精度500-630GFLOPS。
倍精度なら10倍速い、ってどかすか買うお金持ちな人居るんだろうなぁ。
- 139 :デフォルトの名無しさん:2009/11/17(火) 08:14:48
- 今まで散々売られてもいないLarrabeeを盾にして現存のプロセッサと
それを擁護する人たちを馬鹿にしていた癖して
いざ完成が近づいてくると
ディスクリート版には期待していないキリッ
とか馬鹿にしてるよな。
- 140 :デフォルトの名無しさん:2009/11/17(火) 09:20:00
- おまえは誰と戦って(ry
- 141 :デフォルトの名無しさん:2009/11/17(火) 20:19:11
- 書き込むスレ間違えたが分かっている人はいると思うから問題ない。
- 142 :デフォルトの名無しさん:2009/11/17(火) 20:52:26
- >>138
倍精度性能だけ見るとHD5870と同じ性能だというのは本当なのか?
単精度の1/2の性能でいいって言ってるけど
HD5870の単精度性能が数倍早いだけだという噂が
- 143 :デフォルトの名無しさん:2009/11/18(水) 01:33:01
- >>142
AMDはなにかを犠牲にしていると思うんだけど何を犠牲にしているの?
- 144 :,,・´∀`・,,)っ-○○○:2009/11/18(水) 02:05:20
- >>143
たとえばプロセッサエレメントはFP演算とデータの読み書きは排他実行だったりとか
それでなくとも各プロセッサエレメントにぶら下がってる5つの演算ユニットが平均2〜3程度しか稼動してないとか
- 145 :デフォルトの名無しさん:2009/11/18(水) 06:05:13
- ららびーは倍精度で1TFLOPSとか行くのかな。
Core i7で60GFLOPSくらいだっけ。
- 146 :デフォルトの名無しさん:2009/11/18(水) 08:27:53
- >>144
データ読み書きは別スレッドの分が並列に動くだろ。
メモリアクセス性能低いからALU命令の比率が余程高くないと
読み書き速度がネックになるけど。
- 147 :デフォルトの名無しさん:2009/11/18(水) 10:21:58
- 初歩的な疑問なのですが
ttp://tech.ckme.co.jp/cuda_const.shtml
のコードのように
__constant__ float g_idata[10000];
とか書いた時,このconstantメモリ領域は
いつ確保されるのでしょうか?
宣言だけ書かれてあっても
host,device共にその領域を使うコードを実行しない限り,
領域確保は行われないと思っていいのでしょうか?
- 148 :デフォルトの名無しさん:2009/11/18(水) 12:05:28
- >>147
GPUにはそもそも領域確保と言う概念がありません。
定数メモリ領域も共有メモリ領域もただそこにあるだけなので、宣言はあくまでもコード上のものでしかありません。
- 149 :デフォルトの名無しさん:2009/11/18(水) 15:16:17
- 一応タイムシェアリングできてるみたいだけどGPUのメモリ領域の退避はしないの?
- 150 :デフォルトの名無しさん:2009/11/18(水) 18:43:48
- CUDAでCPU、GPUを並列に動作させられますか?
CPU GPU 並列 CUDA あたりで検索しても出てきません。
原理的にできそうな気もするのですが、
GPUで操作させている間はドライバを働かせているので無理なのでしょうか?
- 151 :デフォルトの名無しさん:2009/11/18(水) 18:52:14
- スレッドを使えばできますよ。GPUのプログラムは殆んどCPUに負荷をかけません。
- 152 :デフォルトの名無しさん:2009/11/18(水) 22:50:37
- >>150
GPUを起動したスレッドを待機状態のまま放置しておけば、他のスレッドでCPU資源を遣り繰りできます。
但し、SPの個数を超えるようなグリッドを食わせると途中で転送処理が入るので要注意。
- 153 :デフォルトの名無しさん:2009/11/19(木) 06:44:52
- CentOSで動きますか?
- 154 :デフォルトの名無しさん:2009/11/19(木) 14:51:15
- FermiでC言語が使えるってどーいうこと?
- 155 :デフォルトの名無しさん:2009/11/19(木) 17:13:26
- >>153
動きます。
- 156 :デフォルトの名無しさん:2009/11/19(木) 19:37:25
- fermi用のCコンパイラを用意しましたってことじゃねーの?
- 157 :デフォルトの名無しさん:2009/11/20(金) 19:04:36
- スレッド内部でレジスタがどのように使われているかわかりません
変数の数=レジスタの数という認識をしていたのですが、そうではないようです
どなたかご教授ください
- 158 :デフォルトの名無しさん:2009/11/21(土) 10:30:39
- すいません、テクスチャメモリで疑問があります。
よろしければどなたか教えて頂けませんか?
コードは
http://gpu.fixstars.com/index.php/%E3%83%86%E3%82%AF%E3%82%B9%E3%83%81%E3%83%A3%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%E3%82%92%E4%BD%BF%E3%81%86
のテクスチャメモリを参照するていう項目のソースをとりあえず勉強がてらコンパイルしてみました。
配列に値を3ずつ入れていって、バインドして、それにtex1Dでアクセスするというだけのものです
13行目にインデクスに3.14fを用いている事から線形補間なしの場合、小数切捨てで3になり
配列[3]の値を読んで、9が返ってくるのは理解できたんですが、線形補間を有りにすると
9と12の間を補間してるはずなのに7.921875なんていう値が帰ってきています。不思議に思ってv2.3のPrograming guideを読んだところ、P.139に記述があり、どうも与えた値が-0.5されているようです。
ので、はじめから+0.5シフトしてやれば正しい値になりそうですが、そもそも何故-0.5されているのかがわかりません。
検索してもぜんぜん出てこないので当たり前な事なのかもしれませんがドツボにハマってしまってわかりません。よろしければどなたか教えて頂けませんか?長文失礼しました
- 159 :デフォルトの名無しさん:2009/11/21(土) 10:32:29
- 158です。
上記質問で訂正があります。programming guideのP.139ではなくP.137でした。すいません。
- 160 :デフォルトの名無しさん:2009/11/21(土) 11:49:04
- >>158
テクスチャだからとしか言い様が無いような。
配列の[0]の値は0 〜 1が守備範囲で中心は0.5
...
配列の[i]の値はi 〜 i+1が守備範囲で中心はi+0.5
...
配列の[N-1]の値はN-1 〜 Nが守備範囲で中心はN-0.5
N個の値を0〜Nの範囲に均等にマッピングするためにこうなっている。
- 161 :デフォルトの名無しさん:2009/11/21(土) 12:40:17
- >>160
なるほど、こんな感じか。
buffer[2.5] = 6.0
buffer[3.0] = (buffer[3.5]-buffer[2.5])*0.5 + buffer[2.5] = 7.5
buffer[3.5] = 9.0
buffer[4.0] = (buffer[4.5]-buffer[3.5])*0.5 + buffer[3.5] = 10.5
buffer[4.5] = 12.0
buffer[3.141592653589] = (buffer[3.5]-buffer[2.5])*0.641592653589 + buffer[2.5] = 7.924777960767
あれ?ちょっと違う値だね
- 162 :158:2009/11/22(日) 15:50:57
- >>159,160
ありがとうございます。
なんとなく理由が理解できた気がします。
が、こちらでも計算しましたが
buffer[3.141592653589]=7.924777960767
となって件のサイトの値7.921875とは合わないですね・・・
buffer[9.80665]=27.91995となって27.925781ではないですね・・・
低精度の線形補間というのは有効数字3桁って事なんですかね?
- 163 :デフォルトの名無しさん:2009/11/23(月) 05:07:25
- リニアフィルタつきのテクスチャでは、
座標(0,0)てのは左上端のドットが持つ四角い領域の左上端を意味するからね。
ドットの真ん中は座標(0.5, 0.5)になる。
真ん中にそのドットの本来の色(値)がくる。
精度はシラネ。リファレンスマニュアルに何か書いてあると思うけど。
- 164 :デフォルトの名無しさん:2009/11/23(月) 14:39:37
- CUDA3.2上で動くTesla1070Sを使っているんだが
doubleでは、sqrtとか動作しない?
//#define DOUBLE double
#define DOUBLE float
__global__ void sqrtTest(DOUBLE *A)
{
int x=threadIdx.x;
(*(A+x))=(DOUBLE)sqrt(*(A+x));
}
みたいにして、実験したんだが、doubleにすると
値がそのまんま帰ってくるんだが orz
- 165 :デフォルトの名無しさん:2009/11/23(月) 18:16:06
- >164
コンパイル時に -arch=sm_13 はつけてる?
- 166 :デフォルトの名無しさん:2009/11/23(月) 19:09:46
- >>165
それだっ!動作しました。
cublasは倍精度で動いたんで、いろいろ調べたんですが。
ありがとうございます。
- 167 :デフォルトの名無しさん:2009/11/24(火) 05:01:59
- >>164
CUDAって3.2までいっているの?
つい最近2.3が出たような気がする。
ひょっとして2.3の間違い?
- 168 :デフォルトの名無しさん:2009/11/24(火) 12:40:41
- おそらく。
今は3.0のβだね。
44 KB
[ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
【nVidia】Badaboom【CUDA】 [DTV]
Intel Larrabee 4コア [自作PC]
[GPGPU] GPUレンダラはまだですか?[CUDA] [CG]
【スパコン】スーパーコンピュータ関連情報3【HPC】 [ハードウェア]
【x264から】CPUからGPGPUエンコードへ交替【CUDAへ】 [DTV]
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.0.7.8 2008/11/13 アクチョン仮面 ★
FOX ★ DSO(Dynamic Shared Object)