問題タブ [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.
arrays - CUDA - より良い占有率とより少ないグローバルメモリアクセス?
私のCUDAコードは、4つの配列で動作する必要があります(平均/標準に縮小し、ヒストグラムを計算します)。各2048浮動小数点数は長く、以前のカーネルからデバイスメモリにすでに保存されています。
一般に、マルチプロセッサと少なくとも同じ数のブロックを起動することをお勧めします。ただし、この場合、これらの各配列を 1 つのブロックの共有メモリにロードできるため、起動できるブロックは 4 つだけです。
これは「GPU をビジー状態に保つ」には程遠いですが、より多くのブロックを使用する場合、グローバル メモリを介してより多くのブロック間通信を行う必要があります。グローバルメモリの内外。
このような状況で並列化する最良の方法は何ですか?
memory-management - 配列の配列を割り当てるCUDA
CUDAで配列の配列を割り当てるのに問題があります。
私は何を間違えましたか?
c++ - OpenCV が NVCC でコンパイルされないのはなぜですか?
プロジェクトに CUDA と openCV を統合しようとしています。問題は、NVCC を使用すると openCV がコンパイルされないことですが、通常の C++ プロジェクトは正常にコンパイルされます。NVCC はすべてのホスト コードを c/c++ コンパイラ (この場合は Visual Studio コンパイラ) に渡すと思っていたので、これは奇妙に思えます。
私が得るエラーは何ですか?
c:\opencv2.0\include\opencv\cxoperations.hpp(1137): エラー: これらのオペランドに一致する演算子 "=" はありません オペランドの種類: const cv::Range = cv::Range
c:\opencv2.0\include\opencv\cxoperations.hpp(2469): エラー: オーバーロードされた関数 "std::abs" の複数のインスタンスが引数リストと一致します: 関数 "abs(long double)" 関数 "abs( float)" 関数 "abs(double)" 関数 "abs(long)" 関数 "abs(int)" 引数の型: (ptrdiff_t)
したがって、私の質問は、同じコンパイラを考慮した違いが使用されている理由と、次にこれをどのように修正できるかです。
concurrency - 並行プログラミングに関する本が常にデータ並列処理を無視するのはなぜですか?
ここ数年で、OpenCL や CUDA などのシステムを介したデータ並列プログラミングへの大きな変化がありましたが、過去 6 か月以内に出版された書籍でも、データ並列プログラミングのトピックについて言及することはありません。
すべての問題に適しているわけではありませんが、対処されていない大きなギャップがあるようです。
c - CUDA: エラー C2491: 'log1p': dllimport 関数の定義は許可されていません
複数のライブラリ (DLL) が作成されている既存のプロジェクトに CUDA を統合しようとしています。内積を計算する非常に単純なカーネルから始めました。
このカーネルは、ホスト スクリプトによって呼び出されます。
cmake を使用してビルド ファイルを生成し、Visual Studio 2008 Pro を使用してコンパイルします。カーネルを呼び出さない foobar 関数で .cu ファイルを単純に使用すると、正常に実行されます。しかし、上記のコードでは、次のエラーが発生します。
CUDA コードを呼び出す結果のコードは、DLL としてエクスポートされます。これは問題ですか?
visual-studio-2008 - CUDA & Visual C++ & Windows Forms アプリケーション
Microsoft Visual C++ 2008 Express Editionを使用しており、CUDAテクノロジを使用する必要があります。コンソール アプリケーションを作成する方法を理解しました。しかし、フォーム (ダイアログ、ボタン、ラベルなど) を使用して win32 アプリケーションで動作させる方法がわかりません。
memory - CUDA境界チェッカー?
CUDA の境界チェッカー、浄化、または valgrind に相当するツールはありますか?
私は基本的に、割り当てられたメモリの外で読み書きを行っているかどうかを教えてくれるものを探しています。
visual-studio - CUDA:デバイスエミュレーションモードでのみリンクエラーが発生する
-deviceemuモードを使用しない限り、問題なく動作するdllをコンパイルしています。
この場合、次のリンクエラーがいくつか発生します。
CUDAKernel_ColourHist.obj:エラーLNK2019:未解決の外部シンボル___ cudaMutexOperation@4関数で参照___uAtomicAdd1> CUDAKernel_1.obj:エラーLNK2001:未解決の外部シンボル___ cudaMutexOperation @ 4 1> CUDAKernel_2.obj:エラーLNK2001:未解決
そのため、おそらく正しいファイルをリンクしていないと思いましたが、リンクしていると思います。私はVisualStudioを使用していますが、助けていただければ幸いです。
visual-studio-2008 - VS 2008 で CUDA アプリをコンパイルできません
Visual Studio 2008 Professional で CUDA を使用しようとはしていません。Windows 7 64 ビットを使用しており、次の手順を実行しました。
- CUDA ドライバー、ツールキットおよび SDK をダウンロードしてインストールしました。SDK から任意の例を実行できます。- CUDA VS Wizard
をダウンロードしてインストール
しました CUDA Win アプリを作成しようとすると、次のコンパイル エラーが発生します:エラー 1 致命的なエラー LNK1181: 入力ファイル '.\x64\Debug\main.obj' を開けませ
んそれを修正する方法は?