問題タブ [cuda]

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.

0 投票する
2 に答える
323 参照

visual-studio - CUDA.rules に 2 つの同一のコマンド ラインがあるのはなぜですか

CUDA.rules ファイルのコマンドラインは次のとおりです。

echo [CompilerPath] [Keep] [CInterleavedPTX] [ExtraNvccOptions] [Arch] -ccbin "$(VCInstallDir)bin" [Emulation] [FastMath] [Defines] -Xcompiler "/EHsc [警告] /nologo [最適化] /Zi [ RuntimeChecks] [Runtime] [TypeInfo] [ExtraCppOptions]" [Include] [MaxRegCount] [PtxAsOptionV] [NvccCompilation] "$(InputPath)"

[CompilerPath] [Keep] [CInterleavedPTX] [ExtraNvccOptions] [Arch] -ccbin "$(VCInstallDir)bin" [Emulation] [FastMath] [Defines] -Xcompiler "/EHsc [警告] /nologo [最適化] /Zi [RuntimeChecks] ] [Runtime] [TypeInfo] [ExtraCppOptions]" [Include] [MaxRegCount] [ptxasoptionv] [NvccCompilation] "$(InputPath)""

最初のコマンドの前に「echo」が付いていることを除いて、(私が見る限り)同一の2つのコマンドを示しているため、明確にするために行を入れました。これの目的を知っている人はいますか?

ありがとう

0 投票する
3 に答える
1162 参照

cpu - CPUへのCUDAフォールバック?

あるコンピューター (GTX 275 を搭載) では正常に動作し、GeForce 8400 を搭載した別のコンピューターでは約 100 倍遅く動作する CUDA アプリケーションがあります。私の疑いでは、GPU ではなく CPU で実際にコードを実行する何らかのフォールバックがあるのではないかと考えています。

コードが GPU で実行されていることを実際に確認する方法はありますか?
このフォールバックはどこかに文書化されていますか?
どのような条件がそれを引き起こす可能性がありますか?

編集: コードは、8400 が持つコンピューティング機能 1.1 でコンパイルされています。

0 投票する
3 に答える
5144 参照

c++ - C ++での3D畳み込み

3D 畳み込みを実装するソース コードを探しています。理想的には、C++ コードまたは CUDA コードが必要です。誰かが私に素晴らしくて速い実装を教えてくれれば幸いです:-)

乾杯

0 投票する
3 に答える
8110 参照

c - CUDAプログラミングに関するインタビューの質問?

CUDA (できれば C) でのプログラミングを含むエントリーレベルのポジションの面接が 1 週間後に控えています。

面接中に予想される面接の質問を誰かが提案できるかどうか疑問に思っていました.

公式のプログラミング ガイドを読みましたが、今はそれほど便利ではありません。

ありがとう。

0 投票する
3 に答える
7621 参照

optimization - OpenCLテクスチャメモリ

私はOpenCLにかなり慣れていないので、ご容赦ください。

コードの最初の反復では、大規模なデータセットに基本的なメモリバッファーを使用し、それらをグローバルとして宣言しました。しかし、タイミングを改善しようとしているので、これにはテクスチャメモリを使用したいと思いました。CUDAバージョンでは、cudaBindTextureとtex1Dfetchを使用して、大きな1Dフロート配列のデータを取得します。私の仕様の理解からすると、テクスチャメモリは画像メモリと同じものです。ただし、最大の高さと幅を持つ2Dおよび3Dの画像オブジェクトしかないため、いくつかの問題が発生します。配列が最大の高さ/幅よりも大きいが、最大の高さ*最大の幅ではない。1D配列を2Dに変換する必要がありますか?それともそれを行うためのより良い方法はありますか?

それとも私は完全にオフですか?

http://forums.nvidia.com/index.php?showtopic=151743http://forums.nvidia.com/index.php?showtopic=150454を読みましたが、テクスチャメモリかどうかについては正確には決定的ではありませんでした。ベストプラクティスとプログラミングガイドで言及されているのは、実際には画像オブジェクトでした。

ありがとう、そしてどんな助け/提案も大歓迎です!

0 投票する
3 に答える
234 参照

c - ある配列から別の配列へのcサイズ

こんにちは私は次のコードを持っています...

それはうまく機能します...今私が次のものを持っていると仮定します

1次元配列であるかのようにtに対してcudaMallocを実行する方法(各要素のサイズが異なることを考慮に入れて)?

0 投票する
1 に答える
864 参照

c - autoconfでnvccコンパイルをチェックすることは可能ですか?

構成プロセス中にいくつかの典型的な cuda 機能をテストしようとしています。configure.ac にどのように書き込むことができますか? 何かのようなもの:

ただし、AC_LANG には nvcc が定義されていません。独自の m4 マクロを作成する必要がありますか?

0 投票する
4 に答える
5041 参照

c - 複数の CUDA ファイルをまとめてコンパイルしようとすると、リンク エラー LNK2005 が発生する

正常に動作する CUDA プログラムがありますが、現在はすべて 1 つのファイルに書き込まれています。メンテナンスとナビゲートを容易にするために、この大きなファイルをいくつかの小さなファイルに分割したいと考えています。

新しい構造は次のとおりです。

.cuhヘッダー ファイルには構造体と関数プロトタイプが含まれ、ファイル.cuには (通常どおり) 関数定義が含まれます。メイン ファイルにはbar.cuh、およびbar.cuが含まれますfoo.cuh。CUDA 関数を使用できるようにするために、すべての .cu ファイルには cutil_inline.h が含まれています。

したがって:

問題は、Visual Studio 2008 プロジェクトをこの新しい構造でコンパイルすると、大量のリンク エラーが発生することです。

私はそれらの意味を理解しています (既に定義されているすべてのシンボルは cutil_inline.h の一部です) が、このヘッダーをすべてのファイルに含める必要があります。そうしないと、コンパイルされません。私は何を間違っていますか?

更新: 状況を明確にするために: * 1 つの大きなファイル内のすべてのコードで、コンパイル、リンク、正常に実行されます * 新しい構造 (いくつかの小さなファイル) を使用し、すべての .cu ファイルに cutil_inline.h を含めると、正しくコンパイルされますが、 * 新しい構造でリンクし、メイン ファイルにのみ cutil_inline.h をインクルードすると、cutil_inline.h がインクルードされていないファイルで cutil 関数が不明であると言って、コンパイル時に失敗します (予想どおりですが、すべてを試す必要がありました)。 - リスト項目

0 投票する
2 に答える
495 参照

.net - 管理対象スレッドとOSスレッド間の関係の強化(CUDAユースケース)

問題

.netとうまく統合されたCUDAアプリケーションを作成しようとしています。設計目標は、マネージコードから呼び出すことができるいくつかのCUDA関数を持つことです。データは、複数のCUDA関数に渡すことができるように、関数呼び出しの合間にデバイス上に保持できる必要もあります。

個々のデータは、単一のOSスレッドによってのみアクセスされることが重要です(CUDAで要求される場合)。

私の戦略

CUDA機能とデバイスポインターをマネージC++コードでラップしています。CUDAデバイスポインターはDevicePointer、MC++で記述されたクラスでラップできます。クラスが使用しているスレッドを追跡する場合、単一のスレッドのみがCUDAデバイスポインターにアクセスできるようにすることができます。

次に、1つのスレッドだけが特定のデータにアクセスしようとするようにプログラムを設計します。

助けが必要なところ

私はいくつかの調査を行い、マネージスレッドとOSスレッドの違いについて読みました。一般的に、両者の間には多対多の関係があるようです。

これは、単一のマネージスレッドのみを使用している場合でも、OSスレッドを切り替える可能性があり、デバイスポインターへのアクセスが失われることを意味します。

CLRがOSスレッド間で管理対象スレッドを移動しないように強制する方法はありますか?

0 投票する
3 に答える
1977 参照

architecture - cuda に関する質問

GPU プログラミングについて調べていて、CUDA についてもっと知りたいと思っています。私はすでにそれについて多くのことを読んできました (ウィキペディア、Nvidia、およびその他の参考文献から) が、まだいくつか質問があります。

  1. 次のアーキテクチャの説明は正確ですか?: GPU にはマルチプロセッサがあり、すべてのマルチプロセッサにはストリーミング プロセッサがあり、すべてのストリーミング プロセッサはスレッドのブロックを同時に実行できます。

  2. すべての参照は、1 つのブロック内に作成するスレッドの最小数が 32 であると述べています...なぜですか?

  3. ATI Radeon ビデオ カードを使用しています。エミュレーションモードなしで簡単なCUDAプログラムをコンパイルできました!!. サポートされているNvidia VGAでのみCUDAプログラムをコンパイルして実行できると思いました。誰か説明してくれませんか?