1 名前:デフォルトの名無しさん [2011/08/23(火) 22:08:06.09 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 CUDA使いが優しくコメントを返しますが、 お礼はCUDAの布教と初心者の救済をお願いします。 CUDA・HomePage ttp://developer.nvidia.com/category/zone/cuda-zone 関連スレ GPGPU#5 ttp://hibari.2ch.net/test/read.cgi/tech/1281876470/ 前スレ 【GPGPU】くだすれCUDAスレ【NVIDIA】 ttp://pc12.2ch.net/test/read.cgi/tech/1206152032/ 【GPGPU】くだすれCUDAスレ pert2【NVIDIA】 ttp://pc12.2ch.net/test/read.cgi/tech/1254997777/ 【GPGPU】くだすれCUDAスレ pert3【NVIDIA】 ttp://hibari.2ch.net/test/read.cgi/tech/1271587710/ 【GPGPU】くだすれCUDAスレ pert4【NVIDIA】 ttp://hibari.2ch.net/test/read.cgi/tech/1291467433/
2 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 22:11:49.24 ] 関連サイト CUDA www.nvidia.co.jp/object/cuda_home_new_jp.html CUDAに触れてみる chihara.naist.jp/people/STAFF/imura/computer/OpenGL/cuda1/disp_content cudaさわってみた gpgpu.jp/article/61432191.html CUDA のインストール blog.goo.ne.jp/sdpaninf/e/9533f75438b670a174af345f4a33bd51 NVIDIAの「GeForce 8800 GT(G92)」と次に控える64-bit GPUアーキテクチャ pc.watch.impress.co.jp/docs/2007/1031/kaigai398.htm CUDAを使う tech.ckme.co.jp/cuda.shtml NVIDIA CUDAを弄ってみた その2 dvd-r.sblo.jp/article/10422960.html CUDAベンチ wataco.air-nifty.com/syacho/2008/02/cuda_2044.html KNOPPIX for CUDA www.yasuoka.mech.keio.ac.jp/cuda/
3 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 22:12:38.55 ] 宣伝になっちゃうと難なので、一応分けて。いろいろ載っているサイト。 ttp://www.softek.co.jp/SPG/Pgi/TIPS/para_guide.html
4 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 22:26:00.72 ] おい、pertだろ まちがえんな
5 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 22:48:26.89 ] >>2 個人blogのは情報古すぎなような… 「cudaさわってみた」はリンク切れだし。
6 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 19:36:34.86 ] >>4 やっぱりCUDAやってる人は荒んでるんだな
7 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 07:04:46.69 ] ほんとCUDAらないことで騒ぐよな
8 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2011/08/26(金) 14:04:14.48 ] ケンカするのはやめてCUDAさい><
9 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 20:59:54.29 ] そうだよ。喧嘩はやめ…GeForんゲフォン
10 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 21:57:35.41 ] まだスレが始まっTeslaいないのに
11 名前:デフォルトの名無しさん mailto:sage [2011/08/27(土) 00:03:43.41 ] ときに口論になるのもみんな自分の技術にそれだKeplerイドを持ってるってことだ。
12 名前:デフォルトの名無しさん mailto:sage [2011/08/27(土) 00:09:15.96 ] amazon.comで検索して出てくるCUDA本ってことごとく出版がずいぶん先か延期になったりするな なんでだろ
13 名前:デフォルトの名無しさん mailto:sage [2011/08/27(土) 21:26:38.44 ] 無効とは情報の登録ポリシーが違う…ような気がする。 それがAmazonのポリシーなのか出版社のポリシーなのかは知らないけれど。 多分出版社のサイト直接見た方が正確。
14 名前:デフォルトの名無しさん mailto:sage [2011/08/27(土) 23:28:49.51 ] cudaの本が必要、って訳でも無いが出版されるなら買ってしまうと思う
15 名前:デフォルトの名無しさん [2011/08/31(水) 20:00:08.40 ] 4.0になってdeviceemuが使えんのだが、CUDA載せてないPCで動かす方法ない?
16 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 07:46:58.96 ] 3.2を使う。
17 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 09:05:53.29 ] >>16 アホしかおらんのか
18 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 09:16:16.30 ] >>17 現実的じゃないか。どうせemuで正確なエミュレーションができるわけじゃないし。
19 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 09:25:26.25 ] >>17 4.0でdeviceemu使う方法なんてねーよ、ってことだよ。 言わせんな恥ずかしい
20 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 10:02:13.87 ] >>15 Cuda x86
21 名前:デフォルトの名無しさん [2011/09/01(木) 15:33:21.69 ] 理屈の上ではKnights Ferryでも動かせるのかな?
22 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 15:39:30.39 ] ubuntu 11.04 tesla c2050 cuda sdk 4.0の環境でdoubleのアトミック演算が正しく動作しません オプションは -arch=compute_20を指定してます。 本家のプログラミングガイドに書いてある、以下のコードを実行してます。 __device__ double atomicAdd(double* address, double val) { unsigned long long int* address_as_ull = (unsigned long long int*)address; unsigned long long int old = *address_as_ull, assumed; do { assumed = old; old = atomicCAS(address_as_ull, assumed, __double_as_longlong(val + __longlong_as_double(assumed))); } while (assumed != old); return __longlong_as_double(old); } 引数のadrees*には共有メモリのアドレスを渡してます。 一つのスレッドのみが共有メモリにアクセスする場合は正しく加算は行われますが、二つ以上のスレッドが衝突する場合は 正しく動作しません。printfで見てみたら、二つ目のスレッドがループを抜けれずに何度も共有メモリの値に 加算しているようでした。上の文をdouble→float,long long → int に書き換えた場合は正しく動作しました。 また、atomicCASのところを二つのprintf、 printf("%d %f %f\n",threadIdx.x,__longlong_as_double(assumed) ,__longlong_as_double(old)); ではさむとなぜか正しくループを抜け、正しくsharedメモリに値を書き込みます。 原因がわかる方、教えていただけないでしょうか。
23 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 17:40:47.67 ] >>22 の続きです assumed oldの値をcpu側に持ってきて表示してみたら、 oldの値(atomicCASの返す値)とassumedの値が末尾の数ビットが 異なってました。50回ほどループしてやっとビットレベルで値が一致して ループを抜けているようでした。その間に過剰に加算が行われていたようです。
24 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 18:47:40.63 ] カードの計算が正しいかチェックするベンチマークってありませんか? 四則演算と√と三角関数とかを全ビットを演算器全部チェックしろと云う無茶ぶりがきた。 計算機が計算を間違うなんてありえないのに…
25 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 19:11:55.88 ] Teslaの存在意義全否定デスカ
26 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 19:34:24.88 ] >>24 過去スレを読むとわかってもらえると思うが、みんなそれを求めているんだ。 そのチェックにおける最先端はおそらく長崎大学。
27 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 19:41:57.01 ] 1スレッドの実行がどのコアかがわかる仕組みがどのような方法か分かればいいわけだよな 誰か調べてみろよ
28 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 23:41:13.82 ] >>22 ,23 もしかしてブロック辺りのスレッド数が32以下なら動いたりする?
29 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 23:44:25.02 ] >>27 何がしたいのか分からんがそれは簡単だ。
30 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 23:56:07.27 ] >>29 コアと計算結果の表が出来上がればコア間の相違が分かるじゃん やり方知ってるなら教えてください
31 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 23:58:10.21 ] 煽っても教えてやらん 29じゃないけどw
32 名前:デフォルトの名無しさん [2011/09/02(金) 02:12:08.96 ] NvidiaのCUDAをやろうと思い、Nvidiaのカードの刺さったマシンにFedoraを 入れてCUDAのためのNvidiaのドライバを入れて使ってみたが、OSのカーネル のアップデートがあるたびに、コンソールが再起動時にブラックアウトした。 そのたびごとに、別のマシンからリモートログインをしてCUDAのための Nvidiaのドライバを再インストールする必要があった。 CUDA3.xまではそれでなんとかなったが、現在のCUDA4.0になると、 幾らやっても駄目になってしまった。どうやらFedora15ではまともに サポートされていないようなのだ。Nvidiaの提供しているCUDAのための ドライバがインストール時におかしなメッセージが出てインストールが 出来ない。
33 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 02:29:09.05 ] ここはおまえの日記帳だから好きに使いなさい
34 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 11:08:38.52 ] >>28 ブロックあたりのスレッド数を32以下にして試してみましたが、 結果は変わらなかったです。
35 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 18:20:08.65 ] >>23 とりあえず、プログラミングガイドのコードそのままだし、 実際アルゴリズム自体には問題ないから、 意図どおり動かないとしたら、ドライバかSDKのバグか ハードの故障じゃね。 まあ、ここで詳細なバージョンとか晒してみたり、 PTXやアセンブリを貼ってみるのもいいけど、 本家のフォーラムで聞いてみたほうが早いんじゃね。
36 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 23:02:56.52 ] 長崎大の言う演算間違えって、具体的にどういう演算を間違えたのかの情報ってないの? 間違えますって情報だけ垂れ流して具体例出さんって、どういうことなんだべ。
37 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 23:24:45.84 ] ×演算間違え ○演算間違い
38 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 18:20:00.85 ] CUDAを使用するプログラムで巨大なデータを扱いたいのですが、nvcc でのコンパイル時に relocation truncated to fit: R_X86_64_32S against `.bss' とエラーが出て完了しません。gcc ではデータ量制限を解除するのに-mcmodel=medium というオプションがあるようですが、nvcc でこれにあたるものはないでしょうか。
39 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 19:43:00.72 ] 巨大データってどれくらい? CUDAは基本グローバルメモリ使用の制約があるから”巨大”は決して得意ではないのだけど
40 名前:38 mailto:sage [2011/09/07(水) 22:05:04.34 ] >>39 今確認したところ、要素が数十万個の配列を使用していて、それらの合計は200MBほどです。 そのうち、実際にGPUに計算させるためGPUに渡すデータは50MB程度です。 上記のエラーメッセージでググったところ、データ量制限が問題だろうということだったのですが…それほど大きなデータでもないですよね。 なんなんでしょうこのエラー。 プログラミングに関してはまだ知識が浅いためチンプンカンプンなこと言ってたらすみません。
41 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 22:36:52.16 ] どうせデータをソース中に書き込んでるんだろw
42 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 22:42:26.34 ] >37 日本語の間違えより、長崎大の言ってる間違いの詳しい情報くれよぅ…。
43 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 22:50:33.71 ] 要素数が大きすぎるなら、mallocを使ってみたら?
44 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 23:04:45.67 ] >40 配列は何次元? CやC++だと配列は連続したメモリ領域と規定されてるので、 確保可能なメモリ量は物理メモリの絶対量ではなく、 アドレスを連続で確保できるメモリ量に規定されるよ。 例えば大きめの2次元配列を確保する場合は double* pBuf = new double[row * column]; とするより double** ppBuf = new (double*)[row]; for(int i = 0; i< row; ++i){ ppBuf[i] = new double[column]; } とかにしたほうがいいよ。
45 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 23:11:07.95 ] ファイル読み込みで、cudaMallocHost(だったかな??)でメモリ確保すればいいじゃん
46 名前:38 mailto:sage [2011/09/07(水) 23:11:33.99 ] >>43 >>44 gccと同様にオプションでエラー回避できないかな…と思ったのですが、配列の取り方を変えるほうが良さそうですね。 特に>>44 は知りませんでした。 ありがとうございました!
47 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 23:23:20.08 ] 良く分からんが、-Xcompiler -mcmodel=mediumじゃ駄目なん? -Xlinkerも要るかもしれないが。
48 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 08:01:27.80 ] >>44 普通はありえない。そんなことしたら、ポインタアクセスが一回余計に要るから遅くなるし、 キャッシュアウトしやすくなるから更に遅くなる。 まぁ、GPUに転送するのは1スライス分だけだろうからGPUに任せてCPUは暇こいていられるならいいかも知れんが。
49 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 17:24:44.67 ] >>44 それは無い。 ・メモリも無駄に消費 ・アクセス性能がた落ち ・バグの温床になる つーかC++ならvectorで初期化時に サイズ指定したほうがいろいろ便利
50 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 17:40:17.98 ] 配列でやる場合、 配列の添え字がINT_MAXを越える大きさならそうするしかないと思うが・・
51 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 20:47:04.41 ] キャッシャがアクセスがとドヤ顔されても・・・。 要素のデカイ配列が確保できんって話なわけだし。
52 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 22:19:09.58 ] コンパイル時の話なのに ヒープのフラグメンテーションの訳無いだろう。 nvccからgccに自由にオプション渡すやり方は 知らんが、最悪c(++)部分のコードを分割して gccでコンパイルすりゃ良い。 仮にヒープのフラグメンテーションが酷い場合でも >>44 みたいなやり方は下策だよ。 素人におかしなやり方を覚えさせるだけ。 大きな配列確保する前に小さな物についてShrink-to-fitやればデフラグされるから その後巨大配列を確保すれば良い。 特にGPGPUで巨大な配列扱うような用途なら 配列の配列なんて転送も困るだろうに。
53 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 22:30:02.29 ] >大きな配列確保する前に小さな物についてShrink-to-fitやればデフラグされるから >その後巨大配列を確保すれば良い。 コレ具体的にどんなコード書けばいいのん?
54 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 00:35:55.99 ] メインの計算に必要な必要な小容量配列 保持用のポインタなりvectorの変数だけ始めに ヒープに確保した後、メインの計算前の前処理をする。 この処理で、一時的なデータと最終的に使うデータの ヒープ確保が入り乱れる所為でフラグメンテーションが発生する。 最終的に使うデータについて、大体処理した順番を守って ひたすら同容量確保してはコピーを繰り返せば、 こういうデータは全て前方に圧縮されて配置されるようになる。
55 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 21:48:41.98 ] ? まあスレ違いなんで他でやってよ。
56 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 22:24:20.88 ] kernelへの引数に構造体は使えんの? 今やってみたらコンパイルでエラーになった
57 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 22:30:19.36 ] あ、間違えてただ 構造体引数使えるべな
58 名前:デフォルトの名無しさん mailto:sage [2011/09/14(水) 11:12:56.96 ] >>15 code.google.com/p/gpuocelot/ Ocelot currently allows CUDA programs to be executed on NVIDIA GPUs, AMD GPUs, and x86-CPUs at full speed without recompilation.
59 名前:デフォルトの名無しさん mailto:sage [2011/09/15(木) 17:52:31.49 ] cuda4.0、gtx580で Maximum dimension of a grid( 65535 , 65535 , 65535 ) ってなってるんですがz軸のブロックの取れる数は1じゃなくなったんですか?
60 名前:デフォルトの名無しさん mailto:sage [2011/09/19(月) 22:05:37.25 ] デバイス上の処理が長時間になる場合、途中経過を取得する方法ってないかな? 例えば100万回のモンテカルロを実行して、途中の10万回、20万回が済んだらその情報を取りたいんだけど…
61 名前:デフォルトの名無しさん mailto:sage [2011/09/19(月) 22:31:31.07 ] >>60 streamingでできないかな?
62 名前:デフォルトの名無しさん mailto:sage [2011/09/19(月) 22:52:18.06 ] streamingってなに? SMのSじゃないよね?
63 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 05:00:39.03 ] カーネル呼び出し時の<<<>>>の第3引数がstreamingの何かじゃなかったっけ? 俺は>>61 を見てそういうのがあったなと思い出したレベルなので使い方は知らないけど。
64 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 08:29:52.67 ] 第3パラメータはsharedMemoryのサイズだよ。そこで指定しなくても使えるけど。
65 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 22:11:25.09 ] ごめん第4引数だったみたい。それとAsync系関数がうんたらかんたら。
66 名前:デフォルトの名無しさん mailto:sage [2011/09/22(木) 00:50:42.07 ] あー、その辺だね。
67 名前:デフォルトの名無しさん mailto:sage [2011/09/22(木) 18:05:24.11 ] 【トリップ検索】CUDA SHA-1 Tripper【GeForce】 hibari.2ch.net/test/read.cgi/software/1311428038/ すげえな
68 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 11:16:26.70 ] 個人でCUDAプログラミングやってうれしいのはその程度なのか? と逆に不安になるんだが…
69 名前:やんやん ◆yanyan72E. mailto:sage [2011/09/23(金) 11:35:33.50 ] 世の中なんでも膨大なデータをいかに早く処理するかが勝負の世界に なってきているから、CUDAプログラミングの旨味はいくらでもあるだろ。
70 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 12:04:06.11 ] いつかやってみようと思って半年くらいこのスレROMってるが いまだに開発環境のセッティングの仕方すら調べていない・・・
71 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 00:02:19.96 ] >>68 >>67 くらいのコード書ける?
72 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 15:28:34.26 ] >>71 おれがそれくらいのコード書けるようになるころには、自ずとましな使い道が浮かんでくることだろう、 っていうこと?
73 名前:デフォルトの名無しさん [2011/10/02(日) 08:23:54.81 ] >>60 試してないけど、長い処理の途中でグローバルメモリに書き込んで、 別streamでその値を読むカーネルを起動すれば取れると思う。 キャッシュからグローバルメモリに書き込むのは特別な関数を 使うと思ったけど名前忘れた
74 名前:デフォルトの名無しさん [2011/10/02(日) 09:01:54.77 ] >>73 思い出した。atomicを使うか、書き込む側で __threadfence()
75 名前:デフォルトの名無しさん [2011/10/04(火) 20:59:53.36 ] 失礼します、先輩方お助けを。 atomicを使ったソースを"-arch compute_20"オプションでコンパイルすると次のようなエラーが出てしまいます。 「'-arch' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(103,5): error MSB3073: コマンド "-arch compute_20 error MSB3073: :VCEnd" はコード 9009 で終了しました。」 -archコマンドはプロパティからビルド前イベントのコマンドラインに追加してあります。 -archコマンドがあるディレクトリへパスが通ってないのかなと思うのですが、このようなコマンドがあるディレクトリの追加の方法がよくわかりません。 環境はcuda4.0 + VC2010 + teslac2070(cc2.0) + windows7 proです。 どなたかアドバイスください。
76 名前:やんやん ◆yanyan72E. mailto:sage [2011/10/04(火) 21:13:10.02 ] -archコマンドってなんだそら? compute capabilityはnvccなりcl.exeのオプションに渡すものであって、 -archコマンドなんてものはないよ。
77 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 21:50:45.04 ] 自分でオプションでって書いてるけど、メッセージはそれで実行した系だよな
78 名前:デフォルトの名無しさん [2011/10/04(火) 23:16:18.47 ] >>76 >>77 ありがとうございます。「cuda by example」にもatomic関数を使ったソースには-archコマンドラインオプションを指定する必要があります。 とあるのですが、みなさんはatomicを使ったソースをコンパイルするときなにかコマンドつけませんか><?
79 名前:デフォルトの名無しさん [2011/10/04(火) 23:19:48.93 ] >>78 あ、もちろん全部64bitです!
80 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 23:39:11.06 ] CUDA以前の話だな。コンパイラオプションの意味がわかってない。 というか、VCなら、カスタムビルド規則でCUDA Runtime API Build Ruleを追加したほうが早い
81 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2011/10/05(水) 02:20:11.36 ] -gencode=arch=compute_20,code=\"sm_21,compute_20\" になってるなぁ俺の環境だと。VC2010ならプロジェクトのプロパティでCUDA関係の設定するところがあるんじゃない?
82 名前:デフォルトの名無しさん [2011/10/05(水) 11:51:04.38 ] >>80 ありがとうございます。 えーと、それはおそらくVC2008の話ではないかと思います。2010にカスタムビルド規則という名前はなくなり、その代りCUDA4.0というビルドカスタマイズに統一されています。
83 名前:デフォルトの名無しさん [2011/10/05(水) 11:58:44.51 ] >>81 ご返答ありがとうございます。 そのコードはどこに書いていますか? はい、cuda c/c++という項目にいろいろいじるところはあるのですがコンパイラオプションを設定する項目はないように思えます。 私がオプションを追加しているのはビルドイベントという項目ですね。 以前にもatomic関連の話が出ていたようです。>>22
84 名前:デフォルトの名無しさん mailto:sage [2011/10/05(水) 12:14:48.16 ] -arch=compute_20 にすればいいんじゃねえの?
85 名前:デフォルトの名無しさん [2011/10/05(水) 12:17:32.55 ] >>84 ありがとうございます。 おっしゃるように>>75 のように追加するとエラーを吐きます。 追加の仕方が違うのでしょうか。
86 名前:80 mailto:sage [2011/10/05(水) 13:36:15.15 ] VS2010は色々変わってるんだな。 知らんかったすまん。 とりあえず「CUDA VS2010」でググって出てくる一番上のサイト参考にして、CUDA4.0のビルドカスタマイズファイルを導入した後、プロパティからCode Generationをcompute_20,sm_20にしたらいけた
87 名前:デフォルトの名無しさん mailto:sage [2011/10/05(水) 15:09:51.57 ] GPUのリソースを全部CUDAに割り当てるため,グラボを2枚さしてディスプレイ出力用とCUDA用に分けるというのはありますが 同じようなことをsandy bridgeとグラボ1枚でも出来るのでしょうか?
88 名前:デフォルトの名無しさん mailto:sage [2011/10/05(水) 15:36:59.85 ] >>87 Z68マザーなら、マザー側DVIにディスプレイつないでおけばいい話じゃ? CUDAで計算したデータをintelで表示したいなら、 1.DirectXかOpenGLのリソースをCUDAにバインドしてデータ書き込み 2.メインメモリに転送 3.intel側に転送 って形になるかなぁ。多分。
89 名前:81 mailto:sage [2011/10/05(水) 21:07:18.54 ] >>83 ゴメン、俺もVC2010じゃないや。VC2008。 ちなみに>>81 は構成プロパティの中に「CUDA Runtime API」があってそこの「コマンドライン」にある。 CUDA Runtime APIの中にGUIでGPU Architecture(sm_21)を指定するところがあるから、 コマンドを打ってるわけじゃないんだけど、結果としてnvccには>>81 のようなオプションが渡ってる。
90 名前:89 mailto:sage [2011/10/05(水) 21:17:54.24 ] そもそもなぜCUDA Runtime APIという項目があるのかというとサンプルのプロジェクトをコピったから。
91 名前:デフォルトの名無しさん [2011/10/06(木) 16:35:52.62 ] >>80 >>81 ありがとうございます!code generationを>>80 のように書きなおしたらオプション指定することなくコンパイル通りました。 どうやらVS2010からはcommand line指定しなくてもcode generationでオプションを渡せるようです。 本当に助かりました。ありがとうございます!
92 名前:デフォルトの名無しさん mailto:sahud@onc.nasi.jp [2011/10/06(木) 17:22:43.25 ] 最近巷で流行ってる error MSB3721: コマンド ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" --use-. ... template.cu"" はコード 2 で終了しました。 のエラーなんですけど解決法どなたか知りませんか?? CUDA FORUMにもかなり話題が上がってるっぽいんですが...私のところにも発病してしまいました。
93 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 18:43:04.20 ] そこだけ書かれても分からないと思う。 nvccのエラーメッセージ載せないと。
94 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 19:11:36.83 ] >>92 敵性語なんでよくわかんなかったけど、 VisualStudio を管理者として実行したら動く?
95 名前:やんやん ◆yanyan72E. mailto:sage [2011/10/06(木) 21:18:36.98 ] Visual C studioは下手にGUIに頼るよりも、コマンドラインでやった方がはやいこともある。コマンドラインでnvccやってみよう。
96 名前:デフォルトの名無しさん mailto:sage [2011/10/07(金) 16:37:49.21 ] 単精度のmadってmulより遅いやないかー プログラミングガイド嘘つきやないかー ちくしょー
97 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 01:36:18.51 ] >>96 そりゃ命令実行時間は同じだけど、 必要な帯域は違う。
98 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 02:40:58.84 ] >>92 コマンドラインのオプションが何か1つ間違ってた気がする。 コマンドプロンプトで同じコマンド実行するとエラーが出たので、 そのエラーのひとつ前の引数が問題だった、はず。
99 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 02:14:56.87 ] CUDAとRTミドルウェアを組み合わせてみた。 行った方法は、CUDAのサンプルをRTコンポーネントに パッケージングする方法。 動作周期にあわせて、行列計算が実行されたのを確認。
100 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 20:49:05.67 ] カーネル側のソース分割ってできないんだっけ? 環境はLinux cuda4.0