問題タブ [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.
c++ - このアート プロジェクトにはどの IDE を使用すればよいですか?
OpenGL を使用してレンダリングし、ステージに投影するパーティクル システムの基礎として使用するライブ ビデオ フィードを処理する必要があるアート プロジェクトがあります。私は CUDA 対応のグラフィックス カードを持っており、それを画像とパーティクル システムの処理に使用できればいいと考えていました。このプロジェクトは、自分のコンピューターでのみ実行する必要があります。
私は通常、C# asp.net Visual Studio のような人ですが、このプロジェクトでは c++ を使用する予定です。Ubuntu の Eclipse または Windows の Visual Studio で作業を行う必要がありますか?
これはかなり恣意的である可能性があることは理解していますが、あるIDE/OSが他のものよりもこの種の作業に適しているかどうか疑問に思っています
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つのコマンドを示しているため、明確にするために行を入れました。これの目的を知っている人はいますか?
ありがとう
cpu - CPUへのCUDAフォールバック?
あるコンピューター (GTX 275 を搭載) では正常に動作し、GeForce 8400 を搭載した別のコンピューターでは約 100 倍遅く動作する CUDA アプリケーションがあります。私の疑いでは、GPU ではなく CPU で実際にコードを実行する何らかのフォールバックがあるのではないかと考えています。
コードが GPU で実行されていることを実際に確認する方法はありますか?
このフォールバックはどこかに文書化されていますか?
どのような条件がそれを引き起こす可能性がありますか?
編集: コードは、8400 が持つコンピューティング機能 1.1 でコンパイルされています。
c++ - C ++での3D畳み込み
3D 畳み込みを実装するソース コードを探しています。理想的には、C++ コードまたは CUDA コードが必要です。誰かが私に素晴らしくて速い実装を教えてくれれば幸いです:-)
乾杯
c - CUDAプログラミングに関するインタビューの質問?
CUDA (できれば C) でのプログラミングを含むエントリーレベルのポジションの面接が 1 週間後に控えています。
面接中に予想される面接の質問を誰かが提案できるかどうか疑問に思っていました.
公式のプログラミング ガイドを読みましたが、今はそれほど便利ではありません。
ありがとう。
optimization - OpenCLテクスチャメモリ
私はOpenCLにかなり慣れていないので、ご容赦ください。
コードの最初の反復では、大規模なデータセットに基本的なメモリバッファーを使用し、それらをグローバルとして宣言しました。しかし、タイミングを改善しようとしているので、これにはテクスチャメモリを使用したいと思いました。CUDAバージョンでは、cudaBindTextureとtex1Dfetchを使用して、大きな1Dフロート配列のデータを取得します。私の仕様の理解からすると、テクスチャメモリは画像メモリと同じものです。ただし、最大の高さと幅を持つ2Dおよび3Dの画像オブジェクトしかないため、いくつかの問題が発生します。配列が最大の高さ/幅よりも大きいが、最大の高さ*最大の幅ではない。1D配列を2Dに変換する必要がありますか?それともそれを行うためのより良い方法はありますか?
それとも私は完全にオフですか?
http://forums.nvidia.com/index.php?showtopic=151743とhttp://forums.nvidia.com/index.php?showtopic=150454を読みましたが、テクスチャメモリかどうかについては正確には決定的ではありませんでした。ベストプラクティスとプログラミングガイドで言及されているのは、実際には画像オブジェクトでした。
ありがとう、そしてどんな助け/提案も大歓迎です!
c - ある配列から別の配列へのcサイズ
こんにちは私は次のコードを持っています...
それはうまく機能します...今私が次のものを持っていると仮定します
1次元配列であるかのようにtに対してcudaMallocを実行する方法(各要素のサイズが異なることを考慮に入れて)?
c - autoconfでnvccコンパイルをチェックすることは可能ですか?
構成プロセス中にいくつかの典型的な cuda 機能をテストしようとしています。configure.ac にどのように書き込むことができますか? 何かのようなもの:
ただし、AC_LANG には nvcc が定義されていません。独自の m4 マクロを作成する必要がありますか?
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 関数が不明であると言って、コンパイル時に失敗します (予想どおりですが、すべてを試す必要がありました)。 - リスト項目
.net - 管理対象スレッドとOSスレッド間の関係の強化(CUDAユースケース)
問題
.netとうまく統合されたCUDAアプリケーションを作成しようとしています。設計目標は、マネージコードから呼び出すことができるいくつかのCUDA関数を持つことです。データは、複数のCUDA関数に渡すことができるように、関数呼び出しの合間にデバイス上に保持できる必要もあります。
個々のデータは、単一のOSスレッドによってのみアクセスされることが重要です(CUDAで要求される場合)。
私の戦略
CUDA機能とデバイスポインターをマネージC++コードでラップしています。CUDAデバイスポインターはDevicePointer
、MC++で記述されたクラスでラップできます。クラスが使用しているスレッドを追跡する場合、単一のスレッドのみがCUDAデバイスポインターにアクセスできるようにすることができます。
次に、1つのスレッドだけが特定のデータにアクセスしようとするようにプログラムを設計します。
助けが必要なところ
私はいくつかの調査を行い、マネージスレッドとOSスレッドの違いについて読みました。一般的に、両者の間には多対多の関係があるようです。
これは、単一のマネージスレッドのみを使用している場合でも、OSスレッドを切り替える可能性があり、デバイスポインターへのアクセスが失われることを意味します。
CLRがOSスレッド間で管理対象スレッドを移動しないように強制する方法はありますか?