問題タブ [nvidia]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cuda - ストリーミング マルチプロセッサ、ブロック、スレッド (CUDA)
CUDA コア、ストリーミング マルチプロセッサ、およびブロックとスレッドの CUDA モデルの間の関係は何ですか?
何を何にマッピングし、何を並列化し、どのように並列化するか? ブロック数またはスレッド数を最大化すると、どちらがより効率的ですか?
私の現在の理解では、マルチプロセッサごとに 8 つの cuda コアがあるということです。そして、すべての cuda コアが一度に 1 つの cuda ブロックを実行できるようになります。そのブロック内のすべてのスレッドは、その特定のコアでシリアルに実行されます。
これは正しいです?
c++ - カードの一部にcudaアプリ
Nvidia Tesla s2050 を持っています。nvidia quadro カードを搭載したホスト。CUDA 3.1 を搭載した CentOS 5.5 cuda アプリを実行するとき、4 つの Tesla c-2050 を使用したいのですが、ジョブを 5 で均等に分割しながら全体のパフォーマンスを遅らせないように、ホストに quadro を含めません。これを実装する方法はありますか?
c - 同時実行性、GPU リソースを取得するために競合する 4 つの CUDA アプリケーション
4 つの同時 CUDA アプリケーションが 1 つの GPU でリソースを求めて競合し、作業をグラフィック カードにオフロードできる場合はどうなるでしょうか?. Cuda Programming Guide 3.1 には、非同期の特定のメソッドがあると記載されています。
- カーネルの起動
- デバイス デバイス メモリのコピー
- 64 KB 以下のメモリ ブロックのホスト デバイス メモリ コピー
- Async のサフィックスが付いた関数によって実行されるメモリ コピー
- メモリーセット関数呼び出し
また、コンピューティング機能 2.0 を備えたデバイスは、カーネルが同じコンテキストに属している限り、複数のカーネルを同時に実行できることにも言及しています。
このタイプの同時実行は、単一の cuda アプリケーション内のストリームにのみ適用されますが、GPU リソースを要求する完全に異なるアプリケーションがある場合は不可能ですか??
これは、同時サポートが 1 つのアプリケーション (コンテキスト???) 内でのみ利用可能であり、4 つのアプリケーションが CPU のコンテキスト切り替えによってメソッドがオーバーラップする可能性がある方法で同時に実行されることを意味しますが、4 つのアプリケーションは待機する必要があります。 GPUが他のアプリケーションによって解放されるまで?(つまり、app4 からのカーネルの起動は、app1 からのカーネルの起動が完了するまで待機します。)
その場合、これら 4 つのアプリケーションは、長い待機時間に苦しむことなく GPU リソースにアクセスするにはどうすればよいでしょうか?
c++ - C ++NvidiaCgの質問
Nvidia Cg
最近シェーダーを使い始めましたが、 Nvidia GPU
(GTS250
私の場合)で使用すると、すべてが正常に表示され、機能します。
同じ(自分のテストアプリケーション)をで起動しようとしATI HD4650
ましたが、出力が表示されませんでした。その直後に、テスト例(で提供Nvidia Cg 3.0
)と6/7の作業を試し始めましたが、最初の例(最も単純なようです)はそうではありません。
シェーダーコードは次のとおりです。
この単純なシェーダーが機能しない理由はわかりませんが、たとえば、次のパススルーシェーダーと組み合わせNvidia Cg SDK
た同じシェーダーが機能します(の例2 )。
誰かが同じ問題に直面しましたか?何か案は?
ありがとうございました。
ここで更新:最大デバッグ出力をオンにすると、問題が明らかになりました。
そのパッケージの最初の例は、(単純なパススルーでさえ)ピクセルシェーダーがなく、頂点シェーダーのみが含まれている唯一の例でした。この場合、なぜNvidia Cgランタイムが互換性のないシェーダーを生成するのかわかりませんが、明らかに古いGPUでのみ失敗しました(ATI HD4650
)。
とにかく、私はデバッグ出力をオンにせずに作業するのに十分愚かでした。
2 Alex Farber:ダミーの回答を投稿して、デバッグをオンにするのを忘れたことに気付いてくれたので、賞金を授与できると思います。ありがとうございました。
cuda - GPGPU、OpenCL、CUDA、ATIストリーム
GPGPUがすでに存在するテクノロジーと、GPGPUを実装しているハードウェアベンダーを教えてください。
朝から色んなサイトの記事を読んでいて戸惑いました。
cuda - バンクコンフリクトとは?(Cuda/OpenCL プログラミングを行っています)
CUDA と OpenCL のプログラミング ガイドを読んでいますが、バンク コンフリクトとは何かがわかりません。彼らは、主題自体について詳しく説明することなく、問題を解決する方法に飛び込むだけです. 誰でもそれを理解するのを手伝ってもらえますか? ヘルプが CUDA/OpenCL のコンテキストにあるのか、それともコンピュータ サイエンス全般のバンク コンフリクトに関連するものなのか、好みはありません。
cuda - Cuda/OpenCL のグローバル メモリにバンク コンフリクトがないのはなぜですか?
私が理解していないことの1つは、Googleが私を助けていないことです.共有メモリでは銀行の競合が発生する可能性があるのに、グローバルメモリでは発生しないのはなぜですか? レジスタとのバンクの競合はありますか?
更新 うわー、ティビットとグリズリーからの2つの回答に本当に感謝しています。緑のチェック マークを 1 つの回答にしか付けることができないようです。私はスタックオーバーフローに慣れていません。1つの答えを最良のものとして選択する必要があると思います。緑のチェックを付けていない回答に対して、何かお礼をすることはできますか?
memory - インコヒーレントおよびコヒーレントgst/gldの教授のフィールドを計算しますか?(CUDA / OpenCL)
私はComputeProf3.2とGeforceGTX280を使用しています。私はコンピューティング機能1.3を持っていると思いますが、
このファイルは、1.xコンピューティングデバイスを使用しているため、これらのフィールドを表示できるはずであることを示しているようです。まあ、私はそれらを見ることができず、3.2ツールキットのユーザーガイドは私がそれらを見ることができないと言っていますが、それらgst_uncoalesced
をとと呼びますgst_coalesced
。
要約すると、グローバルメモリから非合体読み取りを行う場合、プロファイラーからどのように把握する必要があるかについて混乱しています。フェルミカードもそう言うようには見えませんが、今のところ心配していません。誰かが状況について詳しく説明してくれるなら、私はそれをいただければ幸いです。
また、私はこれを理解するために私のカーネルのアセンブリを見るように言われたので、これを行う方法についての詳細もありがたいです。私もそれを理解しようとし始めたばかりです:)
memory - グローバル メモリに関して、単純な OpenCL カーネルで何が起こっているかを合理化する
上記のカーネルは、ループごとに 10 回実行されるベクトル加算です。プログラミング ガイドとスタック オーバーフローを使用して、グローバル メモリがどのように機能するかを理解しましたが、コードを見て、グローバル メモリに適切にアクセスしているかどうかはまだわかりません。私は連続してアクセスしており、整列した方法で推測しています。カードは、配列 a、b、および c に対して 128kb のグローバル メモリ チャンクをロードしますか? 次に、処理される 32 個の gid インデックスごとに 1 回、各配列の 128kb チャンクをロードしますか? (4*32=128) グローバル メモリ帯域幅を無駄にしていないようですよね?
ところで、コンピュート プロファイラーは gld と gst の効率が 1.00003 であることを示しています。これは奇妙に思えます。すべてのストアとロードが合体した場合、1.0 になると思いました。1.0以上はどうですか?
macos - 動的グラフィックス デバイスの切り替えがアクティブな場合、OS X での SDL/OpenGL に関する無数の警告
2 つのグラフィックス デバイスを搭載した MacBook Pro を搭載した Snow Leopard では、次のエラーが 1 秒間に複数回 stderr に出力されます。
グラフィックス デバイスを強制的に Nvidia または Intel にすると、期待どおりに動作します。
その問題に対処する方法を知っている人はいますか? おそらく、OpenGL が初期化される前にグラフィックス デバイスを強制的に切り替えることができると思いますが、それを行う信頼できる方法を知りませんし、特に良い解決策のようにも思えません。
より良いアイデアはありますか?