【GPGPU】くだすれCUDAスレ pert3【NVIDIA】
>>947 そういうアイデアはあるが、演算能力がとても足りない
標準のH264はエンコードには特許があってフリーソフトなんかには搭載されてない
これは識別子を見るとH264(Video0)のような表記になってる
フリーで出回ってるエンコーダーは主にGPACという開発コードのGPLものをベースにしてるらしい
これはいろいろ種類があるがH264(GPAC ******)とかって識別子のことが多い
GPAC系では標準デコーダーに対応してないものも少なくない
>>915 ケイパビリティは1.3あるので大丈夫でした
アーキテクチャの変更を行ったら無事にいけました
ありがとうございます
こんにちわ、Visual Profilerがいまいちわからないので質問させていただきます。
Compute_Visual_Profiler_User_Guideを見たのですが、p.53あたりの用語説明がいまいち理解できません。
Tyep.SMとはSM一つだけでカウントされる値、ということでしょうか。とすれば、あるSMでのみカウントされ、ほかのSMでカウントされないのでしょうか。
gld requestとはコアレッシングされた場合、1命令で多くのデータを読み込むと、それは一回とカウントされるのでしょうか。
またL1 global hit とL1 global miss を足し合わせるとgld requestになると思っていたのですが、これらはgld requestと違うタイプ?のカウンタなのでしょうか。
またactive cycle と active warpsの意味が理解できません。どういう意味でしょうか。
環境はWin7 64bit GPUはGTX480です。
その他visual profilerを見るときに気をつける点、着目すべき点などがありましたら教えてください。
初心者で申し訳ないですが、よろしくお願いします。
各カーネルがまったくランダムな場所のグローバルメモリにアクセスせざるを得ない場合、
それはもうCUDAでは書かない方が良いのでしょうか??
>>956 それが本当にランダムなら、ホスト側で順序を変えてから転送できないの?
メモリアクセスとCUDAは直接関係ないだろ。
メモリコントローラ次第だろう。
>>956 カーネル?
スレッドブロックのこと??コアレスにできないから遅くて不向きってこと?
扱うプログラムが計算時間メインか通信時間メインかで変わってくる気がする。
実行時間のほとんどが通信時間で占められているプログラムでコアレスにできないなら不向きだよなぁ。
960 :
956:2010/11/30(火) 00:20:33
二体間の距離に対応する10000の配列のテーブルを読みたいです
この計算は10000回どころじゃないくらいやるのですが、演算量が多く、時間がかかるのでテーブルにしています
選ぶ二体の座標はカーネルの順番に応じて順番なグローバルメモリから読み込むので
いい感じに連続だと思うのですが、二体間の距離は実行中にどんどんかわるので
カーネルごとにランダムになってくるとおもいます。
読み込みしかしないならテクスチャか足りるならコンスタントメモリつかえばいいんじゃない
MDで似たような粒子数でやったけど十分速くなったよ
テクスチャメモリ使って積極的にキャッシュさせれば?
>>961 コンスタントはランダムアクセスには効かないお
>>961 10000要素をfloatでもたせるとコンスタントメモリにギリギリ収まるけど
>>963の通りコンスタントメモリキャッシュ(8KB)にはのらないな
それでもテクスチャキャッシュよりは速いんじゃね?
非fermiでwarp内のスレッドが全部同一メモリにアクセスする場合、
shared memory(broadcast), constant memory, texture memory, global memoryでどれほどの差が出ますでしょうか?
普通ならconstant memoryですがデータが入りきらない可能性がありますので。
ゆとりがいるな
ゆっとりしていってね!!
CUDAプログラミング実践講座 - 超並列プロセッサにおけるプログラミング手法
という本は初心者にお勧めなものでしょうか?
私はC++言語初心者でCUDAに興味が出たレベルの人間です。
CUDAって将来性がないな
CPUだとマルチコア+SSEなんか使うと別にCUDAと性能変わらないし
もうすぐ出るSandyBridgeはメニーコアアーキテクチャの前進になる命令セットが既に組み込まれてて
CPUに直結したGPUコアを利用した並列演算が出来るようになってるから
CUDAを超えると思われる
>>968 並列プログラミングの経験が皆無ならいきなりCUDAはきついぞ
MPIの数倍難しい
何に使えるのかを思いつくのが難しいって感じか。プログラミング自体は難しくないもんね
>>969 釣られてやるよ
それはGPGPUの使い所の設計が悪すぎるか、まるっきりGPGPUに合わない処理の話だな
ま、従来のシステム開発の延長で考えてもまず無理
プログラミングへの造詣が低いSEには手を出せない代物だよ
>>970 CUDAとMPIだとMPIの方が断然難しいだろ。
つうか汚い言語だよな
専用コンパイラが必要ってところがスマートじゃないんだよな
書式のそれほど拘らなければC++標準のまま外部ライブラリとして出来たと思うんだけど
OpenCLはライブラリ形式なのはいいがソース丸見えだしなんだかな
>>973 一般人とお前の頭だとお前の頭の方が断然悪いだろ。
>>971 まるで的外れなこと言ってるな
扱うシステムのサイズに対する計算量とかで向き不向きは大体分かる
チューニングの難しさも扱う問題によって全く変わる
>>969 IntelさんはLarrabee出せなかったよね・・・(´・ω・`)
>>972 まあ、CUDAは用途が限られているからなあ。
ある程度並列度が上がる計算じゃないと今の最新のCPUとじゃ、
あまりアドバンテージがないのも事実。
いわば直線番長なんだよ。
>>プログラミングへの造詣が低いSEには手を出せない代物
これはちょっと違うと思うな。
チューニング技術があまりないならCUDAに手を出したほうがいい。
Fermiなら大抵は早くなるだろうから。
SandyBridgeだかLlanoだか知らんが、CPUやCPU内蔵GPUと、ディスクリートGPU(=CUDA/Stream)は同時に動作させることが出来る
OpenCLで書いておけば、AVXにもGPUにもSSEにも対応できる。
OpenCLであるハードに実用的なスピードが出るくらい
最適化したカーネルコードは、基本的に別のハードでは使い物にならないよ。
ゲロフォースでしか動かない苦ニダよりはマシ
CUDAのネックはPCIEのメモリ帯域でいくらGPUが早かろうが何の意味もない
SandyBridgeのAVXはPCのメインメモリに直接アクセスするから
Larrabee前のGPU仮実装品でさえCUDAを超えた性能を出してるし
AVXってSSEでしょ
そんな餌じゃ釣れないよ
もうそういう設計能力の低さを晒すの止めろとけよ
GPUは用途が限られて万能じゃないんだし、それも分からん低能は使わないほうがいい
ある特定分野では素晴らしいパフォーマンスを発揮するのがGPU
たとえばあれだな
SDKにmulMatrixという行列積の問題があるから
あれをCPUでGPUより高速に計算できるコードが書けるか試してみることだな
どうせチューニングはデバイスごとに行なわなければならないからOpenCLのメリットは薄い。
CUDAなんて実装自体は難しくないんだから、自分の頭の悪さを嘆く暇があったらThrustでも使ってみればいい。
倒産寸前ゲロビデア専用言語なんかを覚えるのは時間の無駄
だからさぁ、そうやって固有名詞を弄って悦に入るくらいだから覚えられないんだってば。
普通はCUDAの文法くらい一時間あれば覚えられるだろ。使いこなすのは数ヶ月掛かるにしても。
>>979 >チューニング技術があまりないならCUDAに手を出したほうがいい。
>Fermiなら大抵は早くなるだろうから。
何と比べて早いと言ってるのか分からんが少なくとも価格性能比だと
core i7 920で3万、tesla C 2050で27万(2070なら40万以上)
もしCPU16コアとGPUボード16枚で比べるなら36倍以上高速化しないと
得にはならないぞ。
元のプログラムがタコならそのくらいは速くなるな。
でもその過程で得られたノウハウでCPU向けにチューニングしたら差は縮むわけだけどw
プログラマを無給で使い捨てにできる大学にはいいよね。
今ちょっと名前の出てる学生達の10年後を見てみたいね。
うわ、チップ単体とボードの値段比べてる馬鹿がいる・・・
>>987 CUDAのネックはメモリ転送だって言ってるのに
メモリ転送がない行列積なんて非実用的な例で競争しても意味ないだろ
エンコードにしても、画像処理にしてもメモリ転送が一番ネックなんだから
>>993 大学院とか授業もほとんどないのに金払って教授の手足になってるからな〜
せめて授業料免除くらいにはして欲しいもんだ
>>994 ボード同士で比べればいいのか?
だからメモリ転送はメモリコントローラの問題であって、
CUDAと関係ないっつーの。
SDKのは単体GPUのだから行列積でもFFTでも同じだよ。
アンチNVIDIAは自作PC板辺りに出てってくれないか?
長らく静かにやってきたのに酷い迷惑だよ。
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。