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


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

【GPGPU】くだすれCUDAスレ【NVIDIA】



1 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 11:13:52 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
CUDA使いが優しくコメントを返しますが、
お礼はCUDAの布教と初心者の救済をお願いします。

CUDA・HomePage
www.nvidia.com/cuda

関連スレ
【GPGPU】NVIDIA CUDA質問スレッド
pc11.2ch.net/test/read.cgi/tech/1190008468/
GPUで汎用コンピューティングを行うスレ
pc11.2ch.net/test/read.cgi/tech/1167989627/
GPGPU#2
pc11.2ch.net/test/read.cgi/tech/1188374938/



344 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 12:58:13 ]
>>340
サンプルプロジェクトを開いて設定を見て勉強するのがいいよ

345 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 12:51:08 ]
英語読めないのにプログラミング言語してる男の人って・・・

346 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 18:35:50 ]
英語に優越感もってるやつって、さもしいな

347 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 19:03:01 ]
>>345
可愛いもんだよねv

348 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 23:58:39 ]
英語なんて誰でも1ヶ月もあればある程度は読めるようになるよ
出来ないと思い込んでやろうとしないだけで

349 名前:デフォルトの名無しさん [2008/12/26(金) 12:46:32 ]
vs2005の環境で拡張子cuの場合、定義参照はできるのですが、
インテリセンスが機能しません。freeとかvcのランタイムも同様に
機能しないのですが、やり方分かる方いますか?
ツール->オプション->テキストエディタ->ファイル拡張子にcu c++として
登録するとできるのは上記だけです

350 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 22:27:18 ]
いっそ、nvccの拡張機能以外は全部cppでやったら?

351 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 05:03:22 ]
それがスマートだね

352 名前:デフォルトの名無しさん [2008/12/27(土) 17:53:02 ]
質問です。
VC++2005で開発する際に、コマンドプロンプトにデバイス名も含め一切文字を表示させたくないのですが、どのようにすればよいでしょうか?



353 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 18:38:27 ]
>>352
長いパス名が邪魔なだけなら set PROMPT=$G とか?


354 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 18:47:25 ]
>>352
CUTILを使うと標準出力があるって話なら、リダイレクトするかCUTILを使わなければいいと思うのだが。

355 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 01:33:08 ]
プロンプト出したくないって話なら_tmainじゃね

356 名前:352 [2008/12/28(日) 02:53:51 ]
>>353-355
回答ありがとうございます。

>>353
質問があいまいですみません。
パス名が邪魔、ってわけではないです。

>>354
おそらくこの指摘にあてはまるのだと思います。
>リダイレクト
リダイレクトしても、コマンドプロンプトに表示が出てしまいます。
>CUTIL
cutil.hを使わずに、cutil.hで提供されている関数を使わない方法、もしくは、代替可能なヘッダーファイルはありますか?

>>355
_tmainを使ってしまうとWindowsでしか使えないソースコードになってしまうので、別の方法があれば教えてください。

357 名前:352 [2008/12/28(日) 02:55:28 ]
自己レスですw

誤:cutil.hで提供されている関数を使わない方法
正:cutil.hで提供されている関数を使う方法

の間違いです。

358 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 03:10:48 ]
system("cls");
とか

359 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 10:49:28 ]
>>356
> _tmainを使ってしまうとWindowsでしか使えないソースコードになってしまうので、別の方法があれば教えてください。
Windows かどうかで #ifdef するくらいは許されるんじゃないの?

360 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 14:29:28 ]
プロジェクトの設定でWindowsアプリにすればいいだけでしょ


361 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 14:32:32 ]
>>_tmainを使ってしまうとWindowsでしか使えないソースコードになってしまうので、別の方法があれば教えてください。
mainだろうがWindows依存部分のコードが発生するのは当たり前でしょ
CUDAの部分とC++の部分とWindows依存部分とファイルを分離するのが鉄則だよ
複数の環境で使う場合は#ifdefプラグマを使って分離したWindows依存部分の
#includeを切り替えるようにするだけ

362 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 17:29:43 ]
コンパイラのオプションで指定できるでしょ
環境ごとにmakefile書くだけじゃね



363 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 17:48:49 ]
>>361
#ifdefはいつからpragmaになりましたか?

364 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 17:53:47 ]
>>363
#ifdefディレクティブと言いたかったんじゃないの?
で、使い慣れない言葉なんでつい間違えたと。
句読点もちゃんと使えないようだし、日本語に慣れていない三国人なんでしょ。

365 名前:デフォルトの名無しさん [2008/12/28(日) 22:36:27 ]
cudaのMDコードどこかに追ってませんか?

366 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:11:23 ]
たった1行でここまで意味不明なのも凄いな。

367 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:24:23 ]
×追ってませんか?
○オッドアイいませんか?

368 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 13:39:38 ]
>>365氏はcudaで書かれたMD(分子動力学)コードどこかに落ちてませんか
と聞いてるのかと。当方も知らないので答えられませんが。
Fortranで書いたものを全部はアレなのでGPU上で実行したいサブルーチンだけ
Cに変えてCUDAで動かしたいのですが、そんな例とかは落ちてないですかね。
mainルーチンその他関係ないところまで全部Cに移植するのが嫌ってだけな
んですが。あ、当方はIntelFortran使用。
当方まだCUDA触りたて、試しにSTREAM BMTのtriadだけ手で適当に書いて
GeForce9600GTで40GB/s弱(効率7割弱)のメモリバンド幅。あ、じゃもうでき
るじゃんとか勝手に思い、Fortranのコードに挑もうとしてあえなく止まってますorz

369 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 14:08:06 ]
つttp://www.easize.jp/product/fortrantocudamenu.html

370 名前:368 mailto:sage [2008/12/29(月) 14:20:59 ]
>>369
ありがとうございます。m(_ _)m
多次元配列はどのみちGPU上では一次元化するつもりでしたがなるほど。
参考にさせていただきます。

371 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 14:45:46 ]
>>369
そのページ、ポインタの扱いがメタメタだな
わかってるなら別にいいが

372 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 14:49:43 ]
うん、ぶっちゃけ「"cuda fortran"でぐぐって一番上に来たリンク貼り付けただけ」なんだ、すまない



373 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 14:50:01 ]
何か普段使うものをCUDAに移植しようと思いつつ適当な物が見当たらない

374 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 02:15:09 ]
ぶっちゃけ、俺もそうなんだよね。おまけで付いて来たサンプル書き換えて
動かしてFLOPSベンチしてるだけ。
CUDA動かす環境をコスパ良く構築するには?と考えて色々やってみたが、
構築した環境で動かすモノって、結局サンプルの改造ばっか。まんまと
nVidiaの販促戦略に乗せられたぜw

375 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 08:50:29 ]
zip圧縮とかjpg圧縮とかを移植したらライセンスの関係はどうなるの?

376 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 12:52:04 ]
圧縮アルゴリズムに関しては問題ないんじゃね?

377 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 15:08:44 ]
CUDAプログラミングモデルの概要
ttp://http.download.nvidia.com/developer/cuda/jp/CUDA_Programming_Model_jp.pdf
CUDAプログラミングの基本(パート I - ソフトウェアスタックとメモリ管理)
ttp://http.download.nvidia.com/developer/cuda/jp/CUDA_Programming_Basics_PartI_jp.pdf
CUDAプログラミングの基本(パート II - カーネル)
ttp://http.download.nvidia.com/developer/cuda/jp/CUDA_Programming_Basics_PartII_jp.pdf

378 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 03:21:23 ]
デバイス側に確保したメモリにホスト側から
cudaMemcpyのように一括でコピーするのではなく、
一部分だけコピーする、又は書き換える良い方法がありましたら教えてください。



379 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 03:28:19 ]
・cudaMemcpy()で一部分だけコピーする。
・cudaMemset()で(ry
・そういうカーネル関数を用意して呼び出す。

380 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 12:27:16 ]
一部分だけってのはたいてい順次処理になるからCPUにやらせたほうが有利だよ

381 名前:デフォルトの名無しさん [2009/01/22(木) 01:33:54 ]
CUDAのプログラミングでZIPアーカイブのパスワード解析とか、早くなりませんかねぇ。
エンコード/デコードに使えるんだから、どうなんでしょう?

382 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 06:38:19 ]
CUDAのfortranサポート予定ってGPUカーネルの部分をfortranライクに
書けるようになるって理解でいいのかな?2.0からって見かけたけど、それっぽい記述が全く無い…



383 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 08:47:26 ]
>>379-380
ありがとうございました。
参考にさせていただきます。

384 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 19:18:17 ]
>>381
総当りか辞書型か知らんが演算能力よりI/Oの問題だろ普通。

385 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 20:12:54 ]
>>381
早くなるよ

386 名前:デフォルトの名無しさん [2009/01/23(金) 00:20:22 ]
>>384
ファイル数が多い場合はI/Oも問題になるかもしれませんが、
ある程度のサイズであればWindowsでもメモリに読み込むので、
それほど問題にならないのでは?
毎回物理的に読みに行くわけではないし。



387 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 09:28:38 ]
ファイルI/OじゃなくメモリI/Oなのでは?

388 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 11:49:27 ]
>>387
お前は何を言っているんだ

389 名前:デフォルトの名無しさん [2009/01/28(水) 12:47:12 ]
>>388
pciバスつかうんだろ?
立派なioとおもうが



つかクーダってほんとマイナーなんだね。

390 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:18:14 ]
そりゃNVIDIA限定だからだろ?グラボを選ぶのなら汎用的なアプリは作れない。
CUDAよりもっといろんなグラボに対応しているOpenCLへのつなぎに過ぎないよ。

391 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 00:08:14 ]
ZIPのパスワード解析にZIPファイル全体へのアクセスが必要だと勘違いしてる馬鹿w

392 名前:384 [2009/01/29(木) 08:00:22 ]
>>381-391
ああ、俺がぼけてた。なんか知らんけど自分でもなんであんなレスつけたんだろ orz
わけわからない流れにしちまって、すまん。

正しくはこうだな。↓
パス解析では総当りにしても辞書にしてもforなどのループ速度が求められるだけで、
CUDAによる計算は意味があるのかい?と思った。
MD5とかデータから導き出す数値ならば本当の意味での解析だから意味ありそうだけど。






393 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:02:34 ]
こんな記事もあるしな

GPUを利用した無線LANのパスワードクラッキングが主流に
itpro.nikkeibp.co.jp/article/MAG/20090123/323378/

394 名前:デフォルトの名無しさん [2009/01/30(金) 03:18:20 ]
>>393の言ってるのはまさに本当の意味での解析ってやつだしな。
WPA/WPA2-PSKからの復元は総当り/辞書比較と違ってGPGPUにする意味がある。

395 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 15:41:49 ]
Catalystだけど、トリップ検索は随分速くなるみたい
ttp://sourceforge.jp/projects/naniya/wiki/Radeon

396 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 21:51:40 ]
ホスト側でconstantメモリを動的に確保できないのでしょうか?
方法がありましたら教えてください。

397 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:44:30 ]
>>396
目的が良く分からないのでなんとも言えませんが、
どうせ64KBしかないのだから静的に64KB確保しておくのではだめなのでしょうか。



398 名前:デフォルトの名無しさん [2009/02/02(月) 22:54:45 ]
>>396
あるけど、なんでprograming guide読まないの??

399 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:59:28 ]
>>397
静的に確保しておいてもよかったんですが,綺麗にかけるならとw
>>398
一度目を通したつもりでしたが,素通りしていたようです。
もう一度読み直してきますm(_ _)m


400 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:08:13 ]
誰かZIPの暗号解析ツール作って><
それか解析のループ部分だけうpしてくれたら、カーネルは俺が書きます。

401 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 06:54:02 ]
総当りするだけならどっかのオープンソース実装の
パスワードチェックと復号ルーチンとってくればいいだろ

402 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 10:20:56 ]
ただでさえ消費電力がデカイのにパスワード解析に何週間も動かしてられっかw



403 名前:デフォルトの名無しさん [2009/02/07(土) 16:57:19 ]
超解像のような考え方は昔からあるようだな

フリーソフトImageD2
www.tiu.ac.jp/~zohzemi/imgD2/index.html

これは時間軸方向にも参照するものだ。
NVIDIAのMOTIONDSPと同じ考え方だな。
西川善司の大画面☆マニア 第113回 超解像
av.watch.impress.co.jp/docs/20090120/dg113.htm

この方法は数フレームを参照することで低解像な映像のブレから情報量をアップさせるようだが、
この方法だとシーンチェンジやめまぐるしく動く映像では逆効果でめちゃくちゃな映像になるのではないか?
(これは上記のフリーソフトの別ページでも注意点として載っていた)
でも東芝などの日本の各社がやってる1フレームだけで行う超解像はそもそも無理がある。だから不自然な画質になったり、情報量が逆に消失したりする。
Lanczosなどでそのままアプコンしたほうがずっと情報量あるし自然な画質だ。比較してみれば一発で分かる。
plusd.itmedia.co.jp/lifestyle/articles/0812/24/news031_2.html
ここの元画像を720×480にし、それをAVIUTLなどでLanczosでフルHDにしたもののほうがずっと綺麗。
超解像は単純な処理だから柵とか崩れてるし、文字も駄目だし、元からあった情報を処理によって消しちゃう副作用のほうが強い。
超解像、超解像と目新しくいって盛り上げようとしたいのは分かるが、こんなのはまやかしだよ。

www1.axfc.net/uploader/Li/so/24824.zip&key=pass
比較用画像もうpしておいた

一方、数フレームでやる方法は計算が大変だが、シーンチェンジや盛大な動きの問題さえクリアすればかなり使えそうではある。
MOTIONDSPや↓はそのあたりちゃんとクリアしているのだろうか?
www.flashbackj.com/red_giant/instant_hd_advanced/

404 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 17:01:19 ]
10年ぐらい前にカーネギメロン大学で勉強してた頃に超解像のプログラム作れっていう課題を出されたことがある

405 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 17:34:44 ]
ちょー解像は判ったからマルチすんなや。

406 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 20:13:09 ]
>>403
スレ違いじゃない?
GPGPU 向きな処理なのは確かだし、そもそも Cell なり SpursEngine は GPU じゃないし。
画像処理スレとかあったと思うよ?

407 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:45:41 ]
アメリカのメロン大学は一応名門だけど日本校はどうなんだ?

408 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:05:45 ]
>>404
なにその高レベルな課題
俺の大学時代と雲泥の差


409 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:58:06 ]
超解像の原理が未だに理解出来ません
複数の映像フレームの同じポイントの色の出現頻度に一番高い色を適用するってことですか?

410 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:45:42 ]
は?今の超解像って、時間軸の補完までやってるのか?

411 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/08(日) 13:52:05 ]
MPEGの原理は主にフレーム間差分をとってJPEG圧縮なんで、それを改めてチェックしたところで・・・

412 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/08(日) 21:06:32 ]
>>407
神戸のハーバーランドの近くにあるあれか?
兵庫県の財政圧迫してるらしいよ。
学生少なくて撤退の噂もあります

同じビルの同じ階に神戸電子専門学校の学校法人が経営する大学院がある。
何を勘違いしたのか兵庫県立大学も情報科学の大学院を神戸市内に置いてる。

神戸という都市に何を求めてるのか、理解不能である。

たしかに古くからの工業都市で組み込みソフト屋の数がそれなりにいるのはわかる。
最大の勘違いは、日本のITドカタは職場を離れて大学院に通えるほど裕福ではないことだ。



413 名前:デフォルトの名無しさん [2009/02/08(日) 21:49:03 ]
俺はてっきり、ラーメン大学とか、洗車大学と同じノリで、
神戸電子専門学校が作ったヒト寄せパンダだと思ってた。
ってか別法人なのか?
学生少なくて、って言う前に、派遣のワーキングプア、
デジタル土方に成る為にわざわざ苦労して大学通う馬鹿
が神戸のどこに居るんだよっ?




俺が居るよ…orz

414 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/08(日) 22:51:22 ]
兵庫県もネギメロンなんて誘致するくらいなら神戸大に寄附講座でも作ったほうがよかったんじゃね?
現状兵庫県内で優秀な学生がいるんだし。


おっと、「学生」の枠で括ると近くの中高一貫校のほうがよっぽど・・・

415 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 09:41:15 ]
情報系の大学院は多すぎるよな
旧帝でも定員割れする世の中なのに

このうえ西和彦が秋葉に大学院作るんだから馬鹿としか

416 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:50:30 ]
>>411
誰がMPEGの話をしてるの?
誰も君の知識を披露してくれなんて頼んでないよ?

圧縮で壊れるったって圧縮率によるし、位相が生き残ってりゃ理論的には解像度は上げられる。
圧縮率によっては壊れた分が回復するだけかも知れないけどな。

417 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 14:21:54 ]
誰がMPEGの話をしてるの?
誰も君の知識を披露してくれなんて頼んでないよ?

418 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 15:40:30 ]
それを言うなら、なんでいきなり超解像の話になったんだろ?

419 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 15:43:20 ]
メロン日本校のカリキュラムを見たけど、ウンコすぎて話にならねぇw
こりゃ学生もこねーわ

420 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/09(月) 18:02:06 ]
>>416-417
だれも連投してくれなんて頼んでないよ?

421 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/09(月) 18:06:41 ]
GPGPU向けの画像・動画関連のソフトってどれも速さばかり求めて品質は二の次だな
ウンコなエンコーダだとRGB/YUV変換で腐る
一番腐るのは量子化だろうけどな

422 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:25:28 ]
Geforceは何気にGTXシリーズで初めて64bitに対応してるけど
演算装置は1個しかないw
並列処理が得意な分野でfloatだけで済むようなものはほぼ無いだろw



423 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:05:29 ]
>>420
連投じゃなくて別人
2ch歴長いんだからそれくらい分かれ

424 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:42:10 ]
甘いな。floatでも速ければ使い物になる用途は結構あるもんだよ。
例えば、近似計算なんかはfloatで近似させてからdoubleで更に近づけることもできるしね。

425 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:56:34 ]
そういや西和彦もこっちの出身だな。確か甲陽から和田大
だから、落ちこぼれか。そもそも博士余りで高学歴ワープアPD
が社会問題に成ってる今日この頃に、大学院新設とかもうね
アボガドバナナ…。
鴨葱メロンと言えば、金出教授もこっちの出身だったな。
沢山カメラ使って超解像みたいな論文も有ったような無かったような。

426 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 13:06:41 ]
>>425
お前、自分の考えまとめるの下手だな。

427 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 13:31:44 ]
まあ、CUDAは英文のドキュメントが読めてある程度知能がないと
使えないからな。

スレ違いの話で盛り上がるのも分かるな。バカばっかりだしw

428 名前:デフォルトの名無しさん [2009/02/13(金) 17:06:53 ]
CUDA版のTripcode Explorerができたみたいですね。最適化に期待します。
tripper.kousaku.in/
download.kousaku.in/trip/Tripcode-Explorer-CUDA-test1.zip

429 名前:,,・´∀`・,,)っ-●◎○ mailto:!sage [2009/02/13(金) 18:13:51 ]
ようこそ、バーボンハウスへ。
このテキーラはサービスだから、まず飲んで落ち着いて欲しい。

うん、「絶対に動かない」んだ。済まない。
仏の顔もって言うしね、謝って許してもらおうとも思っていない。

でも、このネタプログラムを見たとき、君は、きっと言葉では言い表せない
「ときめき」みたいなものを感じてくれたと思う。
殺伐とした世の中で、そういう気持ちを忘れないで欲しい、そう思って
5分ででっちあげたんだ。

じゃあ、注文を聞こうか。





--------------------
1M超のバイナリファイルに何が詰まってるか疑問な人は、テキストエディタで開いてみればいいよ><

430 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:27:26 ]
CUDAはコアレスと分岐の扱いを把握すれば、やりたいことは大体クリア出来ると思われ。

431 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/14(土) 00:05:15 ]
結局プレディケートなんだよね。
SMあたりの命令デコーダは1基だからSP毎に別々のフローを実行することができない。

Larrabee(Ct)なら分岐は容易に表現できる。

432 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 01:58:51 ]
>>431
プレディケードって??



433 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/02/14(土) 11:48:56 ]
えーとね、たとえば
if (cond) {
  funcA();
} else {
  funcB();
}
なんてコードがあるとしよう。
普通のCPU向けのCだと、 cond の条件にしたがって、funcA()を実行するブロック、
あるいはfuncB()を実行するブロックにジャンプする。
すなわち命令ポインタを操作してコードを飛ぶ。

CUDAにおいてはシェーダマルチプロセッサ一つにたいし、命令デコーダは1つしかない。
にもかかわらず、condは要素ごとに変わるわけで、条件分岐先はSPごとにバラバラになる可能性がある。
んで、そこで使うのがプレディケートなわけだけど、簡単にいえば、ifとelseの両方を通るようにする。
funcAとfuncBをインライン展開して、条件ビットで選択的に実行するコードに展開する。
んで、各要素に対して、実行するか実行しない(あるいは実行結果を反映しない)かを選択的に行うわけだ。
並列度の高いプロセッサではよく使われる方法だ。

んで、こっからはこのアプローチの弱点。
問題はif-elseを何重にも組み合わせたり、switch文を多用する場合、総当たりにかかる計算時間量が
並列化によるパフォーマンスメリットを相殺し、逆に遅くなるケースもある。
並列処理を諦めて素直に要素ごとに逐次処理をさせてくれたほうがかえって効率がいいかもしれない。

しかしCUDAってそのへんの融通がきかないんだよね。基本的に【並列処理しか記述できない】から。
正確には逐次処理は専用のプリミティブなんかを使って限定的に逐次処理はやれるけど記述面では
かえって面倒になる。
GPUで不得意な処理はCPUでやれってアプローチだからそのへんの融通を利かせる気は無いらしい。

434 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 11:57:31 ]
CUDAで困るのはその点のほかに、並列数を途中で変えられないこともあるよね。
一度ホストに処理を戻すと遅くなりかねないし、共有メモリが失われてしまうし。
私の関わっているプロジェクトでは演算処理が中心なので、ある程度融通が利いてくれないとね。

435 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 06:24:49 ]
前にも有ったけど、条件分岐したら負け。
Crayだってそうだったじゃん。

436 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 12:43:21 ]
CPUだとforループが多重になる部分をGPUに
丸投げすればいいんでしょ?
3項演算子程度は実行して欲しいけど

437 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/02/15(日) 16:42:36 ]
> forループが多重になる部分

重要なのは回数であって多重かどうかはあまり関係ないです。
32の倍数であることは有る程度重要かな

一番重要なのは依存関係がないこと。
たとえばループを逆順で実行しても結果が等価であったりとかね。

240 SP(30 SM)を使えるとすれば、フルに使うには、最低960程度の演算が並列実行可能である必要があります。
ただし、全部のSMでまったく同じ処理をする必要はないです。

438 名前:デフォルトの名無しさん [2009/02/15(日) 17:06:37 ]
>一番重要なのは依存関係がないこと。
そうだね。そのためiCotの時も関数型言語の並列化
に七転八倒してたね。
今ならerlangで良いんじゃね? CUDAスレでこんなこと
言うのも何だけど、Cライクな手続き型言語だとどうして
もすぐに壁にぶつかってしまって、スケーラビリティが
出せない。もしくは出そうとするとプログラマの負担が
重過ぎる。
個人的には今更lispやprologに復活されたくはないけど。

439 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 17:15:56 ]
>>438
そう、わかったよ
じゃあ俺様がCUDA用erlang処理系書いてやる

440 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 17:57:47 ]
ループを並列処理に展開するのって自動化出来そうだけど

441 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 19:00:05 ]
>>424
おいおい調子に乗って嘘つくな。
「簡単にできるぜ!」っとか鼻高々なのはいいけどそんなのないよ。

442 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:44:05 ]
>>441
いや数値計算なら反復法とか1次連立方程式の陰解法で使えるだろ



443 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:59:48 ]
また自信満々な人の嘘つき合戦ですか?

444 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 01:00:38 ]
なんだよ微分方程式、というか積分使うのか。
積分を近似計算といっていいのか?
実用内ではあると思うけど、それもfloat(7)からdouble(16)だろ。何回ループするつもりなんだよ。






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

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

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